O artigo descreve como configurar o servidor OpenVPN para habilitar a autenticação de dois fatores com o bot do Telegram, que enviará uma mensagem de confirmação ao se conectar.
O OpenVPN é um servidor VPN de código aberto gratuito conhecido e amplamente usado para organizar o acesso seguro dos funcionários aos recursos internos da organização.
Como uma autenticação para conectar-se a um servidor VPN, geralmente é usada uma combinação de uma chave e um login / senha de usuário. Ao mesmo tempo, a senha armazenada no cliente transforma todo o conjunto em um único fator que não fornece o nível adequado de segurança. Um invasor, obtendo acesso a um computador cliente, também obtém acesso a um servidor VPN. Isso é especialmente verdadeiro para conectar-se a máquinas que executam o Windows.
O uso do segundo fator em 99% reduz o risco de acesso ilegal e não complica o processo de conexão dos usuários.
Faça uma reserva imediatamente, para a implementação, você precisará conectar um servidor de autenticação de terceiros multifactor.ru, no qual você poderá usar uma tarifa gratuita para suas necessidades.
Princípio da Operação
- O OpenVPN usa o plugin openvpn-plugin-auth-pam para autenticação
- O plug-in verifica a senha do usuário no servidor e solicita o segundo fator via protocolo RADIUS no serviço Multifactor
- O multifator envia uma mensagem através do bot do Telegram ao usuário com confirmação de acesso
- O usuário confirma a solicitação de acesso no bate-papo do Telegram e se conecta à VPN
Instale o servidor OpenVPN
Existem muitos artigos na Internet que descrevem o processo de instalação e configuração do OpenVPN, portanto, não os duplicamos. Se você precisar de ajuda, existem vários links para materiais de treinamento no final do artigo.
Configuração multifatorial
Vá para o sistema de gerenciamento Multifator , vá para a seção "Recursos" e crie uma nova VPN.
Após a criação, dois parâmetros estarão disponíveis para você: NAS-IDentifier e Shared Secret , eles serão necessários para a configuração subseqüente.

"", "All users" " ", VPN .
"VPN users", Telegram , VPN.

"" , VPN, "VPN users" . VPN .

OpenVPN
/etc/openvpn/server.conf PAM
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
/usr/lib/openvpn/plugins/ /usr/lib64/openvpn/plugins/ .
pam_radius_auth
$ sudo yum install pam_radius
/etc/pam_radius.conf RADIUS
radius.multifactor.ru shared_secret 40
:
- radius.multifactor.ru —
- shared_secret — VPN
- 40 —
( )
service-type openvpn
$ sudo vi /etc/pam.d/openvpn
auth required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth substack password-auth
account substack password-auth
PAM pam_radius_auth :
- skip_passwd — RADIUS ( ).
- client_id — [NAS-Identifier] VPN .
.
, .
OpenVPN
$ sudo systemctl restart openvpn@server
auth-user-pass
OpenVPN, , . Telegram

, .
, OpenVPN .
-
, :
- Em um servidor com OpenVPN, há um usuário com uma senha definida
- Acesso do servidor via porta UDP 1812 ao endereço radius.multifactor.ru
- Parâmetros de identificador de NAS e segredo compartilhado especificados corretamente
- Um sistema multifator possui um usuário com o mesmo login e acesso ao grupo de usuários VPN
- Método de autenticação configurado pelo usuário via Telegram
Se você não configurou o OpenVPN anteriormente, leia o artigo detalhado .
A instrução é feita com exemplos no CentOS 7.