본문 바로가기
서버/리눅스

CentOS 7 특정 횟수 이상 TCP 접속 차단하기

by 사악신 2020. 10. 4.

먼저, 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

댓글