Netzwerküberwachung


Linux Programme zur Netzwerküberwachung und Netzwerkdiagnose.




Mit „ping“ werden ICMP Anfragen (Echo Requests) an ein System gesendet. Es kann u.a. festgestellt werden ob ein Computer Online ist und noch reagiert. Das angeforderte Paket enthält 64 Bytes.


root@pluto:~# ping 176.9.20.230
PING 176.9.20.230 (176.9.20.230) 56(84) bytes of data.
64 bytes from 176.9.20.230: icmp_seq=1 ttl=52 time=35.2 ms
64 bytes from 176.9.20.230: icmp_seq=2 ttl=52 time=35.6 ms
64 bytes from 176.9.20.230: icmp_seq=3 ttl=52 time=36.0 ms
64 bytes from 176.9.20.230: icmp_seq=4 ttl=52 time=35.4 ms
64 bytes from 176.9.20.230: icmp_seq=5 ttl=52 time=34.4 ms
64 bytes from 176.9.20.230: icmp_seq=6 ttl=52 time=34.5 ms
....

Aus der ttl (time to live) kann man ablesen, wie viele Router das Paket durchlaufen hat. Jeder Router reduziert die ttl um 1, auf diese weise kann ein Routerbounce verhindert werden. Hat die ttl 0 erreicht, wird das Paket verworfen und der Absender erhält eine ICMP Fehlermeldung.


Möchte man eine IPv6 Adresse anpingen, muß das Programm „ping6“ verwendet werden.






Das Diagnosewrkzeug „netstat“ dient zur Anzeige von Informationen über Netzwerkverbindungen, Routingtabellen, Schnittstellenstatistiken, maskierten Verbindungen uvm. Ohne Optionen Zeigt „netstat“ offene Netzwerk Sockets.


Syntax:

  • netstat [opt]




Optionen:

  • -n ⇒ Zeigt nur numerische Ausgaben ohne Namensauflösung.
  • -l ⇒ Zeigt nur Sockets, die sich im Status LISTEN befinden.
  • -p ⇒ Zeigt auch Prozesse mit der PID Nummer, die einen Socket geöffnet halten.
  • -r ⇒ Gibt die Routing-Tabelle des Kernels aus.
  • -i ⇒ Gibt Statistiken der übertagenen Pakete der Schnittstellen aus.
  • -s ⇒ Gibt sehr ausführliche Statistik aus.
  • -a ⇒ Zeigt alle Verbindungen, nicht nur die des Hosts an.
  • -c ⇒ Ausgabe wird im Sekundentakt aktualisiert (Live). Beenden mit [Strg]+[C].
  • -M ⇒ Zeigt maskierte Verbindungen auf einen Router mit NAT.
  • -g ⇒ Zeigt Informationen über Multicast-Gruppen.
  • -v ⇒ Detailierte Ausgaben. Zeigt auch Adressfamilien, die nicht im Kern konfiguriert sind.




Protokoll:

  • --inet, -4 ⇒ Zeigt nur IPv4 Sockets an.
  • --inet6, -6 ⇒ Zeigt nur IPv6 Sockets an.
  • --unix, -x ⇒ Zeigt nur Unix-Domain-Sockets an.
  • --tcp, -t ⇒ Zeigt nur TCP Sockets an.
  • --udp, -u ⇒ Zeigt nur UDP Sockets an.




root@pluto:~# netstat -tulpen
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      104        4432        1265/mysqld     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      0          3521        714/portmap
...      

Zeigt auf welchen Ports Serverdienste aktiv sind, die für andere Rechner erreichbar sind.


Ausgabe:

  • Proto: Vom Socket verwendetes Protokoll (TCP, UDP, RAW).
  • Recv-Q: Anzahl der Bytes, die noch nicht von der Anwendung vom Socket abgeholt wurden.
  • Send-Q: Anzahl der Bytes, die von der Gegenseite noch nicht bestätigt wurden.
  • Local Address: Lokale Adresse und Portnummer des Sockets.
  • Foreign Address: Adresse und Port der Gegenseite des Sockets.
  • State: Zustand des Sockets (LISTEN, ETABLISHED, WAIT, …).
  • User: Name oder Nutzer-ID des Sockets.
  • Inode: Prozess-ID und Programm, das den Socket besitzt.






