Возможно ли настроить аутентификацию OpenVPN по сертификату+ldap?
Настроил OpenVPN на аутентификацию по логину и паролю через ldap.
Теперь проявилась проблема, клиент с сертификатом напр. "test1" может аутентифицироваться в ldap под "test2".
Т.е. OpenVPN не проверяет соответствие Common Name сертификата и логина который вводит юзер, возможно ли это исправить?
Никогда не решал такую задачу, но я бы двигался в направлении скрипта аутентификации.
Нужно найти или написать простой shell скрипт который сравнит LDAP имя и CommonName.
И в случае несоответствия возвращать ошибку. При этом можно делать запись в журнал и отправлять оповещение администратору VPN.
Возможно openvpn-auth-ldap нужно будет отключить и проводить валидацию логина пользователя и проверку соответствий имени с commonname в его сертификате на стороне скрипта.
--auth-user-pass-verify /etc/openvpn/scripts/scriptname.sh file
--tmp-dir /dev/shm
Я бы внимательно проанализировал что делает --username-as-common-name опция. Не поможет ли она решить всё и сразу.
Думаю что таким образом вашу задачу можно решить.
Либо можно сделать патч для openvpn-auth-ldap и добавить опцию в конфиг.