OpenVPN: аутентификация не прошла? - PullRequest
0 голосов
/ 29 мая 2019

Когда я использую плагин для аутентификации на сервере server.conf, аутентификация не будет работать, но без него несуществующие пользователи также могут аутентифицироваться.

Я добавил следующие строки на сервере conf и clinet

Commands in the server.conf file
================================
mode server
tls-server
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-pam.so login
key-direction 0
================================

Commands in the client file
=================================
port 1194
proto udp
dev tun
nobind
key-direction 1
redirect-gateway def1
tls-version-min 1.2
auth SHA256
auth-user-pass
tls-client
remote-cert-tls server
resolv-retry infinite
persist-key
persist-tun
verb 3
===============================


Logs:
==============================================================
PLUGIN_CALL: POST /usr/lib64/openvpn/plugin/lib/openvpn-auth-pam.so/PLUGIN_AUTH_USER_PASS_VERIFY status=1
PLUGIN_CALL: plugin function PLUGIN_AUTH_USER_PASS_VERIFY failed with status 1: /usr/lib64/openvpn/plugin/lib/openvpn-auth-pam.so
TLS Auth Error: Auth Username/Password verification failed for peer
Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #7 / time = (1559124952) Wed May 29 10:15:52 2019 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:

openvpn[10420]: pam_unix(login:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=  user=*****```
==============================================================

1 Ответ

0 голосов
/ 29 мая 2019

Я использовал дифференцированный подход, хотя в производстве plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-pam.so login рекомендуется, но я взял один сценарий оболочки и получил аутентификацию, но помните, что это опасно.

добавьте следующие строки в ваш /etc/openvpn/server.conffile

--verify-cline-cert none
script-security 2
auth-user-pass-verify /etc/openvpn/example.sh via-file

Теперь создайте файл в /etc/openvpn/example.sh со следующим содержимым

!/bin/bash
echo "started"

username=`head -1 $1`
password=`tail -1 $1`

if grep "$username:$password" $0.passwd > /dev/null 2>&1
then
    exit 0
else
    if grep "$username" $0.passwd > /dev/null 2>&1
    then
        echo "auth-user-pass-verify: Wrong password entered for user '$username'"
    else
        echo "auth-user-pass-verify: Unknown user '$username'"
    fi
    exit 1
fi

Теперь создайте имя пользователя и пароль в /etc/openvpn/example.sh.passwd со следующим содержимым

userone:securepassworduserone
usertwo:securepasswordusertwo

Теперь создайте файл клиента, импортируйте и подключитесь, используя ваш пароль, но здесь я нахожусь в стеке, так как не хочу предоставлять файл клиента.

...