web-dev-qa-db-fra.com

OpenVPN - Authentification par mot de passe uniquement

Lorsque j'utilise OpenVPN Client pour Windows, je ne peux me connecter au serveur OpenVPN qu'avec un nom d'utilisateur et un mot de passe. Je n'arrive pas à comprendre comment faire la même chose dans Ubuntu. Il semble qu'une sorte de cert est nécessaire.

Toute idée de comment s'authentifier avec un serveur OpenVPN avec seulement un nom d'utilisateur et un mot de passe?

9
kbuilds

Vous pouvez vous authentifier à l’aide d’un nom d’utilisateur/mot de passe parfaitement sans certificat de serveur/CA. Cependant, je recommande vivement en le configurant pour le vérifier avec votre certificat de CA afin de prévenir les attaques Man-in-the-Middle.

Sans vérification du serveur, n'importe qui peut emprunter l'identité de votre serveur OpenVPN et simplement accepter votre nom d'utilisateur/mot de passe. Résultats:

  • L'attaquant peut intercepter tout le trafic. Comme vous ne vérifiez pas le serveur auquel vous vous connectez, n'importe qui peut prétendre être votre serveur sur un réseau public (ou sur un réseau privé contrôlé par l'attaquant).
  • L'attaquant connaît votre combinaison nom d'utilisateur/mot de passe. Très très mauvais si vous réutilisez le même mot de passe pour d'autres choses.

Dans Network Manager, cela fonctionne correctement sans certificat CA, comme indiqué ci-dessous, mais ne l'utilisez pas comme ça! Si vous n'utilisez aucun certificat de serveur/autorité de certification sous Windows, vous êtes vraiment vulnérable aux attaques ci-dessus.

enter image description here

5
gertvdijk

J'ai trouvé la réponse ici: http://openvpn.net/index.php/open-source/documentation/howto.html#auth

N'oubliez pas que vous devez toujours avoir un certificat de serveur

Utilisation de l'authentification par nom d'utilisateur/mot de passe comme unique forme d'authentification du client

Par défaut, utiliser auth-user-pass-verify ou un plug-in de vérification du nom d'utilisateur/mot de passe sur le serveur activera l'authentification double, exigeant que l'authentification par le certificat client et le nom d'utilisateur/mot de passe réussissent pour que le client soit authentifié.

Bien que cela soit découragé du point de vue de la sécurité, il est également possible de désactiver l'utilisation de certificats clients et de forcer uniquement l'authentification par nom d'utilisateur/mot de passe. Sur le serveur:

client-cert-not-required De telles configurations devraient généralement aussi définir:

username-as-common-name qui indiquera au serveur d'utiliser le nom d'utilisateur à des fins d'indexation, de la même manière que le nom commun d'un client authentifié via un certificat client.

Notez que client-cert-not-required n'éliminera pas le besoin d'un certificat de serveur. Ainsi, un client qui se connecte à un serveur qui utilise client-cert-not-required peut supprimer les directives cert et key du fichier de configuration du client, mais pas la directive ca, car il est nécessaire que le client vérifie le certificat du serveur.

2
ruX