01.03.2024

Linux Netzwerk

Linux Tastenkombinationen
Konfigurations-Dateien und Verzeichnisse unter Linux
System Anpassung
Systemreparatur
Bootmanager - Grub2/Grub/LiLo
Hardwareerkennung
Paket-Verwaltung
Init-System SysV-Init, Systemd, Upstart, Busybox u.a.
System Protokollierung - syslog
PAM Zugriffssteuerung
Admin-Rechte-Steuerung
Kernel 2.4 | 2.6
Linux Intrusion Detection System (LIDS)
User Mode Linux UML
Dateisysteme
Drucken unter Linux
Sound konfigurieren
Partition kopieren
IPX Protokoll
SoftwareRAID
Netzwerk
Bluetooth
X-Server und Desktops
64Bit und 32Bit auf einem System
ACPI System einrichten
Shared Libraries
Linux Console
Jobs mit cron automatisieren
PCMCIA
ISDN und Capi
VNC-Server einrichten
Verschlüsselter Zugriff auf Ressourcen übers Netzwerk
Festplatten Überwachen mit S.M.A.R.T
Linux Systemhilfe richtig verwenden
sudo konfigurieren
Installation aus den Sourcen
SCSI Emulation für ATAPI Geräte einrichten
cloop (Komprimiertes Loopback Device) einrichten
Übersicht ext2 / ext3 Zusatzflags
Versionsverwaltung von Dateien
SSHFS einrichten
Linux unter VMware
sonstiges

Navigation:

externe Links:

6to4 Tunnel mit dynamischer IPv4-Adresse
Die Telekom, natives IPv6 over PPPoE & DD-WRT
IPv6 mit SixXS Tunnel
Linux IPv6 HOWTO oder Linux IPv6 HOWTO

Seitenanfang

Netzwerk

Dateien Funktion
/etc/resolv.conf DNS Server einrichten
/etc/network/interfaces Netzwerkkarten konfigurieren
/etc/modutils/aliases (Debian) Konfigurieren der Schnittstelle
/etc/sysctl.conf System Parameter Konfigurationsdatei (siehe sysctl)
/etc/sysctl.d/ System Parameter Konfigurations-Verzeichnis
Befehle Funktion
nameif benennt Netzwerkschnittstellen nutzt die Datei zum definieren /etc/mactab
ifup eth0 erste Netzwerkkarte starten
ifdown eth0 erste Netzwerkkarte stoppen
ifup eth0=home Netzwerkprofil "home" starten
/etc/init.d/networking restart Netzwerk neu starten, /etc/network/interface wird neu eingelesen (nur Debian, nicht mehr für ubuntu)
ifdown eth0 && ifup eth0 Netzwerkschnittstelle eth0 neustarten, Einstellungen in der /etc/network/interface werden verarbeitet (ubuntu)
ip link set up dev eth0 Netzwerkschnittstelle eth0 starten, /etc/network/interface wird nicht berücksichtigt
ip link set down dev eth0 Netzwerkschnittstelle eth0 stoppen, /etc/network/interface wird nicht berücksichtigt
ping6 ff02::1%eth0 Multicast ping alle Hosts im Netzwerk
ping6 -c 3 -I eth0 ff02::1 Multicast ping alle Hosts im Netzwerk, Schnittstelle durch den Parameter -I angegeben
ping6 ff02::2%eth0 Multicast ping alle Router im Netzwerk
ip neighbor show Neighbor Cache anzeigen, bei IPv4 ARP Cache
ping6 -c 3 -I eth0 ff02::1  
nmcli dev Network Manager CLI, Netzwerk Device anzeigen
Status anzeigen
netstat -tulpn Dienste, Ports und PIDs anzeigen, die auf Verbindung warten
lsof -i Dienste, Ports und PIDs anzeigen, die auf Verbindung warten
   
Fehlersuche
radvdump gesendete und empfangene Advertisements werden ausgegeben
rdisc6 eth0 ICMPv6 Router Discovery, Debian Paket apt-get install ndisc6 IPv6 diagnostic tools
rdisc6 -1 -q eth0 gibt Prefix aus
traceroute6 oder tracert6 <Zielserver> IPv6 zeigt den Weg der Pakete bis zum angegebnene Ziel
traceroute oder tracert <Zielserver> IPv4 zeigt den Weg der Pakete bis zum angegebnene Ziel
tracepath oder tracepath6 <Zielserver> IPv4 / IPv6 zeigt Knoten und misst Zeit bis zum Ziel
   

/etc/modutils/aliases (Debian)

alias eth0 8139too	#für eine RTL 8139 NIC
alias eth1 dmfe	#für Davicom DM9102AF NIC

der Karte wird der Name des Modules zugeordnet, nach Änderung unter Debian "update-modules" aufrufen.

/etc/mactab

eth0	00:95:R7:E2:00:XX
eth1	00:95:R7:E3:01:XX
firewall	00:95:R7:E3:01:XX
dmz	00:95:R7:E3:01:XX

in der mactab kann die Reihenfolge der Netzwerkkarten definiert werden, man kann hier der Schnittstelle auch Namen zuordnen.

/etc/init.d/networking

start)
		...
        nameif  #uses default /etc/mactab to change ethernet-interfaces
		...
        fi
        ;;

den Script /etc/init.d/networking um den nameif Eintrag erweitern, dann weren die Einstellungen gleich beim starten eingerichtet.

/etc/resolv.conf

# /etc/resolv.conf
nameserver 2001:4860:4860::8888
nameserver 8.8.8.8
search domain.tld

/etc/network/interfaces

# loopback interface
auto lo
iface lo inet loopback

# Static IP Adresse Beispiel für die Zuordnung von zwei IP Adressen zu einer Karte
# es können auch mehr zugeordnet werden z.B. eth0:1, eth0:2 usw.
auto eth0
iface eth0 inet6 static
  address fec0:0:0:1::1
  netmask 64

auto eth0:0
iface eth0:0 inet static
  address 192.168.0.100
  netmask 255.255.255.0
  network 192.168.0.0
  broadcast 192.168.0.255
  gateway 192.168.0.1
  dns-nameservers 192.168.0.1

# Beispiel für einen  Client
auto eth1
iface eth1 inet 

Erläuterung:
lo - ist der loopback Adapter, er ist eine virtuelle Netzwerkkarte
eth0 - erste Netzwerkkarte im System (die nächste heist eth1, eth2 usw.)
eth0:0 - wenn z.B. eth0 konfiguriert ist, kann man der Schnittstelle noch weitere IP-Adressen zuweisen. Das gilt nur für IPv4, mit IPv6 kann man eth0:0 nicht mehr verwenden.

Beispiel IPv6 Schnittstelle mit mehreren IP-Adressen

# /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# Interface am Link "internet"
auto eth0
iface eth0 inet static
	address 192.168.10.100
	netmask 255.255.255.0
	network 192.168.10.0
	broadcast 192.168.10.255
	gateway 192.168.10.1
	dns-nameservers 192.168.10.1

iface eth0 inet6 static
	address 2001:db8:10::100
	netmask 64
	gateway 2001:db8:20::1
	dns-nameservers <dns_ipv6_addr_1> <dns_ipv6_addr_2>
	up ip addr add 2001:db8:10::200/64 dev eth0
	down ip addr del 2001:db8:10::200/64 dev eth0
	up ip addr add 2001:db8:20::252/64 dev eth0
	down ip addr del 2001:db8:20::252/64 dev eth0

Beispiel IPv6 per Router Advertisement und eine IPv6 statisch zugewiesen

# /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# Interface am Link "internet"
auto eth0
iface eth0 inet 
iface eth0 inet6 
	accept_ra 1
	autoconf 1
	up ip addr add 2001:db8:10::1/64 dev eth0
	down ip addr del 2001:db8:10::1/64 dev eth0

Beispiel IPv6 Link-Local Adresse an eth1

# /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# Interface am Link "internet"
allow-hotplug eth0
iface eth0 inet 

# Interface am Link "internal"
auto eth1
iface eth1 inet6 manual
        up ip link set up dev eth1
        down ip link set down dev eth1
Seitenanfang

Systemparameter anzeigen / setzen

