Real time web analytics, Heat map tracking

Watchguard Firebox X-Core-e (X550e/x750e/X1250e) - pfSense

A. Die Hardware

Die X-Core-e Fireboxes haben ungeachtet ihrer Bezeichnung grundsätzlich die gleiche Hardware.

  1.     einen Celeron 1300 (Sockel 478b)
  2.     512 MB PC533 DDR2-RAM
  3.     eine 128 MB CF-Karte
  4.     4 (Firebox X550e) oder 8 Broadcom (Firebox X750e, X1250e) 10/100/1000 NICs

Diese Aussattung reicht an sich für pfSense. Um den Firewalldurchsatz zu stiegern und um auch speicherintensive Packages wie snort oder squid problemslos zu betreiben kann die Firebox mit einem Pentium M, z.B. einem 760 (2,0 GHz, FSB 533) und mit bis zu 2 GB 533 DDR Ram aufgerüstet werden. Die Installation ist bei einer Pentium M CPU mit 400 MHz FSB reines Plug and Play. Die Jumper auf dem Mainboard müssen  nicht verändert werden.

Bei Pentium M CPU mit 533 FSB müssen die Jumper beider Felder (eines befindet sich links oben, eines links in der Mitte des Mainboards) entsprechend dem Aufdruck auf dem Mainboard für Dothan gesetzt werden.

Der Pentium M bietet im Vergleich zum verbauten Celeron neben der höheren Taktfrequenz noch den Vorteil, dass er SpeedStep unterstützt. In pfSense muss hierfür powerD aktiviert und als Einstellung Adaptive gesetzt werden. Hierdurch läuft die CPU, wenn sie nicht belastet wird, mit minimal 600 MHz statt 2000 Ghz und bleibt dadurch kühler und verbraucht weniger Energie.

Wird der Prozessor gewechselt, so sei angemerkt, dass bei dem orignal verbauten Celeron 1300 die Pins 1 und 6 auf on und die Pins 2 bis 4 auf off stehen. Bei einem Rückbau müssen Sie diese Pins wieder zurückstellen.

Wenn Sie ein CPU Upgrade durchführen wird der maximale Durchsatz auf den ersten vier Ports (0 bis 3) durch deren Anbindung über PCI auf ca. 385 MBit/s up und down begrenzt. Die Ports 4 bis 7 sind über PCIe angebunden. Dort gilt diese Begrenzung nicht.

B. Die Installation von pfSense

Die Firebox startet an sich ohne einen Console Redirect und abzekptiert nur CF-Karten bis 256 MB. Um in das BIOS zu gelangen muss zunächst der Console Redirect ermöglicht werden. Hierzu ist es notwendig das BIOS zu flashen. Das BIOS mit dem nach dieser Anleitung geflasht wird unterstützt einen Start auch von CF-Karten über 512 MB.

Hierzu muss zunächst das passende BIOS in dem der Console Redirect bereits aktiviert ist geflasht werden. Das bootfähige Image, das neben den BIOS Files auch ein FreeDOS mit aktiverter Konsole enthält finden Sie hier. Schreiben Sie dieses mit PhysDiskWrite oder Win32 Disk Imager auf eine 128 bis 156 MB große CF-Karte. Die Version, die bereits auf eine 16 MB CF Karte passt finden Sie hier. Diese Version enthält jedoch nicht das aktuellste BIOS. 

Flashen Sie das BIOS nur, wenn Sie wirklich wissen, was Sie tun. Das Flashen erfolgt auf Ihr Risiko.

Nun muss zunächst die bootfähige Karte in die Firebox eingesteckt werden und ein Nullmodem-Kabel an die Firebox angeschlossen werden und mit einem Terminalprogramm wie Putty oder Hyperterminal über die serielle Schnittstelle mit den Einstellungen 9600 8-N-1 mit einem PC verbunden werden. Nach dem Anschalteten der Firebox booted diese in das FreeDOS und nach 3 Beeps erscheint ein DOS-Prompt.

Ohne ein Nullmodem-Kabel können Sie das BIOS nicht updaten.

Im Dos-Prompt geben Sie nun

cd bios
biosid

