tuto:ipasserelle:vpn:vpn_wrt

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tuto:ipasserelle:vpn:vpn_wrt [09/05/2011 16:49]
dani [configurer openvpn]
tuto:ipasserelle:vpn:vpn_wrt [09/04/2019 11:36] (Version actuelle)
dani [Configurer DHCP pour que le serveur WINS soit le serveur SME]
Ligne 1: Ligne 1:
 ====== VPN inter-site avec un Linksys WRT54G ====== ====== VPN inter-site avec un Linksys WRT54G ======
 +
  
 La contrib smeserver-openvpn-s2s permet de créer des liens sécurisés entre plusieurs sites équipés de serveurs SME, mais il est également possible d'avoir un des deux site sous un autre système. Ce how-to explique comment créer un lien avec un linksys WRT54GL. Dans cet exemple, un serveur SME sera configuré en tant que serveur OpenVPN, et le WRT sera client. La contrib smeserver-openvpn-s2s permet de créer des liens sécurisés entre plusieurs sites équipés de serveurs SME, mais il est également possible d'avoir un des deux site sous un autre système. Ce how-to explique comment créer un lien avec un linksys WRT54GL. Dans cet exemple, un serveur SME sera configuré en tant que serveur OpenVPN, et le WRT sera client.
 +
  
 ===== Flasher le WRT avec OpenWRT ===== ===== Flasher le WRT avec OpenWRT =====
