Crée un VPN pour client mobile
-
J'ai tester ton script mais quand je rentre un utilisateur et son mdp (il est dans le groupe admins ça devrai être bon) j'ai un échec de connexion, sinon avec un autre script que j'ai adapter j'ai l'impression que j'y suis presque !
script:
client
dev tun
proto udp
port 1194
remote 192.168.1.2 1194
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
verb 4log client :
Wed Apr 13 11:57:54 2016 us=495554 TLS: Initial packet from [AF_INET]192.168.1.2:1194, sid=f419a3e1 779258a4
Wed Apr 13 11:57:54 2016 us=516054 VERIFY OK: depth=1, C=FR, ST=xxxxx, L=xxxx, O=xxxxx, emailAddress=g.sommer@xxxxx.com, CN=xxx.local
Wed Apr 13 11:57:54 2016 us=516554 VERIFY OK: depth=0, C=FR, ST=xxxxxx, L=xxxxx, O=xxxxx, emailAddress=g.sommer@xxx.com, CN=xxx.local
Wed Apr 13 11:58:54 2016 us=527054 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Wed Apr 13 11:58:54 2016 us=527054 TLS Error: TLS handshake failedlog srv :
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 Local Options String: 'V4,dev-type tun,link-mtu 1557,tun-mtu 1500,proto UDPv4,cipher AES-128-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1557,tun-mtu 1500,proto UDPv4,cipher AES-128-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 Local Options hash (VER=V4): 'b7f67de4'
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 Expected Remote Options hash (VER=V4): '8326dbaa'
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 TLS: Initial packet from [AF_INET]192.168.1.98:1194, sid=f3543470 939c4d9d
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 VERIFY ERROR: depth=0, error=unsupported certificate purpose: C=FR, ST=xxxxxxx, L=xxxxxx, O=xxxxxx, emailAddress=g.sommer@xxxxxxxxx.com, CN=xxx.local
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 TLS_ERROR: BIO read tls_read_plaintext error: error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 TLS Error: TLS object -> incoming plaintext read error
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 TLS Error: TLS handshake failed
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 SIGUSR1[soft,tls-error] received, client-instance restarting
Apr 13 11:58:38 openvpn[67463]: MANAGEMENT: Client connected from /var/etc/openvpn/server1.sock
Apr 13 11:58:38 openvpn[67463]: MANAGEMENT: CMD 'status 2'
Apr 13 11:58:38 openvpn[67463]: MANAGEMENT: CMD 'quit'
Apr 13 11:58:38 openvpn[67463]: MANAGEMENT: Client disconnected -
Apr 13 11:57:54 openvpn[67463]: 192.168.1.98:1194 TLS: Initial packet from [AF_INET]192.168.1.98:1194,
Comment réalisez vous le test ? (Les connexions depuis le lan ne permettent pas un test correct).
-
Que de mélanges ! (Ipsec vs OpenVPN et maintenant User vs certificat)
je rentre un utilisateur et son mdp (il est dans le groupe admins ça devrai être bon)
Les users du firewall n'ont presque aucun intérêt et ne doivent pas être confondus avec les certificats !!
OpenVPN peut (doit) s'appuyer sur les certificats générés par 'Cert Manager' (par exemple).
Il faut créer une CA (Autorité de certification), un certificat 'Serveur' à renseigner dans le serveur OpenVPN, des certificats 'Users' qui seront indiqués dans le fichier côté client.
De plus, le serveur OpenVPN indique une clé 'tls' à indiquer côté client. (faire un fichier et l'indiquer dans la ligne tls). Cela est manquant et clairement indiqué comme erreur dans les logs !Concernant le test, il est clair qu'il doit être fait … de l'extérieur !
-
ccnet non pour le moment mon lan est en 192.168.0.0 et mon wan en 192.168.1.0, plus tard en prod ce sera le contraire. Pourquoi je ne commence pas directement dans le bon sens ? Pour ne pas toucher au paramètre ip de mon routeur …
jdh, oui j'avais compris qu'il ne servais pas a grand chose les users de mon pfsense, du coup quoi renseigner quand il me pose la question ? Oui je doit avouer que j'ai du mal avec la notion d'autorité de certification et les certifia délivrés. :(
-
Non.
Avez vous bien créé un certificat (signé par la CA) et une clé pour le serveur avant de tenter une connexion ?
Il ne serait pas inutile de lire un de littérature sur le fonctionnement des certificats et leurs principes d'utilisation. -
ENFIN !!!! j'utilisais le certificat appeler "User Cert" du coup je m'en suis crée un qui s'appel "client1" en internal Certificate
Key length: 1024 bits
Digest Algorithm: sha1 (je sais que le sha1 a été casser je passerai a mieux)
Certificate Type: User CertificateBingo ^^ connecter avec l'ip assignée 192.168.0.6. Je savais que j'était pas loin, j'ai juste changer mon télécharger mon client1.crt et .key depuis le précédent post avec les mêmes config, je vais voir pour améliorer le truck puis mettre en prod
Des bisous tous le monde :-* merci de votre aide ça ma bien avancé !
ps: si jamais vous avez d'autre remarque points important je suis preneur :D
edit: je suis repasser avec un certificat en sha256 et connexion en aes-192-cbc et ça passe tout debout !
-
Key length: 1024 bits
La recommandation pour la protection d'informations à l'horizon 2020 est d'utiliser des clés de 2048 bits.
Pensez à filtrer les flux sur l'interface OPenvpn.
Forcez le routage des connexions vers internet par l'infrastructure distante et non directement depuis le PC : push "redirect-gateway". -
En sus de ccnet, outre des clés de longueur 2048 bits,
il faut aussi activer la ligne 'tls-auth xxxxx.key 1' avec xxxxx.key fichier qui contient la clé tls visible dans le serveur OpenVPN
cf site Openvpn : https://openvpn.net/index.php/open-source/documentation/howto.html
Hardening OpenVPN Security
One of the often-repeated maxims of network security is that one should never place so much trust in a single security component that its failure causes a catastrophic security breach. OpenVPN provides several mechanisms to add additional security layers to hedge against such an outcome.
tls-authThe tls-auth directive adds an additional HMAC signature to all SSL/TLS handshake packets for integrity verification. Any UDP packet not bearing the correct HMAC signature can be dropped without further processing. The tls-auth HMAC signature provides an additional level of security above and beyond that provided by SSL/TLS. It can protect against:
DoS attacks or port flooding on the OpenVPN UDP port.
Port scanning to determine which server UDP ports are in a listening state.
Buffer overflow vulnerabilities in the SSL/TLS implementation.
SSL/TLS handshake initiations from unauthorized machines (while such handshakes would ultimately fail to authenticate, tls-auth can cut them off at a much earlier point).Using tls-auth requires that you generate a shared-secret key that is used in addition to the standard RSA certificate/key:
openvpn –genkey --secret ta.key
This command will generate an OpenVPN static key and write it to the file ta.key. This key should be copied over a pre-existing secure channel to the server and all client machines. It can be placed in the same directory as the RSA .key and .crt files.
In the server configuration, add:
tls-auth ta.key 0
In the client configuration, add:
tls-auth ta.key 1
-
Pour Les 2048 bits, c'est bon par contre pour le tls j'ai deux questions.
Je coche les deux casses Enable authentication of TLS packets et automatically generate a shared TLS authentication key, juste le premier ou pas besoin ? (je pense pas)
Il sort d'où le ta.key ? ??? Faut crée un certificat et le mettre sur serveur et le client !? Faut mettre quelque chose de particulier ? Ou alors c'est la key de mon CA ? -
Re à tous, pourquoi chercher compliquer quand c'est simple !? ::)
ajouter la ligne dans la conf client : tls-auth ta.key 1
cocher Enable authentication of TLS packets dans la conf serveur openVPN, on copie/colle dans un block note que l'on renomme en ta.key et c'est tout bon
la version 2.2.6 est vraiment bien pour les néophyte de FreeBSD et puis c'est plus pratique que putty