pfsense

pfSense

pfSense ist eine Firewall-Distribution auf der Basis des Betriebssystems FreeBSD und des Paketfilters pf. (Wikipedia) In unserer Infrastruktur setzten wir an mehreren Stellen diese Firewalls ein, um unterschiedliche Aufgaben zu erfüllen. Ein Standard Anwendungsfall ist der Reverse Proxy mit der Zertifikatsverwaltung. Dies ermöglicht uns hinter einer IP-Adresse mehrere Webserver zu betreiben unter der Verwendung der HTTP, Port 80, und HTTPS, Port 443.

Im nachfolgenden Bereich wird die Einrichtung der Zertifikatsverwaltung sowie die eines Reverse Proxy beschrieben.

ACME steht für Automatic Certificate Management Environment und ermöglicht uns in diesem Setup, dass die pfSense die Zertifikate verwaltet für die dahinter liegenden Server. Da unser primäre Hoster ALL-INKL ist, verwenden wir hier eine manuelle Konfiguration.

Zunächst wird das Paket acme benötigt, welches im „Package Manager“ unter System installiert werden kann. ACME package

Unter dem Menüpunkt „Services“ wird nun der Dienst Acme Certificates angezeigt. Zuerst muss ein Account Key angelegt werden. * Vorsicht * Let's Encrypt erlaubt es lediglich eine gewisse Anzahl an Anfragen innerhalb eines Zeitraums zu tätigen, daher ist es ratsam zuerst den Staging (Testing) Server zu verwenden, um sicherzustellen, dass alle Einstellungen und Portweiterleitungen funktionieren.

Name: Lets Encrypt Production
Description: Production SSL Certificate
ACME Server: Let's Encrypt Production ACME v2 (Applies rate limits to certificate requests)
E-Mail Address: admin@example.com
Account key: "Create new account key"
ACME account registration: "Register ACME account key"

Es wird empfohlen die Option „Cron Entry“ unter dem General settings Reiter zu aktivieren für die automatische Erneuerung der Zertifikate.

Jetzt wird das erste Zertifikat unter dem Reiter Certificates erstellt.

Name:server.example.com
Description: Service Certificate
Acme Account: Lets Encrypt Production

Domain SAN list
Domainname: server.example.com
Method: DNS-All-inkl Kasserver
Login: username
Auth Type: plain
Auth Data: password

Dann die Einstellungen speichern. Im Anschluss kann das Zertifikat erzeugt werden, dies dauert einige Sekunden. Es wird ein grüner Text angezeigt, oberhalb des generierten Zertifikats wird angezeigt, ob es erfolgreich war oder nicht.

Ein Reverse-Proxy ist ein Proxy in einem Rechnernetz, der Ressourcen für einen externen Client von einem oder mehreren internen Servern holt. Die Umsetzung der Adresse ist atypisch und der Richtung des Aufrufs entgegengesetzt. Die wahre Adresse des internen Zielsystems bleibt dem externen Client verborgen. Wikipedia

Zunächst wird das Paket haproxy benötigt, welches im „Package Manager“ unter System installiert werden kann. HAProxy

Unter dem Menüpunkt „Services“ wird nun der Dienst HAProxy angezeigt. Zuerst wird das Backend angelegt.

Name: service

Server list
Name: service
Address: IP Adresse des Servers
Port: Port des Dienst

Health check method: Anwendungsfall spezifisch
Transparent ClientIP: Aktivierung empfohlen für logs und Zugriffsübersicht

Jetzt wird das Frontend angelegt. In diesem Fall legen wir einen HTTP und HTTPS Frontend an.

Name: WebApplications
Description: SSL Offloading

Server list
Listen address 1: WAN address (IPv4)
Port 1:80
Listen address 2: WAN address (IPv4)
Port 2:443
SSL Offloading: Ja

Access Control lists
Name: Service
Expression: Host matches
Value: service.example.com

Actions
Action: User Backend
Codition acl names: Service
backend: service

Certificate: Das zuvor erstellte Zertifikat via Lets Encrypt. Wenn weitere Zertifikate benötigt werden, können diese bei Additional certificates angegeben werden.

Damit der HAProxy tätig wird, muss dieser unter dem Settingsreiter aktiviert werden sowie noch weiter Einstellungen angepasst werden.

Maximum connections: 1000
Internal stats port: 2200
Max SSL Diffie-Hellman size: 2048

WireGuard ist eine freie Software zum Aufbau eines virtuellen privaten Netzwerkes über eine verschlüsselte Verbindung. Als Besonderheit ist diese VPN-Technik direkt im Linux-Kernel ab Version 5.6 integriert und erlaubt so eine höhere Verarbeitungsgeschwindigkeit als vergleichbare Lösungen wie IPsec oder OpenVPN.(Wikipedia)

Zunächst wird das Paket WireGuard benötigt, welches im „Package Manager“ unter System installiert werden kann. WireGuard

Nach der Installation steht unter dem Menüpunkt VPN WireGuard als Option zur Verfügung und kann in dem Reiter Settings aktiviert werden. Der erste Schritt zum Anlegen des VPNs ist ein neuer Tunnel.

Enable: Ja
Description: WireGuardServer
Listen Port: 51820
Interface Keys: Neuen Key generieren
Assignment: Interface hinzufügen

Nachdem der Tunnel vorbereitet ist muss die Firewall angepasst werden, um eingehende Verbindungen zuzulassen.

*FIREWALL REGEL*

WireGuard ist eine freie Software zum Aufbau eines virtuellen privaten Netzwerkes über eine verschlüsselte Verbindung. Als Besonderheit ist diese VPN-Technik direkt im Linux-Kernel ab Version 5.6 integriert und erlaubt so eine höhere Verarbeitungsgeschwindigkeit als vergleichbare Lösungen wie IPsec oder OpenVPN.(Wikipedia)

Zunächst wird das Paket WireGuard benötigt, welches im „Package Manager“ unter System installiert werden kann. WireGuard

Nach der Installation steht unter dem Menüpunkt VPN WireGuard als Option zur Verfügung und kann in dem Reiter Settings aktiviert werden. Der erste Schritt zum Anlegen des VPNs ist ein neuer Tunnel.

Description: 
Listen Port: 
Interface Keys: Neuen Key generieren
Assignment: Interface hinzufügen
  • pfsense.txt
  • Zuletzt geändert: 2023/11/20 13:08
  • von lehmann