ein.

Nun sollte dieser Output zu erkennen sein.

BIOS DATE  : 12/21/2005
CHIPSET ID : Alviso
BIOS ID    : 6A79GAKAC-00
BIOS TYPE  : Phoenix Technologies, Ltd.
OEM INFO   : **** BIOS Ver.ETAC0017 (2005/12/21> ****    

Sollte ein anderer Output gegeben sein flashen Sie Ihre Box auf keinen Fall!

Nun kann ein Backup des BIOS der Box mittels

awdflash backup1.bin /pn /sy /e

erstellt werden und anschließend mit

awdflash xebios~1.bin /py /sn /cc /e

die Firebox geflasht werden.

Wenn das Flashen fertig ist erscheint wieder der DOS-Prompt. Schalten Sie Ihre Box nie vor Fertigstellung des Flashvorgangs aus! Warten Sie im Zweifel bis zu 10 Minuten.

Konfigurieren Sie Ihr Terminalprogramm nun auf 19200 8N1 und starten sie die Firebox noch mit der FreeDOS-Cf-Karte neu und warten Sie bis Sie die 3 Beeps hören. Dann ist FreeDOS gebootet. Teilweise erfolgt beim ersten Start keine Anzeige des BIOS. Nachdem ein vollständiger Boot erfolgt ist, erfolgt die Anzeige.

Bei einigen Boxen muss die Flussteuerung im Terminalprogramm deaktivert oder auf Hardware gestellt werden. Dies funktioniert leider nicht mit Putty, sondern nur mit Hyperterminal. Teilweise habe ich mit HyperTerminal nichts angezeigt bekommen. Mit Putty hat es auf Anhieb funktioniert.

Nun ist der Startvorgang der Box auf dem Screen zu sehen. Drücken Sie nun die Tabulaturtaste um in das BIOS zu gelangen.

Wenn Sie das BIOS XEBIOS_81.bin (dargestellt in DOS als xebios~1.bin] geflasht haben müssen Sie die o.g. Festplattenparameter nicht eingeben. Bei dem BIOS 0.81 handelt es sich um ein modifiziertes BIOS einer Watchguard Firebox SSL (baugleich mit der X-Core-e Serie), die das Booten von Festplatten und CF-Karten beliebiger Größe unterstützt.

Sollte Sie eine andere BIOS Version geflasht haben, gehen Sie wie folgt vor:

Stellen Sie im BIOS die Festplatteneinstellungen auf 'manual', 'CHS' und setzen Sie die Heads auf 2. Nun startet die Firebox auch von CF-Karten, die größer als 256 MB sind.

Bei dieser Gelegenheit kann gleich das ACPI für die späterte Anzeige der CPU-Temperatur aktiviert werden.

Sollten Sie eine 2,5" Festplatte verbauen wollen benötigen Sie den IDE Adapter Dell Inspiron 5000 5000E HDD Adapter. Dieser passt perfekt und es gibt ihn günstig z.B. bei Amazon.

C. Die Konfiguration von pfSense

Die Konfiguration von pfSense funktioniert auf einer Firebox X550e ebenso auf einer X500. Aus diesem Grund verweise ich auf meinen diesbezüglichen Artikel.

Dieser einzige Unterschied besteht darin, dass das Skript Serialbandaid nicht installiert werden muss, denn das Menü der seriellen Konsole funktioniert bei einer Firebox X550e auf Anhieb.

D. LCD aktivieren

Installieren Sie das Packages LCDProc-Dev.

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

LCDProc_dev installieren und anschließend LCDProc_dev aktiviert ('Enable LCDproc at startup' aktivieren, Com port - Parallel Port 1, Display Size - 2x20, Driver - Watchguard Firebox with SDEC). Dann abspeichern.

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.

E. NIC-LED

Standardmäßig stimmt die Beleuchtung der LEDs der NICs nicht. Diese sind, obwohl ein NIC verbunden ist, aus und leuchten nur bei Aktivität.

1. bis pfSense 2.2

Dies lässt sich für pfSense 2.1 folgendermaßen beheben:

Zuerst müssen zwei Module heruntergeladen werden

2. ab pfSense 2.2

Da pfSense 2.2 auf FreeBSD 10.1 basiert funktionieren die o.g. Dateien nicht. Sie müssen daher die Datei if_msk.ko und die Datei if_sk.ko ins das Verzeichnis /boot/modules/, z.B. mit WinSCP oder Filezilla kopieren.

3. Aktivieren der Module (irrelevant für welche Version von pfSense)

Dann muss in der Datei /boot/loader.conf noch Folgendes eingetragen werden:

  • if_sk_load="yes"
  • if_msk_load="yes"

F. MSK-Problem beheben (nur x750e/x1250e)

Oft erzeugen die Ports 4 bis 7 bei den x750e und x1250e, d.h. die msk-Ports, Probleme. Diese lassen sich beheben indem in die Datei /boot/loader.conf

hw.msk.msi_disable="1"

eingetragen wird.

G. Arm-/Disarm-LED

Kopieren Sie die Datei WGXepc.sh (Download hier) 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 Firebox durch Eingabe von reboot 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

H. Speedstep aktivieren

Um Speedstep für geeignet Prozessoren zu aktivieren muss zunächst unter System - Advanced - Miscellaneous powerd aktiviert werden. Als Einstellung habe ich Adaptive gewählt. Sollten Sie einen sehr hohen Durchsatz ab 300 Mbit benötigen, so wählen Sie Hiadaptive.

Unter System - Advanced - System Tunable muss ein neuer Eintrag names kern.timecounter.hardware mit dem Wert i8254 erzeugt werden

Anschließen muss in der /boot/loader.conf folgendes eingetragen werden:

  • hint.p4tcc.0.disabled="1"
  • hint.acpi_throttle.0.disabled="1"
  • cpufreq_load="YES"

Dies funktionierte für alle Pentium Ms. Egal, ob diese 400 oder 533 MHz FSB haben. Probleme gab es nur beim Pentium M 760 (2.0 GHz, 533 FSB). Um für diesen SpeedStep zu aktivieren muss in /boot/loader.conf lediglich:

  • cpufreq_load="YES"

eingetragen werden.

I. CPU-Temperatur auf dem Dashboard anzeigen

Um die CPU-Temperatur anzuzeigen muss im BIOS zunächst das ACPI aktiviert werden.

1. bis pfSense 2.1

Um die CPU-Temperatur auf dem Dashboard anzuzeigen benötigen Sie zunächst die Datei coretemp.ko. Diese finden Sie hier. Kopieren Sie diese mittels WinSCP in /boot/kernel.

Bearbeiten Sie nun die Datei /usr/local/www/includes/functions.inc.php dahingehend, dass Code lautet

function has_temp() {

    /* no known temp monitors available at present */
    
    /* should only reach here if there is no hardware monitor */
    return true;
}

function get_temp() {
    $temp_out = "";
    exec("/sbin/sysctl hw.acpi.thermal.tz0.temperature | /usr/bin/awk '{ print $2 }' | /usr/bin/cut -d 'C' -f 1", $dfout);
    $temp_out = trim($dfout[0]);

    return $temp_out;
}

2. ab pfSense 2.1

Ab pfSense 2.1 lässt sich die Temperatur einfach mittels der Aktivierung des entsprechenden Widgets auf dem Dashboard aktivieren.

J. (ggf.) calcru: runtime went backwards Problem beheben

Sollte beim Booten der Firebox auf der Console "calcru: runtime went backwards" angezeigt werden, so liegt ein Problem mit dem nicht erkannten SpeedStep eines aufgerüsteten Prozessors vor. Dieses Problem tritt bei der Verwendung eines Pentium M 760, 2 GHz, 533 FSB auf. Während des Bootens wird "est: CPU supports Enhanced Speedstep, but is not recognized." angezeigt. 

Es lässt sich dadurch beheben, dass in der Datei /boot/loader.conf die Zeile hint.est.0.disabled="1" eingetragen wird.

Nach dem nächsten Boot ist SpeedStep deaktiviert. Die Geschwindigkeit der CPU wird dann, sofern powerd aktiviert ist, über das ACPI im Bedarfsfall reduziert.