TEST

Mini-PC als Router für Fortgeschrittene

Umfangreiche Möglichkeiten mit OPNsense analysiert - Viele Möglichkeiten mit OPNsense (2)

Portrait des Authors


Aliase, NAT und Firewall-Regeln

Werbung

Das zweite, wichtige Standbein der OPNsense sind dann natürlich die Firewall-Regeln. Unter den Einstellungen sind auch die sehr nützlichen Aliase zu finden und auch die NAT-Einstellungen (Network Address Translation) für die ausgehenden IPv4-Verbindungen. Die Aliase erfüllen den Zweck, dass der Administrator bei den Firewall-Regeln nicht die einzelnen Ports für die einzelnen Clients (oder auch Hosts) für jede einzelne Firewall-Regel hinterlegen muss. In diesem Fall würde die Ansammlung an Firewall-Regeln bis ins Unendliche anwachsen und darunter leidet dann natürlich die Übersicht.

Stattdessen lassen sich mehrere Hosts oder auch Ports und Port-Ranges kombinieren. Möglich ist es außerdem, Sperrlisten zu hinterlegen und diese als Alias in den Firewall-Regeln zu nutzen. Nachdem ein Alias angelegt wurde, muss unten zunächst auf "Anwenden" geklickt werden, damit die Änderungen wirksam werden.

In manchen Fällen ist es notwendig, dass trotz freigegebenen Firewall-Regeln eine manuelle Source-NAT-Regel mit PAT (Port Address Translation) zu erstellen, die Ports von der internen IPv4-Adresse in die externe, öffentliche IPv4-Adresse hin übersetzt. Häufig ist dies in Online-Multiplayer-Spielen erforderlich, um den NAT-Typen von strikt auf zumindest moderat zu ändern, der schon um einiges an Erleichterung führt. Aber auch DECT-Basen mit VoIP-Verbindungen können manuelles Source-NAT benötigen, um erst korrekt zu funktionieren und damit Gesprächsverbindungen aufgebaut werden können.

Was auch bei den Firewall-Regeln gilt: Sämtliche Regeln lassen sich bei Bedarf mit einem Klick auf das Play-Zeichen (und bei den Firewall-Regeln auf das Blockieren-Zeichen) auch schlicht deaktivieren. Weiter oben können natürlich auch Portweiterleitungen (Destination-NAT) eingerichtet werden.

Kommen wir nun zum Kern des Ganzen, den Firewall-Regeln selbst. Generell gilt bei den Firewall-Regeln: First match wins! Dies bedeutet, dass die hinterlegten Firewall-Regeln bei jeder Anfrage von oben nach unten abgearbeitet werden. Greift bereits eine der Regeln, werden die anderen Regeln für diese eine Anfrage außen vor gelassen.

Direkt nach der Installation von OPNsense wird das LAN-Interface neben zahlreichen automatisch erstellen Regeln mit zwei Firewall-Regeln vertraut gemacht. Mit ihnen werden jegliche IPv4- und IPv6-Verbindungen und Anfragen vom internen Netzwerk (LAN) ins Internet gestattet. Wer das nun einschränken möchte, kann diese beiden Regeln entweder deaktivieren oder gleich löschen. Einsteiger in diese Thematik sollten diese beiden Regeln vorerst nicht löschen.

Ein weiterer Tipp bei den Firewall-Regeln: Nur so viel wie nötig und so wenig wie möglich. Für eine bessere Übersicht (gerade für Einsteiger) sollten nur so viele Firewall-Regeln wie nötig erstellt werden. Um dies zu gewährleisten, sind die Aliase unverzichtbar. Denn mit ihnen können mehrere Hosts und/oder mehrere Ports oder gar Port-Ranges in einer einzigen Firewall-Regel verarbeitet werden.

Zusätzlich sollte bei einer blockierenden-Firewall-Regel auch wirklich nur die Aktion Blockieren (block) ausgewählt werden und nicht Ablehnen (reject). Dies gilt gerade für die Firewall-Regeln auf der WAN-Seite. Mit der Aktion Ablehnen (reject) wird dem anfragenden Host nämlich mitgeteilt, dass die Anfrage abgelehnt wurde und damit weiß der Host und schlimmstenfalls ein User mit bösen Absichten, dass sich hinter der IP-Adresse tatsächlich ein Host befindet, den es eventuell lohnt, anzugreifen.

