有時也許想看一下某個網卡上都有哪些數據包,尤其是當你初步判定服務器上有流量攻擊時,使用抓包工具來抓取數據包就可以知道有哪些IP在攻擊了。
14.2.1 tcpdump工具
具體用法如下:
# tcpdump -nn -i ens33 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 0946.647812 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 3649233742:3649233954, ack 443629343, win 251, length 212 0946.647976 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 212, win 253, length 0 0946.648337 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 212:504, ack 1, win 251, length 292 0946.648493 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 504:668, ack 1, win 251, length 164 0946.648562 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 668, win 252, length 0 0946.648651 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 668:928, ack 1, win 251, length 260 0946.648744 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 928:1092, ack 1, win 251, length 164 0946.648800 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 1092, win 256, length 0 0946.648875 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1092:1368, ack 1, win 251, length 276 0946.648978 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1368:1532, ack 1, win 251, length 164 0946.649035 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 1532, win 254, length 0 0946.649128 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1532:1808, ack 1, win 251, length 276 0946.649206 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1808:1972, ack 1, win 251, length 164 0946.649297 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 1972, win 253, length 0 0946.649433 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1972:2248, ack 1, win 251, length 276 0946.649531 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 2248:2412, ack 1, win 251, length 164 0946.649591 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 2412, win 251, length 0 0946.649675 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 2412:2688, ack 1, win 251, length 276 0946.649760 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 2688:2852, ack 1, win 251, length 164 0946.649809 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 2852, win 256, length 0回車后會出現密密麻麻的一堆字符串,在按Ctrl+C之前,這些字符串一直在刷屏,刷屏越快說明網卡上的數據包越多。如果沒有tcpdump命令,需要使用如下命令安裝:
#?dnf?install?-y?tcpdump? 上例中,我們只需要關注第3列和第4列,它們顯示的信息為哪一個IP+端口號在連接哪一個IP+端口號。后面的信息是該數據包的相關信息,如果不懂也沒有關系。 其中-i選項后面跟設備名稱,如果想抓取其他網卡的數據包,后面則要跟其他網卡的名字。-nn選項的作用是讓第3列和第4列顯示成“IP+端口號”的形式,如果不加-nn選項則顯示 “主機名+服務名稱”。 阿銘在shell腳本中也經常會用到tcpdump工具。你可能會問,shell腳本是自動執行的,那我們如何按快捷鍵Ctrl+C結束抓包呢?tcpdump還有其他的選項可以使用。
# tcpdump -nn -i ens33 -c 100上例中,-c的作用是指定抓包數量,抓夠了自動退出,不用我們人為取消。阿銘再給大家列幾個常用的示例:
?
只抓22端口的包
?
# tcpdump -nn -i ens33 port 22
?
指定抓tcp的包,但是不要22端口的
?
# tcpdump –nn –i ens33 tcp and not port 22
?
只抓22和53端口的包
?
# tcpdump –nn –i ens33 port 22 and port 53? 14.2.2 wireshark工具
也許你在Windows下使用過wireshark這個抓包工具,它的功能非常強大。在Linux平臺我們同樣也可以使用它,只不過是以命令行的形式。wireshark的具體選項阿銘不再詳細介紹,在日常工作中,tcpdump其實就已經夠我們使用了。下面的用法是阿銘在工作中使用比較多的,希望你能掌握這些用法。
# tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"我們要執行的命令是tshark,你的Linux默認是沒有這個命令的,請使用如下命令安裝:
# dnf install -y wireshark然后再看看上面的抓包命令tshark,這條命令用于Web服務器,可以顯示如下信息:
Jun 26, 2022 0944.017592529 CST" 116.179.32.105 ask.apelearn.com GET /question/96924473532這類似于Web訪問日志。若服務器沒有配置訪問日志,可以臨時使用該命令查看一下當前服務器上的Web請求。在這里要注意的是,如果你的機器上沒有開啟Web服務,是不會顯示任何內容的。
# tshark -n -i eth1 -R 'mysql.query' -T fields -e "ip.src" -e "mysql.query"上面的命令會抓取eth1網卡mysql的查詢都有哪些,不過這種方法僅僅適用于mysql的端口為3306的情況,如果不是3306,請使用下面的方法:
#?tshark?-i?eth1?port?3307?-d?tcp.port==3307,mysql?-z?"proto,colinfo,mysql.query,mysql.query"???
?
審核編輯:湯梓紅
評論
查看更多