셸 로 ddos * * 인 스 턴 스 해결

3923 단어
알림: 웹 로그 나 네트워크 연결 수 에 따라 특정한 IP 의 동시 접속 수 나 짧 은 시간 내 에 PV 가 100 에 달 하 는 것 을 감시 합 니 다.
      방화벽 명령 으로 대응 하 는 IP 를 차단 하고 감시 주파 수 는 3 분 마다
      방화벽 명령: iptables - A INPUT - s 10.0.1.10 - j DROP
생각:
    1. 로그 분석, IP 와 PV 수 추출
    2. while 문 구 는 추출 한 IP 와 PV 수 를 읽 고 3 분 에 한 번 순환 합 니 다.
    3. 방화벽 명령 호출
while 로 로그 읽 는 방법:
    1.cat a.log | while read line
      do
      done
    2.exec
      do
      done
    3.while read line
      do
      done
스 크 립 트:
#!/bin/bash
#Author: liuwei
#Site: www.51liuzw.com
while true
do
#cat 12_01.log | awk '{print $1}' | sort | uniq -c > a.log
netstat -an | grep ESTAB | awk -F "[ :]+" '{print $6}' | sort | uniq -c > b.log
exec 
    

    实现思路:

        1.根据日志提取ip和pv数,或者根据网络连接数提ip和pv

        2.判断当pv大于你所能接受的最大值时,把此ip加入防火墙中

        3.可以结合crontab实现每3分钟执行一次

    知识点:

        awk -F "[ :]+"

            -F:指定分隔符时,需要添加此选项

            [ :]+ :以空格或者冒号为分隔符,+表示空格或者冒号最少出现一次



다음으로 전송:https://blog.51cto.com/liuzhengwei521/1773802

좋은 웹페이지 즐겨찾기