Für das WAN-Interface sind standardmäßig (bis auf automatisch erstellte Regeln) keinerlei Firewall-Regeln vorhanden. Alles, was nicht von intern angefordert wurde, wird von der OPNsense konsequent geblockt. Wie in unserem Fall, kann auch das Thema GeoIP mit eingebunden werden. Mit GeoIP kann festgelegt werden, aus welchen Ländern dieser Welt generell Anfragen vorab aussortiert werden. Zusätzlich ist es auch möglich, die Drop-Listen von spamhaus.org mit einzupflegen, sodass auch solche Anfragen nicht durchgelassen werden.

Die ICMP-Echo-Anfragen der IPv6-Verbindungen können und sollten jedoch durchgelassen werden, da diese Echo-Anfragen zur IPv6-Spezifikation gehören. Gerade beim WAN-Interface sollten etwaige Firewall-Regeln mit bedacht eingesetzt werden. Sollen diverse Firewall-Regeln in den Protokolldateien mit aufgeführt werden, muss das i-Icon einmal angeklickt werden.

Sofern die IPv6-Verbindungen geduldet werden, sollte in den erweiterten Firewall-Einstellungen überprüft werden, ob die IPv6-Unterstützung aktiv ist. Wenn nicht, dann ganz oben den Haken setzen und unten auf speichern klicken. Die restlichen Einstellungen können so bleiben, wie sie sind.

In den Protokolldateien der Firewall-Sektion gibt es auch die Möglichkeit, die Aktionen der Firewall live zu verfolgen. Dabei wird lediglich zwischen pass (grün) und deny (rot) unterschieden. Um das Ganze zu filtern, ist es natürlich auch möglich, eigene Templates zu erstellen. So kann man beispielsweise ein Template erstellen, sodass nur die Block-Aktionen auf dem WAN-Interface angezeigt werden. Diese Templates lassen sich abspeichern und jederzeit wieder aktivieren.

DHCP für IPv4

Die Verwendung von DHCP (Dynamic Host Configuration Protocol) ist natürlich nicht verpflichtend, erleichtert das Netzwerk-Leben aber ungemein. Denn mit DHCP wird einem Client im internen Netzwerk eine IP-Adresse automatisiert zugeteilt, was andernfalls für jeden einzelnen Client manuell durchgeführt werden muss. Dem DHCP-Server muss man einen IP-Adressen-Pool mitteilen, über den er verfügen darf. Am Beispiel der IP-Adresse für das LAN-Interface mit 192.168.10.1. Der DHCP-Server benötigt einen Start- und einen End-Bereich:

Start-Bereich: 192.168.10.50
End-Bereich: 192.168.10.100

Wichtig ist natürlich, dass sich der Start- und End-Bereich im passenden Subnetz befinden. Andernfalls wirft die OPNsense ohnehin eine Warnung aus. Es ist auch möglich, IP-Adressen fest an MAC-Adressen zu binden und sogar neue und damit fremde Geräte zu ignorieren bzw. abzulehnen. Unterschieden wird dabei zwischen einer dynamischen und einer statischen Zuordnung. Eine IP-Zuordnung ohne MAC-Adressbindung ist dynamisch und zeitlich begrenzt (Lease-Time), inklusive MAC-Adressbindung mittels ARP (Address Resolution Protocol) hingegen statisch und damit festgelegt.

Einbruchserkennung: IDS und IPS

Zu den Bordmitteln bei OPNsense gehören natürlich auch das Intrusion Detection System (kurz: IDS) und Intrusion Prevention System (kurz: IPS). Bei IDS handelt es sich lediglich um eine Einbruchserkennung in die internen Netzwerke, ohne dass die OPNsense etwas dagegen unternimmt. Die Einbrüche werden daher also lediglich gemeldet. Beim Intrusion Prevention System hingegen wird die OPNsense die Einbruchsversuche nicht nur melden, sondern bestenfalls auch gleich verhindern.

