pfSense installieren
By zefanja
[pfSense][1] gehört zu den am weitesten verbreiteten Open Source Firewalllösungen. Wir setzen sie seit einigen Jahren bei uns in der Schule ein und sind sehr zufrieden damit, weil sie einfach [viele Features][2] bietet, für die man woanders viel Geld hinlegen muss. Heute möchte ich deshalb zeigen wie man pfSense installieren und grundlegend einrichten kann. Davor möchte ich kurz auf verschiedene Hardware eingehen, die für den Betrieb von pfSense geeignet ist.
Welche Hardware brauche ich?
Allgemein kann man sagen, dass man für den Betrieb von pfSense theoretisch jeden Rechner nehmen kann, der mindestens zwei Netzwerkkarten hat. Das kann z.B. ein alter Computer sein, welchen man nicht mehr braucht und mit einer zweiten Netzwerkkarte ausstattet. Aber oft ist ein alter Rechner nicht sehr stromsparend und andere Alternativen sind angebrachter. Neben dem Stromverbrauch spielt vor allem der Einsatzzweck eine entscheidende Rolle. Es macht einen Unterschied, ob ich die Firewall zu Hause mit wenigen Benutzern einsetze oder in einer Schule oder einem Unternehmen mit wesentlich mehr Zugriffen.
Für den Heimgebrauch beliebt sind die APU2C4 Board von PC Engine, aber auch Kleinstrechner von Qotom (v.a. im asiatischen Raum). Für eine Schule oder Unternehmen ist – je nach Anforderung – ein Board mit mindestens 4 Netzwerkkarten zu empfehlen. Wir verwenden z.B. eine SG-4860 von Netgate. Wenn man bei Amazon oder AliExpress nach pfSense sucht, findet man viele Angebote. Wichtig ist nur, dass die CPU AES-NI unterstützt, da dieses Feature von pfSense in zukünftigen Versionen unbedingt nötig sein wird.
Auf der Website des pfSense Projekt gibt es noch ein paar [allgemeine Hinweise][3] zu den Hardwareanforderungen:
- Minimal → 512MB RAM, 500 Mhz CPU
- Empfohlen → 1GB RAM, 1Ghz CPU
Auch die verfügbare Bandbreite sollte bei der Hardwareauswahl berücksichtigt werden, da ansonsten pfSense zum Flaschenhals werden könnte.
- 10-20 Mbps → Intel oder AMD CPU mit mindestens 500MHz.
- 21-100 Mbps → aktuelle Intel oder AMD CPU mit 1Ghz
- 101-500 Mbps → aktuelle Intel oder AMD CPU mit mindestens 2 Ghz und einer PCI-e Netzwarkkarte
- 501+ Mbps → Serverhardware mit Mehrkern-CPUs mit jeweils mindestens 2 Ghz, PCI-e Netzwerkkarte
pfSense Installation vorbereiten
Image herunterladen
Bevor man mit der Installation beginnt, muss man wissen, welches pfSense Image man braucht. Das hängt z.B. davon ab, ob die verwendete Hardware einen VGA/HDMI Ausgang hat oder nur einen serielle Konsole. Oder ob man per CD, USB-Stick oder direkt auf die Festplatte installieren möchte. Deshalb möchte ich hier ein paar Hinweise geben:
Architektur:
- Netgate ADI braucht man nur, wenn man auch ein Netgate Produkt verwendet.
- AMD64 für alles andere (Intel / AMD 64bit CPU)
Art des Image
- USB Memstick Installer wird für die Installation mit einem USB-Stick benötigt
- CD Image (ISO) Installer wird für die Installation mit einer CD gebraucht oder für virtuelle Maschinen
Konsole
- seriell – wenn nur eine Serielle Schnittstelle verfügbar ist (USB oder RS-232)
- VGA – wenn die verwendete Hardware einen VGA/DVI oder HDMI Ausgang hat.
Wenn man weiß, welches Image man braucht, kann man es von der [pfSense-Website][4] herunterladen.
USB-Stick vorbereiten
Die Dokumentation von pfSense enthält viele [Informationen zur Vorbereitung][5] eines USB-Sticks. In unserem Beispiel gehen wir von einen USB Memstick VGA Installer aus. Zuerst sollte man den USB-Stick formatieren oder leeren. Das geht unter Linux sehr einfach mit
$ sudo dd if=/dev/zero of=/dev/sdz bs=1M count=1 ``` > **Hinweis: Unbedingt darauf achten, welches Gerät man hinter of=/dev/ angibt. Ansonsten kann es passieren, dass man seine Hauptpartition leert und somit Daten unwiederbringlich verloren sind!** Um den Gerätenamen herauszufinden, steckt man am besten den USB-Stick an und führt danach `dmesg` in einem Terminal aus. Dann sieht man, welches Gerätenamen der USB-Stick bekommen hat (oft ist es _/dev/sdb_). Anleitungen zum Leeren eines USB-Sticks unter Windows oder macOS finden sich in der oben verlinkten Dokumentation. Nun kann man als nächstes das heruntergeladene Image auf den USB-Stick schreiben.$ gzip -dc pfSense-memstick-2.4.4-RELEASE-amd64.img.gz | sudo dd of=/dev/sdz bs=1M $ sync ``` Der USB-Stick ist nun fertig vorbereitet. Als nächstes bootet man von diesem USB-Stick und kann die Installation beginnen. Je nach BIOS wird der Stick als USB-Gerät oder weitere Festplatte erkannt. Die Bootreihenfolge muss oft geändert werden, damit nicht von der 1. Festplatte gebootet wird. Die [Dokumentation][6] liefert auch einige Ideen, falls das Booten nicht klappen sollte. ## pfSense installieren Nach dem erfolgreichen Booten erscheint der Willkommensbildschirm von pfSense. Hier wählt man „_Install_„. Im nächsten Dialog kann man das Keyboard Layout festlegen. Für die Partitionierung nimmt man am besten „_Auto (UFS)_“ und bestätigt wieder mit Enter. Danach startet die automatische Installation. Ist die Installation beendet, wird man noch gefragt, ob man eine Shell öffnen möchte (kann man verneinen). Zum Schluss muss man das System neu starten („_Reboot_„). Beim anschließenden Start sollte man unbedingt darauf achten, dass nicht wieder vom USB-Stick gebootet wird, sondern von der Festplatte! ## Netzwerk-Schnittstellen einrichten ### Netzwerkkarten zuweisen Während des Neustarts versucht pfSense automatisch die WAN Schnittstelle zu konfigurieren. Die WAN Schnittstelle ist die Netzwerkkarte, die mit dem Router des Internetanbieters oder ganz allgemein mit dem Internet verbunden ist. Falls die automatische Konfiguration erfolgreich ist, erscheint das pfSense Konsolenmenü, ansonsten wird man mit einem Dialog begrüßt. Um die WAN und LAN Schnittstellen zu ändern, wählt man Nr. 1 „_Assign Interfaces_„. Nun muss man einige Fragen beantworten: * Should VLANs be set up now? → **n** (Nein) * Enter the WAN interface name or „a“ for auto-detection → hier muss man den Namen der WAN Netzwerkkarte eingeben. Die MAC-Adressen werden zu Beginn des Dialog angezeigt. In unserem Bsp. heißt sie **em0** * Enter the LAN interface name or „a“ for auto-detection → hier muss man den Namen der LAN Netzwerkkarte eingeben. In unserem Bsp. heißt sie **em1** * Do you want to proceed → **y** (Ja). Vorher wird noch eine kurze Zusammenfassung der Zuordnung angezeigt. ### IP-Adressen festlegen Falls an der WAN-Schnittstelle ein DHCP-Server läuft, sollte sie automatisch eine IP-Adresse bekommen haben. Falls nicht muss man sowohl für die WAN als auch die LAN Schnittstelle eine IP Adresse konfigurieren. Beispielhaft werde ich es hier für die LAN Schnittstelle zeigen. Dazu wählt man Nr. 2 „_Set interface(s) IP address_“ aus. * Enter the number of the interface you wish to configure → **2** für die LAN Schnittstelle * Enter the new LAN IPv4 address→ z.B. **10.10.10.1** oder **10.10.10.1/24** * Wenn man im vorherigen Schritt keine Netzwerkmaske angegeben hat, muss man es jetzt tun: Enter the new LAN IPv4 subnet bit count (1 t0 31). → **24** (entspricht 255.255.255.0, d.h. 254 IP Adressen). * In der nächsten Frage muss ein Gateway festgelegt werden. Bei einer LAN Schnittstelle ist das nicht nötig, nur bei einer WAN Schnittstelle. → einfach **ENTER** (für None) drücken * Enter the new LAN IPv6 address. Pressfor none → **ENTER** (für keine) * Do you want to enable the DHCP server on LAN? → **y** (Ja), außer es gibt bereits einen DHCP-Server im LAN-Netz. * Enter the start address of the IPv4 client address range → **10.10.10.10** (erste IP Adresse, die ein Client im LAN Netz bekommen kann) * Enter the end address of the IPv4 client address range → **10.10.10.200** (letzte IP Adresse, die ein Client im LAN Netz bekommen kann) * Do you want to revert to HTTP as the webConfigurator protocol? → **n** (nein, soll HTTPS bleiben) ## Weitere Einstellungen in der Weboberfläche Mit einem Rechner, der ebenfalls LAN Netz ist, kann man unter https://10.10.10.1 auf Weboberfläche von pfSense zugreifen, um einige wenige Grundeinstellungen vorzunehmen. Beim ersten Mal erscheint eine Zertifikatswarnung. Da es sich um ein selbst signiertes Zertifikat für die HTTPS-Verbindung handelt, muss man es noch akzeptieren. Die Standardzugangsdaten sind _**admin**_ mit dem Passwort _**pfsense**_. Nachdem Login wird man von einem Assistenten begrüßt. Im zweiten Schritt kann man der Firewall einen Hostname vergeben und die Domain eintragen. Weiterhin wichtig ist der primäre und Sekundäre DNS Server und ob der DNS-Server per DHCP an der WAN-Schnittstelle überschrieben werden darf (um z.B. den DNS des Internetproviders zu verwenden). In den nächsten Schritten stellt man die Zeitzone ein, überprüft noch einmal die Konfiguration der WAN und LAN Schnittstelle und sollte in Schritt 6 auf jeden Fall ein neues Admin-Passwort vergeben. Damit ist das Setup abgeschlossen. ## Fazit Die Installation von pfSense geht meist leicht von der Hand. Schwierigkeiten gibt es manchmal bei der Auswahl des richtigen Images für die Installation bzw. dem Booten vom USB-Stick oder der Einrichtung der seriellen Verbindung. Die Dokumentation von pfSense geht aber auf viele dieser Probleme ein und bietet Lösungsvorschläge an. Nach der anfänglichen Konfiguration ist die Firewall einsatzbereit. Allerdings kann man die Firewall noch stark erweitern und anpassen. Das soll Thema zukünftiger Artikel sein. [1]: https://zefanjas.de/tag/pfsense/ [2]: https://www.pfsense.org/about-pfsense/features.html [3]: https://www.pfsense.org/products/#requirements [4]: https://www.pfsense.org/download/ [5]: https://www.netgate.com/docs/pfsense/hardware/writing-disk-images.html [6]: https://www.netgate.com/docs/pfsense/install/installation-troubleshooting.html