netstat 및 iptables를 사용하여 공격을 막는 Linux 명령 IP 당 200 개 이상의 요청을

ddos 공격을 방지하기 위해 IP 당 200 개 이상의 요청을 삭제하고 싶습니다. 이것은 ip 당 요청 수를 감지하는 데 사용한 명령입니다.

netstat -alpn | grep :80 | awk '{print $5}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -nr

이제 IP 테이블에 200 개 이상의 요청을 만든 모든 IP 주소를 DROP 입력 및 출력에 추가하고 싶습니다.



답변

iptables를 사용하여 들어오는 연결 속도를 제한 할 수도 있습니다. 예를 들어 소스에서 분당 200 개 이상의 연결을 원하지 않는 경우 :

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 200 -j DROP


답변

을 만들 수 있습니다 ipset. 이렇게하면 iptables규칙 세트 를 수정하지 않고도 필요한만큼 세트에 IP를 추가 할 수 있습니다 .

ipset -N myset iphash
ipset -A myset 1.1.1.1
ipset -A myset 2.2.2.2

또는 귀하의 경우 스크립트 출력을 사용하여 다음과 같이 읽으십시오.

while read a; do ipset -A myset "$a"; done < <(your script here)

그리고 iptables규칙 에서 참조하십시오 .

iptables -A INPUT -m set --set myset src -j DROP

자세한 내용과 옵션 은 맨 페이지 를 참조하십시오.

직접 사용하여 DDOS 공격 을 완화 하는 다른 방법도 iptables있습니다. 및 모듈 iptables에 대한 맨 페이지 섹션을 읽으십시오 .connlimitrecent


답변