Skip to main content.

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
 

Ich war bis vor kurzem noch ohne Firewall im Internet unterwegs. Unter Linux kann man das (noch) riskieren. Ich hatte aber nicht mehr viele Dienste laufen, SAMBA musste ich abstellen, weil die meisten Port-Aufrufe aus dem Internet auf die bekannten Windows-Ports gingen.
Mit iptables und firehol hatte ich keine so guten Erfahrungen gemacht, da ich nicht viel Zeit in die Konfiguration investieren wollte. Ausserdem hatte ich noch eine Software gegen Portscans installiert, die ich zufällig unter den vielen APT-Pakten fand, aber ob ich diese korrekt installierte war mir nicht so klar.

Aber seit ein paar Tagen habe ich den ipcop Firewall in Betrieb und bin begeistert vom einfachen Handling!
Mein "Vorher-Nachher Test" mit einem Web-basierten Port-Scan Service war auch überzeugend: Alles "Grün" mein Rechner ist zu 99,99% abgesichert!

Das c't-Debian-Server Projekt

In der c't 4/2005 wurde das c't-Debian-Server Projekt vorgestellt. Mit der beigelegten CD kann ein Debian-Linux basierten Server installieren werden. Folgende Dienste und Funktionen können implementiert werden:

  • DHCP
  • DNS
  • Zugriff auf Windows-Domänen (Samba)
  • Mail-Server (POP/IMAP)
  • VLANs über WLAN mit IPsec
  • usw.

und als besonderes Schmankerl kann man einen Firewall (ipcop) in einer eigenen virtuellen Maschine (mit UML - User Mode Linux) betreiben!

Das war genau das, nach dem ich immer gesucht hatte. Als Besitzer eines DSL-Modems, wollte ich mit nicht noch einen zusätzlichen DSL-Router besorgen, das bedeutet, wieder ein Kabel mehr und wieder ein zusätzliches Steckernetzteil (plus Stromverbrauch).

Diese Aufgabenstellung (Routing und Firewall) müsste per Software genauso gut lösbar sein.

In der c't war gleich die fertige Software dazu enthalten.
Nur wollte ich nicht einen komplett neuen Server aufsetzen, sondern meine bestehende Installation beibehalten und nur um den Firewall ergänzen.

Bootfähigen USB-Stick erstellen

Da ich kein CD-Rom Laufwerk in meinem Rechner (VIA EPIA 6000) habe, wollte ich für den Notfall vorbereitet sein und erstellte zur Sicherheit einen bootfähiges Linux auf einem USB-Stick.

Die Beschreibung steht in einem eigenen Artikel.

Installation des Linux Kernels 2.4.27

Ich hatte noch den Kernel 2.4.25 im Einsatz. Nach dem Ergänzen der Datei /etc/apt/sources.list um die Zeile deb ftp://ftp.heise.de/pub/ct/projekte/srv binary/ und der Eingabe von apt-get update installierte ich das Kernel Image 2.4.27-ct-1.

Nach einem Reboot lief mein neuer Kernel !

Installation des Firewalls

Als nächstes kopierte ich mir wie hier beschrieben die Debian Pakete von der CD in das Verzeichnis /var/packages.

Nach einem erneuten Auruf von apt-get update konnte ich dann die ipcop-Software installieren: Zuerst mit apt-get install ctsrvcfg das Installationsmenu installieren, danach ctsrvcfg aufrufen und ipcop aus diesem Menu heraus auf die Festplatte bringen. Es werden dabei noch Kennungen und Passwörter für die ipcop-Administration und den DSL-Zugang abgefragt und die Konfigurationsdateien entsprechend erstellt.

{mospagebreak heading=Los gehts&title=Konfiguration}

Konfiguration des Firewalls

Es war nicht mehr viel zu konfigurieren, da die wichtigen Einstellungen schon von ctsrvcfg durchgeführt wurden.

Ich hatte allerdings Probleme dem ipcop eine eigene statische IP-Adresse zuzuweisen, denn er läuft ja als eigene getrennte Maschine in einem getrennten Adressbereich unter einem eigenen User.
Man muss sich auf dem ipcop-"Rechner" mit ssh -p 222 -l root ipcop anmelden um ihn zu konfigurieren. Das konnte ich aber nicht, weil er noch keine IP-Adresse hatte.
Es gab aber noch einen 2. Weg um sich auf dem ipcop-Rechner anzumelden mit: screen /dev/pts/0 oder 1, vorher mit ls -al /dev/pts überprüfen welches das richtige Terminal ist.

Nach einigem Suchen fand ich die Konfigurationsdatei in: /var/ipcop/ethernet/settings.

Dort trug ich unter "GREEN" (damit ist das LAN-Interface gemeint) die IP-Adresse, Netmask, Netaddress und Broadcast Address ein.

Nachdem ipcop jetzt erreichbar war konnte der Rest über das komfortable Web-Interface durchgeführt werden (https://ipcop:445). Dort wird der Firewall gestartet.

Es empfiehlt sich für Flatrate Besitzer, die Option "Beim Start von ipcop automatisch Verbindung herstellen" zu aktivieren.

Ipcop hat noch viele weitere Funktionen:

  • Statistiken
  • DNS-Server
  • DHCP-Server (jeweils pro Interface vorhanden!)
  • Web-Proxy
  • Network-shaping
  • VPN
  • etc.

Jetzt gibt es nur noch das br0 Device auf meinem Rechner, eth0 wird von ipcop "gemanaged".

Abschliessen noch ein Wort zur Performance: Meine Bedenken waren unbegründet, dass sich der Firewall auf meinem relativ langsamen Board (600 MHz) negativ bemerkbar macht. Bis jetzt hat sich ipcop max. 5 % der CPU-Leistung "geschnappt".
Wichtig ist, dass genügend Hauptspeicher zur Verfügung steht: mindestens 512 MByte.

Ich kann dieses Vorgehen wirklich nur jedem empfehlen (ein Firewall in einer eigenen virtuellen Maschine). Man spart sich Hardwarekosten, der ipcop ist allemal leistungsfähiger als jeder "Baumarkt DSL-Router" und das c't-Debian-Server Projekt kann als zentraler Server incl. Firewall für das ganze Heimnetzwerk eingesetzt werden.

Bücher zum Thema: ISBN: 3897213575 ISBN: 3897215063

Mehr Details findet man in der c't und im IPCop-Forum.

Inzwischen gibt es auch ein Forum zum c't Debian Server: ctserver.org.

Der Debian Server wurde weiterentwickelt und läuft jetzt unter Xen, weitere Details sind hier zu finden.

Tipps

  • Wenn der Firewall (ipcop) nicht mehr startet und man nicht mehr auf das Internet zugreifen kann, wurde meistens das Filesystem nicht sauber heruntergefahren und muss überprüft werden.
    Wichtig: ipcop muss mit /etc/init.d/ipcop stop beendet werden und es darf kein ipcop-Prozess mehr laufen (ps -ef|grep ipcop).
    Dann kann mit e2fsck /var/lib/uml/ipcop/ipcop.img und mit e2fsck /var/lib/uml/ipcop/ipcoplog.img das Filesystem des ipcop-Systems und das System mit den ipcop-Logging-Dateien getestet werden.
  • Wenn ein Windows-Client (über DHCP) die falsche IP-Adresse bekommt, hilft es oft den "Lease" zurückzusetzen:
    • Unter Windows 98/ME in der DOS-Box eingeben: ipconfig /release_all
    • Unter Windows 2000/XP: ipconfig /release *