Wenn Server nach einem Neustart die Netzwerkkarten vertauscht haben

Ich hatte letztlich das Problem, dass sich Netzwerkkarten bei Linux und Windows nach einem Neustart immer wieder vertauschten. Da die Server dadurch über Netzwerk nicht mehr erreichbar sind und ausfallen, ist das natürlich sehr ärgerlich. Da ich jetzt gerade eine neuen Firewall auf Basis von Ubuntu Linux mit 9 Netzwerkkarten und 100 VPN-Tunneln eingerichtet habe, wollte ich das Problem auf jeden Fall verhindern. Deshalb habe ich das Problem noch mal genauer untersuch und viel Doku dazu gelesen. Jetzt ist mir klar warum das Problem auftritt und ich kann es zukünftig verhindern.

Ursache: Da die Betriebssysteme zum schnellen Booten alles parallel starten, kommt es beim Booten regelmäßig dazu, dass die Hardwaretreiber in anderer Reihenfolge geladen werden. Wenn man im Server zwei Netzwerkkarten mit unterschiedlichen Treibern hat, kann dabei die Reihenfolge vertauscht werden, in der die Treiber geladen werden. Da bei älteren Windows- und Linuxservern die Netzwerkkarten einfach nur anhand der Startreihenfolge durchnummeriert werden, kann es somit vorkommen, dass die IP-Konfiguratiuonen der Karten durcheinander gewürfelt werden.

Lösung bei neueren Betriebssystemen: Bei neueren Betriebssystemen wird das Vertauschen der Karten verhindert. Windows merkt sich inzwischen für welche Karte eine Konfiguration war und zählt bei neuen Karten einfach immer weiter hoch. Es bindet (vermutlich anhand der Mac-Adresse oder Seriennummer) die Konfiguration fest an eine Netzwerkkarte und vergibt eine bereits vergebene Nummer kein zweites mal. Deshalb hat man bei Windows auch machmal einen Netzwerkadapter 5 oder 6, obwohl aktuell nur eine Karte im Betriebssystem steckt. Bei Linux wird der Steckplatz der Karte mit in den Namen der Netzwerkkarte aufgenommen. Eine Netzwerkkarte auf PCI-Slot 2 heißt dann z.B. p2p1, wobei das p2 dann für den PCI-Slot 2 und das p1 für den ersten Port der Karte steht. Theoretisch kann man bei Linux also eine neue Karte in den gleichen Slot stecken und die Konfiguration sollte noch funktionieren.

Statische, interne Route auf einem IPCop Version 2 setzen

Das setzen einer statischen und permanenten Route ist bei dem IPCop etwas kryptisch, da es dafür kein Menü gibt. Deshalb hier mal ein kleines Beispiel. Um das interne Netzwerk 192.168.140.0/24 auf das Gateway 172.30.1.9 zu routen, müssen in die datei /etc/rc.d/rc.event.local die folgenden Zeilen geschrieben werden.

if [ ${1} == "network" -a ${2} == "up" ]; then
    /sbin/ip route add 192.168.140.0/24 via 172.30.1.9
fi

Securepoint: Webinterface startet nicht

Wenn bei der Securepoint Firewall das Webinterface beim Start hängt, liegt die oft an einem schrägen Sonderzeichen, dass nicht gelesen werden kann. In diesem Fall kann man mit dem Befehlt

config convert

die Konfiguration bereinigen. Hinterher sollte das Webinterface wieder starten.

Securepoint Firewall: Konfiguration der XFRM-Schnittstelle

Die Securepoint Firewall verwendet die XFRM-Schnittstelle des Linux-Kernels, um IP-Sec-Verbindungen aufzubauen. Wenn man genauere Informationen über die Tunnel angezeigt bekommen möchte, kann man sich im CLI (Command Line Interface) mit dem Befehlt

ip xfrm policy | more

die genaue Konfigaration der XFRM-Schnittstelle anzeigen lassen.

Älteren Securepoint Firewalls Open-VPN beibringen

Bei Securepoint Firewalls die mit einem älteren Installationsmedium installiert wurden funktioniert die Anleitung für die Einrichtung von Open-VPN von Securepoint nicht, da es keine Zone vpn-openvpn und kein Interface tun0 gibt. Betroffen sind alle Firewalls die mit einem Installationsmedium installiert wurden, das älter als Version 2007r3 ist.

Wenn man Open-VPN auf solchen Firewalls verwenden möchte muss man die Zone und das Interface zuvor anlegen. Dies kann man am einfachsten über die CLI (Comman Line Interface) mit den folgenden Befehlen.

add zone vpn-openvpn
add interface tun0 10.10.14.1/24 0 1500 0 vpn-openvpn 0 10MBIT_HALF_DUPLEX

Danach muss man die Konfiguration mit dem Befehl config save speichern. Wenn man den Konfigurationsname nicht kennt, kann man diesen zuvor mit dem Befehl config list abfragen. Dieser Befehl gibt eine Liste mit allen vorhandenen Konfigurationen aus. In dieser Liste ist die aktuelle Startkonfiguration mit einem * gekennzeichnet.

