나는 DDoS 예방의 일환으로 다음 규칙을 적용합니다.
스푸핑된 패킷 방지
-A INPUT -s 255.0.0.0/8 -j LOG --log-prefix "Spoofed source IP"
-A INPUT -s 255.0.0.0/8 -j DROP
-A INPUT -s 0.0.0.0/8 -j LOG --log-prefix "Spoofed source IP"
-A INPUT -s 0.0.0.0/8 -j DROP
스텔스 스캔 및 TCP SYN 플러드 방지
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "Stealth scan attempt?"
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
이제 IP 주소별로 분당 허용되는 연결 수를 적용하려고 합니다. 이를 위해 확장 기능을 사용할 계획입니다 --limit
. 하지만 이제는 여전히 확장 기능을 사용하는 것이 권장되는 것 같습니다 --cstate
. 물어보는 경우가 거의 없습니다..
- iptables가 분/초당 IP 주소당 허용하는 기본 연결 수는 얼마입니까?
- 분/초당 기본 연결은 무엇입니까? 운영 체제 수준에서 그러한 제한 사항
초당 60개의 연결을 허용한다고 가정하고, 해당 제한을 초과하면 초당 25개의 연결을 강제로 적용합니다. 이를 위해서는 다음 규칙이 좋습니다.
/sbin/iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 25/s --limit-burst 60 -j ACCEPT /sbin/iptables -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP
첫 번째 규칙을 추가한 후 두 번째 규칙이 필요한지 여부입니다.