Real time web analytics, Heat map tracking

Watchguard Firebox X-Core (X500/X700/X1000/X2500) - pfSense

Eine Watchguard Firebox X stellt eine solide Basis für eine pfSense-Firewall dar.

A. Die Hardware

Die Fireboxen der X Serie haben alle die gleiche Hardware:

  1. Celeron 1200 Mhz CPU, Sockel 370
  2. 128 (oder 256) PC133 MB SD-RAM
  3. eine bis zu 256 MB große CF-Karte
  4. einen PCI Steckplatz

Diese an sich für pfSense ausreichende Hardware lässt sich aufrüsten um den Firewalldurchsatz zu stiegern. Auf meiner Firebox verrrichtet nun ein 1.4 Ghz Pentium III mit 512 MB SD-RAM 133 seinen Dienst.

Auf dem Mainboard ist ein Anschluss für eine 2,5 IDE Festplatte vorhanden. Die CF-Card habe ich durch eine 60 GB 2,5 IDE Festplatte ersetzt um später für squid, den Proxy, genügend Speicherplatz zu haben.

Die unbeschreiblich lauten Gehäuselüfter habe ich durch Noisebolcker 40x40 Lüfter ersetzt einen niedrigen Sockel 370 CPU Kühler (für 1 HE Gehäuse, wobei ich diesen Lüfter wiederum durch ein leiseres Modell ersetzt habe). Auf dem Mainboard ist ein Anschluss für den CPU-Fan vorhanden und die Box kann damit problemlos in einem genutzten Büro betrieben werden.

B. Installation von pfSense

Standardmäßig bootet die Firebox nicht von CF-Karten, die größer als 256 MB sind. Diese BIOS-Einstellung lässt sich jedoch auch ohne Console Redirect oder VGA und PS/2-Adapter ändern, indem das BIOS durch Entfernen der Batterie, Warten und Wiedereinsetzen der Batterie auf dem Mainboard zurückgesetzt wird.

Um in das BIOS der Firebox zu gelangen ist ein VGA-Ausgang (nachdem man einmalig die Console Redirection aktiviert hat ist VGA nicht mehr nötig) und ein PS/2-Ausgang.

Den VGA-Ausgang erlangt man, indem man eine PCI-Grafikkarte in den freien PCI-Slot einbaut. Wegen des Gehäuses muss man dazu entweder das Mainboard ausbauen oder eine PCI-Riser-Card verwenden.

Für den PS/2-Ausgang muss man löten. Der Port ist auf dem Mainboard nur in Form einer Stiftleiste vorhanden. Diese ist mit PKMB1 beschriftet und befindet sich auf dem Mainboard direkt beim LCD-Panel.

Die Pin-Belegung ist auf dem Bild dargestellt (vielen Dank an Michael Stapelberg) hierfür.

Für den PS/2-Ausgang hat Roland Kretz †, dem ich an dieser Stelle besonders danken möchte, mir einen wunderbaren Adapter gelötet. Hierfür hat er von einem alten Mainboard die PS/2-Anschlüsse abgelötet und diese an ein Flachbandkabel angelötet. Ich hätte dies niemals hinbekommen.

An dieser Stelle möchte ich darauf hinweisen, dass eine Installtion von pfSense auf der Watchguard auch ohne VGA- und PS/2 Ausgang möglich ist. 

I. Installation mit Nullmodem-Kabel

Zur vollen Installation gehen Sie wie folgt vor, wenn Sie ein Nullmodem-Kabel zur Verfügung haben:

  1. Bauen Sie die Festplatte in einen Rechner mit VGA und Tastatur ein und installieren Sie auf diesem pfSense. Am Ende der Installation wählen Sie "Embedded Kernel".
  2. Bauen Sie die Festplatte wieder in die Firebox ein.
  3. Booten Sie die Box mit einem Terminalprogramm, wie z.B. Putty mit den Einstellungen Serial, dem Com-Port Ihres Rechners und der Geschwindigkeit 9600.
  4. Anschließend starten Sie die Box. Der gesamte Startvorgang (mit Ausnahme des BIOS Posts) wird im Terminalprogramm angezeigt.
  5. Sollte die Partition beim Booten nicht gemountet werden können, dies passiert, wenn die Platte bei der Installation auf Ihrem anderen Rechner (Punkt 1) an einem anderen IDE-Port hing, geben Sie ? ein. Nun werden Ihnen die vorhandenen Partition dargestellt. Mittels ufs:/dev/ und der direkt hieran anschließenden Eingabe der zuvor erkannten Parition kann diese gemountet werden und die Box starten nun.
  6. Konfigurieren Sie die Interfaces. Wenn Sie ein Interface mit einem Switch verbinden wird Ihnen die Portbezeichnung des jeweiligen Ports angegeben.
  7. Loggen Sie sich mittels dem Standard-Usernamen (admin) und dem Default-Passwort (pfsense) mittels http://192.168.1.1 auf Ihrem neuen pfSense an.
  8. Klicken Sie auf Diagnostics - Edit File und als Datei geben Sie /etc/fstab ein. Nachdem Sie die Datei geladen haben, geben Sie nun als erste Partition ad2s1a und als zweite ad2s1b (oder wenn unter Punkt 5 etwas anderes angegeben wurde dies) ein. Diese Einstellungen sind dann dauerhaft gespeichert.