Zum Schluss muss die Konfiguration dann noch aktiviert werden. Dies geschieht mit dem Befehl update interface. Dabei sollte man jedoch beachten, dass alle Interfaces neu gestartet werden. Das kann natürlich bestehende VPN- oder Netzwerk-Verbindungen kurzzeitig unterbrechen.

VPN-Anbindung eines Ubuntu an eine FRITZ!Box

Einige Fritzboxen können IPSec. Um dies für den Fernzugriff auf das Netzwerk hinter der Fritzbox nutzen zu können bietet AVM sogar einen einfach zu handhabenden IPSec-Client an. Diesen gibt es aber leider bis jetzt nur für Windows. Natürlich kann man auch von Ubuntu eine IPSec Verbindung zu einer Fritzbox aufbauen. Dazu benötigt man aber einen IPSec-Client. Am einfachsten ist es, wenn man hierzu den „Shrew Soft VPN Client“ verwendet, da dieser bei Ubuntu bereits als Paket im universe-Netzwerk bereit steht und einfach mit apt-get install ike installiert werden kann.

Eine sehr genaue Anleitung für die Konfiguration der Fritzbox und die Konfiguration des Clients findet man auf der Webseite von AVM.

Bei mir funktionierte die VPN-Verbindung allerdings erst, nachdem ich den rp-filter ausgeschaltet hatte. Dies erreicht man bei Ubuntu, indem man in den Dateien /etc/sysctl.conf und /etc/sysctl.d/10-network-security.conf die Zeilen rp_filter=1 in rp_filter=0 ändert und das System neu startet.

Weitere Informationen findet man im Wiki der Ubuntu-User unter: http://wiki.ubuntuusers.de/FritzBox_VPN

Umleitung eines IP TCP-Ports unter Linux

Da unter Linux nur root Anwendungen an IP TCP-Ports unter 1024 binden darf ist dies ohne Umwege für normale Benutzer nicht möglich. Es gibt aber oft Server-Anwendungen, die unter einem normalem Benutzer laufen und genau dies benötigen. Wenn man z.B. einen Apache Tomcat als Webserver einsetzen möchte, sollte dieser auch auf Port 80 laufen.

Um das Problem zu umgehen kann man mithilfe der folgenden iptables-Befehle einen Port der unter 1024 liegt auf einen anderen Port umleiten. Auf diese Weise kann man die Anwendung, die als normaler Benutzer läuft, auf einem Port der über 1024 liegt starten und hinterher den eigentlich benötigten Port auf diesen umleiten. In dem Beispiel wird der Port 80 auf den Port 8080 umgeleitet.

iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A OUTPUT -d hostname -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -d hostname -p tcp --dport 80 -j REDIRECT --to-ports 8080

Cisco Aironet 1242AG AccessPoint als WLAN Bridge

Im folgenden die Konfiguration für einen Cisco Aironet 1242AG AccessPoint, der als WLAN Bridge für ein kleines Netzwerk eingerichtet wurde. Das lokale Netzwerk hat das IP-Netz 192.168.1.0/24. Das Gateway und der DNS-Server haben die IP-Adresse 192.168.1.1 und der Accesspoint selber hat die IP-Adresse 192.168.1.2. Der Accesspoint fungiert zudem als DHCP-Server und verteilt dynamischen IP-Adressen im Bereich von 192.168.1.101 bis 192.168.1.199.



!
version 12.4
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname accesspoint
!
!
aaa new-model
!
!
aaa authentication login default local
aaa authorization exec default local 
!
aaa session-id common
!
resource policy
!
ip subnet-zero
ip dhcp use vrf connected
ip dhcp excluded-address 192.168.1.1 192.168.1.100
ip dhcp excluded-address 192.168.1.200 192.168.1.254
!
ip dhcp pool LAN
   network 192.168.1.0 255.255.255.0
   default-router 192.168.1.1 
   dns-server 192.168.1.1 
!
!
!
dot11 ssid WLAN
   authentication open 
   authentication key-management wpa
   wpa-psk ascii geheimespasswort
!         
power inline negotiation prestandard source
!
!
username admin privilege 15 password geheimespasswort
!
bridge irb
!
!
interface Dot11Radio0
 no ip address
 no ip route-cache
 !
 encryption mode ciphers tkip 
 !
 ssid WLAN
 !
 station-role root
 no cdp enable
 bridge-group 1
 bridge-group 1 subscriber-loop-control
 bridge-group 1 block-unknown-source
 no bridge-group 1 source-learning
 no bridge-group 1 unicast-flooding
 bridge-group 1 spanning-disabled
!
interface Dot11Radio1
 no ip address
 no ip route-cache
 shutdown
 no dfs band block
 channel dfs
 station-role root
 bridge-group 1
 bridge-group 1 subscriber-loop-control
 bridge-group 1 block-unknown-source
 no bridge-group 1 source-learning
 no bridge-group 1 unicast-flooding
 bridge-group 1 spanning-disabled
