먼저, 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
반응형
'서버 > 리눅스' 카테고리의 다른 글
CentOS 7.x snap 으로 mosquitto 설치하기 (0) | 2022.08.23 |
---|---|
CentOS 7.x snap 및 node-red 설치하기 (0) | 2022.08.23 |
zsh 사용하기 (0) | 2020.03.10 |
CentOS 7 SELinux 사용 (0) | 2020.03.04 |
CentOS 7, fail2ban 설정 (0) | 2019.06.04 |
댓글