Debian Netzwerkkonfiguration

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Netzwerke Konfigurieren

Die Netzwerkkonfiguration ist einer der wichtigsten Bestandteile der Linux-Welt.

Grundlagen

Ein paar der grundlegenden Befehle dazu sind ifconfig, route, netstatund arp Oder man verwendet die IP Befehle

Anmerkung

Bei einem Serversystem sollte man statische Adressen verwenden, man sollte den network-manager entfernen!

apt-get remove network-manager

NetworkManager

ifconfig

Mit ifconfig erhält man Informationen über und kann Netzwerkschnittstellen konfigurieren.

Der Befehl ifconfig alleine gibt den Status der momentan aktiven Netzwerkschnittstellen aus.

Gibt man ifconfig in einem Terminal ein bekommt man folgende zu anfangs meist kryptische Ausgabe:

root@zero:~# ifconfig
eth0      Link encap:Ethernet  Hardware Adresse 00:0c:29:47:62:93  
          inet Adresse:192.168.242.12  Bcast:192.168.255.255  Maske:255.255.240.0
          inet6-Adresse: fe80::20c:29ff:fe47:6293/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:504 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2026 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX bytes:57947 (57.9 KB)  TX bytes:185058 (185.0 KB)
          Interrupt:18 Basisadresse:0x1400

lo        Link encap:Lokale Schleife  
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX packets:67 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0 
          RX bytes:6102 (6.1 KB)  TX bytes:6102 (6.1 KB)

Davon sollte man sich jedoch nicht abschrecken lassen, denn die wichtigsten Informationen sind daraus leicht abzulesen.

eth0 ist der Name den Ubuntu unserer Netzwerkkarte gegeben hat

Und in folgender Zeile,

inet Adresse:192.168.242.12  Bcast:192.168.255.255  Maske:255.255.240.0 

erfahren wir:

  • Unsere IP Adresse ( zu sehen bei Adresse: )
  • Unseren Broadcast ( Bcast: )
  • Und unsere Networkmask ( Maske: )

Wenn man den ifconfig mit der option -a erweitert zeigt es auch Netzwerkschnittstellen an die nicht aktiv sind.

Um mit ifconfig jetzt eine Schnittstelle zu konfigurieren muss man die Einstellungen die man ändern möchte als Option an den Befehl anhängen ( Alle Änderungen die mit ifconfig gemacht werden sind temporär und gehen verloren wenn man die Schnittstelle reaktiviert ):

root@zero:~# ifconfig eth0 192.168.250.79 netmask 255.255.240.0 broadcast 192.168.255.255 mtu 1400 up
  • eth0: Name der Netzwerkschnittstelle die bearbeitet wird gefolgt von der neuen IP Adresse
  • netmask: neue Netzwerkmaske
  • broadcast: neuer Broadcast
  • mtu: maximum Transmit Unit
root@zero:~# ifconfig eth0 down

Schaltet die Schnittstelle eth0 aus und entsprechend

root@zero:~# ifconfig eth0 up

wieder ein.

Setzen einer temporären virtuellen Netzwerkschnittstelle:

root@zero:~# ifconfig eth0:1 192.168.178.145 up


route

Mit dem Befehl route lässt sich die IP Routing Tabelle konfigurieren und anschauen. Alle Änderungen sind wie bei ifconfig nur temporär. Der Befehl allein führt wieder zur reinen Information:

root@zero:~# route
Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
192.168.240.0   *               255.255.240.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         brunt.alpha.qua 0.0.0.0         UG    100    0        0 eth0

und mit der Option -n das selbe in numerischer Ausgabe:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.240.0   0.0.0.0         255.255.240.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
10.9.0.0        0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         192.168.240.100 0.0.0.0         UG    100    0        0 eth0

Man kann einen standart gateway bestimmen mit:

root@zero:~# route add default gw 192.168.240.21

und ihn wieder entfernen mit:

root@zero:~# route del default

Setzen der Default Route mit Metric

root@zero:~# route add default gw 192.168.240.21 metric 150

Setzen einer Netz Route

root@zero:~# route add -net 172.168.34.0 255.255.255.0 gw 192.168.240.45

Setzen einer Host Route

root@zero:~# route add -host 10.12.14.16 gw 192.168.240.57

Setzen einer Reject Route

root@zero:~# route add -net 10.0.0.0 netmask 255.0.0.0 reject

netstat

Netstat ist ein sehr vielseitiger Befehl mit dem man unter anderem Netzwerk Verbindungen, Routing Tabellen (wie route), Schnittstellen Statistiken und andere Details einsehen kann.

Ohne Optionen zeigt netstat eine Liste offener/verbundener Sockets an. (Sockets sind Schnittstellen bestehend aus IP Adressen und Ports die es Anwendungen ermöglichen untereinander übers Netzwerk zu kommunizieren)