Sollten Sie eine Compact Flash Card eingebaut haben und öffnen Sie beim ersten Boot mittels Eingabe von 7 im Boot Menü den Prompt. Dort geben Sie set hw.ata.ata_dma="0"  ein. Damit wird der DMA-Modus für die CF-Card deaktiviert. Anschließend einfach boot eingeben um zu starten. Anschließend kann wie unter Punkt 5, a der Beschreiben unten der DMA-Modus in der Datei /boot/loader.conf permanent deaktiviert werden.

II. Installation ohne Nullmodem-Kabel

Auch eine Installation ohne Nullmodem-Kabel ist möglich. Dies ist die Lösung für Eilige. Führen Sie folgende Schritte durch:

  1. Bauen Sie die Festplatte in einen Rechner mit VGA und Tastatur ein und installieren Sie auf diesem pfSense. Am Ende der Installation wählen Sie "Standard Kernel".
  2. Starten Sie den "Installationsrechner mit der noch eingebauten Festplatte auf der sich pfSense befindet.
  3. Konfigurieren Sie das WAN dort mit den Einstellungen für den Installations-Rechner (s.o. C, I, 6).
  4. Loggen Sie sich mittels dem Standard-Usernamen (admin) und dem Default-Passwort (pfsense) mittels http://192.168.1.1 auf Ihrem neuen pfSense an.
  5. Im WebInterface klicken Sie auf Diagnostics - Edit File und editieren Sie folgende Dateien: 
      a) /bei Verwendung von CF-Cards: boot/loader.conf editieren: hw.ata.ata_dma="0" einfügen
      b) /conf/config.xml editieren: unter <interfaces> ... <wan> re0
      c) /etc/fstab Laufwerke ggf. korrigieren zu:
    • ad0s1a und ad0s1b für CF-Card
    • ad2s1a und ad2s1b für 2,5 IDE Festplatte
  6. Bauen Sie die Karte bzw. die Festplatte in die Firebox ein und booten Sie diese. Anschließend ist die Firebox über den WAN-Port ansprechbar. Die IP bezieht diese von dem DHCP-Servers Ihres Netzwerkes. Die IP können Sie über Ihren vorhandenen Rechner ermitteln.

C. LCD aktivieren

Ab pfSense 2.1 stürzt LCDProc_dev regelmäßig ab. Daher muss wie folgt vorgegangen werden:

Installieren Sie LCDProc_dev und anschließend LCDProc_dev aktivieren Sie dieses mittels "Enable LCDproc at Startup". Als Einstellungen wählen Sie Com port - Parallel Port 1, Display Size - 2x20, Driver - Watchguard Firebox with SDEC und speichern Sie ab.

In der Datei /etc/rc.newwanip ersetzten Sie die Zeile

if (!is_ipaddr($oldip) || $curwanip != $oldip || !is_ipaddrv4($config['interfaces'][$interface]['ipaddr'])) {

durch

if (!is_ipaddr($oldip) || $curwanip != $oldip || !is_ipaddrv4($curwanip) {

Nach einem Neustart funktioniert das LCD ohne abzustürzen.

D. Arm/Disarm LED auf grün

Kopieren Sie die Datei WGXepc.sh, die Sie hier downloaden können, mittels WinSCP in das Verzeichnis /usr/local/etc/rc.d

  • Loggen Sie sich über die serielle Konsole oder über SSH in die Shell ein.
    Fall Sie ein nano-Image nutzen mounten Sie die CF-Karte zunächst mittels /etc/rc.conf_mount_rw als read/write.
  • Laden Sie die Datei WGXepc herunter: fetch -o /conf https://sites.google.com/site/pfsensefirebox/home/WGXepc
  • chmod 0755 /conf/WGXepc
  • chmod 0755 /usr/local/etc/rc.d/WGXepc.sh
  • Mounten Sie falls Sie ein nano-Image nutzen das Dateisystem wieder als read-only: /etc/rc.conf_mount_ro
  • Starten Sie die Box neu.

Natürlich kann man mittels WinSCP die Dateieigenschaften der beiden Files auf 0755 setzen.

WGXepc kontrolliert neben der Arm/Disarm Anzeige auf der Front der Watchguard auch die Geschwindigkeit der Kühler

Es gelten die folgenden Befehle

-f  kontrolliert die Lüftergeschwindigkeit gefolgt von einem hex-Wert zwischen 00-FF
-l  kontrolliert die Arm/Disarm Anzeige auf der Front mit folgenden Werten: green, red_flash, green_flash, off

E. Menü der seriellen Konsole aktivieren

Die Watchguard X500 zeigt bei aktivierter Konsole zwar den Bootvorgang an, leider erscheint jedoch nicht das pfSense Menü auf der Konsole. Dies lässt sich sehr leicht ändern.

a) bis pfSense 2.1

Zunächst kopieren Sie diese Datei mit WinSCP in das Verzeichnis /usr/local/share/misc und setzten Sie die Berechtigung auf 0755 ändern.

Anschließend muss noch die Datei /etc/rc editiert werden.

Hier ist vor dem "exit 0" am Ende der Datei der Befehl

# Firebox serial console "Band-Aid" Loop Fix
/usr/local/share/misc/serialbandaid.sh

einzufügen.

b) ab pfSense 2.1

Ab pfSense 2.1 muss lediglich im WebInterface die Verbindungsgeschwindigkeit der seriellen Konsole auf einen anderen Wert als 9600 eingestellt werden.