NGREP - Ein Netzwerkpaketanalysator für Linux

NGREP - Ein Netzwerkpaketanalysator für Linux

Ngrep (Netzwerk Grep) ist ein einfacher, aber leistungsstarker Netzwerkpaketanalysator. Es ist ein Grep -ähnliches Tool, das auf die Netzwerkebene angewendet wird - es entspricht dem Verkehr über eine Netzwerkschnittstelle. Sie können einen erweiterten regulären oder hexadezimalen Ausdruck angeben, der mit Datennutzlasten (die tatsächlichen Informationen oder Nachricht in übertragenen Daten, nicht automatisch generierten Metadaten) von Paketen übereinstimmt.

Dieses Tool funktioniert mit verschiedenen Arten von Protokollen, einschließlich IPv4/6, TCP, UDP, ICMPV4/6, IGMP sowie RAW auf einer Reihe von Schnittstellen. Es funktioniert auf die gleiche Weise wie das TCPDump -Paket -Sniffing -Tool.

Das Paket ngrep kann in den Standard -Systemrepositories in Mainstream -Linux -Verteilungen mithilfe von Packungsmanagement -Tool wie gezeigt installiert werden.

$ sudo apt install NGREP $ sudo yum install nGrep $ sudo dnf install nGREP 

Nach der Installation ngrep, Sie können den Datenverkehr auf Ihrem Linux -Netzwerk anhand der folgenden Beispiele analysieren.

1. Der folgende Befehl hilft Ihnen dabei. Sie müssen ein anderes Terminal öffnen und versuchen, eine andere Fernmaschine zu pingen. Der -Q Flagge Erzählen ngrep ruhig arbeiten, um keine anderen Informationen als Paket -Header und deren Nutzlast ausgeben.

