pfSense mit OpenVPN Server
Dies ist die Dokumentation meiner openvpn / pfsense einrichtung mit einer separaten CA. Im Gegensatz zu dieser Beschreibung verwende ich hier nicht den Ansatz mit easyRSA.
Wie immer, aber hier besonders: Use at your own risk.
Die pfsense aktualisiert bei afraid.org einen dynamischen DNS eintrag namens openvpn.xyz.org
1. Erstellen der notwendigen Zertifikate auf einer Debian basierenden openssl CA
Zuerst das Serverzertifikat
openssl genrsa -out private/openvpn.xyz.org.key.pem 4096
openssl req -new -key private/openvpn.xyz.org.key.pem -out certs/openvpn.xyz.org.csr.pem
openssl ca -config openssl.cnf -extensions server_cert -notext -md sha256 -in certs/openvpn.xyz.org.csr.pem -out certs/openvpn.xyz.org.cert.pem
Dann ein separater Nutzer für die Openvpn Nutzung
openssl genrsa -out private/user1-openvpn.key.pem 4096
openssl req -new -key private/user1-openvpn.key.pem -out certs/user1-openvpn.csr.pem
openssl ca -config openssl.cnf -notext -md sha256 -in certs/user1-openvpn.csr.pem -out certs/user1-openvpn.cert.pem
2. Importieren des Zertifikates
Genau dieselbe Prozedur wir hier mit einem anderem Namen.
3. Erstellen der OpenVPN Server Konfiguration
Ich verwende hierzu den Wizard unter VPN \ OpenVPN
Hier wählen wir die vorhandene CA aus
und jetzt das gerade importierte Server Zertifikat
Beim Serversetup habe ich mich an die Default Werte gehalten.
Bei Tunnel Network ein neues noch nicht verwendetes Netzwerk eingeben und bei Local Network das Netzwerk angeben in das man gehen möchte (wenn man verschiedene VLANs hat). Bei Compression habe ich entgegen dem Screenshot später “Enabled with adaptiv…. “ ausgewählt.
Ich habe hier gleich die richtigen Regeln erstellen lassen
Und fertig
Optional habe ich noch einen User angelegt den ich aber noch nicht verwendet habe.
Da ich in den Einstellungen des OpenVPN Servers erst einmal nur “Remote Access SSL/TLS” ausgewählt habe. Das möchte ich später noch um ändern.
Dafür kann man hier schon mal den TLS Key kopieren. Den brauchen wir gleich auf der Client Seite.
So jetzt ist der Server fertig.
4. Erstellen einer OpenVPN Client Konfiguration auf Debian
Auf der Client Seite habe ich in einem Verzeichnis den gerade kopierten TLS key in eine Datei kopiert. Ausserdem brauchen wir noch die ca.cert und den user cert / key aus Schritt 1.
vi server-tls.key
paste the tls key from openvpn server
vi client.opvn
client
dev tun
proto udp
remote openvpn.xyz.org <your opvn port>
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca ca.crt
cert user1-openvpn.cert.pem
key openvpn.xyz.org.key.pem
ns-cert-type server
cipher AES-256-CBC
comp-lzo
verb 3
tls-auth server-tls.key 1
5. Verbindung aufbauen
Dann konnte ich mit
sudo openvpn --config client.ovpn
eine erfolgreiche Verbindung zu dem Server aufbauen
......
......
Sun Jun 11 17:35:10 2017 OPTIONS IMPORT: timers and/or timeouts modified
Sun Jun 11 17:35:10 2017 OPTIONS IMPORT: --ifconfig/up options modified
Sun Jun 11 17:35:10 2017 OPTIONS IMPORT: route options modified
Sun Jun 11 17:35:10 2017 OPTIONS IMPORT: route-related options modified
Sun Jun 11 17:35:10 2017 Preserving previous TUN/TAP instance: tun0
Sun Jun 11 17:35:10 2017 Initialization Sequence Completed
Offen / Todo
- Umstellen von SSL / TLS auf “SSL/TLS username password”
- Anbinden eines Android Clients