。鳥x歌的判別方式

   # 1. Get the TIME_WAIT signle

        #=== Part A, about the TIME WAIT signle ===#
        netstat -an|grep 80|grep TIME| awk '{print $5}'| cut -d':' -f1| sort |uniq -c|
                awk '{if ($1 >= 12) print $2}' > $basedir/netstat1
        sleep 12s
        netstat -an|grep 80|grep TIME| awk '{print $5}'| cut -d':' -f1| sort |uniq -c|
                awk '{if ($1 >= 12) print $2}' > $basedir/netstat2
        sleep 12s
        netstat -an|grep 80|grep TIME| awk '{print $5}'| cut -d':' -f1| sort |uniq -c|
                awk '{if ($1 >= 12) print $2}' > $basedir/netstat3
        cat $basedir/netstat1 $basedir/netstat2 $basedir/netstat3 | sort | uniq -c |
                awk '{ if ( $1 == 3 ) print $2 }' > $basedir/netstat.now
        denyip_netstat=`cat $basedir/netstat.now`

        #=== Part B, about the log file ===#
        tail -n 1000 $access_log | grep "Teleport" | cut -d' ' -f1|sort|uniq > $basedir/loga.now
        denyip_log=`cat $basedir/loga.now`

   。施x銘前輩的判別方式

# awk尋找 :80與 TIME_WAIT狀態
# match
# substr將 IP設定為變數 IP
# 判斷忽略 127.0.0.1
# 如果不是則輸出此 IP
netstat -tn | awk "/:80 .*TIME_WAIT/ {
        match($5, /[0-9]+.[0-9]+.[0-9]+.[0-9]+/);
        ip=substr($5, RSTART, RLENGTH)
        if ( ip ~ /127.0.0.1/ ) {}
        else print ip}" |
sort | uniq -c

最主要的還是要把 netstat 狀態好好理解一下吧
Quote: http://linux.vbird.org/linux_server/0140networkcommand.php

  • Proto:該連線的封包協定,主要為 TCP/UDP 等封包;
  • Recv-Q:非由使用者程式連接所複製而來的總 bytes 數;
  • Send-Q:由遠端主機所傳送而來,但不具有 ACK 標誌的總 bytes 數, 意指主動連線 SYN 或其他標誌的封包所佔的 bytes 數;
  • Local Address:本地端的位址,可以是 IP (-n 參數存在時), 也可以是完整的主機名稱。如上表我們看到的 IP 格式有兩種,一種是 IPv4 的標準, 亦即是四組十進位的數字後面加上冒號『:』後,接著 port number 。一種是 IPv6 , 前面的 IP 加上很多冒號『:』的格式。我們可以由這個顯示的資料看出這個服務是開放在哪一個介面, 例如上表當中, port 22 是開放在 0.0.0.0 ,亦即是所有介面都可以連到 port 22 , 至於 port 53 則僅開放在本機的 127.0.0.1 這個介面而已,所以是不對外部介面開放的意思。
  • Foreign Address:遠端的主機 IP 與 port number
  • stat:狀態列,主要的狀態含有:
    • ESTABLISED:已建立連線的狀態;
    • SYN_SENT:發出主動連線 (SYN 標誌) 的連線封包;
    • SYN_RECV:接收到一個要求連線的主動連線封包;
    • FIN_WAIT1:該插槽服務(socket)已中斷,該連線正在斷線當中;
    • FIN_WAIT2:該連線已掛斷,但正在等待對方主機回應斷線確認的封包;
    • TIME_WAIT:該連線已掛斷,但 socket 還在網路上等待結束;
    • LISTEN:通常用在服務的監聽 port !可使用『 -l 』參數查閱。
Related posts 相關文章

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。