3.6 Netzwerk

In diesem Kapitel werden einige Begriffe verwendet, die erst im Kapitel Networking erklärt werden.

Inhalt

ping

Kommando, um zu prüfen, ob ein Host via Netzwerk erreicht werden kann.
Ping schickt ein Paket an den Host, dieser schickt ein Antwortpaket zurück und Ping misst dann die Laufzeit. Wenn die Firewall des Hosts konfiguriert ist, Pakete zu droppen, kann man sich nicht auf Ping verlassen, weil man keine Antwort bekommt.

Ping funktioniert mit IP und DNS Name.

1
2
ping dns.google.
ping 8.8.8.8

Output:

1
2
3
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=8.0 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=4.0 ms

arping

Wenn Ping blockiert wird oder man keine Antwort bekommt, kann man versuchen, ob ein ping mit arping funktioniert. Arping vewendet das Address Resolution Protocol (ARP) um einen Server zu Pingen.

Kommando:

1
arping 10.10.10.1

Output:

1
2
3
ARPING 10.10.10.1 from 10.10.10.18 wlp1s0
Unicast reply from 10.10.10.1 [00:0D:B9:33:BB:AA]  3.150ms
Unicast reply from 10.10.10.1 [00:0D:B9:33:BB:AA]  3.220ms

arp

Mit dem arp Kommando kann man auf den System auf den ARP (Address Resolution Protocol) Cache zugreifen oder diesen verändern. Dies verwendet man z.B. wenn einer IP Adresse noch eine falsche MAC Adresse zugeordnet ist.

Kommando:

1
arp -a

Output:

1
2
3
? (10.100.0.46) at fa:16:3e:7e:b3:99 [ether] on eth1
? (10.100.0.1) at 00:00:5e:00:01:01 [ether] on eth1
gateway (5.102.146.1) at 00:00:5e:00:01:01 [ether] on eth0

Arp Cache flushen / leeren:

1
ip -s -s neigh flush all

Dies funktioniert nur wenn ip installiert ist, sonst kann man einzelne Einträge mit arp löschen:

1
arp -d 10.100.0.46

Folgender Command verwendet Arp ohne DNS Auflösung. Dies ist praktisch wenn der DNS Server nicht konfiguriert oder erreichbar ist:

1
arp -n

telnet

Telnet ist ursprünglich ein Protokoll zur Fernsteuerung von Computern, ähnlich wie SSH aber unverschlüsselt. Heute wird es fast ausschliesslich zum Netzwerk Debugging verwendet.

Test ob ein Port offen ist:

1
telnet jump.puzzle.ch 22

Antwort wenn der Server antwortet:

1
2
3
4
Trying 5.102.146.117...
Connected to jump.puzzle.ch.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4

Antwort wenn der Server nicht antwortet:

1
2
Trying 5.102.146.117...
telnet: Unable to connect to remote host: Network is unreachable

ss

Ist ein Kommandozeilenprogramm zum Netzwerkstatistiken anzeigen.

Kommandos

Praktisches Kommando:

1
ss -tulpn

Eselsbrücke: Tulpen ohne “e”

Output:

1
2
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      4006/nginx: master

Zeigt z.B. an, dass Nginx auf dem Port 443 auf allen IP Adressen listened

Praktisches Kommando um UDP Probleme zu debuggen:

1
ss -saun

Eselsbrücke: Sauna ohne “a”

Output:

1
2
3
4
5
6
7
Udp:
    66775 packets received
    64 packets to unknown port received
    0 packet receive errors
    67131 packets sent
    0 receive buffer errors             <== Wenn nicht 0 kann dies ein Indikator für UDP Verbindungsprobleme sein
    0 send buffer errors

Details zu den Parametern

Zeigt listening und non-listening Sockets an:

1
ss -a

Zeigt TCP an:

1
ss -t

Zeigt UDP an:

1
ss -u

Zeigt PID und Programmnamen an:

1
ss -p

Zeigt Netzwerkstatistik an:

1
ss -s

nmap

Nmap ist ein Port und Vulnerability Scanner. Er liefert Informationen, wie z.B. ob ein Server erreichbar ist, welche Ports offen sind und Auskunft über verwendete Softwareversionen.

1
nmap jump.puzzle.ch

Output:

1
2
3
4
5
6
7
8
9
Nmap scan report for jump.puzzle.ch (5.102.146.117)
Host is up (0.034s latency).
rDNS record for 5.102.146.117: 5-102-146-117.cust.cloudscale.ch
Not shown: 998 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
443/tcp open  https

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

Man sieht, dass jump.puzzle.ch erreichbar ist, dessen IP Adresse, Reverse DNS Einträge und dass die Dienste ssh und https laufen.

Kommando Beispiele:

1
2
3
4
nmap 10.10.10.0/24           # Scant eine IP Range
nmap -p 1-65535 8.8.8.8      # Scant eine Port Range
nmap -p 80,443 8.8.8.8
nmap --top-ports 5 8.8.8.8   # Scant nur Top 5 der meist verwendeten Ports

OS Version identifizieren:

1
nmap -A -T4 jump.puzzle.ch

Vulnerability scan:

1
nmap -Pn --script vuln 192.168.1.100