Die Konfiguration von IDS und IPS geht für sich allein genommen auch in die Vollen. Generell müssen die gewünschten Listen heruntergeladen und aktiviert werden. Weiter geht es dann bei den Regeln. Je nach Klassentyp für den Angriff können einzelne Arten des Angriffs ausgewählt und aktiviert werden. Für den Anfang wird dabei dringend empfohlen, zunächst einzig IDS zu aktivieren und das Ganze verhalten zu beobachten. Wenn das System später zufriedenstellend arbeitet, kann man den IPS-Mode aktivieren.

Generell ist IDS und IPS jedoch optional und benötigt je nach Regelumfang auch einiges mehr an CPU-Leistung.

NTP: Netzwerk-Zeitserver

Mit NTP (Network Time Protocol) kann die OPNsense auch als Zeitserver für die internen Netzwerke fungieren. Bei den hinterlegten Zeit-Servern als Upstream kann absolut frei gewählt werden. Jedes Gateway der OPNsense für jedes interne Netzwerk dient dabei als Server-Adresse für die Zeit-Synchronisierung.

Unbound-DNS

Unbound DNS ist in der OPNsense der Default-Recoursor und ist für die IP-Namens-Auflösung unverzichtbar. DNS (Domain Name System) kann man sich als eine Art Telefonbuch vorstellen. In die Addresszeile gibt man die Internet-Adresse anstatt der IP-Adresse ein und ist deutlich einfacher zu merken. Im Hintergrund arbeitet das Internet jedoch stets mit IP-Adressen. Wird zum Beispiel www.hardwareluxx.de im Browser eingegeben, schaut der DNS-Server in seinem "Telefonbuch" nach, unter welcher IP-Adresse die Internetseite www.hardwareluxx.de erreichbar ist und teilt dies dem anfragenden Browser mit und wird mit dem Server passend zur gewünschten Internetseite verbunden.

Besondere Einstellungen muss man bei Unbound-DNS gar nicht vornehmen, alles ist schon korrekt vorkonfiguriert. Einzige Ausnahme besteht darin, die DNSSEC-Unterstützung zu aktivieren. Analog zu PiHole und Adguard Home kann Unbound-DNS auch tiefer konfiguriert werden und kann mithilfe der Sperrlisten Werbung gleich direkt herausfiltern. Die aktivierbaren Listen sind dabei umfangreich und die Auswahl kann individuell erfolgen. Möglich ist es natürlich auch, URLs auf die Whitelist zu setzen. Diese hinterlegten Einträge werden dann schlicht ignoriert. Um eine URL auf die Whitelist zu setzen, muss man folgendes eingeben: .*hardwareluxx.de 

Damit die gesamte Werbung auf Hardwareluxx angezeigt wird, müssen folgende URLs zur Whitelist hinzugefügt werden:

  • googleadservices.com
  • googlesyndication.com
  • googletagservices.com
  • 2mdn.net
  • safeframe.googlesyndication.com
  • pagead2.googlesyndication.com
  • google.com
  • vgwort.de
  • ssl-vg03.met.vgwort.de
  • facebook.com
  • business.facebook.com
  • gstatic.com
  • fbcdn.net

Schließlich muss oben noch der Haken bei Aktivieren gesetzt werden, unten auf "Anwenden" geklickt und der Unbound-DNS-Dienst neugestartet werden. Dies kann bereits oben rechts in der Ecke durchgeführt werden.

Ein wichtiger Punkt ist auch DNS over TLS, um die DNS-Anfragen selbst ebenfalls zu verschlüsseln. Am Beispiel mit den DNS-Servern von Google muss man folgendes hinterlegen:

  • Adresse: 8.8.8.8, Port 853: Hostname: dns.google.com
  • Adresse: 8.8.4.4, Port 853: Hostname: dns.google.com
  • Adresse: 2001:4860:4860::8888, Port 853: Hostname: dns.google.com
  • Adresse: 2001:4860:4860::8844, Port 853: Hostname: dns.google.com