Parameter Beschreibung
net.ipv4.ip_forward IPv4 Routing 0=deaktiv, 1=aktiv
net.ipv6.conf.all.forwarding IPv6 Routing
net.ipv6.conf.all.accept_ra
net.ipv6.conf.default.accept_ra
net.ipv6.conf.<IFACE>.accept_ra
IPv6 Router Advertisements, wenn forwarding aktiv ist, ist accept_ra deaktiviert und umgekehrt.
0 = Router Advertisements werden nicht akzeptiert
1 = Router Advertisements werden akzeptiert, aber Routing wird deaktiviert
2 = Router Advertisements werden akzeptiert, Routing wird aktiviert
net.ipv6.conf.all.accept_ra_defrtr
net.ipv6.conf.default.accept_ra_defrtr
net.ipv6.conf.<IFACE>.accept_ra_defrtr
IPv6 default Router wird durch RA gesetzt (Standard aktiviert)
0 = deaktiv
1 = aktiv
   
net.ipv6.conf.all.use_tempaddr
net.ipv6.conf.default.use_tempaddr
net.ipv6.conf.<IFACE>.use_tempaddr
IPv6 Privacy Extensions
0 = Privacy Extensions nicht aktiv
1 = temporäre Adresse bereitstellen
2 = temporäre Adresse bereitstellen und aktiv nutzen
net.ipv6.conf.all.temp_prefered_lft Dauer in Sekunden, wie lange die Adresse anderen vorgezogen wird
net.ipv6.conf.all.temp_valid_lft Dauer in Sekunden, wie lange die Adresse vorhanden ist
net.ipv6.conf.all.autoconf
net.ipv6.conf.default.autoconf
net.ipv6.conf.<IFACE>.autoconf
IPv6 Autokonfiguration
   

Einträge in /proc/sys/net/ipv6/
kernel.org Doku Networking

<IFACE> - steht für das Interface z.B. eth0, eth1 wlan0 u.a.

- Routing für IPv4 temporär aktivieren

sysctl -w net.ipv4.ip_forward=1
echo 1 >/proc/sys/net/ipv4/conf/eth0/forwarding

- Routing für IPv6 temporär aktivieren, für alle Schnittstellen des Systems

sysctl -w net.ipv6.conf.all.forwarding=1

- Routing dauerhaft aktivieren, für IPv4 und IPv6

#/etc/sysctl.conf
...
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
...

- Privacy Extensions aktivieren, für ubuntu beide Einträge setzen, für Fedora und OpenSUSE reicht net.ipv6.conf.default.use_tempaddr=2 aus.

sysctl -w net.ipv6.conf.default.use_tempaddr=2
sysctl -w net.ipv6.conf.eth0.use_tempaddr=2

Einstellungen kontrollieren

- Wert eines Parameters ausgeben

sysctl net.ipv6.conf.default.use_tempaddr
cat /proc/sys/net/ipv6/conf/default/use_tempaddr

- Werte aller Schnittstellen ausgeben
all
default
eth0
eth1
...
lo