root@zero:~# netstat
Aktive Internetverbindungen (ohne Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 zero.delta.int:ssh      192.168.247.222:32800   VERBUNDEN  
tcp        0      0 zero.delta.int:omirr    arilon.alpha.quadra:nfs VERBUNDEN  
Aktive Sockets in der UNIX-Domäne (ohne Server)
Proto RefCnt Flags       Type       State         I-Node   Pfad
unix  2      [ ]         DGRAM                    2645     @/com/ubuntu/upstart
unix  14     [ ]         DGRAM                    5457     /dev/log
unix  2      [ ]         DGRAM                    2838     @/org/kernel/udev/udevd
...

Mit folgenden Befehlen kann man Netstat einsetzen:

-l listening Zeigt nur die "Hörenden" Internetverbindungen und Sockets an
-n numerical Ausgabe der numerischen Adressen statt symbolischen host,port oder Benutzernamen
-t tcp Nur Verbindungen und Sockets die mit dem Protokoll Tcp ( TransportControlProtocol ) arbeiten
-u udp Das selbe mit dem Protokoll Udp ( UserDatagrammProtocol )
-x unix Hier werden die Unixsockets angezeigt
-p program Zeigt die PID ( ProzessIDentifikationsnummer ) und die Namen der Programme zu denen die Verbindungen und Sockets gehören
-c continious Bringt netstat dazu seine jede Sekunde eine neue Ausgabe zu erzeugen bis es abgebrochen wird
-r route Gibt das selbe aus wie der Befehl route, die routing Tabelle
-i interfaces Gibt Statistiken der Interfaces aus
-a all Eine Liste der "Hörenden" und "Nichthörenden" sockets

Bespiele:

Liste der hörenden Verbindungen:

root@zero:~# netstat -l
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:ldap                  *:*                     LISTEN     
tcp        0      0 *:netbios-ssn           *:*                     LISTEN     
tcp        0      0 *:sunrpc                *:*                     LISTEN 
...

Liste der TCP Verbindungen:

root@zero:~# netstat -t
Aktive Internetverbindungen (ohne Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 zero.delta.int:ssh      192.168.247.222:32800   VERBUNDEN  
tcp        0      0 zero.delta.int:omirr    arilon.alpha.quadra:nfs VERBUNDEN  

Numerische Liste der Verbindungen:

root@zero:~# netstat -n
Aktive Internetverbindungen (ohne Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 192.168.242.12:22       192.168.247.222:32800   VERBUNDEN  
tcp        0      0 192.168.242.12:808      192.168.240.1:2049      TIME_WAIT  
Aktive Sockets in der UNIX-Domäne (ohne Server)
Proto RefCnt Flags       Type       State         I-Node   Pfad
unix  2      [ ]         DGRAM                    2645     @/com/ubuntu/upstart
unix  14     [ ]         DGRAM                    5457     /dev/log
unix  2      [ ]         DGRAM                    2838     @/org/kernel/udev/udevd
...

Numerische Liste der hörenden TCP Verbindungen:

root@zero:~# netstat -ltn
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:54737           0.0.0.0:*               LISTEN   
...

arp

arp steht für Address Resolution Protocol das dazu benutzt wird ist IP Adressen die Physikalischen Adressen von Netzwerkkarten ( Hardware- bzw. MAC-Adressen ) zuzuordnen.

Der gleichnahmige Linuxbefehl ermöglicht es die Tabelle der zugeordneten Adressen zu Konfigurieren oder Anzusehen.

Der Befehl arp alleine zeigt wie üblich nur Informationen zu oben genannter Tabelle:

root@zero:~# arp
Adresse Hardware-Typ Hardware-Adresse Optionen Maske Schnittstelle
192.168.245.200                  (unvollständig)                          eth0
arilon.alpha.quadrant    ether   00:0e:0c:62:c4:04   C                     eth0
caprica.alpha.quadrant   ether   00:18:51:2b:c0:7f   C                     eth0
192.168.247.222          ether   00:19:5b:54:8b:9e   C                     eth0
aquaria.alpha.quadrant   ether   00:18:51:2b:c0:7f   C                     eth0


Mit dem Zusatz -d (delete) kann man Zuordnungen von Adressen aus der Tabelle entfernen.

root@zero:~# arp -d 192.168.247.222

So wie man mit dem Zusatz -s (specify) eine Zuordnung hinzufügen kann

root@zero:~# arp -s 192.168.247.222

Andere Optionen sind -n um statt hostnamen IP Adressen anzuzeigen:

root@zero:~# arp -n
Adresse Hardware-Typ Hardware-Adresse Optionen Maske Schnittstelle
192.168.240.21           ether   00:18:51:2b:c0:7f   C                     eth0
192.168.240.100          ether   00:16:3e:6f:d2:a4   C                     eth0
192.168.240.20           ether   00:18:51:2b:c0:7f   C                     eth0
192.168.247.222          ether   00:19:5b:54:8b:9e   C                     eth0
192.168.240.1            ether   00:0e:0c:62:c4:04   C                     eth0
192.168.245.200                  (unvollständig)                          eth0

Oder -v um die Ausgabe zu erweitern:

root@zero:~# arp -nv
Adresse Hardware-Typ Hardware-Adresse Optionen Maske Schnittstelle
192.168.240.21           ether   00:18:51:2b:c0:7f   C                     eth0
192.168.240.100          ether   00:16:3e:6f:d2:a4   C                     eth0
192.168.240.20           ether   00:18:51:2b:c0:7f   C                     eth0
192.168.247.222          ether   00:19:5b:54:8b:9e   C                     eth0
192.168.240.1            ether   00:0e:0c:62:c4:04   C                     eth0
192.168.245.200                  (unvollständig)                          eth0
Einträge: 6   Ignoriert: 0   Gefunden: 6