Bonjour à tous, après maintes recherches sur mon ami Google qui ne sait malheureusement pas résoudre mon problème je viens demander votre aide.
Je vous explique le problème, dans le cadre d’un stage j’ai mis en place un serveur VPN basé sur OpenVPN et OpenSSL, celui-ci tourne sur un serveur Debian.
Mes clients quant à eux sont sur windows ou Mac. J’ai donc fait un test de connectivité en local tout fonctionne sans problème, j’ai donc décidé de faire un test avec un client configuré de chez moi, là encore il se connecte au VPN, mais après pas d’accès internet, et aucune possibilité de pinguer le serveur ou quoi que ce soit …
J’ai bien définit les routes ( enfin je présume puisque ça marchait en “local” ).
Bien que je pense que ce soit un problème de route, je ne sais pas trop où chercher car le réseau du CNRS est assez spécifique puisque toutes les machines et serveurs ont une ip publique, il ne font donc pas de nat. Au niveau du VPN j’ai opté pour une solution en mode routed.
Je vous détail la configuration du réseau :
un serveur Openvpn : 195.83.85.x MASK 255.255.254.0
un routeur CIsco : 195.83.84.x MASK 255.255.254.0
En “local” j’avais un client avec une ip 195.83.85.x MASK 255.255.254.0
De chez moi j’ai testé en étant derrière une freebox, je parviens à me connecter au serveur, mais ni le pinguer et encore moins accéder au net.
Voici la config serveur :
[code]########################################
Fichier de configuration du serveur
OpenVPN
########################################
Serveur UDP/53##
mode server
;Port en ecoute utilise pour la connexion VPN
;( pour plus de facilite on utilisera celui du DNS )
port 53
;Protocole utilise ( UDP car celui est plus rapide pour l’envoit des datagrammes )
proto udp
;Type d’interface virtuelle eee
dev tun
Cles et certificats
;certificat root auto-signe vu que le serveur joue aussi le role de PKI
ca ca.crt
;certificat du serveur
cert server.crt
;cle privee du serveur
key server.key
;Parametres Diffie Hellman avec une cle de 2048 bits (protection avancee)
dh dh2048.pem
;tls-auth : Protection HMAC supplementaire qui permet de dropper un paquet
;ne portant pas la bonne signature HMAC et de proteger de diverses attaques
tls-auth ta.key 0
;cipher : Alogrithme de chiffrement qui utilise une cle genere precedemment
cipher AES-256-CBC
Reseau
;Plage d’ipour les clients ( sur le dernier octet ), sachant que
;le serveur prend la 10.8.0.1
server 10.8.0.0 255.255.255.0
;Faire passer l’integralite du trafic dans le VPN
push “redirect-gateway local def1 bypass-dhcp”
;Indique aux clients l’adresse du/des serveurs DNS
push “dhcp-option DNS 193.50.6.43”
;Envoit de requete ping toute les 10s, si au bout de 120s aucune requete n’a ete
;envoyee le lien VPN est down
keepalive 10 120
Securite
;Indique un user ou groupe particulier pour le processus
;pour reduire les privilege sur le Daemon apres initialisation
user www-data
group www-data
;Permet de verouiller le daemon pour qu’il n’est pas acces aux fichiers systemes excepte
;certains fichiers specifiques
chroot /etc/openvpn/jail
;Rendre la connexion persistante
persist-key
persist-tun
;Activer la compression
comp-lzo
Log
;Level of log
;file verbosity
verb 5
;Redondance des messages
mute 20
;fichier de log
status openvpn-status.log
;Specifie les logs dans un autre fichier que le syslo (par defaut)
log-append /var/log/openvpn.log[/code]
Le client :
[code]###################################
Configuration du client
#Celle-ci peut etre utilisee par #
#differents client, cependant #
#chaque client aura son propre #
#certificats et cles #
###################################
Client
;Specifie que le fichier de conf est celui du client
client
;Interface utilisee
;(il faut utiliser la meme que le serveur)
dev tun
;Protocole utilise
proto udp
;Ip externe du serveur
remote 195.83.85.18 53
;Tentive de resolution de l’hostname du serveur OpenVPN
resolv-retry infinite
;Chiffrement
cipher AES-256-CBC
;Algorithme de chiffrement
auth SHA1
cles
ca ca.crt
cert tototest.crt
key tototest.key
tls-auth ta.key 1
Securite
;Ne pas se connectea l’adresse et au port locaux. La pile IP attribuera un
;port dynamique pour renvoyer les datagrammes
nobind
;Rendre la connexion persistante
persist-key
persist-tun
;Compression
comp-lzo
;Log file verbosity
verb 3
[/code]
Au niveau du routage sur le serveur :
[code]# Activation du mode routeur sur le serveur
echo “1”>/proc/sys/net/ipv4/ip_forward
On nat toutes les IP de cette plage d’ip afin qu’elles puissent aller sur internet
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE [/code]
Et voici un semblant de schéma pour tenter d’expliquer un peu mieux la config réseau
img201.imageshack.us/img201/6585/diagramme1.png
Merci d’avance pour votre aide