-La première étape est de flasher le linksys avec un firmware OpenWRT (testé avec la version Kamikaze, car la version Backfire ne fonctionne pas à cause d'un manque de mémoire sur le WRT). 
-Ce firmware peut se trouver ici: http://downloads.openwrt.org/kamikaze/8.09.2/brcm-2.4/openwrt-wrt54g-squashfs.bin 
  
-Le flash peut se faire depuis l'interface web du linksys. Sinon, on peut également le faire via par tftp. Il suffit de s'assurer que le WRT soit connecté à votre réseau local, et que votre poste est une IP dans la plage 192.168.1.X. Ensuite, il suffit de lancer la comamnde tftp comme ceci:+ 
 +La première étape est de flasher le linksys avec un firmware OpenWRT (testé avec la version Kamikaze, car la version Backfire ne fonctionne pas à cause d'un manque de mémoire sur le WRT). Ce firmware peut se trouver ici: [[http://downloads.openwrt.org/kamikaze/8.09.2/brcm-2.4/openwrt-wrt54g-squashfs.bin|http://downloads.openwrt.org/kamikaze/8.09.2/brcm-2.4/openwrt-wrt54g-squashfs.bin]]  
 + 
 + 
 +Le flash peut se faire depuis l'interface web du linksys. Sinon, on peut également le faire via par tftp. Il suffit de s'assurer que le WRT soit connecté à votre réseau local, et que votre poste ait une IP dans la plage 192.168.1.X. Ensuite, il suffit de lancer la comamnde tftp comme ceci: 
  
 <code bash> <code bash>
-tftp+tftp 192.168.1.1
 > binary > binary
 > trace > trace
 > put openwrt-wrt54g-squashfs.bin > put openwrt-wrt54g-squashfs.bin
 </code> </code>
 +
 +
 Puis de démarrer rapidement le WRT, qui devrait alors télécharger le firmware. Puis de démarrer rapidement le WRT, qui devrait alors télécharger le firmware.
 +
  
 ===== Configuration du WRT ===== ===== Configuration du WRT =====
-Maintenant que le firmware est en place, vous pouvez accéder à l'interface web de configuration sur http://192.168.1.1 ou en ligne de commande, via telnet+ 
 + 
 +Maintenant que le firmware est en place, vous pouvez accéder à l'interface web de configuration sur [[http://192.168.1.1|http://192.168.1.1]] ou en ligne de commande, via telnet 
  
 ==== boot_wait ==== ==== boot_wait ====
 +
 +
 La première chose à faire est d'activer le boot_wait. Cette option permet de récupérer un WRT s'il est méchamment planté, via un flash du firmware par tftp, comme expliqué juste au dessus. Pour cela, loguez-vous en ligne de commande sur l'appareil (telnet 192.168.1.1), puis lancez les commandes: La première chose à faire est d'activer le boot_wait. Cette option permet de récupérer un WRT s'il est méchamment planté, via un flash du firmware par tftp, comme expliqué juste au dessus. Pour cela, loguez-vous en ligne de commande sur l'appareil (telnet 192.168.1.1), puis lancez les commandes:
 +
 +
 <code bash> <code bash>
 nvram set boot_wait=on nvram set boot_wait=on
 nvram commit nvram commit
 </code> </code>
 +
  
 ==== installer openvpn ==== ==== installer openvpn ====
 +
 +
 Pour installer openvpn, deux solutions: Pour installer openvpn, deux solutions:
-  * Par l'interface web, mettre la liste des paquets à jour, puis installer le paquet openvpn + 
-  * En ligne de commande:+ 
 +    * Par l'interface web, mettre la liste des paquets à jour, puis installer le paquet openvpn 
 +    * En ligne de commande: 
 + 
 <code> <code>
 opkg update opkg update
 opkg install openvpn opkg install openvpn
 </code> </code>
 +
  
 Il est aussi conseillé d'installer le client ntp (si le WRT n'est pas à l'heure, il pourrait voir certains certificats comme expirés, ou pas encore valides) Il est aussi conseillé d'installer le client ntp (si le WRT n'est pas à l'heure, il pourrait voir certains certificats comme expirés, ou pas encore valides)
 +
  
 ==== configurer openvpn ==== ==== configurer openvpn ====
 +
 +
 la configuration d'OpenVPN se fait comme sur n'importe quel Linux, on crée un dossier openvpn dans /etc: la configuration d'OpenVPN se fait comme sur n'importe quel Linux, on crée un dossier openvpn dans /etc:
  
-<code bash> + 
-mkdir -p /etc/openvpn+<code bash>mkdir -p /etc/openvpn
 </code> </code>
 +
 +
 Puis, on place dans ce répertoire les fichiers suivants: Puis, on place dans ce répertoire les fichiers suivants:
  
-  * cacert.pem (le certificat autoritaire) + 
-  * cert.pem (le certificat qui sera utilisé par le WRT, à générer avec PHPki par exemple) +    * cacert.pem (le certificat autoritaire) 
-  * key.pem (la clef secrète associé au certificat, cette clef ne **doit pas** être protégée par mot de passe +    * cert.pem (le certificat qui sera utilisé par le WRT, à générer avec PHPki par exemple) 
-  * takey.pem (optionnelle, à n'utiliser que si vous en avez mis une à l'autre bout du tunnel +    * key.pem (la clef secrète associé au certificat, cette clef ne **doit pas**  être protégée par mot de passe 
-  * myvpn.conf (le fichier de configuration, un exemple est fournit ci-dessous)+    * takey.pem (optionnelle, à n'utiliser que si vous en avez mis une à l'autre bout du tunnel 
 +    * myvpn.conf (le fichier de configuration, un exemple est fournit ci-dessous) 
  
 <file ovpn myvpn.conf> <file ovpn myvpn.conf>
Ligne 60: Ligne 90:
 persist-key persist-key
 persist-tun persist-tun
 + 
 tls-client tls-client
 ca /etc/openvpn/cacert.pem ca /etc/openvpn/cacert.pem
Ligne 68: Ligne 98:
 ns-cert-type server ns-cert-type server
 tls-remote vpn_smeserver tls-remote vpn_smeserver
 + 
 route 192.168.137.0 255.255.255.0 route 192.168.137.0 255.255.255.0
 + 
 ifconfig 10.2.0.8 10.2.0.7 ifconfig 10.2.0.8 10.2.0.7
 + 
 ping 10 ping 10
 ping-restart 20 ping-restart 20
 + 
 mtu-test mtu-test
 passtos passtos
 + 
 comp-lzo adaptive comp-lzo adaptive
 </file> </file>
 +
  
 Il faut aussi autoriser le trafic à passer dans le VPN: Il faut aussi autoriser le trafic à passer dans le VPN:
  
-<code bash> + 
-echo "/usr/sbin/iptables -I FORWARD -i tun+ -j ACCEPT" >> /etc/firewall.user +<code bash>echo "/usr/sbin/iptables -I FORWARD -i tun+ -j ACCEPT">> /etc/firewall.user 
-echo "/usr/sbin/iptables -I FORWARD -o tun+ -j ACCEPT"  >> /etc/firewall.user+echo "/usr/sbin/iptables -I FORWARD -o tun+ -j ACCEPT" >> /etc/firewall.user
 </code> </code>
 +
  
 ==== Configurer le VPN pour un démarrage automatique ==== ==== Configurer le VPN pour un démarrage automatique ====
-Pour que le VPN se lance automatiquement au démarrage du WRT, il faut éditer le fichier **/etc/config/openvpn** et activer le service avec configuration personnalisée (vers le début du fichier: 
  
-<code bash> 
  
-package openvpn+Pour que le VPN se lance automatiquement au démarrage du WRT, il faut éditer le fichier **/etc/config/openvpn**  et activer le service avec configuration personnalisée (vers le début du fichier:
  
 +
 +<code bash>
 +package openvpn
 + 
 ################################################# #################################################
 # Sample to include a custom config file.       # # Sample to include a custom config file.       #
 ################################################# #################################################
 + 
 config openvpn custom_config config openvpn custom_config
 + 
         # Set to 1 to enable this instance:         # Set to 1 to enable this instance:
         option enable 1         option enable 1
 + 
         # Include OpenVPN configuration         # Include OpenVPN configuration
         option config /etc/openvpn/myvpn.conf         option config /etc/openvpn/myvpn.conf
 + 
 [...] [...]
 </code> </code>
 +
 +
 +Puis, activez le lancement automatique au démarrage:
 +
 +
 +<code bash>/etc/init.d/openvpn enable
 +</code>
 +
  
 ==== Configurer le service DHCP pour que les clients utilisent le serveur SME comme DNS ==== ==== Configurer le service DHCP pour que les clients utilisent le serveur SME comme DNS ====
-Vous voudrait probablement que les clients DHCP du WRT (filaire ou wifi) utilisent le serveur SME comme serveur DNS (si c'est pas le cas, vous pouvez sauter cette partie). Cette configuration peut se faire via l'interface web. 
  
-Dans la partie Administration -> Network -> DHCP il faut rajouter **DHCP-Options** et y mettre comme valeur quelque chose comme ça:+ 
 +Vous voudrez probablement que les clients DHCP du WRT (filaire ou wifi) utilisent le serveur SME comme serveur DNS (si c'est pas le cas, vous pouvez sauter cette partie). Cette configuration peut se faire via l'interface web. 
 + 
 + 
 +Dans la partie Administration → Network → DHCP il faut rajouter **DHCP-Options**  et y mettre comme valeur quelque chose comme ça: 
  
 <code> <code>
 6,192.168.137.254,8.8.8.8 6,192.168.137.254,8.8.8.8
 </code> </code>
 +
  
 Dans cet exemple: Dans cet exemple:
-  * 6 est le numéro de l'option DHCP qui indique au clients le serveur DNS à utiliser 
-  * 192.168.137.254 est l'IP interne de votre serveur SME 
-  * 8.8.8.8 est un serveur DNS publique (là, c'est celui de google, mais vous pouvez le remplacer par le DNS du FAI). On le mets en 2° choix pour que les clients du WRT puissent quand même accéder au net si le lien VPN tombe. 
  
-Il faut aussi configurer le nom du domaine pour la recherche. Ceci se configure dans la section Administration -> Services -> DNSmasq (options Local Server et Local Domain, remplacez lan par votre nom de domaine)+ 
 +    * 6 est le numéro de l'option DHCP qui indique au clients le serveur DNS à utiliser 
 +    * 192.168.137.254 est l'IP interne de votre serveur SME 
 +    * 8.8.8.8 est un serveur DNS publique (là, c'est celui de google, mais vous pouvez le remplacer par le DNS du FAI). On le mets en 2° choix pour que les clients du WRT puissent quand même accéder au net si le lien VPN tombe. 
 + 
 + 
 +Il faut aussi configurer le nom du domaine pour la recherche. Ceci se configure dans la section Administration → Services → DNSmasq (options Local Server et Local Domain, remplacez lan par votre nom de domaine) 
  
 Voilà, le reste est à configurer selon vos envies, mais le VPN devrait être fonctionnel Voilà, le reste est à configurer selon vos envies, mais le VPN devrait être fonctionnel
 +
 +
 +==== Configurer DHCP pour que le serveur WINS soit le serveur SME ====
 +
 +Dans ce type de configuration, les clients derrière le WRT se retrouvent sur un Lan séparé. Pour qu'il puissent trouver leur contrôleur de domaine, le broadcast ne fonctionnera pas, il faut donc leur configurer le serveur SME comme serveur WINS. Ce paramétrage peut se faire via le DHCP du WRT
 +
 +<code>
 +44,192.168.137.254
 +</code>
 +
 +Dans cet exemple :
 +
 +     * 44 est le numéro de l'option DHCP qui indique au client le serveur WINS (NetBIOS) à utiliser
 +     * 192.168.137.254 est l'adresse IP du serveur SME
 +
  • tuto/ipasserelle/vpn/vpn_wrt.1304952575.txt.gz
  • Dernière modification: 09/05/2011 16:49
  • de dani