От стороны клиента Вам нужна следующая опция предложить пользователю имя пользователя/пароль
auth-user-pass
На стороне сервера Вам нужна следующая опция проверить имя пользователя/пароль
auth-user-pass-verify scriptname method
scriptname
сценарий или программа, которую openvpn выполнит для проверки пользователя/передачи. Если код возврата сценария верен (0), пользователь зарегистрирован, иначе делаемый недействительным. method
способ, которым пользователь и параметры передачи передаются scriptname
.
Таким образом, у Вас должен быть сценарий/программа для проверки пользователей на основе ldap сервера, и Вы сделаны.
Править: связанная документация Используя альтернативные методы аутентификации
Мы также используем подключение L2TP VPN, и я мог бы заставить его работать в Ubuntu с помощью openswan и xl2tp. Думаю, в Debian должно быть похоже.
Сразу не получилось, пришлось поиграться с параметрами.
У меня сработало, когда я прокомментировал следующие строки:
#refuse-eap
#refuse-pap
#refuse-chap
#refuse-mschap
#refuse-mschap-v2
#require-mschap-v2
в /etc/ppp/your_vpn_connection_name.options.xl2tpd:
#debug
#dump
#record /var/log/pppd
plugin passprompt.so
ipcp-accept-local
ipcp-accept-remote
idle 72000
ktune
noproxyarp
asyncmap 0
#noccp
noauth
crtscts
lock
hide-password
modem
noipx
ipparam L2tpIPsecVpn-MyVPN
promptprog "/usr/bin/L2tpIPsecVpn"
#refuse-eap
#refuse-pap
#refuse-chap
#refuse-mschap
#refuse-mschap-v2
#require-mschap-v2
remotename ""
name "<your_username>"
password "<your_password>"
defaultroute
usepeerdns
Перезапустите ipsec и xl2tp после изменения этого файла.
Журналы на вашем сервере Debian или на сервере VPN также могут помочь при отладке.