(다운로드) : wget http://down.smileserv.com/setup/sysctl-shell.sh
(실행) : sh sysctl-shell.sh
스크립트 실행하여 적용된상태 스크린샷 (아래와같이 나올시 정상)
재확인: sysctl -a
2) iptables 의 connlimit 모듈을 이용한 syn_flood 공격막기
설치전 주의사항
반드시 자신의 시스템의 커널에 맞는 모듈을 써야 iptables 구문오류가 나지 않습니다.
------------------------------------------------------------------------------------------------------------
예제) 아래와같은 시스템의경우 다운로드사이트에서
kernel-modules-connlimit-2.6.9_55.0.2.EL-0.20051006.ker.rhel4.i686.rpm 다운로드하여 설치하여야합니다.
1) 32비트/64비트인지 여부(i686(32비트) 인지 x86_64(64비트))
2) smp(cpu2개이상) 여부
3) kernel 버전에 맞추시길 바랍니다.
------------------------------------------------------------------------------------------------------------
다운로드사이트 (
srpm: ftp://ftp.pslib.cz/pub/users/Milan.Kerslager/RHEL-4/stable/SRPMS/
rpm: ftp://ftp.vslib.cz/pub/local/milan.kerslager/RHEL-4/stable/
설치
rpm -Uvh 다운로드파일.rpm
설치후 설정법
주의) 반드시 connlimit 모듈이 설치되어 있을 때 아래명령어를 수행하셔야 합니다.
확인법예제: rpm -qa|grep conn
자신의 버전에 맞는 rpm 패키지가 나와야함
설치가 잘되었다면 다음명령어 수행
(다운로드) : wget http://down.smileserv.com/setup/connlimit-shell.sh
(실행) : sh connlimit-shell.sh
참고사항: iptables: Unknown error 4294967295 에러메세지는 적용한 커널에서는
-A INPUT -p tcp --syn -m connlimit --connlimit-above 20 -j DROP 에 대한 룰만 적용이 되지 않을 것입니다. (해당커널 미지원문제)
정상 적용한상태의 iptables 룰 상태
쉘스크립트내용 (즉시 적용하며, 리부팅후에도 적용되도록 설정함)
--------------------------------------------------------------------------------------------
#!/bin/sh
echo "
#!/bin/sh
# 한 ip에서 20개 이상의 syn 요청이 올경우 차단
/sbin/iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 20 -j DROP
# syn 20번연결후 초당 10회연결제한
/sbin/iptables -N syn-flood1
/sbin/iptables -A INPUT -p tcp --syn -j syn-flood1
/sbin/iptables -A syn-flood1 -m limit --limit 10/s --limit-burst 20 -j RETURN
/sbin/iptables -A syn-flood1 -j DROP
" >> /etc/rc.d/connlimit.sh;chmod 700 /etc/rc.d/connlimit.sh;
echo "/etc/rc.d/connlimit.sh" >> /etc/rc.d/rc.local;
/etc/rc.d/connlimit.sh;
/sbin/iptables -L -n;
--------------------------------------------------------------------------------------------