CentOS中Sniffer配置技巧
在CentOS上配置Sniffer前,需完成以下基礎準備:
sudo yum groupinstall "Development Tools" -y
sudo yum install ncurses-devel zlib-devel awk flex quilt git-lfs openssl-devel xz -y
tcpdump
(輕量、靈活)和圖形化的Wireshark
(功能豐富)。根據需求選擇:
sudo yum install tcpdump -y
sudo yum install wireshark -y
使用以下命令查看系統可用網絡接口(如eth0、ens33):
ip link show # 或 ifconfig -a(需安裝net-tools)
選擇需要監控的接口(通常為有線連接或無線網卡)。
使用tcpdump
進行簡單捕獲:
sudo tcpdump -i eth0 # 指定接口eth0捕獲所有流量
常用選項說明:
-n
:不解析主機名和端口名(提升性能);-nn
:不解析主機名、端口名及協議名稱;-v/-vv/-vvv
:增加輸出詳細程度;-w capture.pcap
:將捕獲的數據包保存到文件(便于后續分析);-r capture.pcap
:讀取已保存的pcap文件。通過過濾器減少不必要的數據捕獲,提升效率。常見過濾器示例:
192.168.1.100
):sudo tcpdump -i eth0 host 192.168.1.100
sudo tcpdump -i eth0 port 80
sudo tcpdump -i eth0 tcp # 僅捕獲TCP流量
192.168.1.100
的TCP 80端口流量):sudo tcpdump -i eth0 'tcp and src host 192.168.1.100 and dst port 80'
過濾器語法需遵循tcpdump
的BPF(Berkeley Packet Filter)規則。
若使用netsniff
等高級Sniffer,可通過修改配置文件/etc/netsniff/netsniff.conf
調整參數:
CAPTURE_ENABLED 1
(啟用)或0
(禁用);MODE promisc
(混雜模式,捕獲所有經過接口的數據包)或MODE nonpromisc
(非混雜模式,僅捕獲目標為本機的數據包);INTERFACE eth0
(指定接口);FILTER "tcp and src host 192.168.1.100"
(設置過濾條件)。
修改后,使用以下命令啟動Sniffer:sudo /usr/local/bin/sniff
可將Sniffer添加到系統服務(如systemd
),實現開機自啟。
localedef -c -f UTF-8 -i en_US en_US.UTF-8
),減少編碼開銷;setenforce 0
)或永久禁用(修改/etc/selinux/config
中的SELINUX=disabled
),降低對網絡流量的監控;systemctl stop firewalld
),但需注意安全性(建議僅在測試環境使用)。tcpdump
的-B
選項增大緩沖區(如-B 4096
),避免因緩沖區滿導致數據丟失。-C
選項限制每個捕獲文件的大?。ㄈ?code>-C 100,單位為MB),避免單個文件過大;-W
選項限制捕獲時長(如-W 60
,單位為分鐘),自動停止捕獲。sudo
執行命令,避免普通用戶獲取敏感權限;