!
interface FastEthernet0
 no ip address
 no ip route-cache
 duplex auto
 speed auto
 no cdp enable
 bridge-group 1
 no bridge-group 1 source-learning
 bridge-group 1 spanning-disabled
!
interface BVI1
 ip address 192.168.1.2 255.255.255.0
 no ip route-cache
!
ip http server
ip http authentication aaa
no ip http secure-server
ip http help-path http://www.cisco.com/warp/public/779/smbiz/prodconfig/help/eag
bridge 1 route ip
!
!
!
line con 0
line vty 0 4
!
end

Bau einer günstigen und leistungsfähigen Firewall

Wenn einem die Möglichkeiten und die Geschwindigkeit einer Fritzbox von AVM nicht mehr ausreicht und eine Kommerzielle Firewall zu teuer ist gibt es ein Alternative. Mit Hilfe der kostenlosen Firewall- und Routersoftware IPCop und einer geeigneten Hardwareplattform kann man sich für unter 300,- € eine Firewall bauen, die deutlich mehr Geschwindigkeit und Konfigurationsmöglichkeiten als eine Fritzbox bietet. Im folgenden eine kleine Anleitung für den Bau einer IPCop Firewall für 256,55- €.

Hardware
Bei der Hardwareplattform habe ich mich für ein Asus M4A78-EM Mainborad mit AMD 780G Chipsatz (Sockel AM2, AM2+ und AM3), AMD Athlon 64 X2 5200+ (EE/65W) und 1 GB DDR2 RAM entschieden. Der 780G Chipsatz zeichnet sich durch ein sehr gutes Preis-Leistung-Verhältnis aus. Er bringt eine sehr Leistungsfähige Onboard-Grafikkarte (Radeon HD3200) sowie diverse Schnittstellen mit. Auf dem M4A78-EM µATX-Mainboard von Asus sind diverse Anschlüsse und Schnittstellen zu finden (LAN, IDE, Serial ATA/300, DVI/HDMI/VGA und USB 2.0), sodass nur noch weitere Netzwerkkarten benötigt werden. Im betrieb verbraucht ein IPCop auf dieser Hardwareplattform ca. 63 Watt.

Hier die komplette Liste der von mir verwendeten Hardware:

Hardwarekomponente Produktname Preis
Mainboard ASUS M4A78-EM (AM2+, 4xDDR2, VGA, M-ATX) 64,90- €
CPU CPU Box AMD Athlon 64 X2 5200+ AM2 2,7GHz EE/65W 59,90- €
RAM Kingston DDR-2 CL5 1024MB 800MHz 16,95- €
Netzwerkkarte LevelOne FNC-0109TX 10/100 Mbps (Realtek-Chip) 4,90- €
Festplatte Samsung EcoGreen F2 500GB SATA II (HD502HI) 55,00- €
Gehäuse Minitower Jersey ZYK-Micro ATX mit 400W Netzteil 54,90- €

Software
Die jeweils aktuelle Version von IPCop kann in Form eines ISO-Images auf der Webseite http://www.ipcop.org/ herunter geladen werden. Eine genaue Installationsanleitung ist unter http://www.ipcop.org/1.4.0/en/install/html/ zu finden. Wenn man auch die ausgehenden Verbindungen einschränken möchte benötigt man zusätzlich noch das Addon BOT (Block Out Traffic). Eine genaue Beschreibung der Installation findet man unter http://blockouttraffic.de/installation.php. Falls man noch weitere Erweiterungen wünscht, lohnt sich ein Blick auf die Seite http://firewalladdons.sourceforge.net/index.html. Dort findet man eine riesen Auswahl an weiteren Addons für den IPCop.

Die IP-Adresse einer Securepoint V2007nx Firewall per CLI ändern

Nach einer neuen Installation einer Securepoint V2007nx Firewall kann diese normaler Weise mit dem Securepoint Security Manager V2007nx über die IP-Adresse 192.168.175.1/24 konfiguriert werden. Oft ist für die Konfiguration jedoch eine andere interne oder externe IP-Adresse nötig. Z.B. wenn man innerhalb eines Netzwerkes durch Firewall oder VLANs auf bestimmte IP-Adress-Bereiche angewiesen ist. In diesem Fall kann man die IP-Adresse über das CLI (Comman Line Interface) ändern. In dieses gelangt man über die lokale Konsole (lokaler Monitor und Tastatur) oder per SSH. Der Standardbenutzer ist admin und das Standardkennwort ist unsecure.

In der CLI muss zunächst mit dem Befehl change ip die IP-Adresse geändert werden. Dies könnte das z.B. wie folgt aussehnen:

change ip eth1 192.168.175.1/24 10.1.2.1/24

Danach muss diese aktiviert werden:

update interface

Danach sollte man die Firewall über die neue IP-Adresse erreichen können.