Mit dem kleinen Zusatz-Plugin "Custom Options" können beispielsweise generell ganze Top-Level-Domains gesperrt werden. Am Beispiel der .zip-Domains können diese Adressen vornerein auf die Blacklist gesetzt werden, sodass kein Client eine solche Internet-Adresse mit .zip am Ende aufrufen kann.

Um diese Custom Options aufrufen zu können, muss unter OPNsense zunächst das Repository von Mimugmail mittels SSH hinzugefügt werden. Unter SSH loggt man sich mit seinen Login-Daten ein und wählt die Nummer 8 für Shell aus. Nun gibt man folgendes ein:

Anschließend noch pkg update eingeben sowie bestätigen und schon ist es getan. Das Repository von Mimugmail ist nun hinzugefügt. Mit der Web-GUI schaut man nun unter Erweiterungen nach uns sucht nach unboundcustom, wobei das Package selbst "os-unboundcustom-maxit" lautet.

2-Faktor-Authentifizierung

Die OPNsense bringt auch gleich die Möglichkeit mit, die Benutzer mit der 2-Faktor-Authentifizierung (kurz: 2FA) abzusichern. Hierfür muss unter System -> Zugang -> Server ein neuer Server erstellt werden. Als Typ ist Lokal + Zeitbasiertes Einmalpasswort auszuwählen. Natürlich gibt man diesem Server ganz oben noch einen Namen. Die Tokenlänge kann bei 6 verbleiben. Bei Zeitfenster 30 (Sekunden) hinterlegen und bei Gnadenfrist eine möglichst kleine Zahl in Sekunden. Wichtig ist der Haken ganz unten (Umgekehrte Tokensortierung). Ist der Haken nicht gesetzt, muss bei der Passworteingabe der 2FA-Code vor dem eigentlichen Kennwort eingegeben werden. Ist der Haken gesetzt, ist es genau andersherum: Erst das normale Kennwort und gleich im Anschluss der 2FA-Code.

Der nächste Schritt ist, in die Benutzereinstellungen zu gehen und unten bei OTP-Seed einen geheimen 160-Bit-Code erstellen zu lassen. Nachdem der Anwender auf "Speichern und Zurückkehren" geklickt hat, ist der Geheimcode sichtbar und kann in der 2FA-App des Vertrauens auf dem Smartphone hinterlegt werden.

Bevor man den neuen Zugangsserver scharf schaltet, sollte man mit dem Tester den Zugang zuvor ausprobieren. Ist die Anmeldung damit möglich, sollte unter System -> Einstellungen -> Verwaltung ganz unten bei Authentifizierung der neu erstellte 2FA-Zugangsserver ausgewählt werden. Nach dem Klick auf Speichern wird nun neben dem Kennwort auch der 2FA-Code für die OPNsense Anmeldung benötigt. Dies gilt dann auch für den SSH-Zugriff.

VPN: IPSec, OpenVPN und Wireguard

Und natürlich unterstützt OPNsense auch VPN (Virtual Private Network), mit dessen Hilfe der gesamte Internetverkehr in einem verschlüsselten Tunnel übertragen wird. Nativ wird IPSec und auch OpenVPN unterstützt, doch auch Wireguard lässt sich nach der Installation der Erweiterung nutzen. Die Einstellungsmöglichkeiten sind dabei sehr umfangreich und erfordern das entsprechende Wissen. Dies haben wir aus Zeitgründen nicht ausprobiert. Der Vollständigkeit halber wollten jedoch dennoch erwähnen, dass mit OPNsense selbstredend auch VPN-Verbindungen möglich sind.

Wer sich mit diesem Thema beschäftigt, wird auch um das Thema DynDNS nicht herumkommen. Der eigenen, öffentlichen IPv4-Adresse wird einem Hostname zugeordnet. Da sich die öffentliche IPv4-Adresse auch mal ändern kann, sorgt der DynDNS-Service dafür, dass die VPN-Verbindungen mit dem bestehenden DynDNS-Hostname und der geänderten IPv4-Adresse weiterhin möglich sind.