iptables -A INPUT -p tcp --dport 80 -m recent --update --seconds 1 --hitcount 10 --name HTTP -j DROP
- 1초동안 80포트에 똑같은 IP가 10번 이상의 SYN가 들어오면 드랍시킨다.
이는 정상적인 요청이 아닌 공격으로 간주한다.
iptables -m connlimit -h
# iptables -A FORWARD -m recent --name badguy --rcheck --seconds 300 -j DROP
# iptables -A FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 30 -m recent
--name badguy --set -j DROP
# iptables -A FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 30 -j DROP
위의 3 줄을 실행하면 가능한데,단순히3번째 룰인
# iptables -A FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 30 -j DROP
만 실행하게 되면,한 IP에서의 동시접속이 30회만 접속을 허용할 뿐 그 이상 접속을 하지
못하지만, 위의 두 룰을 함께 사용하게 되면 동시접속이 30회 이상 초과하는 IP를 dynamic
하게 300초(5분)동안 자동 차단하게 된다. 동시접속수(30) 제한이나 차단시간(5분)은 각자
의 환경에 따라 적절히 설정하면 된다.
이때 과다접속으로 차단된 IP에 대한 정보는 다음과 같이 실시간으로 확인할 수 있다.
# cat /proc/net/ipt_recent/badguy
출처: http://gampol.tistory.com/entry/ddos공격-예방-iptables룰 [유효하지 않네]
'리눅스' 카테고리의 다른 글
서버 시간 한국으로 변경하기 (0) | 2017.04.30 |
---|---|
리눅스 디스크 추가 후 마운트 하기 (2) | 2017.04.29 |
aws 스왑 메모리 만들기 (0) | 2017.04.02 |
aws 서버 한국시간으로 맞추기 (0) | 2017.03.31 |
폴더 및 파일 권한 변경 (0) | 2016.12.13 |