一、tcpdump與iptables的關系
telnet、ftp等應用程式,會通過完整的Linux網路協議堆疊收發網路資料,應用程式只需要對應用層資料進行讀寫,資料的封裝和解封裝由Linux作業系統完成,
tcpdump這一類程式則依賴libpcap,libpcap使用的是一種稱為設備層的包介面技術,這種技術使得應用程式可以直接讀寫內核驅動層面的資料,而不經過Linux網路協議堆疊,
iptables依賴的Netfilter模塊作業在Linux網路協議堆疊中,tcpdump直接從網路驅動層面抓取資料,不經過任何Linux網路協議堆疊,因此iptables的入堆疊策略不會影響到tcpdump抓取資料,
應用程式對外發送的資料包會先經過Linux網路協議堆疊,再到達網路驅動設備,因此,iptables的出堆疊策略會影響資料包發送到網路驅動設備層面,影響tcpdump抓取資料,
二、tcpdump常用引數和過濾器
2.1、常用的5個引數
- -i引數: 指定需要抓包的網卡,如果未指定,tcpdump會根據搜索到的系統中狀態為UP的最小數字的網卡,如eth0;
- -nnn引數: 禁止tcpdump展示時,將IP轉換為域名,埠號轉換為協議名稱;
- -s引數: 指定抓取的資料包的大小,使用“
-s 0”指定資料包大小為262144位元組,可以使得抓到的資料包不被截斷,從而完整反映資料包的內容; - -c引數: 指定抓取的資料包的數量;
- -w引數: 將抓取的資料包保存到相應的檔案,檔案通常以
.pcap或.pcapng等結尾,
2.2、常用的過濾器
- host x.x.x.x:指定抓取本機與主機“x.x.x.x”通信資料包;
- tcp port x:指定抓取源埠號或目的埠號為“x”的TCP協議資料包;
- icmp:僅抓取ICMP協議資料包;
- !:反向匹配,例如:tcp port ! 22,抓取非22埠的TCP協議資料包;
- host x.x.x.x and tcp port x:指定抓取本機與主機“x.x.x.x”之間,源埠號或目的埠號為“x”的TCP協議資料包;
- tcp port x or icmp:指定抓取源埠號或目的埠號為“x”的TCP協議資料包或ICMP協議資料包;
例如,通過wget請求www.example.com,使用tcpdump抓取通信程序中的資料包,如下:
# tcpdump -nnn -i ens33 host www.example.com -s 0 -w example.pcap
三、抓包環境
- 本機環境:直接抓取本機網卡進出流量;
- 集線器環境:所有主機處于一個沖突域,集線器不對資料包的MAC地址做檢查,理論上可以抓取所有主機相互通信的資料包;
- 交換機環境:僅能抓取網路上其它主機與本機通信的資料包,
四、更多實體
- 抓取網路上所有經過本地指定網卡的資料包:
# tcpdump -i ens33
- 抓取網路上所有與192.168.18.131通信的資料包:
# tcpdump -i ens33 host 192.168.18.131
- 抓取主機192.168.18.131與主機192.168.18.130或192.168.18.132之間通信的資料包:
# tcpdump -i ens33 host 192.168.18.131 and \(192.168.18.130 or 192.168.18.132\)
- 抓取主機192.168.18.131與192.168.18.130之外的主機通信的資料包:
# tcpdump -i ens33 host 192.168.18.131 and ! 192.168.18.130
- 抓取網路上所有源地址是192.168.18.131的資料包:
# tcpdump -i ens33 src host 192.168.18.131
- 抓取網路上所有目的地址是192.168.18.131的資料包:
# tcpdump -i ens33 dst host 192.168.18.131
- 抓取網路上所有經過主機192.168.18.131并且目的埠號是22的資料包:
# tcpdump -i ens33 host 192.168.18.131 and tcp dst port 22
- 抓取網路上所有目的地址是192.168.18.131或192.168.18.132,并且源/目的埠號是22的所有TCP協議資料包:
# tcpdump -nnn -i ens33 tcp port 22 and \(dst host 192.168.18.131 or dst host 192.168.18.132\)
- 抓取網路上所有SYN或ACK資料包:
# tcpdump -nnn -i ens33 'tcp[tcpflags]=tcp-syn' or 'tcp[tcpflags]=tcp-ack'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248203.html
標籤:其他
上一篇:力扣892.三維形體的表面積
