Martin's Technik Website

Kategorie: Uncategorized

PFSense (GUI) mit LetsEncrypt Cert bei verwendetem HA-Proxy

In einer Umgebung mit einer PFSense als Firewall auf der ein HA-Proxy läuft sollen für die GUI selbst auch LetsEncypt Zertifikate verwendet werden. Möglichst so, dass nach der Implementierung keine weitere Wartung erforderlich ist.

Ausgangssituation:

  • HA-Proxy belegt bereits die WAN Ports 80 und 443 und ist für Server eingerichtet
  • Es sollen keine DNS TXT Records verwendet werden für LetsEncypt

Realisierungsidee:

Port 80 der PFSense Firewall auf der LAN Seite für den acme Client (LetsEncypt) verwenden und durch den HA Proxy schleusen. Absichern des Ports durch eine Zeitsteuerung (Shedule).

Umsetzung (auf PFSense):

Installation acme

Zunächst muss der acme Client installiert werden:

System -> Package Manager -> Available Packages

Acme Key erstellen und registrieren

dazu im Menu [Services] -> [Acme Certificates] auswählen

Dann den Key erstellen:

HA-Proxy für Acme Client einrichten

Backend erstellen

Unter [Services] -> [HA-Proxy] den Punkt [Backend] auswählen.

Nun das Backend anlegen. Wobei die IP Adresse die der LAN-Schnittstelle der PFSense sein muss – der Name kann frei vergeben werden. Healthcheck auf „none“ setzen.

Frontend erstellen

Unter [Services] -> [HA-Proxy] -> [Frontend]

Name und Description kann frei vergeben werden
2 ACL’s anlegen eine für den echten Hostname (public fqdn) und einmal für die Public IP. Ich empfehle die Expression „Host matches“.
und die Action denfinieren (also was soll passieren wenn die Regel zutrifft). Hier genau den Namen verwenden, den wir bei der Regel verwendet haben und das Backend, das vorher angelegt wurde.

Firewall Regel erstellen

Damit der Acme Client erreicht werden kann muss noch der Firewall die Erlaubnis für den Port erteilt werden. Das geht unter [Firewall] -> [Rules] -> [LAN]

Nun die Regel setzen, dass auf der (PFSense eigenen) LAN Adresse auf Port 80 (http) zugegriffen werden darf.

Admin Portredirection abschalten

Unter [System] -> [Advanced] -> [Admin Access]
Hier das Redirect ausschalten – damit auch hier der Port 80 frei ist.

Zertifikat erstellen

Die Vorbereitungen sind abgeschlossen und nun kann das eigentliche Zertifikat erstellt werden.

Unter [Services] -> [Acme] -> [Certificats] nun das Zertifikat wie folgt erstellen
Bei Methode „Standalone Server“ auswählen und den vollen eigenen Hostnamen (der der PFSense) angeben. Acme Account (Key) muss der sein, welchen wir vorher angelegt haben

Durch Dücken auf „issue“ wird das Zertifikat erstellt.

Auto Renew aktivieren

Unter [General settings] den Haken für Cron Entry setzen

Zertifikat eintragen

Unter [System] -> [Advanced] -> [Admin Access] das neue Zertifikat auswählen

Sicherheit: Portregel beschränken

Zur Sicherheit richten wir noch einen Sheduler ein, damit der Port 80 auf der Firewall nur dann geöffnet ist, wenn auch ein Renewal gemacht wird.

[Firewall] -> [Schedules] auswählen und auf Add klicken
Name und Beschreibung vegeben. Auf die Tage (alle) klicken. und bei Time 3:15 bis 3:30 eingeben! Keine andere Zeit verwenden! Dann [Add Time] und [Save]

Zuletzt muss der Zeitplan noch in der Regel für den Port 80 hinterlegt werden. Dazu gehen wir nochmal in die Firewallregel die wir vorher erstellt haben und wählen unten den Punkt [Show advanced Options] aus.

Fertig. Wenn wir nun die Firewall über den public Name aufrufen bekommen wir keinen Zertifikats Fehler mehr.

KeepPass unter Linux (Ubuntu) installieren und verwenden

KeePass (KeePassX) unter Ubuntu (18.04 Desktop) installieren

