Einrichtung der Endian-Firewall
Nachdem der DHCP- und der DNS-Server konfiguriert wurden, kann die Endian-Firewall installiert werden. Seit c't-Debian-Server 4 wird alternativ auch IPFire als Firewall mitgeliefert, welche ich aber nicht ausprobiert habe.
Voraussetzungen
Für den Betrieb der Firewall müssen mindestens zwei Netzwerkkarten vorhanden und von Linux erkannt worden sein. Häufig ist für die Zuordnung der Karten die Ausgabe von 'dmesg' hilfreich:
# dmesg | grep eth [...] eth0: RTL8168d/8111d at 0xe329c000, 00:1c:c0:de:f8:65, XID 281000c0 IRQ 2299 pegasus 1-7:1.0: eth1, ADMtek ADM8515 "Pegasus II" USB-2.0 Ethernet, 00:00:e8:00:15:96 [...]
Anhand dieser Ausgaben weiß ich, das eth0 die Onboard-Netzwerkkarte ist (Realtek 8168) und eth1 die USB-Karte (ADMtek ADM8515) ist. Jetzt kann ich noch überprüfen, ob die beiden Karten den richtigen Software-Bridges ("intern" bzw. "extern") zugeordnet sind:
# brctl show bridge name bridge id STP enabled interfaces dmz 8000.feffffffffff no extern 8000.0000e8001596 no eth1 intern 8000.001cc0def865 no eth0 wlan 8000.feffffffffff no
Wenn hier schon etwas nicht stimmt, sollte das am besten vor der Installation der Firewall behoben werden. Die Zuordnung der Netzwerkkarten zu den Bridges findet in der Datei /etc/network/interfaces statt.
Außerdem sollten (falls noch nicht geschehen) die beiden XEN-spezifischen Abschnitte in der Basisinstallation beachtet werden:
Installation
Die Installation von Endian kann einfach über ctsrvcfg durchgeführt werden. Zu diesem Zeitpunkt muss auf der /var-Partition eine gewisse Mindestmenge (1 GB reicht scheinbar) an Speicher zur Verfügung stehen, ansonsten klappt die Installation nicht. Wenn LVM benutzt wird (empfohlen), wird dieser Speicher später wieder freigegeben.
Die Endian-Firewall befindet sich in ctsrvcfg unter "domus". Spätestens nach dem Aufruf von "Fertig" im Hauptmenü werden die notwendigen Daten für die Firewall abgefragt. Sinnvolle Einstellungen für die IP-Adresse(n) habe ich bereits hier erläutert. Als Name der Volume group muss der gleiche Name wie während der Installation angegeben werden. Im Zweifelsfall kann auf einer anderen Konsole mit Hilfe von 'vgdisplay' nachgesehen werden.
Grundkonfiguration
Der Konfiguration der Endian-Firewall erfolgt so gut wie ausschließlich über den Webbrowser (von irgendeinem Client-PC aus). Das ctsrvcfg-Tool hat automatisch einen Link zur der Startseite der Firewall auf der Übersichtsseite des Servers erstellt. Die Übersichtsseite kann von jedem Client über die Adresse
http://server:82
erreicht werden. Beim Zugriff auf die Seite meckert der Browser erst einmal über das Server-Zertifikat, dieses behebe ich später. Beim ersten Aufruf der Seite sollte automatisch der Setup-Assistent der Endian-Firewall angezeigt werden.
Nach Eingabe der richtigen Zeitzone und abnicken der Lizenz werden die Passwörter für den SSH-Zugang und das Web-Interface abgefragt. Das SSH-Passwort funktioniert natürlich auch auf der XEN-Konsole (xm console endian), allerdings muss dafür erst ein kleiner Konfigurationsfehler gefixt werden.
Darauf folgt die Einstellung des roten Netzes (extern). Bei Verwendung eines ADSL-Modems über Ethernet (angeschlossen an die 2. Netzwerkkarte des Servers) muss hier "PPPoE" ausgewählt werden. Bei Kabelmodems (Internet über Kabelfernsehen) kenne ich mich nicht wirklich aus.
In Schritt 2 wird gefragt, ob ein oranges (DMZ) oder/und blaues (WLAN) vorhanden ist. Da die Firewall sowieso über 4 virtuelle Netzwerkkarten an die virtuellen Bridges in der Dom0 angeschlossen ist, kann man hier problemlos "Orange und Blau" auswählen, auch wenn der Server "nur" über 2 Netzwerkkarten verfügt.
Im 3. Schritt erfolgt dann die Zuordnung der 4 Netze (rot, grün, orange und blau) zu den (virtuellen) Netzwerkinterfaces. Hierbei ist wieder die Ausgabe von 'brctl show' hilfreich:
bridge name bridge id STP enabled interfaces
dmz 8000.feffffffffff no vif1.3
extern 8000.0000e8001596 no eth1
vif1.1
intern 8000.001cc0def865 no eth0
vif1.0
wlan 8000.feffffffffff no vif1.2
Wie man sieht, ist vif1.0 an der Bridge "intern", vif1.1 and der Bridge "extern", vif1.2 an der Bridge "wlan" und vif1.3 an der Bridge "dmz" angeschlossen. Die MAC-Adressen der Interfaces aus der Sicht der DomU werden mit dem Kommando 'xm network-list endian' angezeigt:
Idx BE MAC Addr. handle state evt-ch tx-/rx-ring-ref BE-path 0 0 00:16:3e:60:8f:91 0 4 11 2304 /2305 /local/domain/0/backend/vif/1/0 1 0 00:16:3e:25:e1:c7 1 4 12 2306 /2307 /local/domain/0/backend/vif/1/1 2 0 00:16:3e:11:c3:a2 2 4 13 2308 /2309 /local/domain/0/backend/vif/1/2 3 0 00:16:3e:2f:66:a0 3 4 14 2310 /2311 /local/domain/0/backend/vif/1/3
Zusammen mit der Ausgabe des vorherigen Befehls kann jetzt die richtige Zuordnung zu den Interfaces innerhalb des Setup-Assistenten im Browser durchgeführt werden. In meinem Fall muss ich das Kreuz für das grüne Netz bei dem Interface mit der MAC 00:16:3e:60:8f:91 und das Kreuz für das orange Netz bei dem Interface mit der MAC 00:16:3e:2f:66:a0 machen. Bei dem blauen Netz verfahre ich genauso.
In dem c't Artikel wird die Sache mit den MAC-Adressen umgekehrt angegangen. Hier werden die Adressen in der XEN-Konfiguration getauscht, so dass die Zuordnung zu den Interfaces in der Firewall am Ende ebenfalls passt.
Außerdem müssen in diesem Schritt die IP-Adressen für das orange und das blaue Netz eingeben werden. Wenn die Adressen für die Netze so wie in der Basisinstallation vorgeschlagen vergeben werden sollen, müssen hier die Adressen 192.168.1.1 für das orange Netz und 192.168.2.1 für das blaue Netz eingetragen werden.
Zuletzt stelle ich noch den Rechnernamen sinnvoll ein ("endian") und passe die Domain an die Einstellung für das Netzwerk an.
In Schritt 4 sollte jetzt nur noch ein Interface für das rote Netz übrig sein. Zusätzlich werden an dieser Stelle die Zugangsdaten eingegeben. Bei ADSL müssen normalerweise nur das Benutzername und das Passwort eingeben werden. Der DNS-Server wird überlicherweise automatisch vom Provider übertragen.
T-Online Kunden müssen beim Benutzernamen unmittelbar hintereinander die Anschlusskennung (a), die T-Online-Nummer (b), die Mitbenutzernummer (normalerweise '0001') gefolgt von einem "@t-online.de" eingeben. Bei sehr, sehr alten Verträgen entspricht die T-Online-Nummer noch der eigenen Telefonnummer und ist kürzer als 12 Zeichen. In diesem Fall muss vor der Mitbenutzernummer ('0001') noch ein Doppelkreuz (#) einfügt werden.
Beispiel1: aaaaaaaaaaaabbbbbbbbbbbb0001@t-online.de oder
Beispiel2: aaaaaaaaaaaabbbbbbbbbb#0001@t-online.de
Hiermit ist die Grundkonfiguration der Endian-Firewall abgeschlossen. Es folgt ein Neustart der virtuellen Maschine, welcher durchaus deutlich länger als die angegebenen 20 Sekunden dauern kann. Darauf erscheint die Startseite von Endian und das System versucht eine Verbindung zum Internet aufzubauen.
Ausgehende Firewall
Standardmäßig blockiert die Firewall nicht nur den Zugriff von außen, sondern reglementiert auch den Zugriff vom internen Netz auf das Internet. Dieses kann über das Web-Frontend unter "Firewall -> Ausgehender Datenverkehr" geändert werden. Auf Wunsch kann die ausgehende Firewall auch vollständig deaktiviert werden.
Zugriff über SSH
Wer über SSH auf die Firewall zugreifen möchte, muss den Zugang erst explizit aktivieren. Dieses ist unter "System -> SSH Zugang" möglich. Das Passwort wurde bereits während der Grundkonfiguration festgelegt.
Zugriff über die XEN-Konsole
Der Zugriff über die XEN-Konsole ist normalerweise mit dem Kommando 'xm console endian' (auf der Dom0) möglich. Ein Login als root (mit dem während der Grundkonfiguration festgelegtem Password) funktioniert aber erst, nachdem die erste Zeile der Datei /etc/securetty angepasst wurde:
--- vorher: --- xvc0 tty1 tty2 ... --- nachher: --- hvc0 tty1 tty2 ...
Dieses ist wohl nur über SSH möglich. Dazu muss allerdings erst wie oben beschrieben der SSH-Zugriff erlaubt werden. Die Änderung wird erst beim nächsten Start des Login-Programmes gültig, falls also auf der Konsole bereits nach dem Benutzernamen gefragt wird, muss der Vorgang einmal mit STRG+C abgebrochen werden.
Konfiguration der DNS-Blacklist (optional)
Die Endian-Firewall bringt einen DNS-Proxy mit, welcher alle DNS-Anfragen an den DNS-Server des Internetproviders weiterleitet (wird normalerweise automatisch bei jeder Einwahl konfiguriert). Normalerweise gibt es hier nichts weiter einzustellen, evtl. kann aber die Anti-Spyware Funktion zu Problemen führen:
In der Defaultkonfiguration wird einmal täglich eine sogenannte Blacklist heruntergeladen, welche eine Liste aller Domains enthält, die schon einmal in Zusammenhang mit Spyware standen. Alle DNS-Anfragen auf eine dieser Domainadressen werden mit einer festen Adresse (75.125.225.163, hinterlegt unter /var/efw/dnsmasq/default/settings) beantwortet. Dieser Server beantwortet alle Anfragen (unabhängig vom Protokoll) mit einer "1" ( test).
In meinem konkreten Fall ist die Domain "homelinux.org" auf dieser Liste gelandet, weshalb ich nicht mehr auf andere von mir verwaltete Server zugreifen kann. Um dieses Problem zu beheben, muss die Domain "homelinux.org" im Endian-Webinterface unter "Proxy->DNS->Anti-Spyware->Erlaubte Domains" eingetragen werden (es muss die gesamte Domain freigeschaltet werden, die Angabe einzelner Hosts funktioniert nicht).
Installation eigener SSL-Zertifikate (optional)
[19.09.2009]: hier schreibe ich die nächsten Tage weiter
Wie geht es weiter?
Anpassen der Paketquellen
Wenn die Internetverbindung soweit funktioniert, können die Paketquellen in der Dom0 ensprechend angepasst werden. Dazu werden in der Datei "/etc/apt/sources.list" die beiden Kommentarzeichen entfernt:
deb http://localhost:82/pkgs lenny main deb http://security.debian.org/ lenny/updates main contrib non-free deb http://www.heise.de/ct/projekte/srv/v4 debs/
Zusätzliche sollte auch ein Debian-Mirror angeben werden, da das lokale Archiv nur einen kleinen Teil aller Debian-Pakete (von der DVD) enthält:
deb http://ftp.de.debian.org/debian/ lenny main non-free contrib
Nach Eingabe von 'apt-get update' werden die Paketbeschreibungen von allen angegebenen Quellen heruntergeladen. Danach sollten am besten erst einmal alle Security-Updates eingespielt und ggf. ein Neustart durchgeführt werden.
Einrichten der Benutzerverwaltung
Da jetzt das Netzwerk (Lokal+Internet) soweit konfiguriert ist, sollte als einer der nächsten Schritte die Benutzerverwaltung einrichtet werden.