Atualmente estou configurando o OpenVPN para fornecer acesso corporativo a vários clientes. Nossa exigência é usar certificados, proteger com senha as chaves do cliente, bem como usar autenticação de fator duplo (MFA) por cliente.
Tenho vários tokens Fortinet FortiToken 200 que gostaria de usar, mas não consigo encontrar nenhuma informação que mostre como usar esses tokens com algo como OpenVPN. Depois de pesquisar mais um pouco, não consigo encontrar nenhuma informação que mostre como alguém pode usar um token físico com o OpenVPN.
Então, minha pergunta é: como posso usar um token físico com OpenVPN? Não posso usar algo como o Google Authenticator, pois planejamos ter clientes VPN também por meio de seus smartphones. A documentação de instruções do OpenVPN PKCS#11 está muito mal escrita.
Estou começando a acreditar que se o MFA for um requisito, o OpenVPN simplesmente não é uma opção viável neste momento.
Obrigado pela ajuda.
Responder1
Basicamente:
- Instale um driver pkcs#11 para seu token (pergunte ao fabricante do token se ele não fornecer um).
- Diga ao openvpn para usar esse driver e liste as chaves disponíveis no token:
openvpn --show-pkcs11-ids /path/to/pkcs11/driver.so
No seu arquivo de configuração, especifique o módulo e o ID serializado para sua chave na
--show-pkcs11-ids
saída, por exemplo:pkcs11-providers /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
pkcs11-id Gnome\x20Keyring/1\x2E0/1\x3AUSER\x3ADEFAULT/Gnome2\x20Key\x20Storage/417AEDAAB81FEF6AEBD1EC4 3D76A630CAAA4722A
(Certifique-se de escapar de qualquer barra invertida no pkcs-id, por exemplo, Gnome\x20Keyring
torna-se Gnome\\x20Keyring
.)