Das Kommandozeilentool „ss“ ermöglicht die Ausgabe von existierenden Netzwerkverbindungen.


Syntax:

  • ss [opt] [filter]



FIXME




Das Programm „nmap“ (Network Mapper) ist ein Portscanner, mit dem sich Netzwerke oder Rechner auf offene Ports und den darauf lauschenden Diensten überwachen lassen. Es können IP Adressen oder Hostnamen verwendet werden. Mit dem Paket „zenmap“ steht auch eine grafische Benutzeroberfläche für „nmap“ zur Verfügung.


Syntax:

  • nmap [scan-typ] [opt] [ziel]




Scan-Typ:

  • -sT ⇒ Connect Scan. Es wird für jeden zu scannenden Port eine TCP Verbindung auf und abgebaut. Dieser Scan steht auch ohne root Rechte zur Verfügung.
  • -sS ⇒ Stealth Scan. Baut keine komplette TCP Verbindung auf, ist daher unauffälliger.
  • -sU ⇒ Scannt UDP Ports.
  • -sP ⇒ Ping Scan. Prüft die Erreichbarkeit über Ping.
  • -sL ⇒ List Scan. Kein Portscan. Überprüft nur Hostnamen.
  • -sF, -sN, -sX ⇒ Sendet bewußt falsche(manipulierte) TCP Pakete an die Ports.
  • -sA, sW ⇒ Überprüft Ports. Gut zum erkennen von Firewalls.




Optionen:

  • -sR ⇒ Gibt Informationen über RPC Dienste aus.
  • -sV ⇒ Versucht die laufenden Dienste zu identifizieren.
  • -O ⇒ OS Detection.
  • -A ⇒ Kurzform von -sV -O.
  • -p [port|a, b, c|port-port] ⇒ Scannt nur port(s) [a, b, c] oder port-port.
  • -p- ⇒ Scannt alle Ports.
  • -r ⇒ Scannt Ports in numerischer Reihenfolge.
  • -P0 ⇒ Portscan erzwingen.
  • -e [schnittstelle] ⇒ Nmap nutzt Schnittstelle.
  • -v ⇒ Zusätzliche Informationen ausgeben.




Beispiel:

