Installation openvpn

Comme dans beaucoup d’entreprise il n’est pas rare de voir des liens VPN dans tous les sens ou même pour nous adminsys afin de nous connecter aux différents serveurs. Je n’expliquerais pas l’utilité d’utiliser des liaisons VPN mais comment nous allons mettre tout ceci en place.

Architecture: Serveur : eth0 connecté au net Client VPN : eth0 connecté au web , eth1 connecté au LAN 10.10.1.254 eth1.10 : 10.10.10.254 Client dérriere le client VPN : 10.10.10.0/24

Installation de openvpn sur le serveur

  1. /*
  2. apt-get install openvpn liblzo2-2 lzop
  3. */

On copie

  1. /*
  2. cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/keys #si le répertoire keys n’existe pas le crée .
  3. */

On clen les certificats et les clés existantes (si nécessaire)

  1. /*
  2. ./clean-all
  3. */

On crée la clée et le certificat master

  1. /*
  2. ./build-ca
  3. */

Il faut maintenant créer une clée et un certificat pour notre serveur VPN

  1. /*
  2. ./build-key-server server-vpn #Mettre le même common-name que vous avez mis précedemment. , le mot de passe n’est pas obligatoire.
  3. */

Deux fichiers ont été crées server-vpn.crt et un server-vpn.key

Passons maintenant à la configuration des clées pour le client.

  1. ./build-key client-vpn # Garder votre common name il sera utile plus tard (client-vpn)

On génére les paramètres Diffie-Hellman

  1. /*
  2. ./build-dh
  3. */

Maintenant que tout cela ets fait il faut maintenant copier les fichiers que nous venons de générer sur notre client VPN

  1. /*
  2. cp fichiers/générés clientvpn:/etc/openvpn/
  3. */

Ah enfin notre fichier de configuration

  1. /*
  2. cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
  3. gunzip server.conf.gz
  4. */

Configuration Serveur:

  1. /*
  2. # Serveur TCP/1194
  3. mode server
  4. proto udp
  5. port 1194
  6. dev tun
  7. # Cles et certificats
  8. ca ca.crt
  9. cert server-vpn.crt
  10. key server-vpn.key
  11. dh dh1024.pem
  12. tls-auth server-vpn.key 0
  13. cipher AES-256-CBC
  14. # Reseau
  15. client-to-client
  16. server 10.8.0.0 255.255.255.0
  17. keepalive 10 120
  18. # Securite
  19. user openvpn
  20. group openvpn
  21. chroot /etc/openvpn/
  22. persist-key
  23. persist-tun
  24. comp-lzo
  25. # Log
  26. verb 4
  27. mute 20
  28. status openvpn-status.log
  29. log-append /var/log/openvpn/openvpn.log
  30. __client-config-dir ccd
  31. route 10.10.0.0 255.255.255.0__
  32. */

La partie en gras nous permets de dire à notre serveur VPN comment atteindre le réseau distant . Pour cela il faut créer un répertoire ccd dans /etc/openvpn/ et créer un fichier avec le nom de votre common-name .
Ce fichier contient

  1. /*
  2. iroute 10.10.10.0 255.255.255.0
  3. */

Configuration Client

  1. /*
  2. #Configuration client
  3. client
  4. dev tun
  5. proto udp
  6. remote ip_publique_serveur 1194
  7. resolv-retry infinite
  8. nobind
  9. persist-key
  10. persist-tun
  11. #Clefs
  12. ca ca.crt
  13. cert client-vpn.crt
  14. key remote-server.key
  15. tls-auth client-vpn.key 1
  16. cipher AES-256-CBC
  17. pull
  18. comp-lzo
  19. verb 3
  20. mute 20
  21. */

Test de ping depuis le serveur

  1. /*
  2. # ping 10.8.0.6
  3. PING 10.8.0.6 (10.8.0.6) 56(84) bytes of data.
  4. 64 bytes from 10.8.0.6: icmp_seq=1 ttl=64 time=22.7 ms
  5. 64 bytes from 10.8.0.6: icmp_seq=2 ttl=64 time=23.0 ms
  6. ^C
  7. 10.8.0.6 ping statistics
  8. 2 packets transmitted, 2 received, 0% packet loss, time 1001ms
  9. rtt min/avg/max/mdev = 22.720/22.904/23.088/0.184 ms
  10. # ping 10.10.10.53
  11. PING 10.10.10.53 (10.10.10.53) 56(84) bytes of data.
  12. 64 bytes from 10.10.10.53: icmp_seq=1 ttl=63 time=25.5 ms
  13. 64 bytes from 10.10.10.53: icmp_seq=2 ttl=63 time=23.4 ms
  14. ^C
  15. 10.10.10.53 ping statistics
  16. 2 packets transmitted, 2 received, 0% packet loss, time 1001ms
  17. rtt min/avg/max/mdev = 23.403/24.456/25.510/1.065 ms
  18. */

On voit bien que nous pouvons joindre notre client VPN ainsi que les machines qui se trouvent derrière elles 🙂
Si vous avez ce genre d’erreur

  1. /*
  2. MULTI: bad source address from client [10.10.10.53], packet dropped
  3. MULTI: bad source address from client [10.10.10.53], packet dropped
  4. */

C’est que votre configuration au niveau des ccd n’est pas correct. Ou que le nom du fichier dans le répertoire ccd ne correspond pas au common-name.

Related posts

Leave a Comment