티스토리 뷰

먼저, iptables 로그 파일을 생성하도록 rsyslog.conf 의 RULE 을 추가합니다.

 

vi /etc/rsyslog.conf

kern.* /var/log/iptables.log

80 포트와 443 포트에 10초 이내 20회 접근이 발생하는 경우에 대하여 로그 및 차단 처리하도록 RULE 을 추가합니다. IP 의 경우 보안의 이유로 일부 x 표기하였습니다.

iptables -I INPUT -p tcp -s 0.0.0.0/0 -d 172.31.x.x --dport 80 -m recent --set --name flood_list
iptables -I INPUT -p tcp -s 0.0.0.0/0 -d 172.31.x.x --dport 80 -m recent --update --seconds 10 --hitcount 20 --name flood_list -j LOG --log-prefix "[PORT 80 DDOS]:"
iptables -I INPUT -p tcp -s 0.0.0.0/0 -d 172.31.x.x --dport 80  -m recent --update --seconds 10 --hitcount 20 --name flood_list -j DROP

iptables -I INPUT -p tcp -s 0.0.0.0/0 -d 172.31.x.x --dport 443 -m recent --set --name flood_list
iptables -I INPUT -p tcp -s 0.0.0.0/0 -d 172.31.x.x --dport 443 -m recent --update --seconds 10 --hitcount 20 --name flood_list -j LOG --log-prefix "[PORT 443 DDOS]:"
iptables -I INPUT -p tcp -s 0.0.0.0/0 -d 172.31.x.x --dport 443  -m recent --update --seconds 10 --hitcount 20 --name flood_list -j DROP

이후, iptables 에 적용한 내용이 재부팅하여도 반영될 수 있도록 관련 모듈을 설치합니다.

yum install iptables-services
systemctl enable iptables.service

아래의 명령어를 실행합니다.

/usr/libexec/iptables/iptables.init save

운영중, 특정 IP(아래에서는 192.168.0.1) 의 차단을 해제하고자 할때는 아래의 명령어를 실행합니다.

echo -192.168.0.1 > /proc/net/xt_recent/flood_list
댓글
댓글쓰기 폼