Für die Installation von KeePass unter Unbunt setze ich zunächst ein installiertes Ubuntu Desktop System voraus. KeePass ist für Linux nicht direkt verfügbar deshalb muss man auf KeePassX zurückgreifen. Es ist aber kein Problem, denn KeePassX ist der direkte Linux Ableger und arbeitet problemlos mit unter Windows angelegten KDBX-Datenbanken zusammen.

Ablauf der Installation

Zunächst muss ein Terminalfenster geöffnet werden. Dazu auf dem Desktop die rechte Mousetaste drücken und [Terminal öffnen] auswählen.

Terminalfenster_open

Im Terminalfenster den Befehl

sudo -s

eingeben. Danach den Benutzernamen (Ubuntu Anmeldung) und das Login Kennwort – das ist notwendig um als Admin die Anwendung installieren zu können:

sudo_login

Die eigentliche Installation wird dann mit folgendem Kommando ausgeführt:

apt_install

apt install keepassx

keepass_inst

Der Rechner beginnt mit der Installation und fragt nochmal nach, ob alle erforderlichen Dateien installiert werden dürfen. Hier muss man mit J antworten. Wenn die Installation erfolgt ist kann man das Terminal wieder schließen. Die Anwendung ist nun installiert!

Erster Start von KeePassX

Die Anwendung befindet sich noch nicht auf dem Desktop. Man kann sie wie folgt in die Seitenleiste (Favoriten) hinzufügen, in dem man unten links auf die 9 Punkte klickt:

Anwendungsauswahl

Danach das Symbol für KeePassX auswählen,

KeePassX

dann rechte Mousetaste drücken und [Zu Favoriten hinzufügen] anklicken.

Wie man eine neue KeePass Datenbank erstellt habe ich hier beschrieben.

SSL-Zertifikate in KeePass speichern

SSL-Zertifikate in KeePass speichern

Mit der Zeit erwirbt man einige SSL-Zertifikate – oder legt selbst welche an oder man holt sich welche bei Let’s Encrypt. Meine Fragestellung war  – wie soll ich die Zertifikate ablegen und dass so, dass ich sie auch wieder finde.

Beste Lösung für mich war – ich lege sie in KeePass ab und das so, dass ich sie auch schnell wieder verwenden kann. (Wie man KeePass installiert und verwendet habe ich hier beschrieben).

SSL-Zertifikat  selbst erstellen

Zunächst benötigt man einen Linux Rechner. Mit dem Rechner verbinden wir uns über Putty per SSH. Dann die folgenden Befehle eingeben:

sudo -s
cd /tmp
openssl req -new -nodes -keyout server.key -out server.csr -newkey rsa:4096

Die Fragen auf der Konsole wie folgt beantworten (bitte dabei die eigenen Infos verwenden):
Country Name (2 letter code) [AU]: DE  (Wenn es sich um eine Deutsche Website handelt)
State or Province Name (full name) [Some-State]:Hessen
Locality Name (eg, city) []:Frankfurt
Organization Name (eg, company) [Internet Widgits Pty Ltd]:pscr.com
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:mail.pscr.de
Email Address []: xyz@spcr.com

Fertig – das Zertifikat ist nun angelegt. Nun müssen die Daten in KeePass übernommen werden – um sie bei entsprechenden Servern verwenden zu können.

Auf der Konsole:

cat server.csr

(nun mit der Mouse den Teil des Zertifikats markieren und dann CTRL und C Tasten drücken)

Dann KepPass öffnen und einen Eintag anlegen:

New Entry

Einen sprechenden Namen vergeben:

Namen vergeben

Dann auf [Advanced] klicken:

Add auswählen

Nun [Add] auswählen und klicken.

Namen vergeben

Einen sprechenden Namen vergeben – wie z. B. meinewebsisite-ssl-Zertifikat. Dann über [CTRL] + [V] in das untere Feld das kopierte Ergebnis von cat server.csr einfügen.

Wieder auf die Konsole gehen und den Befehl cat server.key eingeben. Die Bildschirmausgabe markieren und mit [ctrl] und [C] kopieren. Danach gehen wir wieder auf KeePass um den private Key zu sichern – wieder auf [Add] klicken . Sprechenden Namen vergeben und in das Feld [Value] mit [ctrl] + [V] den kopierten  Inhalt einfügen

priv Kee sichern

Fertig!

© 2024 mpmic.de

Theme von Anders NorénHoch ↑