Befehle für Netzwerke
 
Konfiguration der Netzwerkkarte

ifconfig = Anzeigen und konfigurieren (temporär) der Netzwerkschnittstellen (interfaces).

Der Befehl ifconfig allein zeigt die verwendeten Netzwerkschnittstellen und ihre Konfiguration an, ist daher sehr gut geeignet um zu sehen, ob die verwendeten Netzwerkkarten korrekt eingerichtet sind und arbeiten. Will man nur eine Schnittstelle sehen, gibt man das jeweilige interface mit an:
# ifconfig eth0
Die Schnittstelle 127.0.0.1 (localhost), ist die sogenannte loopback-Schnittstelle, welche auf den eigenen Rechner zeigt. Mittels ifconfig kann man die Schnittstellen auch konfigurieren, z.B. weist
# ifconfig eth0 192.168.0.75 netmask 255.0.0.0
der Netzwerkschnittstelle eth0 die I.P.-Adresse 192.168.0.75 und die Netzmaske 255.0.0.0 zu.
# ifconfig eth1 down
fährt die Schnittstelle herunter. Der benötigte Parameter zum hochfahren ist up. Die Loopback-Schnittstelle wird i.d.Regel automatisch eingerichtet. Falls nicht, kann dies mit dem Befehl
# ifconfig lo 127.0.0.1
nachgeholt werden.
Alle Einstellungen über ifconfig sind aber nur temporärer Natur und eignen sich daher gut zum testen der Netzwerkverbindungen. Dauerhafte Einstellungen sollten entweder mit den Distributionseigenen Werkzeugen gemacht werden oder in den jeweiligen Konfigurationsdateien eingetragen werden (z.B. mit dem Programm sm-netcard-conf). Unter Debian ist das die Datei /etc/network/interfaces.


Zuordnungstabelle der Ports

# cat /etc/services
In dieser Textdatei befindet sich eine Liste sämtlicher zur Verfügung stehender Ports, insgesamt 65536 für TCP und UDP. Ports 0 bis 1023 sind sogenannte wellknown ports, die nur root öffnen darf. Die wichtigsten:

Nr Prot. Verwendung
21
21
22
22
23
23
25
25
80
80
110
110
137
137
138
138
139
139
445
445
tcp
udp
tcp
udp
tcp
udp
tcp
udp
tcp
udp
tcp
udp
tcp
udp
tcp
udp
tcp
udp
tcp
udp
ftp # File Transfer Protokoll
ftp
ssh # Secure Shell
ssh
Telnet # Telnet Dienst
Telnet
smtp # Mailserver
smtp
http # HyperText (das Web, wird von jedem Browser benötigt)
http
pop3
pop3
netbios-ns # NETBIOS Name Service
netbios-ns
netbios-dgm # NETBIOS Datagram Service
netbios-dgm
netbios-ssn # NETBIOS Session Service
netbios-ssn
microsoft-ds
microsoft-ds


Anzeigen der offen Ports

# netstat -plantu
zeigt tcp und udp Verbindungen mit dazugehöriger I.P. und Port-Adresse, sowie der Prozess-ID, dem Status und des verwendeten Programms.

# nmap localhost
zeigt alle offenen Ports und den dazugehörigen Service an.
Benötigt das Paket nmap-x.xx-x.x, welches unter Umständen zuerst installiert werden muß.

# lsof -i
eigentlich steht lsof für "list open files". Die Option -i zeigt alle Netzwerk-Dateien an und somit sämtliche offenen Ports.


Routing

# route
Der Befehl route zeigt die Kernel-Routingtabelle an und dient auch zur Konfiguration von routen. route allein braucht ein wenig, da versucht wird einen Nameserver zu finden, der die I.P.Adressen in Namen auflöst. Besser ist da:
# route -n
Dadurch werden nur die I.P. Adressen angezeigt und das suchen nach dem Nameserver entfällt.


Netzwerk-Diagnose

# ping 192.168.0.1
ping sendet mehrere kleine Datenpakete an die angegebene Netzwerkadresse und überprüft, ob die Pakete angekommen sind. Am Ende zeigt es eine Zusammenfassung an. Ohne weitere Angaben als die Zieladresse sendet ping jede Sekunde solange Pakete, bis es mit CONTROL-C unterbrochen wird. Mit der Option -c (count) kann man die Anzahl der Pakete bestimmen, z.B.:
# ping -c3 192.168.0.1
sendet 3 Pakete an die Zieladresse und zeigt dann die Zusammenfassung. Natürlich geht ping auch im Internet, z.B.
# ping -c6 www.udosworld.de
sendet 6 Pakete an die Internetadresse www.udosworld.de.
# ping -f 192.168.0.1
das sogenannte "Flut-Ping" (Option -f) ist dem Systemadministrator vorbehalten und versucht soviele Pakete so schnell wie möglich zu senden (anstatt einem pro Sekunde).
Eine Ausgabe von ping sieht in etwa so aus:
64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.445 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.445 ms

