Das "URL-Table"-Alias bietet in Kombination mit den DROP/EDROP-Listen von Spamhaus einen interessanten Anwendungsfall. Denn diese Listen enthalten die Adressen von IP-Netzen, die bekanntermaßen für Spam, Malware-Verteilung oder andere kriminelle Aktivitäten genutzt werden – das Akronym DROP steht dabei übrigens für "Don't route or peer".
Blacklist für den Web-Proxy
Der Web-Proxy von OPNSense bringt einen kategoriebasierten Web-Filter mit. In Kombination mit verschiedenen Blacklists kann der Admin damit Zugriffe auf bestimmte URL- Kategorien wie zum Beispiel Pornografie, Gewalt, Drogen unterbinden. Das ist nicht nur für Unternehmen interessant, sondern auch überall dort, wo Jugendlichen ein Zugang zum Internet zur Verfügung gestellt werden soll (Jugendschutzgesetz). OPNSense arbeitet mit folgenden Blacklists-Anbietern zusammen: UT1-Blacklist der Universität von Toulouse (kostenfrei, Creative Commons license), Shallalist.de (für private und kommerzielle Nutzung kostenfrei, kommerzielle Benutzer müssen sich registrieren). URLBlacklist.com (kostenpflichtig), Squidblacklist.org (kostenpflichtig).Um die UT1-Blacklist in Ihren Web-Proxy einzubinden, klicken Sie im Dialog "Services / Proxy Server / Administration" auf den Karteireiter "Remote Access Control Lists" und dort auf das Pluszeichen rechts unten. Als Filename tragen Sie beispielsweise "UT1" ein und fügen dann die Download URL [6] für die Liste in das URL-Feld ein. Um die Liste erstmals herunterzuladen, klicken Sie nun auf den Button "Download ACLs & Apply". Nach Abschluss des Downloads öffnen Sie den Dialog wieder mit dem Stiftsymbol, per Default sind nun alle in der Liste verfügbaren Kategorien auf der Blacklist. Löschen Sie entweder alle Kategorien, die Sie nicht blockieren möchten, durch einen Klick auf das X-Zeichen. Alternativ entfernen sie mit einem Klick auf "Clear List" einfach zunächst alle Kategorien und fügen manuell dann jene wieder hinzu, die für die Benutzer gesperrt werden sollen.
OPNSense kann mit Hilfe des URL-Table-Alias regelmäßig die aktuellen (E)DROP-Listen von Spamhaus beziehen und jegliche Kommunikation mit den darin enthaltenen Netzen per Firewall-Regel unterbinden (Bild 2). Dazu legen Sie unter "Firewall / Aliases / View" für jede Liste zunächst ein eigenes Alias vom Typ "URL-Table (IPs)" an und tragen im jeweiligen URL-Feld die Download-Adressen für die Listen von Spamhaus ein:
https://www.spamhaus.org/drop/drop.txt
https://www.spamhaus.org/drop/edrop.txt
Anschließend erstellen Sie für jedes Alias Firewall-Regeln, jeweils für den ein- und den ausgehenden Datenverkehr:
Action: Block
Interface: WAN (LAN)
TCP/IP Version: IPv4
Source: spamhaus_drop (spamhaus_edrop)
Category: Blacklists
Description: Block DROP / EDROP
Unter "Firewall / Diagnostics / pfTables" lassen Sie sich anzeigen, welche Netzwerke durch den Einsatz der DROP- beziehungsweise EDROP-Liste geblacklistet wurden. Wenn Sie nun versuchen, mit einer der dort gelisteten IP-Adressen zu kommunizieren, zum Beispiel indem Sie einen Ping absetzen, wird der Traffic von der Firewall geblockt. Dasselbe gilt natürlich auch umgekehrt: Pakete aus einem dieser Netze, die am externen Interface der Firewall eintreffen, werden sofort verworfen.
Ein anderer häufig benötigter Anwendungsfall ist die Durchsetzung eines "Zwangs-Proxy" für die Clients hinter der Firewall (Bild 3). Der Web-Proxy von OPNSense basiert auf Squid und bietet die folgenden Funktionen:
- Caching von Webseiten.
- Traffic Management (Bandbreitenbeschränkung, Beschränkung der maximalen Up- oder Downloadgröße von Dateien).
- Access Control Lists (Einschränkungen für bestimmte Netze- und/oder IP-Adressen).
- ICAP: Internet Content Adaptation Protocol, zur Einbindung externer Viren-scanner, URL-Filter und so weiter.
- Authentifizierung über lokale Benutzerdatenbank, LDAP, RADIUS, Captive Portal.
- Remote Access Control Lists: kategoriebasierter Webfilter/Blacklists.
Möchten Sie sicherstellen, dass die Clients in Ihrem Netzwerk nur über den integrierten Web-Proxy auf das Internet zugreifen können, gehen Sie wie folgt vor: Aktivieren Sie den Web-Proxy unter "Services / Web Proxy / Administration / General Proxy Settings / Enable Proxy" und klicken Sie auf "Apply", die Dienstanzeige für den Web Proxy rechts oben wechselt dann auf grün. Auf dem Karteireiter "Forward Proxy" stellen Sie als Proxy-Interface "LAN" ein. Wenn Sie "Enable SSL Mode" aktivieren, werden auch HTTPS-Verbindungen über den Proxy geleitet. In diesem Fall sollten Sie allerdings Banking-Websites in die Ausnahmeliste unter "SSL no bumb sites" aufnehmen, wenn auch Dritte (zum Beispiel Arbeitnehmer) den Proxy nutzen sollen. Natürlich beherrscht der Web-Proxy auch die Authentfizierung der Benutzer gegen unterschiedliche Backends. Zur Auswahl stehen LDAP (inklusive Microsoft Active Directory), RADIUS, Lokale Benutzerdatenbank oder keine Authentifizierung. In unserem Beispiel betreiben wir den Proxy ohne Authentifizierung.
Damit die Benutzer den Web-Proxy nicht einfach umgehen können, benötigen wir nun noch zwei Firewall-Regeln. Klicken Sie unter "Firewall / Rules / LAN" auf das Pluszeichen und definieren Sie je eine Regel für das HTTP- und das HTTPS-Protokoll:
Action: Block
Interface: LAN
Protocol: TCP/UDP
Source: LAN net
Destination Port Range: HTTP
Category: Block Proxy Bypass
Description: Web-Proxynutzung erzwingen
Action: Block
Interface: LAN
Protocol: TCP/UDP
Source: LAN net
Destination Port Range: HTTPS
Category: Block Proxy Bypass
Description: Web-Proxynutzung erzwingen
Verschieben Sie die Regeln dann unter die zuvor angelegten Spamhaus-(E)DROP-Regeln. Beachten Sie, dass Sie alle Änderungen am Firewall-Regelwerk abschließend noch über den Button "Apply changes" bestätigen müssen, damit sie aktiv werden.
Die wirklich hervorragende Dokumentation von OPNSense [5] bietet für praktisch alle weiteren Anwendungsfälle wie zum Beispiel die Einrichtung der Hochverfügbarkeit mit CARP, die Konfiguration von VPN-Verbindungen oder die Nutzung von FreeRADIUS als Accounting-Server passende Howtos an.
Backup & Restore
OPNSense verfügt über einen sehr leistungsfähigen Backup- und Restore-Mechanismus. Im Dialog "System / Configuration / Back-ups" wird die Konfiguration dabei in eine – optional auch verschlüsselte – XML-Datei geschrieben. Die Datei kann dann heruntergeladen und auf einem lokalen oder externen Datenträger gespeichert werden. Alternativ kann OPNsense Konfigurationsbackups auch automatisch erstellen und mit Hilfe der Google API auf einem Google Drive ablegen. Die Backups werden dabei mit dem selben Algorithmus verschlüsselt wie bei den lokalen Sicherungen. Die Einrichtung der Google-API für das Online-Backup ist in einem eigenen Howto [7] beschrieben und schnell durchgeführt. Zum Restore einer Konfiguration laden Sie die Backup-Datei dann über das Webinterface hoch und geben das Passwort zur Entschlüsselung an. Dabei muss nicht immer ein vollständiges Backup zurückgespielt werden, denn über das Menü im Backup-Dialog können auch Teile der Konfiguration, zum Beispiel nur die Firewall-Regeln oder die IPSec-Konfiguration, wiederhergestellt werden.