Der Befehl tcpdump kann die Paketheader auflisten, die das angegebene Netzwerk passieren Schnittstelle und kann über das Netzwerk übertragen werden Daten Der „Header“ des Pakets wird vollständig abgefangen und analysiert. Es unterstützt die Filterung nach Netzwerkschicht, Protokoll, Host, Netzwerk oder Port und bietet logische Anweisungen wie „und“ oder „nicht“, um Ihnen beim Extrahieren nützlicher Informationen zu helfen.
Da die Netzwerkschnittstelle auf den Promiscuous-Modus eingestellt werden muss, können normale Benutzer es nicht normal ausführen, Benutzer mit Root-Berechtigungen können es jedoch direkt ausführen, um Informationen über das Netzwerk zu erhalten
Andere Paketerfassungstools
Wireshark verfügt sowohl über grafische als auch über Befehlszeilenversionen, die die von tcpdump erfassten Pakete analysieren können. Seine Hauptfunktion besteht darin, Datenpakete zu analysieren.
ngrep zeigt die erfassten Paketdaten direkt in Textform an, was zur [Erfassung]-Analyse von Paketdaten mit Text (wie HTTP, MySQL) geeignet ist
tcpdump [Optionen] [Protokoll] [Datenflussrichtung] [Bereich]
-a Netzwerkadresse und Broadcast-Adresse in Namen umwandeln
-A Alle Pakete im ASCII-Format ausdrucken und den Header von minimieren die Verbindungsschicht
-b Wählen Sie Protokolle auf der Datenverbindungsschicht aus, einschließlich IP/ARP/RARP/IPX, die sich alle in dieser Schicht befinden
-c Geben Sie an, wie oft Datenpakete empfangen werden sollen, also vorher Wenn Sie tcpdump verlassen, nachdem die angegebene Anzahl von Datenpaketen erreicht wurde, gibt
-d den Code der passenden Informationspakete in einem für Menschen verständlichen Assemblerformat aus
-dd Gibt den Code des passenden Informationspakets im Format eines C-Sprachprogrammsegments aus.
-ddd Gibt den Code des passenden Informationspakets in Dezimalform aus.
-D Gibt alle Netzwerke aus, die dies können in der Systemschnittstelle überwacht werden
-e druckt die Header-Informationen der Datenverbindungsschicht auf der Ausgangsleitung
-f druckt die externe Internetadresse in Form von Zahlen, dh zeigt den Host nicht an Name
-F from Liest den Ausdruck aus der angegebenen Datei und ignoriert andere Ausdrücke
-i Geben Sie die hörende Netzwerkschnittstelle an
-l Machen Sie die Standardausgabe zu einem gepufferten Formular und exportieren Sie die Daten in die Datei
-L-Spalte Geben Sie die bekannte Datenverbindung der Netzwerkschnittstelle aus Beispiel: www.baidu.com gibt nur www aus
-nn konvertiert keine Portnamen
-P setzt die Netzwerkschnittstelle nicht in den Promiscuous-Modus
-q schnelle Ausgabe, d Protokollinformationen
-r aus der angegebenen Datei Daten lesen, normalerweise -w gespeicherte Datei
-w Speichern Sie die erfassten Informationen in einer Datei, ohne sie zu analysieren und auf dem Bildschirm auszudrucken
-s Aus jeder Datei lesen Gruppe am Anfang snaplen Bytes, anstelle der standardmäßigen 68 Bytes
-S Gibt die TCP-Sequenznummer als absoluten Wert aus, nicht als relativen Wert
-T Analysiert die überwachten Pakete direkt in den angegebenen Nachrichtentyp, allgemein Zu den Typen gehören RPC (Remote Procedure Call) und SNMP (einfaches Netzwerkverwaltungsprotokoll).
-t druckt keinen Zeitstempel in jeder Ausgabezeile.
-tt gibt nicht formatierten Zeitstempel aus.
-ttt-Ausgabe der Zeitunterschied zwischen dieser Zeile und der vorherigen
-tttt Gibt den Zeitstempel im Standardformat der Datenverarbeitung in jeder Zeile aus.
-u Gibt den nicht dekodierten NFS-Handle aus.
-v gibt etwas detailliertere Informationen aus Beispielsweise kann das IP-Paket TTL- und Diensttypinformationen enthalten
-vv Gibt die vertrauenswürdigen Nachrichteninformationen aus 0,0 steht für a Netzwerksegment, Port 80 gibt an, dass die Portnummer 80 ist. Wenn der Datentyp hier nicht angegeben ist, ist der Standardwert host
1 |
|
einschließlich src, dst, dst oder src, dst und src, Diese Schlüsselwörter geben die Übertragungsrichtung an. Beispielsweise gibt src 192.168.100.1 an, dass die Quelladresse des Datenpakets 192.168.100.1 ist. dst net 192.168.100.0 gibt an, dass die Zielnetzwerkadresse 192.168.100.0 ist. Der Standardwert besteht darin, den src und den dst des Hosts zu überwachen, dh der Standardwert besteht darin, alle Daten des lokalen Hosts und des Zielhosts zu überwachen
Protokollschlüsselwörter
einschließlich IP und ARP, RARP, UDP
其他关键字
运算类型:or、and、not、!
辅助功能型:gateway、less、broadcast、greater
tcpdump [协议类型] [源或目标] [主机名称或 IP] [or/and/not/! 条件组合] [源或目标] [主机名或 IP] [or/and/not/! 条件组合] [端口] [端口号] …… [or/and/not/! 条件组合] [条件]
1 |
|
tcpdump
默认监听在第一块网卡,监听所有经过此网卡的数据包
1 |
|
监听指定网卡 ens33 的所有传输数据包
1 |
|
捕获主机 192.168.100.10 经过网卡 ens33 的所有数据包(也可以是主机名,但要求可以解析出 IP 地址)
第一列:报文的时间
第二列:网络协议 IP
第三列:发送方的 ip 地址、端口号、域名,上图显示的是本机的域名,可通过 / etc/hosts 查看本机域名
第四列:箭头 >, 表示数据流向
第五列:接收方的 ip 地址、端口号、域名,
第六列:冒号
第七列:数据包内容,报文头的摘要信息,有 ttl、报文类型、标识值、序列、包的大小等信息
1 |
|
捕获主机 192.168.56.209 和主机 192.168.56.210 或 192.168.56.211 的所有通信数据包
1 |
|
捕获主机 node9 与其他主机之间(不包括 www.baidu.com)通信的 ip 数据包
1 |
|
捕获 node9 与其他所有主机的通信数据包(不包括 www.baidu.com)
1 |
|
捕获源主机 node10 发送的所有的经过 ens33 网卡的所有数据包
1 |
|
捕获所有发送到主机 www.baidu.com 的数据包
监听主机 192.168.56.1 和 192.168.56.210 之间 ip 协议的 80 端口的且排除 www.baidu.com 通信的所有数据包:
1 |
|
也可以写成 tcpdump ip dst 192.168.56.1 and src 192.168.56.210 and port 80 and host not www.baidu.com,即 not 和!都是相同的取反的意思
1 |
|
监控指定主机的通信数据包与 1.9.1 方式相同
1 |
|
捕获主机 192.168.56.210 接收和发出的 tcp 协议的 ssh 的数据包
tcpdump udp port 53
监听本机 udp 的 53 端口的数据包,udp 是 dns 协议的端口,这也是一个 dns 域名解析的完整过程
tcpdump 可以支持逻辑运算符
and: 与运算,所有的条件都需要满足,可用 “and”和 “&&” 表示
or:或运行,只要有一个条件满足就可以,可用 “or” 和“|”表示
not:取反,即取反条件,可以用 “not” 和“!”表示
1 |
|
过滤 icmp 报文并且源 IP 是 192.168.100.10
多条件格式
在使用多个过滤条件进行组合时,有可能需要用到括号,而括号在 shell 中是特殊符号,又需要使用引号将其包含。用括号的主要作用是逻辑运算符之间存在优先级,!>and > or, 为例条件能够精确所以需要对一些必要的组合括号括起来,而括号的意思相当于加减运算一样,括起来的内容作为一个整体进行逻辑运算。
过滤源地址是 192.168.100.1 并且目的地址是 192.168.20.20 的数据包或者 ARP 协议的包。另外,搜索公众号Linux就该这样学后台回复“Linux”,获取一份惊喜礼包。
1 |
|
过滤源 IP 地址是 192.168.10.10 的包
1 |
|
过滤目的 IP 地址是 192.168.10.10 的包
基于端口进行过滤
1 2 |
|
1 |
|
过滤端口号 22-433 内的数据包
Wireshark 是一个网络封包分析软件。网络封包分析软件的功能是捕获网络数据包,并尽可能显示出最为详细的网络封包资料。Wireshark 使用 WinPCAP 作为接口,直接与网卡进行数据报文交换
Linux 中有两个版本的 wireshark,一个是 wireshark,这个版本是无图形化界面,基本命令是”tshark“。
一个是 wireshark-gnome(界面版本),这个版本只能安装在支持 GUI 功能的 Linux 的版本中。
1 2 |
|
注:这里的通过 yum 进行安装,需要提前做好 epel 源(即红帽操作系统额外拓展包),装上了 EPEL 之后,就相当于添加了一个第三方源。官方的 rpm repository 提供的 rpm 包也不够丰富,很多时候需要自己编译那太辛苦了,而 EPEL 可以解决官方 yum 源数据包不够丰富的情况。
安装epel源
1 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
1 |
|
过滤 icmp 报文,并展开详细信息。另外,搜索公众号编程技术圈后台回复“1024”,获取一份惊喜礼包。
1 |
|
过滤 arp 报文
4. Grafische Benutzeroberfläche
Das obige ist der detaillierte Inhalt vonAnalysetool zur Netzwerkpaketerfassung unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!