Die in Teil 1 schon erwähnte Sicherheitsrichtlinie schreibt auch vor, dass VPN-Zugänge logisch nicht an Maschinen sondern nur an Personen gebunden sein dürfen. Bisher hatten wir OpenVPN mit X.509-Zertifikaten zur Zugangsbeschränkung benutzt. Die Zertifikate lassen sich zwar mit einem Passwort verschlüsseln, das kann aber vom Besitzer des Zertifikats leicht geändert werden. Eine echte Zweifaktorauthentifizierung geht anders.
Da trifft es sich gut, dass OpenVPN auch nach Benutzername und Passwort fragen kann. Die können direkt hinterlegt sein, mit einem entsprechenden Plugin kann man aber PAM mitbenutzen:
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
Auf client-Seite muss die bestehende Konfigurationsdatei durch eine Zeile ergänzt werden, damit der Benutzer nach dem übermittelnden Passwort gefragt wird:
auth-user-pass
PAM hatten wir ja in Teil 1 schon an Active Directory angebunden, was wir hier jetzt problemlos mitbenutzen können. Fertig.
Einschränkung: da der OpenVPN-Endpunkt oft ein Rechner ist, auf dem sich die so „entstandenen“ Benutzer gar nicht interaktiv anmelden sollen, empfiehlt sich die Einrichtung einer restricted Shell und die entsprechende Anpassung der smb.conf:
template shell = /bin/rbash template homedir = /home/restricted
(und wenn man schon dabei ist, dann sollte man dort auch alle Services entfernen).