cat /proc/sys/net/ipv6/conf/*/use_tempaddr

 

 

Seitenanfang

Netzwerk manuell auf der Kommandozeile einrichten

mit Befehl ip

- Schnittstelle starten/stoppen

ip link set up dev eth0
ip link set down dev eth0

- IP Adresse 192.168.0.10 zuweisen

ip addr add 192.168.0.10/24 broadcast 192.168.0.255 dev eth0
ip link set up dev eth0

- mehrere IP Adressen einer Schnittstelle zuweisen

ip addr add 192.168.0.10/24 dev eth0
ip addr add 192.168.2.10/24 dev eth0

- IP-Adress-Alias anlegen

ip addr add 10.1.1.52/24 dev eth0 label eth0:1

- IP Adressen anzeigen, mit Schnittstellen-Angabe

ip addr list
ip addr show
ip link show dev eth0

Kurzform

ip a l

- Ethernet Schnittstellen-Statistik

ip -s link

- Ethernet Schnittstellen Status

ip link

- IP 192.168.0.10 löschen, oder ändern mit change/replace

ip addr del 192.168.0.10 dev eth0

- Route aus Netzwerk setzen für die IP 192.168.0.10

ip route add to 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.10

- Routingtabelle anzeigen

ip route

- Route ins Netzwerk löschen

ip route del 192.168.0.0/24

- Default Route setzen (Gateway 192.168.0.1) für die IP 192.168.0.10

ip route add to default via 192.168.0.1 src 192.168.0.10

- Default Route löschen

ip route del default

- alle Routingtabellen anzeigen

ip route list table local

mit Befehl ifconfig

- IP Adresse 192.168.0.10 setzen und Schnittstelle aktivieren (up)

ifconfig eth0 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255 up

- MAC Adresse der Schnittstelle eth0 ändern

ifconfig eth0 down
ifconfig eth0 hw ether 00:04:A2:65:23:FC
ifconfig eth0 up

Routingeinstellungen mit route

- Default Route setzen (Gateway 192.168.0.1)

route add default gw 192.168.0.1

- Route für ein Device setzen

route add -host 192.168.0.1 eth0

- Route für ein Subnet

route add -net 192.168.1.1/24 192.168.0.1

- Routingtabelle anzeigen

route
netstat -r
Seitenanfang

Netzwerk Profile einrichten

Beispiel für die /etc/network/interfaces mit Profilen.

auto lo
iface lo inet loopback

iface eth0 inet 
iface home inet static
	address 192.168.20.61
	netmask 255.255.255.0
	network 192.168.20.0
	broadcast 192.168.20.255
	gateway 192.168.20.254
	dns-nameservers 192.168.20.254
	pre-up /etc/init.d/shorewall start || true
	post-down /etc/init.d/shorewall stop || true

iface buero inet static
	address 192.168.10.61
	netmask 255.255.255.0
	network 192.168.20.0
	broadcast 192.168.10.255
	gateway 192.168.10.1
	dns-nameservers 192.168.10.1
auto eth0

damit die Option dns-nameservers Wirkung zeigt, muss das Paket resolvconf installiert sein, dadurch erfolgt automatisch der Eintrag des DNS in die /etc/resolv.conf.

- Datei /etc/resolv.conf neu schreiben

resolvconf -u
cat /etc/resolv.conf

- Update der /etc/resolv.conf deaktivieren, wenn der Network-Manager läuft

resolvconf --disable-updates

- Netzwerk mit Profil HOME starten, Standardmäßig wird die Netzwerkkarte mit gestartet.

ifdown eth0
ifup eth0=home
Seitenanfang

WLAN Netzwerk

Hilfe WLAN
MadWifi Projekt Page
RT2860PCI / RT2700
Intel PRO/Wireless 2915ABG

Befehl Beschreibung
iwconfig zeigt WLAN Schnittstellen an
   
   

WLAN mit Atheros Chipsatz benutzt den madwifi-ng Treiber.

modprobe ath_pci

- WLAN Treiber entfernen

madwifi-unload

- Device ath0 entfernen

wlanconfig ath0 destroy

- Device ath0 im Infrastruktur-Modus laden

wlanconfig ath0 create wlandev wifi0 wlanmode sta

- Device ath0 im AccessPoint-Modus laden

wlanconfig ath0 create wlandev wifi0 wlanmode ap

- Device ath0 im Monitor-Modus laden

wlanconfig ath0 create wlandev wifi0 wlanmode monitor

- Netzwerk scannen (nur in sta und ap Modus möglich)

iwlist ath0 scan
wlanconfig ath0 list scan

- prüfen ob die WLAN Karte im Monitor-Mode läuft

iwpriv |grep monitor
monitor          (8BE8) : set   2 int   & get   0

- SSID und Modus (Ad-HOC) des WLANs setzen

ifconfig ath0 down
iwconfig ath0 essid WLAN mode ad-hoc

 

udev Änderung

damit udev nicht bei jedem laden/entladen des Moduls ein neues Device erstellt muß noch folgende Änderung durchgeführt werden.

/etc/udev/rules.d/75-persistent-net-generator.rules

ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*|ath*|wlan*|ra*|sta*" \

ändern in

ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*|wlan*|ra*|sta*" \

aus der Datei /etc/udev/rules.d/70-persistent-net.rule alle athX Eintrage löschen.

Linux-Restricted-Modules

Paket linux-restricted-modules muss installiert sein, dann die folgende Datei abändern.
/etc/default/linux-restricted-modules-common

...
DISABLED_MODULES="ath_hal"
...
Seitenanfang

Realtec RT2860PCI / RT2700

#/etc/udev/rules.d/77-net-work.rules (SUSE)
SUBSYSTEM=="drivers", action=="add",
 DEVPATH=="/bin/pci/drivers/rt2860",
  RUN+="/sbin/ifconfig ra0 up"
Seitenanfang

Intel PRO/Wireless 2915ABG

Die Firmware nach /lib/firmware entpacken.

modprobe ipw2200

Paket wpasupplicant
Konfigurationsdatei /etc/wpa_supplicant/wpa_supplicant.conf

Beispiel WPA

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
network={
	ssid="SSID"
	scan_ssid=1
	proto=WPA
	key_mgmt=WPA-PSK
	pairwise=TKIP
	group=TKIP
	psk="PSK-KEY"
}

Beispiel WPA2

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=2
ap_scan=1
fast_reauth=1
network={
	ssid="SSID"
	scan_ssid=1
	proto=RSN
	key_mgmt=WPA-PSK
	pairwise=CCMP
	group=TKIP
	psk="PSK-KEY"
}

WPA2 mit Zertifikat

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=2
ap_scan=1
fast_reauth=1
network={
	ssid="SSID"
	scan_ssid=1
	proto=RSN
	key_mgmt=WPA-PSK
	pairwise=CCMP
	group=TKIP
	eap=TTLS
	key_mgmt=WPA-EAP
	anonymous_identity="anonymous@domain.tld"
	identity="anonymous@domain.tld"
	password="geheim**"
	ca_cert="/etc/wpa_supplicant/zertifikat.pem"
	phase2="auth=PAP"
}

mit WEB Verschlüsselung

...
network={
	ssid="SSID"
	scan_ssid=1
	key_mgmt=NONE
	wep_tx_keyidx=0
	wep_key0="Netzwerkschlüssel"
}

Paket pwgen - ist ein Schlüsselgenerator für WPA-PSK

pwgen -c -n -s 63 1
Seitenanfang

VLAN einrichten

- Hilfe VLAN Interface

man vlan-interfaces

- VLAN Paket installieren und Modul laden

apt-get install vlan
modprobe 8021q
lsmod | grep 8021q

VLAN Modul permanent laden

echo "8021q" >> /etc/modules

- dem VLAN Interface erstellen und eine IP Adresse per DHCP oder zuweisen

ip link show
ip link add dev eth0.30 link eth0 type vlan id 30
ip link set dev eth0.30 up
ip link show eth0.30
dhclient eth0.30 -v

ip addr add 192.168.2.10/24 dev eth0.30

- VLAN Interface entfernen

ip link set dev eth0.30 down
ip link del dev eth0.30

- VLAN Interface zum Systemstart konfigurieren, manuell eine Adresse zuweisen

# /etc/network/interfaces
# IP manuell vergeben
auto eth0.2
iface eth0.2 inet static
    address 192.168.2.10
    netmask 255.255.255.0
    gateway 192.168.2.1
    vlan-raw-device eth0
...
# /etc/network/interfaces.d/vlan30
# IP per DHCP
auto eth0.30
iface eth0.30 inet dhcp
 vlan-raw-device eth0
# /etc/iproute2/rt_tables
...
500	firsttable
501	secondtable
...

ip rule show

VLAN testen

- VLAN Einstellungen anzeigen

cat /proc/net/vlan/config
cat /proc/net/vlan/<Name des VLAN>

- prüfen, ob das Modul geladen wurde

# lsmod | grep 8021q
8021q                  36864  0
garp                   16384  1 8021q
mrp                    20480  1 8021q

- Konfiguration der Schnittstellen anzeigen

ip link show
ip addr show

- ping über das vlan Interface versenden

ping -I eth0.30 8.8.8.8
systemctl restart networking
Seitenanfang

Internet mit dem MobilPhone

Bluetooth

Befehl Beschreibung
hcitool scan Bluetooth Geräte suchen
sdptool browse MAC zeigt verfügbare Dienste der Gegenstelle
hciconfig -a Infos zum Bluetooth-Stack

Dienst Dial-up networking suchen, unter Channel steht der Bluetooth Kanal mit dem man das Modem des MobilPhone ansprechen kann. Nun die statische Zuordnung in die Datei /etc/bluetooth/rfcomm.conf eintragen, die MAC und den Channel des MobilPhones.

/etc/bluetooth/rfcomm.conf

rfcomm0 {
	bind yes;
	device xx:xx:xx:xx:xx:xx;
	channel 2;
	comment "MobilePhone";
}

Beim nächsten Start des Bluetooth Daemons wird das Device /dev/rfcomm0 automatisch angelegt. Der Daemon kann mittels /etc/init.d/bluetooth restart neu gestartet werden.

Die Datei /etc/ppp/peers/ppp0 mit folgenden Inhalt anlegen.

connect "/usr/sbin/chat -v -f /etc/ppp/peers/ppp0.chap"
user "tm"
/dev/rfcomm0
115200
usepeerdns
defaultroute

Dannach das CHAP Script /etc/ppp/peers/ppp0.chap erstellen.

< ABORT BUSY
TIMEOUT 60
ABORT ERROR
"" "ATZ"
"" "ATDT*99***1#"
CONNECT

in der /etc/ppp/pap-secrets Benutzername und Passwort hinterlegen, wird zwar von den meisten Providern unterstützt bzw. ignoriert, ist aber empfehlenswert und auch frei wählbar.

"tm" * "tm"

mit folgendem Kommando eine Verbindung zum Internet über das Bluetooth Telefon herstellen.

pppd call ppp0

Dabei ist die Eingabe der Bluetooth PIN erforderlich, fals das Phone noch nicht mit dem PC gekoppelt ist.

USB

Befehl Beschreibung
lsusb Info über angeschlossene USB Geräte
gcom -d /dev/ttyACM0 für USB Device ttyACM0 den Netzanbieter und Signalstärke anzeigen
   

Wenn das Telefon über USB-Datenkabel angebunden ist, ist das Device /dev/ttyACM0 für das erste am PC angeschlossene USB-Modem, wenn das Telefon (wie das Sony-Ericsson K800i) mehrere Modems bindet, muss man feststellen, welches das Richtige ist.

Damit die Anbindung immer über das gleiche Device erfolg, egal ob das MobilPhone über USB oder Bluetooth angebunden ist, muss man ein Symlink einrichten. Dies erledigt eine Udev Regel automatisch. (ein Beispiel unter ubuntu)

/etc/udev/rules.d/60-symlinks.rules

KERNEL=="rfcomm0*", SYMLINK+="mobile-internet"
KERNEL=="ttyACM0", SYMLINK+="mobile-internet"

auch wenn der Symlink durch die Bluetooth Verbindung schon existiert, wird er beim Anstecken des Telefons über USB überschrieben und Udev ordnet es dem USB Device zu. Beim trennen vom USB wird der Symlink auch entfernt, aber da die Bluetooth Verbindung existiert wieder neu angelegt.

Da der Symlink nur für das Device /dev/ttyACM0 erzeugt wird, kann es sein das wenn schon ein USBGerät mit Modem am Rechner angeschlossen ist, das das MobilPhone von Udev ein anderes Device zugeordnet wird. Dies kann man verhindern, wenn die Udev Regeln besser ans Gerät angepasst werden.

Beispiel für ein Nokia

SUBSYSTEMS=="usb",\
KERNEL=="ttyACM[0-9]*",\
SYSFS{idVendor}=="0421",\
SYSFS{idProduct}=="04f0",\
SYMLINK+="mobile-internet"

Die Vendor und ProductID bekommt man mittels lsusb angezeigt.

Beispiel für ein Sony-Ericsson K800i

Wenn das ModemDevice den Grätenamen ttyACM1 erhalten hat, muss man in dem Verzeichnis /sys/class/tty/ttyACM1 nach der Pseudodatei bInterfaceNumber suchen

SUBSYSTEMS=="usb",\
KERNEL=="ttyACM[0-9]*",\
SYSFS{idVendor}=="0fce",\
SYSFS{idProduct}=="d039",\
SYSFS{device/bInterfaceNumber}=="01",\
SYMLINK+="mobile-internet"

Beispiel 3G/GPRS Datenkarten

SUBSYSTEMS=="usb",\
KERNEL=="ttyACM[0-9]*",\
SYSFS{idVendor}=="0af0",\
SYSFS{idProduct}=="5000",\
PROGRAM="/usr/bin/test %s{bInterfaceNumber} = 00",\
SYMLINK+="mobile-internet"
RUN="/etc/gcom/datacard-init %k"

/etc/gcom/datacard-init

#!/bin/bash
if [ -e /dev/$1 ]; then
	echo 1234 | gcom -d /dev/$1 /etc/gcom/datacard.scr
fi

Das Script enthält die PIN der Datenkarte, hier im Beispiel 1234 und sollte mit den Rechten 700 angelegt werden, da nicht jeder die PIN lesen soll. Mit folgendem Aufruf im Init-Script erreicht man das primär UMTS genutzt wird, wenn dies zu schwach ist wird GPRS genutzt.

gcom -d /dev/$1 3G2G

- nur UMTS verwenden

gcom -d /dev/$1 3G

Die Datei /etc/gcom/datacard.scr übergibt die APN-Einstellung an die Datenkarte.

/etc/gcom/datacard.scr

send
"AT+CGDCONT=1,\"IP\",\"internet.t-mobile\"^m"
waitfor 10 "OK"
Seitenanfang

Advanced Routing einrichten

Kerneloptionen
Device Drivers / Networking support / Networking options / IP: advanced router
IP: policy routing - Routing anhand der Quell-IP-Adresse
IP: equal cost multipath - abwechselnde Routing über unterschiedliche, gleichwertige Pfade

Lastenverteilung
Device Drivers / Networking support / Networking options / QoS and/or fair queueing
TEQL queue (NEW) - sorgt für eine Verteilung der Daten auf mehrere Leitungen, aber für jedes Paket einzeln.

Device Drivers / Networking support
Bonding driver support - "zusammenfassen" mehrerer Karten zu "einer", man bracht aber noch einen passenden Switchder das auch unterstützt.

$ ip rule list
0: from all lookup local
32766:from all lookup main
32767:from all lookup default

$ ip route add 192.168.1/24 via 192.168.1.1 table 23
$ ip rule add pref 10000 table 23
$ ip rule list
0: from all lookup local
10000:from all lookup 23
32766:from all lookup main
32767:from all lookup default

Device Drivers/Networking support/Networking options

Kernel-Optionen Menü
CONFIG_NETFILTER Network packet filtering
CONFIG_IP_ADVANCED_ROUTER IP: advanced router
CONFIG_IP_MULTIPLE_TABLES IP: policy routing
CONFIG_IP_ROUTE_FWMARK IP: use netfilter MARK value as routing key
CONFIG_IP_NF_IPTABLES IP tables support
CONFIG_IP_NF_MANGLE Packet mangling
CONFIG_IP_NF_TARGET_MARK MARK target support

Befehle iproute2

Hilfe für IP

ip help
ip addr help
ip route help

alle IP-Adressen anzeigen.

ip addr list
ip addr show

Standard Routen anzeigen

ip route show
ip route show table main
ip route list

Standard Routen mit DNS-Namensauflösung

ip -r route show

vom Router selbst erzeugte Routingtabelle ansehen

ip route show table local

IP Adresse zuweisen

IP Adresse einem Device zuweisen

ip addr add 192.168.0.2/24 broadcast 192.168.0.255 dev eth0

kürzeste Form des Befehls

ip a a 192.168.0.2/24 b 192.168.0.255 dev eth0

zweite IP Adresse zuweisen

weitere Adressen an ein Interface binden (wenn man mit IP mehrere Adressen an ein Interface bindet, kann ifconfig diese nicht richtig anzeigen, es wird immer nur die zuletzt gebundene Adresse angezeigt, da ifconfig Alias-Interfaces z.B. eth0:1)

ip addr add 10.0.0.1/8 broadcast 10.255.255.255 dev eth0

Alias-Interface mit anlegen, so das auch ifconfig alles richtig anzeigt (label eth0:3).

ip addr add 10.0.0.1/8 broadcast 10.255.255.255 label eth0:3 dev eth0

Route setzen

default Route setzen

ip route add default via 192.168.0.1

kürzeste Form des Befehls

ip r a default via 192.168.0.1

Mehrere Routingtabellen verwenden

eine neue Routingtabelle mit dem frei wählbaren Namen (101) erzeugen und in dieser eine Standardroute eintragen

ip route add default dev eth2 table 101

die neue Tabelle (101) aktivieren

ip rule add from 192.168.1.0/24 table 101

Routing Regelsatz anzeigen

ip rule show

besondere Routingtabellen für bestimmte Programme

Pakete mit Zielport 22 werden mit einer Markierung versehen (Nr. 2)

iptables -A FORWARD -t mangle -p tcp --dport 22 -j MARK --set-mark 2

eine neue Routingtabbele mit einer default Route erzeugen

ip route add default dev ppp0 table 100

Regel um die markierten Pakete über diese Route zu schicken

ip rule add fwmark 2 table 100

Transparenten Proxy einrichten

Proxy und Firewall müssen auf dem gleichen Rechner laufen.
Zugriffe auf Port 80 werden on der Firewall an einen Proxy geleitet (Port 3128)

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport http -j REDIRECT --to-port 3128

Proxy und Firewall auf unterschiedlichen Rechnern

mangle Tabelle der Firewall für Web Zugriff des Proxys (192.168.1.22) auf durchzug schalten

iptables -t mangle -A PREROUTING -p tcp --dport 80 --source 192.168.1.22 -j ACCEPT

Pakete anschliessend markieren

iptables -t mangle -A PREROUTING -p tcp -i eth0 --dport 80 -j MARK --set-mark 3

markierten Pakete an den Proxy schicken

ip route add default via 192.168.1.22 table 102
ip rule add fwmark 3 table 102
Seitenanfang

NFSv3

Kernel 2.4

Filesystems / Network File Systems

"Coda file system support" als Modul einbinden, mit modconf / kernel/fs
/ coda aktivieren (Datei coda.o)
oder
"nfs server support" in den Kernel einbinden, nicht als Modul (nfsd.o)

für den Zugriff mit einem Client braucht man Filesystems / Network File Systems / NFS file system support, das kann man als Modul einbinden (nfs.o) mit modconf einrichten.

Kernel 2.6
File systems / Network File Systems

<M> NFS file system support (Modul nfs.ko)
[*] Provide NFSv3 client support
[*] Provide NFSv4 client support (EXPERIMENTAL)
[ ] Allow direct I/O on NFS files (EXPERIMENTAL)
<M> NFS server support (Modul nfsd.ko)
[*] Provide NFSv3 server support
[*] Provide NFSv4 server support (EXPERIMENTAL)
[*] Provide NFS server over TCP support (EXPERIMENTAL)

Pakete Debian
Client - nfs-common
Server - nfs-kernel-server

Zugriffsrechte auf den Server festlegen

/etc/hosts.deny

# Alles verbieten
ALL: ALL

/etc/hosts.allow

# Alle für NFS notwendigen Dienste für die lokale Domain freigeben:
portmapper : 192.168.0.0/255.255.255.0 mountd : 192.168.0.0/255.255.255.0 nfs : 192.168.2.0/255.255.255.0 lockd : 192.168.0.0/255.255.255.0 statd : 192.168.0.0/255.255.255.0 rquotad : 192.168.0.0/255.255.255.0

nach Änderungen an der hosts.allow oder hosts.deny, muss Portmap mit /etc/init.d/portmap restart neu gestartet werden

Programmnummern dienenzum identifizieren des RPC-Programms, auf das im Server ein Zugriff erfolgt z.B. "rpcinfo -p localhost"

Programm Nummer
Portmapper 100000
rstatd 100001
ruserd 100002
NFS 100003
NIS 100004
mountd 100005
walld 100008
sprayd 100012
rexd 100017
lockd 100021

RPC-Dienste:

rpcinfo -p

portmapper
lockd ist notwendig, wenn Progamme auf dem Client mit Datensperren arbeiten
statd ist notwendig, wenn Progamme auf dem Client mit Datensperren arbeiten
rquotad ist notwendig, wenn auf den exportierten Verzeichnissen mit Quotas gearbeitet wird

mit "strings /usr/sbin/rpc.mountd | grep hosts" kann man sich die Zugriffsrecht anzeigen lassen, die ein Programm hat, hier am Beispiel "rpc.mountd"
der Dienst "/etc/init.d/portmap" muss auf dem System laufen, kontrollieren kann man das mit "ps ax | grep portmap"

- Portmapper Dienst beenden | deaktivieren

systemctl stop rpcbind
systemctl disable rpcbind

- Portmapper deinstallieren

apt remove rpcbind

Portmapper Konfiguration unter Debian /etc/default/rpcbind

Seitenanfang

NFSv4

NFSv4 Client für Windows
Hummingbird Maestro Client/Solo

ManPage: exports

Paket nfs-kernel-server

- Aktivierung von NFSv4 (OpenSUSE)

#/etc/sysconfig/nfs
NFS4_SUPPORT=yes

- Dienste von NFSv4

ps ax | egrep ´rpc|nfs´
nfsiod
nfsd4
nfsd
prciod/0
/sbin/rpc.statd
/usr/sbin/rpc.idmapd
/usr/sbin/rpc.mountd

- NFSv3 Dienste

/sbin/rpc.statd
nfsd

- NFSv4 Dienste

/usr/sbin/rpc.idmapd
nfsd4

Der Dienst idmapd löst die Benutzernamen auf, er wird auf dem Client und auf dem Server benötigt. Die Einstellungen werden in /etc/idmapd gespeichert.

- Dauerhafte Einbindung des Verzeichnis
Wurzelverzeichnis auf dem Server freigeben

#/etc/exports
/srv/nfsv4 192.168.100.0/24(rw,fsid=0,insecure,no_subtree_check,async)
Optionen
fsid=0		Wurzelverzeichnis definieren
insecure	Zugiff von Ports >1024
rw		Schreibzugriff
async		asynchrones schreiben
no_subtree_check Sicherheitsfunktion abschalten

- manuell ein Verzeichnis in die Freigebe einbinden

mkdir /srv/nfsv4/daten
mount --bind /home /srv/nfsv4/daten

- beim Start Freigabe einbinden

#/etc/fstab
/home /srv/nfsv4/daten none bind 0 0

- nach Änderungen der /etc/exports Datei muss folgender Befehl ausgeführt werden, um die Datei neu einzulesen

exportfs -ra

- temporäre NFS-Freigabe definieren, ohne diese in /etc/exports permanent zu speichern.

exportfs -o rw,nohide,insecure 192.168.100.0/24:/srv/nfsv4/daten

- NFS Freigaben auf dem Client einbinden

mount -t nfs4 nfs-server:/ /mountpoint

- NFS über SSH mit dem Client verbinden, der Port 2049 des NFS-Servers ist auf dem Client unter Port 8888 erreichbar.

ssh -L 8888:localhost:2049 nfs-server.domain.tld
mount -t nfs4 -o port=8888,proto=tcp localhost:/remote /mnt/remote
Seitenanfang

Exportfs (Dateifreigabe)

in der Datei /etc/exports werden die Freigaben und Berechtigungen eingetragen
- Freigabe "netlogon" wird für das Netzwerk 192.168.2.0 freigegeben.

/netlogon       192.168.2.0/255.255.255.0(sync,rw)

Optionen von /etc/exports:
rechner.domain.de
Angabe eines konkreten Rechners (oder auch IP-Adresse)
@Gateways
Bezug auf eine Netzgruppe, die der Datei /etc/netgroup definiert sein muss
*.domain.de
Angabe von Mustern; hier: alle Rechner aus der Domäne »domain.de«
192.168.100.0/255.255.255.0
192.168.100.0/22
Angabe von IP-Netwerken inklusiver Subnetzmaske, welche für den Fall, dass allein führende Bits zur Maskenbildung herangezogen werden, auch als Anzahl der Bits (22 im Beispiel) spezifiziert werden kann.
Jeder Angabe eines Clients kann eine Liste vom Optionen folgen, die den Zugriff auf die exportierten Daten steuern. Innerhalb der kommaseparierten Liste sind keine Leerzeichen statthaft! Mögliche Werte sind:
secure, insecure
Client-Anfragen werden nur von vertrauenswürdigen Ports (Portnummern unterhalb 1024) akzeptiert (»secure«, Voreinstellung); mit »insecure« werden auf Anfragen an höhere Ports akzeptiert
ro, rw
Das Verzeichnis wird schreibgeschützt (»read only«, Voreinstellung) bzw. mit vollen Lese- und Schreibrechten für den Client (»read/write«) exportiert
sync, async
Der Server darf den Vollzug eines Schreibvorgang dem Client erst melden, wenn die Daten tatsächlich auf die Platte geschrieben wurden (Ausschalten des Plattencaches). Die Voreinstellung ist async.
wdelay, no_wdelay
Die Option wird nur in Zusammenhang mit »sync« beachtet und erlaubt dem Server die Bestätigung eines Schreibvorgangs zu verzögern, falls mehrere Schreibvorgänge von einem Client zur gleichen Zeit im Gange sind. Anstatt jeden zu bestätigen, sendet der Server nur eine einzige Antwort nach Vollzug aller Schreiboperationen (betrifft »wdelay«, Voreinstellung).
hide, nohide
Exportiert der Server ein Verzeichnis, in dem wiederum ein anderes Dateisystem gemeountet ist, so wird dieses nicht an einen Client exportiert (»hide«, Voreinstellung); die »nohide«-Option (also den impliziten Export) funktioniert jedoch nur, wenn es sich bei der Clientangabe um einen Rechnernamen (keine Wildcards, IP-Netzwerke und Netzgruppen!) handelt.
subtree_check, no_subtree_check
Werden nur Teile eines Dateisystems vom Server exportiert, so muss der Server prüfen, dass Zugriffe nur auf Dateien erfolgen, die innerhalb dieses Teilbaums liegen (»subtree_check«, Voreinstellung). Dies erhöht zwar die Sicherheit allerdings auf Kosten der Geschwindigkeit, sodass die Prüfung mit »no_subtree_check« abgeschalten werden kann.
root_squash, no_root_squash
Root erhält die UserID des Pseudobenutzers »nobody«, womit der Root-Benutzer des Client-Rechners keine Root-Rechte auf dem vom Server importierten Verzeichnis erhält (Voreinstellung); mit »no_root_squash« bleiben die Root-Rechte auf Clientseite auf dem Verzeichnis erhalten.
all_squash, no_all_squash
Alle Zugreifenden erhalten die Nobody-UID; Voreinstellung ist »no_all_squash«, womit die Nutzerkennungen erhalten bleiben
anongid=gid
Squashing der Gruppe; die Gruppen-ID wird auf »gid« gesetzt. Bei dieser Option kann Root entscheiden, mit welcher Server-GID die Client-Benutzer arbeiten sollen, sobald sie Zugriff auf den Server haben
anonuid=uid
Squashing des Benutzers. Die zugreifenden Benutzer bekommen die UID »uid« verpasst

exportfs rechner.de:/home/user Temporär ein Verzeichnis freigeben (im Beispiel für den Computer "rechner.de" das Verz. "/home/user"
exportfs -u rechner.de:/home/user deaktiviert die Freigabe
exportfs -ra aktualisiert den Server bei Änderungen an der /etc/exports
zur Diagnose  
showmount  
showmount -e rechner.de zeigt Freigaben auf dem Rechner an
nfsstat  

Einbinden von Laufwerken auf dem Client
mount -t nfs rechner.de:/Freigabe /mnt/network/

durch den Eintrag in /etc/fstab, kann man das mounten automatisieren.
# NFS-Einträge
192.168.2.100:/Freigabe /mnt/net nfs user,noauto 0 0

Finger Dienst
der Dienst zeigt Infos zum Rechner auf dem er läuft, oder des Benutzers, wenn das in einer Datei hinterlegt ist.
Paket fingerd
Eintrag in /etc/inetd.conf
finger stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in.fingerd

Client
safe_finger Zeigt Benutzer
oder
finger

finger USER - zeigt Info über den User

Eintrag in /etc/hosts.allow
# Finger ist jedem erlaubt, aber root wird per Mail darüber informiert
fingerd: ALL: (finger @%h | mail -s "finger from %h" root)

Seitenanfang

Bridge-Mode einrichten

Bridge HowTo

-Clients müssen auf dem PC deaktiviert werden, des weiteren muss der Rechner mindestens 2 Netzwerkkarten besitzen, besser noch drei, die dritte kann dann zum Fernzugriff benutzt werden.

Ethernet Schnittstellen konfigurieren

ifconfig eth1 -arp promisc 0.0.0.0 up
ifconfig eth2 -arp promisc 0.0.0.0 up
brctl addbr br0
brctl addif br0 eth1
brctl addif br0 eth2
ifconfig br0 up

brctl addbr br0 - erstellt das Bridge-Device mit dem Namen br0
brctl addif br0 eth1 - ordnet die Schnittstelle den Bridge-Device zu

das Tool brctl ist bei Debian im Paket bridge-utils enthalten. Die Datenquelle für die angesetzten Netzwerk-Sniffer Wireshark oder tcpdump ist das Bridge-Device br0.

- zum Traffic messen kann vnstat oder darkstat (benötigt libpcap) benutzt werden.

VNSTAT

vnstat -u -i br0 -l

-u - Datenbankupdate
-i - Interface festlegen
-l - Liveupdate
-h - Traffic nach Stunde sortiert
-w - Traffic nach Wochen sortiert
-d - Tagesausgabe des Traffic
-m - Monatsdaten

- Netzwerkschnittstelle ermitteln

vnstat --iflist

- neue Datenbank anlegen

vnstat -u -i eth0

- Benutzerrechte setzen

chown -R vnstat:vnstat /var/lib/vnstat/

- Verzeichnis der Datenbank

/var/lib/vnstat

Darkstat

darkstat -i eth0

die Ausgabe von darkstat erfolgt unter http://localhost:667/

Seitenanfang

IPv6 einrichten

Empfohlene Pakete Beschreibung
ipv6calc IPv6 errechnen
iproute  
iputils-ping  
iputils-tracepath  
ndisc6 IPv6 Diagnostic Tools apt-get install ndisc6
rdnssd IPv6 Recursive DNS Server apt-get install rdnssd
wide-v6-client v6 Client apt-get install wide-v6-client
tayga NAT64 Gateway, bietet für IPv4 Clients ein Gateway ins IPv6 Netz. IPv6 Adressen werden zu IPv4 Adressen umgesetzt RFC6052
totd DNS64 Proxy

 

Kerneleinstellungen
Code maturity level options / [*] Prompt for development and/or incomplete code/drivers
Networking support / Networking options
- Network packet filtering (replaces ipchains)
- IP: tunneling
- The IPv6 protocol (EXPERIMENTAL)
als Modul
- IPv6: enable EUI-64 token format
- IPv6: disable provider based address

Modul laden ip6t_eui64 und ip6_tables

- Module Modus einstellen

alias net-pf-10 ipv6 # automatically load IPv6 module on demand
alias net-pf-10 off # disable automatically load of IPv6 module on demand
modprobe ipv6

- Schnittstelle starten/stoppen/Status anzeigen

ip link set up dev eth0
ip link set down dev eth0
ip link show dev eth0

Netzwerkkarten Konfiguration IPv6 anzeigen

ip -6 addr show dev eth0
ip -f inet6 addr show
ifconfig eth0 |grep "inet6 addr:"

Routen anzeigen

ip -6 route show dev eth0
ip -f inet6 route show
route -A inet6
route -A inet6 | grep -w "eth0"

Route eintragen oder löschen

ip -f inet6 route add ::/0 dev eth0
ip -f inet6 route del ::/0 dev eth0
ip -6 route del ::/0 dev eth0

- statt der Route die unter #linux gesetzt wird

::/0 :: U 1 0 0 sit1

- diese Route eintragen

ip -f inet6 route add 2001::/16 dev sit1
ip -f inet6 route add 2002::/16 dev sit1
ip -f inet6 route add 3ffe::/16 dev sit1

- Route zum nächsten Router setzen (unter der IP 192.88.99.1 ist immer der nächste Router zu finden)

route -A inet6 add 2000::/3 gw ::192.88.99.1 dev sit0

Neighbor Cache anzeigen

ip neighbor show
ip neigh show

Verbindungen testen

ping6 -I eth0 fe80::207:e9ff:fe0c:5c34
ping6 -I eth0 host6.de

DNS Abfrage der IPv6 Adressen

host -t A6 host.domain.de
host -t AAAA host.domain.de
host -n <IPv6>
host <IPv6>

Tunnel zu einem Tunnelbroker erstellen

  1. Tunnel erstellen
    ip tunnel add sit1 mode sit remote <IPv4 Remote Host> local <IPv4 local>
    ifconfig sit0 tunnel ::xxx.yyy.zzz.zzz up
    ifconfig sit1 add 2002:3ee0:3972:1::1/64
  2. Tunnel aktivieren
    ip link set sit1 up
  3. IPv6 Adresse auf den Tunnel setzen
    ip address add dev sit1 <IPv6-Adresse/Länge des Subnetzes>
    ip address add dev sit1 3ffe:80a0:0000:0e00::1d6/128
  4. Route ins IPv6 Netz über denn Tunnel setzen
    ip route add 2000::/3 dev sit1
    route -A inet6 add default gw ::xxx.yyy.zzz.zzz

Verbindung Protokollieren

tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6

Bei tcpdump werden zur Geräuschminimierung bei der Paket-Filterung Ausdrücke eingesetzt:
icmp6: ICMPv6 Datenverkehr wird gefiltert
ip6: IPv6 Datenverkehr (inkl.ICMPv6) wird gefiltert
proto ipv6: getunnelter IPv6-in-IPv4 Datenverkehr wird gefiltert
Ebenfalls sind einige Kommandozeilen-Optionen sehr hilfreich, um detailliertere Informationen über die Pakete erlangen und protokollieren zu können. Für ICMPv6 Pakete sind hauptsächlich interessant:
"-s 512": Bei der Aufzeichnung der Pakete wird die zu Aufzeichnungslänge auf 512 bytes vergrößert
"-vv": wirklich sehr ausführliche Ausgabe
"-n": Adressen werden nicht in Namen aufgelöst. Dies ist hilfreich, wenn die Reverse-DNS-Auflösung nicht sauber arbeiten sollte

Test der Verbindung
- Localhost anpingen ping6 -c 1 ::1
- Ping zu einer lokalen IP ping6 -I eth0 fe80::210:61ff:feb0:38f5

ping6 -c 2 www.6bone.net
ping6 ugate.hawo.ipv6.uni-erlangen.de
traceroute6 join6win.ipv6.uni-muenster.de

- mit dem Konqueror eine IPv6 IP aufrufen (localhost) "http://[::1]/"

Seitenanfang

IPv6 mit SixXS

c't Artikel zum Thema

auf einem Debiansystem kann man den SixXS Client als Paket installieren.

apt-get install aiccu

hinter einem IPv4 NAT Router benötigt man noch einen TUN/TAP Treiber, denn kann man unter Linux wie folgt eingerichtet werden.

modprobe tun

Die Konfigurationsdatei findet man nach der Installation des Clients unter /etc/aiccu.conf

# aiccu.conf für erste Tests
username SIXXS-Benutzername
password Passwort
server tic.sixxs.net
automatic true
verbose true
daemonize false
behindnat true
Option Beschreibung
daemonize false true/false Programm nicht im Hintergrund ausführen zum Testen, wenn alles läuft, oder aicce als Daemon laufen soll, dann auf true setzen.
automatic true automatischer Aufbau des Tunnels
behindnat true wenn der Rechner hinter einem NAT Router steht
   
Befehle Beschreibung
aiccu start TunnelClient starten
aiccu stop Tunnelverbindung beenden, wenn aiccu als Daemon oder im Hintergrund ausgeführt wird, im Vordergund mit STRG+C beenden.
aiccu test Tunnelverbindung prüfen

Nach erfolgreicher Registrierung bie SixXS und Beantragung des Tunnel, in der aiccu.conf noch die ID des Tunnels eintragen.

tunnel_id Txxxxx

nach dem ausführen von aiccu start wird ein Tunnelinterface erstellt, mit dem Namen sixxs und der IP die einen zugewiesen wurde.

dann noch die Route korregieren

ip -6 route add 2000::/3 dev sixxs

und die Verbindung kann getestet werden.

Testen der Verbindung

ping6 www.sixxs.net
ping6 www.6bone.net
traceroute6 sixxs.net

Verbindung automatisieren

Pakte radvd (Router Advertisement Daemon) ist noch zu installieren. Radvd verteilt im Netzwerk den Präfix (Advertisement).

Die Konfigurationsdatei /etc/radvd.conf muss beim ersten Start wenigstens folgenden Eintrag erhalten.

interface eth0 { 
  AdvSendAdvert on; 
  prefix 2001:db8::0/64 
  { 
  }; 
};

Eintrag in /etc/network/interface (einfache Konfiguration)

iface sixxs inet6 manual
	up		/etc/init.d/aiccu start
	post-up		ip -6 route add 2000::/3 dev sixxs
	post-down	ip -6 route del 2000::/3 dev sixxs
	down		/etc/init.d/aiccu stop

erweiterte Konfiguration

iface sixxs inet6 manual
	up	/etc/init.d/aiccu start
	up	/etc/network/ipv6-routing.sh || true
#	up	/etc/network/fw-ipv6.sh start-desktop || true
	up	/etc/network/fw-ipv6.sh start-router || true
	post-up		/etc/init.d/radvd start
	post-down	/etc/init.d/radvd stop
	down	/etc/network/ipv6-routing.sh || true
	down	/etc/init.d/aiccu stop
	down	/etc/network/fw-ipv6.sh stop || true

Scripte ipv6-routing.sh (Routingscript) und fw-ipv6.sh (Firewallscript) sind noch zu erstellen. Das Modul für die Firewall muss auch noch geladen werden. Wenn alles läuft, das Modul noch in die /etc/modules eintragen, das es automatisch geladen wird.

modprobe ip6_tables
#!/bin/sh
# fw-ipv6.sh
# IPv6 Firewall Script
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
IP6=ip6tables
FW=/sbin/${IP6}

# INPUT PORTS definieren
SSH=22

test -f $FW || exit 0

$FW -P INPUT ACCEPT
$FW -P OUTPUT ACCEPT
$FW -P FORWARD ACCEPT
$FW -A FORWARD -s ff00::/8 -j ACCEPT
$FW -A FORWARD -s fe80::/10 -j ACCEPT
$FW -A INPUT -p tcp --dport $SSH -j ACCEPT
$FW -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$FW -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$FW -A FORWARD -s '!' 2001:db8::/64 -j DROP
$FW -A INPUT -s '!' 2001:db8::/64 -j DROP

Download: ipv6-routing.sh, fw-ipv6.sh

Seitenanfang

Netzwerktools

Download: ethtool

mit Ethtool kann man die Netzwerkverbindung steuern und auch Missstände diagnostizieren.

rythmisches Blinken der LEDs der Netzwerkkarte, kann zum auffinden des Ports am Switch dienen

ethtool -p eth0

oder mit dem Shell Script, aufgerufen wird der Script durch script.sh eth0

#!/bin/bash
while true ; do
 ifconfig $1 down
 sleep 2
 ifconfig $1 up
 sleep 2
done

Autonegration neu starten, falls beim aushandeln der Netzwerkgeschwindigkeit ein Fehler aufgetreten ist

ethtool -r eth0

Autonegration deaktivieren und auf einen festen Wert setzen

ethtool -s eth0 speed 1000 duplex full autoneg off

Des weiteren kann man ethtool für Wake on Lan nutzen.

Seitenanfang

PPPOE Einwahl ins Internet

Pakete

pppoe - PPP over Ethernet driver pppstatus - console-based PPP status monitor
pppoeconf - configures PPPoE/ADSL

/etc/ppp/pap-secrets - Benutzernamen und Passwort für PAP Authentifizierung
/etc/ppp/chap-secrets - Benutzernamen und Passwort für CHAP Authentifizierung
/etc/ppp/peers/dsl-provider - DSL Zugangsparameter
/etc/ppp/options - Optionen für PPP Einwahl
/etc/resolv.conf - DNS-Server Einstellungen

pap-secrets und chap-secrets sind im gleichen Format aufgebaut.

# Beispiel einer /etc/ppp/pap-secrets oder /etc/ppp/chap-secrets
"[Anschlusskennung][T-onlineNr]0001@t-online.de" * "geheim"
"username@provider.tld" * "geheim"
"provider/username" * "geheim"

wenn mehrere Provider für DSL benutzt werden, legt man für jeden Provider im Verzeichnis /etc/ppp/peers/ gesonderte Konfigurationsdateien an. z.B. DSL-IPv4, DSL-IPv6

# IPv4 PPPOE Einwahl mit dynaamischer IP
user username@provider.tld
pty "pppoe -I eth0 -m 1404 -U"
noipdefault
usepeerdns
defaultroute
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
connect /bin/true
noauth
persist                                 
noaccomp
default-asyncmap
Option Beschreibung
noip man erhält keine IP-Adresse vom Provider
noipdefault IP Adresse vom Provider beziehn
usepeerdns Provider DNS-Server benutzen
defaultroute Default Route setzen
persist Dauerverbindung (Achtung bei Zeittarifen)
noauth keine automatische Authehtifizierung
hide-password Passwort wird nicht protokolliert
   
# IPv6 PPPOE Einwahl mit IP Zuordnung über Script
pty "pppoe -I eth0 -m 1404 -U"
linkname default0
noip
defaultroute
...
+ipv6 ipv6cp-use-ipaddr
debug

wenn das Script zum IP-Adressenzuweisung unter /etc/ppp/ipv6-up.d/ liegt startet der ppp Daemon die Einwahl automatisch.

#!/bin/sh
PPP_IFACE="$1"
PRG="/sbin/ip -6"
IPV6ADDR=2001:4f5::1/48
$PRG addr add $IPV6ADDR dev $PPP_IFACE
$PRG route add default dev $PPP_IFACE
$PRG route add 2000::/3 dev $PPP_IFACE

Verbindung starten / stoppen

Einwahl, je nachdem ob nur ein oder mehrere Provider eingerichtet wurden.

pon
oder
pon DSL-IPv6

Verbindung trennen

poff
Seitenanfang

ZeroConf

- ZeroConf eine IP aus dem APIPA Bereich dem WLAN Adapter zuteilen

avahi-autoipd -D ath0

- Avahi Daemon starten

avahi-daemon -D

- listet lokale Dienste im Netz auf

avahi-discover

- nach nDNS Packeten über WLAN suchen

tcpdump -tni ath0 port mdns

 

Seitenanfang

DNS Konfiguration

Wiki DNS Probleme

DNS Server Einstellungen setzen

- DNS Server für das Interface mit dem Parameter dns-nameservers setzen

#/etc/network/interfaces
auto eth0
iface eth0 inet static
        address 192.168.2.130
        netmask 255.255.255.0
        network 192.168.2.0
        broadcast 192.168.2.255
        gateway 192.168.2.254
        dns-nameservers 192.168.2.254
        mtu 1452

- DNS per resolv.conf fest einstellen, Beispiel für einen Rechner auf dem ein DNS Server installiert ist.

# /etc/resolv.conf
nameserver ::1
nameserver 127.0.0.1
search domain.tld

- per Konfigurationsdatei

# /etc/3/dhclient.conf
...
prepend domain-name-servers 85.214.73.63;
...
# /etc/3/dhclient.conf
...
request subnet-mask,
        broadcast-address,
        time-offset,
        routers,
        domain-name,
#       domain-name-servers,
        domain-search,
        host-name,
        netbios-name-servers,
        netbios-scope,
        interface-mtu,
        rfc3442-classless-static-routes,
        ntp-servers;
...

den Eintrag "domain-name-servers" deaktivieren, so wird der vom Server übermittelter Wert nicht berücksichtigt.

Resolvconf

/etc/resolvconf/resolv.conf.d/base - Standard DNS setzen
/etc/resolvconf/resolv.conf.d/head - Datei wird als erste abgearbeitet, hier kann der DNS gesetzt werden, der als erstes abgefragt werden soll.

/etc/resolvconf/resolv.conf.d/tail

# /etc/resolvconf/resolv.conf.d/tail
nameserver 8.8.8.8
search local.zz

- mit Resolvconf kann man auch einen temporären DNS Server setzen

echo "nameserver 192.168.2.1" | resolvconf -a tempdns

- DNS Eintrag wieder entfernen

resolvconf -d tempdns

- ersten DNS des Systems setzen

echo "nameserver 192.168.2.254" >> /etc/resolvconf/resolv.conf.d/head
Seitenanfang

NetzwerkManager

Seitenanfang

NetzwerkManager

Pakete für ubuntu

network-manager
network-manager-gnome
network-manager-kde - ist ein virtuelles Paket von plasma-widget-networkmanagement
network-manager-openvpn

Dateien des Networkmanager
/etc/NetworkManager/system-connections Verzeichnis der angelegten Netzwerkverbindungen, z.B. LAN, VLAN, VPN, u.a.
/var/lib/NetworkManager/NetworkManager.state Status des Networkmanager
   
Befehle des NetworkManagerCommandLine Tool
nmcli dev Device anzeigen
nmcli con up id <Name der Verbindung> Verbindung starten (Schreibweise der Verbindung wird berücksichtigt)
nmcli con down id <Name der Verbindung> Verbindung stoppen
nmcli networking on Netzwerk ein
nmcli networking off Netzwerk aus

- Network-Manager Service stoppen und deaktiviveren

service network-manager stop
update-rc.d network-manager disable
# /var/lib/NetworkManager/NetworkManager.state
NetworkingEnabled=false

Gnome Network Manager

- Einstellungen in /etc/network/interfaces, alle hier aufgeführten Netzwerkinterfaces werden von dem NetzwerkManager nicht mehr berücksichtigt.

auto lo
iface lo inet loopback

- NetworkManager managed=true setzen

# /etc/NetworkManager/nm-system-settings.conf
#
# /etc/default/NetworkManager
#
[main]
plugins=ifupdown,keyfile

[ifupdown]
# managed=false
managed=true

KDE Network Manager

zur Verwatung der Verbindungen muss das Miniprogramm "Netzwerkverwaltung" hinzugefügt werden, wenn es nicht vorhanden sein.

- Einstellungen in /etc/network/interfaces, alle hier aufgeführten Netzwerkinterfaces werden von dem NetzwerkManager nicht mehr berücksichtigt.

auto lo
iface lo inet loopback

- in der Datei /var/lib/NetworkManager/NetworkManager.state kann man den Network-Manager aktivieren

NetworkingEnabled=true
Miniprogramm Netzwerkverwaltung

- Netzwerkverbindung neu starten

service networking restart
Seitenanfang

Netplan (Desktop-Umgebung oder Systemd)

Wiki Netplan
man NetPlan

Verzeichnisse
/etc/netplan eigene Konfigurationsdateien
/run/netplan wird zur Laufzeit des Systems generiert
Befehle
netplan generate Konfiguration nach /run/netplan übernehmen, aber erst nach Neustart der Netzwerk-Dienste angewendet
netplan apply wie oben, Konfiguration wird sofort übernommen und angewendet
netplan try -timeout 180 neue Konfiguration wird für den angegebenen Zeitraum angewendet (zur Probe). Ideal für den Remote Einsatz, wenn die neue Konfiguration fehlerhaft ist. wird die alte im Beispiel nach 180 Sek. wieder aktiviert.
systemctl restart network-manager Network Manager neu starten
systemctl restart system-networkd Systemd Netzwerk Dienst neu starten

- Schnittstellen werden vom NetworkManager konfiguriert, die Schnittstellen werden dann erst erstellt, wenn sich jemand am Desktop anmeldet. Benutzt man vor der Anmeldung eine Konsole, ist das Netzwerk nicht verfügbar.

# /etc/netplan/01-network-manager-all.yaml
network:
  version: 2
  renderer: NetworkManager

- Schnittstellen werden von sysemd-networkd konfiguriert

# /etc/netplan/01-network-manager-all.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      match:
        macaddress: xx:xx:xx:xx:xx:xx
      set-name: eth0
      link: eth0
      dhcp4: yes
  vlans:
    vlan30:
      id: 30
      link: eth0
      dhcp4: yes
    vlan40:
      id: 40
      link: eth0
      dhcp4: no
      dhcp6: no
      addresses:
        - 192.168.40.15/24
        - fd01:edda:edda:40::15/64
      gateway4: 192.168.40.254
      nameservers:
        addresses: [192.168.40.254, 8.8.8.8, fd01:edda:edda:40::254]

!!! Schreibweise in der .yaml beachten, Comments mit # beginnen, einrücken mit zwei Leerzeichen wie in Python üblich !!!

Fehlermeldung
/etc/netplan/01-network-manager-all.yaml:5:14: Invalid YAML: inconsistent indentation:

sudo apt install yamllint
yamllint /etc/netplan/01-network-manager-all.yaml

Testen der Verbindungen

- ping Test über das Interface

ping -I vlan30 192.168.30.254

- systemd Network log anzeigen

journalctl -f -u systemd-networkd

- systemd Network Links

networkctl

- Device Link und IP-Adressen anzeigen

ip link show
ip addr show
Seitenanfang

sonstiges

Avahi-Wiki

Avahi Daemon (freie Implementation von Zeroconf) deaktivieren
/etc/default/avahi-daemon

AVAHI_DAEMON_START=0

Ubuntu Netzwerkmanager stoppen

/etc/dbus-1/event.d/25NetworkManager stop

WLAN Karteneinstellungen löschen

wlanconfig ath0 destroy

Port Knocking

http://www.portknocking.org/
fwknop
Knockd
http://www.zeroflux.org/projects/knock

Knockd

Konfigurationsdatei /etc/knockd.conf

# /etc/knockd.conf
[options]
	UseSyslog
	logfile = /var/log/knockd.log

[opencloseSSH]
	sequence      = 7000:tcp,8000:tcp,9000:tcp
	seq_timeout   = 10
	tcpflags      = syn
	command	      = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 --syn -j ACCEPT

[closeSSH]
	sequence      = 9000:tcp,8000:tcp,7000:tcp
	seq_timeout   = 10
	tcpflags      = syn
	command	      = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 --syn -j ACCEPT

Port öffnen

knock 192.168.0.1 7000:tcp,8000:tcp,9000:tcp

Port schließen

knock 192.168.0.1 9000:tcp,8000:tcp,7000:tcp

fwknop

/etc/fwknop/access.conf - Regeldatei des Servers
/etc/fwknop/fwknop.conf -

fwknop -A tcp/22 -a 192.168.1.136 -D 192.168.111.20

-A Service der freigeschaltet werden soll
-a Hostname oder IP des Clients
-D Hostname oder IP des Servers

Lease erneuern

- Parameter -r gibt die IP der Schnittstelle frei, mit dem zweiten Befehl wird eine IP angefordert.

dhclient -v -r eth0
dhclient -v eth0

Konfiguration mit zwei NE2000 Netzwerkkarten

in etc/conf.modules eintragen
alias eth0 ne
alias eth1 ne
options ne io=0x300,0x340 irq=11,10

anschliessend sollte IF-CONFIG die zweite NW Schnittstelle anzeigen (eth1)
bei PCI Karten genügt in der Regel der Aliaseintrag

PPPOE Paket von www.roaringpenguin.com für ADSL