root@hostname:~# nmap 176.9.55.221
Starting Nmap 5.00 ( http://nmap.org ) at 2013-01-04 10:51 CET
Interesting ports on server4.bplaced.net (176.9.55.221):
Not shown: 979 closed ports
PORT     STATE    SERVICE
22/tcp   filtered ssh
23/tcp   filtered telnet
80/tcp   open     http
135/tcp  filtered msrpc
139/tcp  filtered netbios-ssn
445/tcp  filtered microsoft-ds
631/tcp  filtered ipp
1433/tcp filtered ms-sql-s
2049/tcp filtered nfs
3306/tcp filtered mysql
4444/tcp filtered krb524
5432/tcp filtered postgresql
5999/tcp filtered ncd-conf
6000/tcp filtered X11
6001/tcp filtered X11:1
6002/tcp filtered X11:2
6003/tcp filtered X11:3
7100/tcp filtered font-service
7741/tcp filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 4.81 seconds






Mit dem Kommandozeilen Programm „whois“ können Informationen zu Internet-Domains und IP-Adressen und deren Eigentümern abgefragt werden.


Syntax:

  • whois [opt] [args]




Optionen:

  • -h ⇒ Mit Host verbinden.
  • -p ⇒ Verbindung mit Port(X).
  • --verbose ⇒ Geschwätzig.
  • --help ⇒ Hilfe Modus.




Beispiele:

user@home:~$ whois 144.76.167.69


Anzeigen

Ausblenden

user@home:~$ whois 144.76.167.69

#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/whois_tou.html
#
# If you see inaccuracies in the results, please report at
# http://www.arin.net/public/whoisinaccuracy/index.xhtml
#


#
# Query terms are ambiguous.  The query is assumed to be:
#     "n 144.76.167.69"
#
# Use "?" to get help.
#

#
# The following results may also be obtained via:
# http://whois.arin.net/rest/nets;q=144.76.167.69?showDetails=true&showARIN=false&ext=netref2
#

NetRange:       144.76.0.0 - 144.76.255.255
CIDR:           144.76.0.0/16
NetName:        RIPE-ERX-144-76-0-0
NetHandle:      NET-144-76-0-0-1
Parent:         NET144 (NET-144-0-0-0-0)
NetType:        Early Registrations, Transferred to RIPE NCC
OriginAS:       
Organization:   RIPE Network Coordination Centre (RIPE)
RegDate:        2004-01-07
Updated:        2004-01-07
Comment:        These addresses have been further assigned to users in
Comment:        the RIPE NCC region.  Contact information can be found in
Comment:        the RIPE database at http://www.ripe.net/whois
Ref:            http://whois.arin.net/rest/net/NET-144-76-0-0-1

OrgName:        RIPE Network Coordination Centre
OrgId:          RIPE
Address:        P.O. Box 10096
City:           Amsterdam
StateProv:      
PostalCode:     1001EB
Country:        NL
RegDate:        
Updated:        2013-07-29
Ref:            http://whois.arin.net/rest/org/RIPE

ReferralServer: whois://whois.ripe.net:43

OrgTechHandle: RNO29-ARIN
OrgTechName:   RIPE NCC Operations
OrgTechPhone:  +31 20 535 4444 
OrgTechEmail:  hostmaster@ripe.net
OrgTechRef:    http://whois.arin.net/rest/poc/RNO29-ARIN

OrgAbuseHandle: ABUSE3850-ARIN
OrgAbuseName:   Abuse Contact
OrgAbusePhone:  +31205354444 
OrgAbuseEmail:  abuse@ripe.net
OrgAbuseRef:    http://whois.arin.net/rest/poc/ABUSE3850-ARIN


#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/whois_tou.html
#
# If you see inaccuracies in the results, please report at
# http://www.arin.net/public/whoisinaccuracy/index.xhtml
#



Verweis auf whois.ripe.net:43 gefunden.

% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Information related to '144.76.0.0 - 144.76.255.255'

% No abuse contact registered for 144.76.0.0 - 144.76.255.255

inetnum:        144.76.0.0 - 144.76.255.255
netname:        HETZNER-RZ-BLK-ERX1
descr:          Server Block
country:        DE
admin-c:        HOAC1-RIPE
tech-c:         HOAC1-RIPE
status:         LEGACY
remarks:        For information on "status:" attribute read https://www.ripe.net/data-tools/db/faq/faq-status-values-legacy-resources
mnt-by:         HOS-GUN
mnt-lower:      HOS-GUN
mnt-routes:     HOS-GUN
mnt-domains:    HOS-GUN
source:         RIPE # Filtered

role:           Hetzner Online AG - Contact Role
address:        Hetzner Online AG
address:        Stuttgarter Strasse 1
address:        D-91710 Gunzenhausen
address:        Germany
phone:          +49 9831 61 00 61
fax-no:         +49 9831 61 00 62
abuse-mailbox:  abuse@hetzner.de
remarks:        *************************************************
remarks:        * For spam/abuse/security issues please contact *
remarks:        *   abuse@hetzner.de, not this address.         *
remarks:        *   The contents of your abuse email will be    *
remarks:        *   forwarded directly on to our client for     *
remarks:        *   handling.                                   *
remarks:        *************************************************
remarks:
remarks:        *************************************************
remarks:        *    Any questions on Peering please send to    *
remarks:        *              peering@hetzner.de               *
remarks:        *************************************************
org:            ORG-HOA1-RIPE
admin-c:        MH375-RIPE
tech-c:         GM834-RIPE
tech-c:         SK2374-RIPE
tech-c:         TF2013-RIPE
tech-c:         MF1400-RIPE
tech-c:         SK8441-RIPE
nic-hdl:        HOAC1-RIPE
mnt-by:         HOS-GUN
source:         RIPE # Filtered

% Information related to '144.76.0.0/16AS24940'

route:          144.76.0.0/16
descr:          HETZNER-RZ-BLK-ERX1
origin:         AS24940
org:            ORG-HOA1-RIPE
mnt-by:         HOS-GUN
source:         RIPE # Filtered

organisation:   ORG-HOA1-RIPE
org-name:       Hetzner Online AG
org-type:       LIR
address:        Hetzner Online AG
address:        Attn. Martin Hetzner
address:        Industriestrasse 25
address:        91710
address:        Gunzenhausen
address:        GERMANY
phone:          +49 9831 610061
fax-no:         +49 9831 610062
admin-c:        TF2013-RIPE
admin-c:        MF1400-RIPE
admin-c:        GM834-RIPE
admin-c:        HOAC1-RIPE
admin-c:        MH375-RIPE
admin-c:        SK2374-RIPE
admin-c:        SK8441-RIPE
mnt-ref:        HOS-GUN
mnt-ref:        RIPE-NCC-HM-MNT
mnt-by:         RIPE-NCC-HM-MNT
abuse-c:        HOAC1-RIPE
source:         RIPE # Filtered

% This query was served by the RIPE Database Query Service version 1.78 (DB-1)







FIXME




Das Kommando „tcpdump“ gibt den Verkehr von Netzwerkverbindungen auf der Konsole aus.


Syntax:

  • tcpdump [opt]




Optionen:

  • -i [schnittstelle] ⇒ Gibt die Schnittstelle an, die Überwacht werden soll.
  • -n ⇒ Zeigt IP Adressen und Ports in numerischer Ausgabe.
  • -w [datei] ⇒ Leitet die Ausgabe in eine Datei um.
  • -F [datei] ⇒ Liest aus Datei.




Beispiel:

root@pluto:~# tcpdump tcp port 22 -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:17:11.514354 IP 192.168.0.1.58372 > 192.168.0.37.22: . ack 16101792 win 6536 <nop,nop,timestamp 2848543 4015755>
22:17:11.514777 IP 192.168.0.37.42042 > 192.168.0.1.22: P 16101792:16101984(192) ack 11857 win 2720 <nop,nop,timestamp 4015756 2848543>
22:17:11.515377 IP 192.168.0.1.58372 > 192.168.0.37.22: . ack 16102160 win 6536 <nop,nop,timestamp 2848543 4015756>
22:17:11.515803 IP 192.168.178.37.42042 > 192.168.0.1.22: P 16102160:16102352(192) ack 11857 win 2720 <nop,nop,timestamp 4015757 2848543>
22:17:11.516409 IP 192.168.0.1.58372 > 192.168.0.37.22: . ack 16102528 win 6536 <nop,nop,timestamp 2848543 4015757>
....
20 packets captured
20 packets received by filter
0 packets dropped by kernel




Die Ausgabe von „tcpdump“ kann sehr umfangreich werden, es sollte deshalb eine Filterung durch Optionen und Parameter vorgenommen werden.






Mit dem Programm „lsof“ (list open files) kann festgestellt werden, ob Dateien duch Nutzer geöffnet sind. Es können aber auch geöffnete Netzwerkverbindungen angezeigt werden.


Syntax:

  • lsof [opt]
  • lsof -i[46][protocol][@hostname|hostaddr][:service|port]




Optionen:

  • -i ⇒ Gibt nur IP Sockets aus. Mit weiteren Filter kann die Ausgabe weiter eingeschränkt werden.
  • -n ⇒ Numerische Ausgabe von IP Adressen.
  • -P ⇒ Keine Auflösung von Portnummern in Servicenamen.




Beispiel:

root@pluto:~# lsof -i -n -P
COMMAND    PID        USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
portmap   1065      daemon    4u  IPv4   4851      0t0  UDP *:111 
portmap   1065      daemon    5u  IPv4   4860      0t0  TCP *:111 (LISTEN)
rpc.statd 1077       statd    4w  IPv4   4888      0t0  UDP *:829 
rpc.statd 1077       statd    6u  IPv4   4897      0t0  UDP *:51997 
rpc.statd 1077       statd    7u  IPv4   4900      0t0  TCP *:34334 (LISTEN)
cupsd     1621        root    9u  IPv4   6013      0t0  UDP *:631 
dhclient  2997        root    6u  IPv4 106201      0t0  UDP *:68 
ssh       3065        hans    3u  IPv4 116221      0t0  TCP 192.168.0.31:58372->192.168.0.37:22 (ESTABLISHED)
....

Hier wird angezeigt, welche Dienste mit welchen Nutzernamen, Prozess-ID und IP Sockets geöffnet sind.




Das Programm „netcat“ (nc) ist ein vielseitiges Multifunktionswerkzeug zum lesen und schreiben von Daten über Netzwerkverbindungen. Netcat kann das TCP oder UDP Protokoll verwenden und liest dabei von STDIN ein und gibt es im Zielcomputer auf STDOUT aus. Netcat läßt sich sehr gut für die Diagnose der Verbindung zwischen Quell. und Zielcomputer benutzen.


Syntax:

  • nc [-opt] hostname port[s] [ports]
  • nc -l -p port [-options] [hostname] [port]




Optionen:

  • -f [datei] ⇒ Führt eine Datei nach Verbindung aus. Vorsicht!
  • -c [command] ⇒ Führt ein Shell Kommando (/bin/sh -c) nach Verbindung aus. Vorsicht!
  • -h ⇒ Hilfe anzeigen.
  • -l ⇒ Lauschen (LISTEN) Modus, für eingehende Verbindungen.
  • -n ⇒ Nur numerische IP Adressen, kein DNS.
  • -i [sek] ⇒ Verzögerungs Interval.
  • -p [port] ⇒ Port Nummer (oder von [port-port]).
  • -q [sek] ⇒ Nach eingabe x Sekunden warten, dann verlassen.
  • -b ⇒ UDP Broadcasts erlauben.
  • -r ⇒ Zufällige Lokale und entfernte Ports.
  • -s [addr] ⇒ Lokale Adresse.
  • -t ⇒ Aktiviert telnet Vermittlung.
  • -u ⇒ Aktiviert UDP Modus.
  • -v ⇒ Geschwätzige Ausgabe.
  • -w [sek] ⇒ Timeout für Verbindung.




Beispiele:

Um z.B. Nachrichten von STDIN auf einem anderen Rechner zu senden, muß Rechner 1 auf LISTEN stehen und ein Port ausgewählt sein.

hans@pluto:~$ netcat -l -p 1234
Hallo
Ein Text



Den zweiten Rechner mit dem Hostnamen des ersten Rechners und dem Port angeben.

martin@neptun:~$ netcat pluto 1234
Hallo
Ein Text

Jetzt kann von den Rechnern jeweils von STDIN nach STDOUT geschrieben werden.


Mit „netcat“ lassen sich auch Dateien und ganze Partitionen übertragen.




hans@pluto:~$ netcat -l -p 1234 > kopie-datei1


martin@neptun:~$ netcat pluto 1234 < datei1




hans@pluto:~$ netcat -l -p 1234 | dd of=/backup/hda3.iso


martin@neptun:~$ dd if=/dev/hda3 | netcat pluto 1234




Das Programm „netcat“ versteht auch Protokolle wie HTTP oder POP3.




hans@pluto:~$ netcat pop.mail.yahoo.de 110
+OK hello from popgate-0.8.0.357900 pop011.mail.ir2.yahoo.com 
user mail@yahoo.de
+OK password required.
pass geheim
+OK maildrop ready, 37 messages (260464 octets) (336182)
list
+OK 37 messages (260464 octets)
1 6242
2 5386
3 6012
...
.
quit
+OK server signing off.





Cloud