$ sudo ngrep -q '."ICMP ' Schnittstelle: ENP0S3 (192.168.0.0/255.255.255.0) Filter: (ICMP) und ((IP || IP6) || (VLAN && (IP || IP6)) Übereinstimmung: . I 192.168.0.104 -> 192.168.0.103 8: 0]… ~ og [… J… !"#$%& '()*+,-./01234567 I 192.168.0.103 -> 192.168.0.104 0: 0]… ~ og [… j… !"#$%& '()*+,-./01234567 I 192.168.0.104 -> 192.168.0.103 8: 0]… OG [… !"#$%& '()*+,-./01234567 I 192.168.0.103 -> 192.168.0.104 0: 0]… OG [… !"#$%& '()*+,-./01234567 

Sie können drücken Strg + c es zu beenden.

2. Zum Beispiel nur der Verkehr zu einer bestimmten Zielstelle zu erreichen 'Google.com ', Führen Sie den folgenden Befehl aus und versuchen Sie dann, ihn von einem Browser aus zu greifen.

$ sudo ngrep -q '."Host Google.com ' Schnittstelle: ENP0S3 (192.168.0.0/255.255.255.0) Filter: (Host Google.com) und (ip || ip6) || (vlan && (ip || ip6)) übereinstimmen: . T 172.217.160.174: 443 -> 192.168.0.103: 54008 [AP]…;.(… Rzr… $… s =… l.Q+r.U… 4… g.J… i,.L…: y.A,… c 5> [E -Mail geschützt] T 172.217.160.174: 443 -> 192.168.0.103: 54008 [AP]… L… !,0HJ… 0.%F… !… L |… pl… x… t… t.2DC… y… ~ y; [E -Mail geschützt] 

3. Wenn Sie im Web surfen, führen Sie den folgenden Befehl aus, um zu überwachen, welche Dateien Ihr Browser verlangt:.

$ sudo ngrep -q '^bekommen .* Http/1.[01] ' Schnittstelle: ENP0S3 (192.168.0.0/255.255.255.0) Filter: ((IP || IP6) || (VLAN && (IP || IP6)) Übereinstimmung: ^get .* Http/1.[01] t 192.168.0.104: 43040 -> 172.217.160.174: 80 [AP] GET / HTTP / 1.1… Host: Google.com… user-Agent: Links (2.13; Linux 4.17.6-1.EL7.Elrepo.x86_64 x86_64; Gnu c 4.8.5; Text)… Akzeptieren:*/*… Akzeptieren Sie Sprache: en,*; q = 0.1… Akkodierung: GZIP, Deflate, BZIP2… Accord-Charset: US-ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, I SO-8859-13, ISO-8859-14, ISO-8859-15, ISO, ISO -8859-16, Windows-1250, Windows-1251, Windows-1252, Windows-1256, Windows-1257, CP437, CP737, CP850, CP852, CP866, X-CP866-U, X-MAC, X-Mac-CE , X-Kam-CS, Koi8-R, Koi8-U, Koi8-Ru, TCVN-5712, Viscii, UTF-8… Verbindung: Keep-Alive… 

4. Um alle Aktivitäten zu sehen, die Quellen- oder Zielanschluss überschreiten 25 (SMTP), führen Sie den folgenden Befehl aus.

$ sudo nGrep Port 25 

5. Überwachung eines netzwerkbasierten Syslog-Verkehrs zum Auftreten des Wortes "Fehler", Verwenden Sie den folgenden Befehl.

 $ sudo ngrep -d An jedem 'Fehler' Port 514 

Wichtig ist, dass dieses Tool Service -Port -Namen konvertieren kann, die in gespeicherten in den gespeicherten Namen konvertieren "/Etc/dienste" (auf Unix-ähnlichen Systemen wie Linux) zu Portnummern. Dieser Befehl entspricht dem obigen Befehl.

$ sudo ngrep -d An einem 'Fehler' Portsystem ' 

6. Sie können auch NGREP gegen eine laufen lassen Http Server Port 80), es wird alle Anfragen an den Zielhost wie gezeigt übereinstimmen.

$ sudo nGrep Port 80 Schnittstelle: ETH0 (64.90.164.72/255.255.255.252) Filter: IP und (Port 80) #### T 67.169.59.38: 42167 -> 64.90.164.74:80 [AP] Get / http / 1.1… Benutzer-Agent: Mozilla/4.0 (kompatibel; MSIE 6.0; X11; Linux I 686) Opera 7.21 [en]… Host: www.Darkridge.com… Akzeptieren: Text/HTML, Applicat Ion/XML; q = 0.9, application/xhtml+xml; q = 0.9, Bild/PNG, Bild/JPEG, Bild/GI F, Bild/x-xbitmap, */ *; q = 0.1… Accord-Charset: ISO-8859-1, UTF-8, UTF-16, *; Q = 0.1… Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0… Cookie: SQ MSESSID=5272f9ae21c07eca4dfd75f9a3cda22e… Cookie2: $Version=1… Connection: Keep-Alive, TE… TE: deflate, gzip, Chunked, Identity, Trailer… ## 

Wie Sie in der obigen Ausgabe sehen können, werden alle HTTP -Header -Getriebe in ihren blutigen Details angezeigt. Es ist jedoch schwer zu analysieren. Schauen wir uns also an, was passiert, wenn Sie sich bewerben -W BYLINE -Modus.

$ sudo ngrep -W BYLINE Port 80 Schnittstelle: ETH0 (64.90.164.72/255.255.255.252) Filter: IP und (Port 80) #### T 67.169.59.38: 42177 -> 64.90.164.74:80 [AP] Get / http / 1.1. Benutzer-Agent: Mozilla/4.0 (kompatibel; MSIE 6.0; X11; Linux i686) Opera… Host: www.Darkridge.com. Akzeptieren: text/html, application/xml; q = 0.9, application/xhtml+xml; q = 0.9… Accord-Charset: ISO-8859-1, UTF-8, UTF-16, *; Q = 0.1. Akzeptieren-Codierung: Deflate, Gzip, X-Gzip, Identität, *; q = 0. Cookie: sqmSessid = 5272F9AE21C07ECA4DFD75F9A3CDA22E. Cookie2: $ Version = 1. Cache-Control: No-Cache. Verbindung: Keep-Alive, TE. TE: Deflate, Gzip, Chunked, Identity, Anhänger. 

7. Zu drucken a Zeitstempel in Form von Yjyy/mm/dd hh: mm: ss.Uuuuuu Verwenden Sie jedes Mal, wenn ein Paket abgestimmt ist -T Flagge.

$ sudo ngrep -t -W BYLINE Port 80 Schnittstelle: ENP0S3 (192.168.0.0/255.255.255.0) Filter: (Port 80) und (IP || IP6) || (VLAN && (IP || IP6)) #### T 2018/07/12 16:33:19.348084 192.168.0.104: 43048 -> 172.217.160.174: 80 [AP] GET / HTTP / 1.1. Host: Google.com. Benutzer-Agent: Links (2.13; Linux 4.17.6-1.EL7.Elrepo.x86_64 x86_64; Gnu c 4.8.5; Text). Akzeptieren: */*. Sprache akzeptieren: en,*; q = 0.1. Akzeptieren: GZIP, Deflate, BZIP2. Accept-Charset: US-ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, UTF-8. Verbindung: Keep-Alive. 

8. Um zu vermeiden, dass die Schnittstelle in den Promiscuous -Modus überwacht wird (wo sie jedes Netzwerkpaket, das in seiner Gesamtheit ankommt, abfängt und liest), fügen Sie das hinzu -P Flagge.

$ sudo ngrep -p -W BYLINE Port 80 

9. Eine weitere wichtige Option ist -N Das ist nützlich, falls Sie rohe oder unbekannte Protokolle beobachten. Es sagt ngrep So zeigen Sie die Sub-Protokoll-Nummer zusammen mit einer Einzelcharakterkennung an.

$ sudo ngrep -n -W BYLINE 

Weitere Informationen finden Sie in der ngrep Mann Seite.

$ MAN NGREP 

NGREP Github Repository: https: // github.com/jpr5/ngrep

Das ist alles! Ngrep (Netzwerk Grep) ist ein Netzwerkpaketanalysator, der die BPF -Filterlogik in der gleichen Mode tcpdump versteht. Wir möchten Ihre Gedanken darüber wissen ngrep Im Kommentarbereich.