darkshark
Goto Top

OPENVPN mit Radius-LDAP über Zertifikate

Huhu,


sitze nun schon etwas länger daran mich etwas in das Thema OPENVPN einzuarbeiten. Für die Authenifizierung kann ich bisher normale Logins benutzen, welche über das PAM Modul via MD5-Hash den Radius kontaktieren und der wiederrum den LDAP fragt, ob der jeweilige Nutzer berechtigt ist die VPN Verbindung zu nutzen.

Der nächste Schritt, den ich benötige wäre die Authentifizierung über ein Zertifikat, welches auf dem LDAP Server hinterlegt ist. Allerdings habe ich bisher keinen Anhaltspunkt gefunden wie ich weiter vorgehen soll.
Solange die Authenifizierung über das Zertifikat direkt am OPENVPN Server stattfindet gibt es keinerlei Probleme - aber wie bekomme ich es hin, dass das Zertifikat nur am LDAP direkt überprüft wird und nicht am openvpn Server???


Habe leider noch nichts dazu gefunden face-sad


Anbei meine Server-Konfig und - falls diese überhaupt benötigt wird - die PAM Konfig:


Server.conf
local 192.168.150.162
port 1194
proto udp
dev tun
ca ca.crt
cert /etc/openvpn/radius.crt
key /etc/openvpn/radius.key # This file should be kept secret
dh dh1024.pem
server 10.8.31.0 255.255.255.0
push "route 192.168.31.0 255.255.255.0"
client-to-client
keepalive 10 120
cipher BF-CBC # Blowfish (default)
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 6
mute 20
plugin /lib/security/openvpn-auth-pam.so radius
  1. username-as-common-name



PAM-Config
account required /lib/security/pam_radius_auth.so
auth required /lib/security/pam_radius_auth.so
account required /lib/security/pam_radius.so


Kurzfassung:
Authenifizierung am LDAP funktioniert mit Login/PW Eingabe, allerdings schaffe ich es nicht direkt das Zertifikat am LDAP gegenprüfen zu lassen. Bisher klappt es nur, wenn der OPENVPN Server das Zertifikat überprüft.


Für Hilfe oder Tips wäre ich dankbar :/

Content-Key: 75153

Url: https://administrator.de/contentid/75153

Printed on: April 24, 2024 at 22:04 o'clock

Member: darkshark
darkshark Dec 04, 2007 at 16:10:40 (UTC)
Goto Top
Ergänzung: zwischen dem ldap und dem openvpn server haengt noch der radius server über den die Anfrage laeuft - hatte ich vergessen zu erwähnen... das radius plugin ist auch installiert aber scheint auch keine zertifikatbasierende Überprüfung zu unterstützen
Member: darkshark
darkshark Dec 18, 2007 at 11:42:29 (UTC)
Goto Top
So nach langem hin und her habe ich soweit festgestellt, dass es nicht möglich ist (bitte korrgiert mich, wenn ich hier falsch liege - würde mich freuen), dass Zertifikat am Radius/LDAP gegenprüfen lassen und es dort verwaltet wird (gesperrt / gültig).

Eine Möglichkeit, die ich noch hätte wäre über den openvpn server den common name und vll. noch etwas mehr aus dem Zertifikat auszulesen und am radius/ldap prüfen zu lassen über ein skript. Leider hab ich keine AHnung, wie dieses aufgebaut werden sollte damit es das Zertifikat am Radius überprüft... dabei haben mir die man pages auch nichts gebracht.

Anbei ein Auszug aus den man pages... vll. kann mir da ja jemand helfen oder nen Ansatz geben.

Danke!!!

Gruß
darkshark


--tls-verify cmd
Execute shell command cmd to verify the X509 name of a pending TLS connection that has otherwise passed all other tests of certification (except for revocation via --crl-verify directive; the revocation test occurs after the --tls-verify test).

cmd should return 0 to allow the TLS handshake to proceed, or 1 to fail. cmd is executed as

cmd certificate_depth X509_NAME_oneline

This feature is useful if the peer you want to trust has a certificate which was signed by a certificate authority who also signed many other certificates, where you don't necessarily want to trust all of them, but rather be selective about which peer certificate you will accept. This feature allows you to write a script which will test the X509 name on a certificate and decide whether or not it should be accepted. For a simple perl script which will test the common name field on the certificate, see the file verify-cn in the OpenVPN distribution.

See the "Environmental Variables" section below for additional parameters passed as environmental variables.


Beispielskript:
Member: snake88
snake88 Jan 15, 2008 at 10:57:54 (UTC)
Goto Top
Ich befasse mich zurzeit wegen einem Projekt auch mit OpenVPN allerdings habe ich es noch nicht geschafft eine authentifizierung über radius laufen zu lassen...
es wäre super wenn du deinen Ansatz über ldap und radius als kleine anleitung posten könntest

mfg

snake88