Автоматизация 2FA OpenVPN соединения
Предполагается, что уже получен ovpn-конфиг для клиента в файле /etc/openvpn/client.ovpn. Предварительно понадобится установить пакеты xdotool, zbar-tools и oathtool:
apt install xdotool zbar-tools oathtool
Для получения времменного пина, потребуется секрет, который можно сгенерировать например, с помощью LinOTP. Если уже есть QR-код c секретом, сканируем картинку:
$zbarimg -q --raw /home/user/Downloads/qr.png otpauth://totp/LinOTP:username?secret=4AFBXRUS7C2JSZ7E9NSVJXY7TJEMHCUN&issuer=LinOTP
Требуемый секрет берётся из get-параметра secret. Далее нужно сгенерить файл с кредами для openvpn. Например так:
$printf "username\npassword" > /root/.cache/.vpnpass
Далее добавляем в /etc/openvpn/digitalms.ovpn строчку:
auth-user-pass /root/.cache/.vpnpass
Автоматически OpenVPN-соединение будет создаваться shell-скриптом:
#!/bin/bash oathtool -b --totp 4AFBXRUS7C2JSZ7E9NSVJXY7TJEMHCUN | xclip openvpn --config /etc/openvpn/digitalms.ovpn --daemon & xdotool key Shift+Insert
Этот скрипт можно поместить в /usr/local/sbin/ovpn-up и запускать командой:
sudo ovpn-up
Янчарук А.В.
29.02.2024 09:31
Комментарии:
Aleksey