Iptables에는 다양한 모듈이 존재하는데 그 중 DDoS 공격에 효과적으로 사용 가능한 모듈들 중  hashashlimit 과 connlimit에 대한 설명입니다.

대략적인 설명이며 나중에 추가 포스팅 진행해 보고자 한다.

 

  1. 1.     Hashlimit module

–       접속하는 모든 패킷의 Source IP를 hash Code로 기억하여 리스트 생성 =>

–       접속자 IP 매칭하여 접속률 제한

  1. 2.     Connlimit module

–       Connection에 대한 제한을 IP 혹은 IP 대역별로 제한할 수 있는 기능 탑재.

 

외부 => 내부

Hashlimit .

타운 내 비즈스프링과 같이 카운터가 많다거나 특정 아이피와 세션이 많아 범위 설정 어려움. 특정 source IP로 지정하지만, 클라우드 타운의 경우 VM의 사설 아이피가 소스 IP로 되어지는 경우가 있어 적정 limit count 수치를 유추하기 어려움.

-A http_filter -m recent –update –seconds 60 –name TOO_MANY_REQUESTS -j DROP

-A http_filter -m hashlimit –hashlimit 20/s –hashlimit-burst 40 –hashlimit-mode srcip –hashlimit-name HTTP_REQ_LIMIT -j ACCEPT

-A http_filter -m recent –set –name TOO_MANY_REQUESTS -j DROP

 

 

 

 

Connlimit

–       동시 접속 개수 제한이 가능 하지만, hashlimit의 경우와 같이 다양한 서비스 형태로 서비스가 이루어지기 떄문에 NAT iptables rule에 적용하기엔 적용 범위가 다소 넓어질 것으로 생각 됩니다.  Tapacross의 경우는 평일 평균 6000개의 세션 존재

–       NAT => LB 세션 10000개 이상

아이피당 최대 n개의 동시 연결 개수 허용. 포트 지정 가능

iptables -I FORWARD -p tcp –syn –dport 80 -m connlimit –connlimit-above 5 -j DROP

 

 

내부 => 외부 트래픽 발생 (취약점으로 인한 악성 프로세스 구동)

–       내부 트래픽을 NAT에서 감지 하기 어려운 부분들이 존재

–       Linux VM 다운로드와 업로드 속도를 제한

n  Tc 명령 사용해 각 device 별 속도 제한 설정

http://www.topwebhosts.org/tools/traffic-control.php