.....
Interessant ist unter anderem die TTL (Time to Live). Ist diese auf 255 konnte der Rechner direkt angesprochen werden (direkt Verbindung), je weniger die TTL wird, desto mehr Rechner waren erforderlich um die angegebene Zieladresse zu erreichen, denn pro Router auf dem Weg zum Ziel verringert sich die TTL mindestens um den Wert 1.

# traceroute www.udosworld.de
traceroute ist eine erweiterte Form von ping und zeigt den Weg auf, den die Pakete bis zur Zieladresse gebraucht haben. Die Option -n schaltet wie bei route die Namensauflösung ab und es werden nur I.P. Adressen ausgegeben.
# traceroute -n www.udosworld.de
Traceroute ist auf maximal 30 Sprünge (Hops) voreingestellt, bricht also nach 30 Gateways ab. Will man mehr, braucht man die Option -m, z.B.
# traceroute -n -m100 www.udosworld.de
Bricht erst nach 100 Sprüngen ab.

# netstat
Der Befehl netstat zeigt Netzwerkverbindungen, offene Ports, Routing-Tabellen, eine Schnittstellen-Statistik und weitere nützliche Informationen. Eine Liste aller offenen Verbindungen liefert die Eingabe ohne Optionen.
Optionen:
-a zeigt die auf Verbindung wartenden Serversockets
-n wie bei route/traceroute keine Namensauflösung
durch Nameserver
-t zeigt nur tcp verbindungen
-u zeigt nur udp verbindungen
-l (listen) zeigt nur Sockets an, die auf eingehende Verbindungen warten
# netstat -lat
zeigt aktive Internetverbindungen mit Server und deren TCP Ports, aber nur die, die auf eingehende Verbindungen warten. Einfachere Darstellung von offenen Ports gegenüber
# netstat -plantu

welches ausführlicher ist.

# mtr (My traceroute)
Ein grafisches Netzwerkdiagnoseprogramm, welches die Funktionalität von traceroute und ping kombiniert.

# arp
zeigt den arp-cache des kernels, in welchem die externen Netzwerkschnittstellen mit der Hardwareadresse gespeichert werden. Unter Umständen muß der entsprechende Rechner erst angepingt werden um einen Eintrag zu erwirken.


Nmap

# nmap -v -sP 192.168.1.0/24
scannt im angegeben Broadcast-Netzwerk nach sämtlichen zur Verfügung stehenden I.P.-Adressen von Rechnern. Damit die Liste nicht zu lang wird:
# nmap -v -sP 192.168.1.0/24 | grep up
oder
# nmap -PR -T5 -n -sP 192.168.1.0/24
Hinweis zur Netzmaske
Die Netzmaske beschreibt den Adressraum des Netzwerks, dabei bedeutet
/24 den Adressbereich von 192.168.1.0 bis 192.168.1.255
/16 den Adressbereich von 192.168.0.0 bis 192.168.255.255
/8 den Adressbereich von 192.0.0.0 bis 192.255.255.255

# hostname
zeigt den lokalen Rechnernamen. Kann auch zur temporären Änderung verwendet werden, z.B.
# hostname Linux-Rechner
für die dauerhafte Änderung wie immer entweder die Distributionseigenen Werkzeuge oder in der jeweiligen Konfigurationsdatei.


Sonstige Programme

# telnet 192.168.0.1 22
Verbindung eines Rechners zu einem Anderen über das unsichere telnet-Protokoll. Wegen der Sicherheit ist ssh zu bevorzugen, da hier die Daten verschlüsselt übertragen werden. Dazu muß auf dem angerufenem Rechner der Telnet-Server laufen. Ohne Angabe des Ports wie oben (22) wird standardmäßig der Port 23 verwendet. Auch Windows kennt das telnet-Protokoll. Wenn man unter der Eingabeaufforderung telnet eingibt, startet der telnet-Dienst. Mit open 192.168.0.1 verbindet man sich mit dem Recher. Mit exit verläßt man ihn wieder und mit quit beendet man den telnet-Dienst.

# tcpdump -ni eth0
Ein Netzwerk-Sniffer, der die Analyse der über eine Netzwerkschnittstelle laufenden Netzwerkpakete ermöglicht.

# bing localhost 192.168.1.1
bing dient zum testen der Netzwerkgeschwindigkeit.

nessus
Programm zum testen von Firewalls und der Sicherheit in Netzwerken.


Geschwindigkeit im Netzwerk testen

iperf
Um mit iperf einen Geschwindikgeits-Test durchzuführen, muß es als Client-Server eingerichtet werden. Dazu startet man es auf einem Rechner als Server:
# iperf -s
und auf dem anderen Rechner als Client mit der Ziel-IP:
# iperf -c 192.168.1.30
Es wird ein Geschwindigkeitstest iniziiert und das Ergebnis in MBit/sec ausgegeben.


Netzwerk überwachen

Um zu sehen, ob sich was tut auf dem Netzwerk kann man mittels des Befehls ethstatus ein Konsolen-Programm zur Überwachung starten. Dasselbige macht auch ifstat, z.B.
# ethstatus -i eth1 (-i steht für Interface)
# ifstat