4493
Commentaire:
|
← Version 8 à la date du 2009-06-17 16:56:09 ⇥
8559
Ajout d'une commande
|
Texte supprimé. | Texte ajouté. |
Ligne 3: | Ligne 3: |
[[TableOfContents(3)]] | <<TableOfContents(3)>> |
Ligne 8: | Ligne 8: |
Ligne 9: | Ligne 10: |
* Installer openvpn ({{{aptitude install openvpn}}}) * Copier le contenu du répertoire {{{/usr/share/doc/openvpn/examples/easy-rsa}}} dans un nouveau répertoire {{{/etc/openvpn}}} afin de ne rien perdre lors d'une maj d'openvpn (et puis c'est mieux rangé) * Modifier {{{/etc/openvpn/vars}}} (pour Cotonou : {{{export KEY_COUNTRY=BJ export KEY_PROVINCE=Atlantique export KEY_CITY=Cotonou export KEY_ORG="AUF" export KEY_EMAIL="root+openvpn@bj.refer.org"}}}) == Création des certificats et des clés === * Initialiser la PKI (Public Key Infrastructure) ; créer le certificat et la clé du CA (Certificate Authority) maître : cf http://openvpn.net/howto.html#pki {{{. ./vars ./clean-all ./build-ca}}} * Créer la paire certificat/clé du serveur : {{{sudo grep "SET_DNS" /etc/dhcp3/dhclient*}}} (/!\ A la question '''Common Name''', répondre {{{server}}} ; '''"Sign the certificate? [y/n]"''' y ; '''"1 out of 1 certificate requests certified, commit? [y/n]"''' y) * Générer une paire par client : {{{./build-key sysadmin}}} par exemple (bien choisir {{{sysadmin}}} comme '''Common Name''') * Générer les paramètres Diffie Hellman : {{{./build-dh}}} |
* Installer openvpn {{{ aptitude install openvpn }}} * Copier le contenu du répertoire `/usr/share/doc/openvpn/examples/easy-rsa` dans un nouveau répertoire `/etc/openvpn` afin de ne rien perdre lors d'une mise à jour d'openvpn (et puis c'est mieux rangé) * Modifier `/etc/openvpn/vars` -pour Cotonou : {{{ export KEY_COUNTRY=BJ export KEY_PROVINCE=Atlantique export KEY_CITY=Cotonou export KEY_ORG="AUF" export KEY_EMAIL="root+openvpn@bj.refer.org" }}} == Création des certificats et des clés == * Initialiser la PKI (Public Key Infrastructure) ; créer le certificat et la clé du CA (Certificate Authority) maître : cf http://openvpn.net/howto.html#pki {{{ cd /etc/openvpn/easy-rsa . vars #l'espace après le point est important !!!! ./clean-all # A ne faire que la première fois ! ./build-ca }}} * Créer la paire certificat/clé du serveur : {{{ ./build-key-server server }}} (__/!\__ A la question '''Common Name''', répondre `server` ; '''"Sign the certificate? [y/n]"''' y ; '''"1 out of 1 certificate requests certified, commit? [y/n]"''' y) * Générer une paire par client : {{{ ./build-key sysadmin }}} par exemple (bien choisir '''''sysadmin''''' comme '''Common Name''') pour créer la paire qui ira sur le client sysadmin * Générer les paramètres Diffie Hellman : {{{ ./build-dh }}} |
Ligne 24: | Ligne 48: |
* Copier {{{/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz}}} dans {{{/etc/openvpn}}} et le décompresser ({{{gunzip /etc/openvpn/server.conf.gz}}}) * Modifier les paramètres ca, cert, key, dh : {{{ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem server 10.25.2.0 255.255.255.0 #Je choisis ici d'avoir comme RPV 10.25.2.0/24 push "route 10.0.0.0 255.0.0.0" #pour ajouter la route 10.0.0.0/8 |
* Copier '''''/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz''''' dans '''''/etc/openvpn''''' et le décompresser '''''gunzip /etc/openvpn/server.conf.gz''''') * Modifier les paramètres ca, cert, key, dh : {{{ ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem server 10.25.2.0 255.255.255.0 #Je choisis ici d'avoir comme RPV 10.25.2.0/24 push "route 10.0.0.0 255.0.0.0" #pour ajouter la route 10.0.0.0/8 }}} |
Ligne 32: | Ligne 60: |
* Ajouter les lignes suivantes dans le fichier de configuration du filtrage (par exemple {{{/etc/network/firewall-install}}}) : {{{#openvpn : on accepte openvpn (depuis poste de l'admin) # nfs-cotonou a cause de snat, sinon ca devrait etre l'ip du poste : $IPT -A INPUT -p udp --dport 1194 -s 81.91.236.4 -j ACCEPT $IPT -A OUTPUT -p udp --dport 1194 -d 81.91.236.4 -j ACCEPT |
* Ajouter les lignes suivantes dans le fichier de configuration du filtrage (par exemple '''''/etc/network/firewall-install''''') : {{{ #openvpn : on accepte openvpn (depuis poste de l'admin) # nfs-cotonou a cause de snat, sinon ca devrait etre l'ip du poste : $IPT -A INPUT -p udp --dport 1194 -s 81.91.236.4 -j ACCEPT $IPT -A OUTPUT -p udp --dport 1194 -d 81.91.236.4 -j ACCEPT |
Ligne 37: | Ligne 67: |
# Allow TUN interface connections to OpenVPN server ${IPT} -A INPUT -i tun+ -j ACCEPT |
# Allow TUN interface connections to OpenVPN server ${IPT} -A INPUT -i tun+ -j ACCEPT |
Ligne 40: | Ligne 70: |
# Allow TUN interface connections to be forwarded through other interfaces ${IPT} -A FORWARD -i tun+ -j ACCEPT }}} |
# Allow TUN interface connections to be forwarded through other interfaces ${IPT} -A FORWARD -i tun+ -j ACCEPT }}} |
Ligne 45: | Ligne 75: |
* {{{sudo openvpn /etc/openvpn/server.conf}}} devrait donner qqch comme : {{{Thu Nov 23 17:20:37 2006 OpenVPN 2.0 i386-pc-linux [SSL] [LZO] [EPOLL] built on Apr 6 2006 | * '''''sudo openvpn /etc/openvpn/server.conf''''' devrait donner quelque chose comme : {{{ Thu Nov 23 17:20:37 2006 OpenVPN 2.0 i386-pc-linux [SSL] [LZO] [EPOLL] built on Apr 6 2006 |
Ligne 59: | Ligne 91: |
Thu Nov 23 17:20:37 2006 Initialization Sequence Completed}}} | Thu Nov 23 17:20:37 2006 Initialization Sequence Completed }}} |
Ligne 66: | Ligne 99: |
* Récupérer {{{client.conf}}} dans /usr/share/... et configurer les paramètres ca, cert, key * Tester : {{{sudo openvpn /etc/openvpn/client.conf}}} |
* Récupérer '''''client.conf''''' dans '''''/usr/share/doc/openvpn/examples/sample-config-files''''' et configurer les paramètres ca, cert, key, remote : {{{ remote 81.91.236.1 1194 ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/sysadmin.crt key /etc/openvpn/keys/sysadmin.key }}} * Tester : '''''sudo openvpn /etc/openvpn/client.conf''''' doit vous donner un affichage du genre : {{{ Fri Nov 24 10:04:12 2006 OpenVPN 2.0.6 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] built on Apr 10 2006 Fri Nov 24 10:04:12 2006 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Fri Nov 24 10:04:12 2006 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info. Fri Nov 24 10:04:12 2006 LZO compression initialized Fri Nov 24 10:04:12 2006 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ] Fri Nov 24 10:04:12 2006 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ] Fri Nov 24 10:04:12 2006 Local Options hash (VER=V4): '41690919' Fri Nov 24 10:04:12 2006 Expected Remote Options hash (VER=V4): '530fdded' Fri Nov 24 10:04:12 2006 UDPv4 link local: [undef] Fri Nov 24 10:04:12 2006 UDPv4 link remote: 81.91.236.1:1194 Fri Nov 24 10:04:12 2006 TLS: Initial packet from 81.91.236.1:1194, sid=c77a8b68 48e5b272 Fri Nov 24 10:04:12 2006 VERIFY OK: depth=1, /C=BJ/ST=Atlantique/L=Cotonou/O=AUF/OU=CNFC/CN=fw-cotonou/emailAddress=root_openvpn@bj.refer.org Fri Nov 24 10:04:12 2006 VERIFY OK: depth=0, /C=BJ/ST=Atlantique/O=AUF/OU=CNFC/CN=server/emailAddress=root_openvpn@bj.refer.org Fri Nov 24 10:04:12 2006 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key Fri Nov 24 10:04:12 2006 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Fri Nov 24 10:04:12 2006 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key Fri Nov 24 10:04:12 2006 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Fri Nov 24 10:04:12 2006 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA Fri Nov 24 10:04:12 2006 [server] Peer Connection Initiated with 81.91.236.1:1194 Fri Nov 24 10:04:13 2006 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1) Fri Nov 24 10:04:13 2006 PUSH: Received control message: 'PUSH_REPLY,route 10.0.0.0 255.0.0.0,route 10.25.2.1,ping 10,ping-restart 120,ifconfig 10.25.2.6 10.25.2.5' Fri Nov 24 10:04:13 2006 OPTIONS IMPORT: timers and/or timeouts modified Fri Nov 24 10:04:13 2006 OPTIONS IMPORT: --ifconfig/up options modified Fri Nov 24 10:04:13 2006 OPTIONS IMPORT: route options modified Fri Nov 24 10:04:13 2006 TUN/TAP device tun0 opened Fri Nov 24 10:04:13 2006 ifconfig tun0 10.25.2.6 pointopoint 10.25.2.5 mtu 1500 Fri Nov 24 10:04:13 2006 route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.25.2.5 Fri Nov 24 10:04:13 2006 route add -net 10.25.2.1 netmask 255.255.255.255 gw 10.25.2.5 Fri Nov 24 10:04:13 2006 Initialization Sequence Completed }}} |
Ligne 70: | Ligne 140: |
* Installer le paquet {{{resolvconf}}} * Ajouter les lignes suivantes dans /etc/network/interfaces : {{{dns-nameservers 10.25.1.1 dns-search refer.bj}}} * Redémarrer les interfaces : {{{sudo invoke-rc.d networking restart}}} |
* Le paquet openvpn a déjà installé '''''/etc/init.d/openvpn''''' qui démarrera automatiquement le serveur OpenVPN en utilisant ce qu'il trouve comme fichier de configuration dans '''''/etc/openvpn/*.conf''''' au prochain démarrage (ou avec un simple '''''sudo invoke-rc.d openvpn start''''') * Il faut maintenant spécifier automatiquement dans votre '''''resolv.conf''''' que le serveur de nom ne doit pas être récupéré par dhcp : * Installer le paquet '''''resolvconf''''' * Ajouter les lignes suivantes dans /etc/network/interfaces : {{{ dns-nameservers 10.25.1.1 dns-search refer.bj}}} * Empêcher le client DHCP de récupérer les serveurs de nom et le search : supprimer les requêtes {{{ domain-name, domain-name-servers }}} de '''''/etc/dhcp3/dhclient.conf''''' * Redémarrer les interfaces : '''''sudo invoke-rc.d networking restart''''' |
Création d'un tunnel VPN
Sommaire
Voici un petit guide pour installer un serveur et un client OpenVPN, qui correspond à ce que j'ai (CédricProtière) mis en oeuvre à Cotonou, en utilisant http://openvpn.net/howto.html et la patience de JérômeSantini.
Sur le serveur
Initialisation
- Installer openvpn
aptitude install openvpn
Copier le contenu du répertoire /usr/share/doc/openvpn/examples/easy-rsa dans un nouveau répertoire /etc/openvpn afin de ne rien perdre lors d'une mise à jour d'openvpn (et puis c'est mieux rangé)
Modifier /etc/openvpn/vars -pour Cotonou :
export KEY_COUNTRY=BJ export KEY_PROVINCE=Atlantique export KEY_CITY=Cotonou export KEY_ORG="AUF" export KEY_EMAIL="root+openvpn@bj.refer.org"
Création des certificats et des clés
Initialiser la PKI (Public Key Infrastructure) ; créer le certificat et la clé du CA (Certificate Authority) maître : cf http://openvpn.net/howto.html#pki
cd /etc/openvpn/easy-rsa . vars #l'espace après le point est important !!!! ./clean-all # A ne faire que la première fois ! ./build-ca
- Créer la paire certificat/clé du serveur :
./build-key-server server
(/!\ A la question Common Name, répondre server ; "Sign the certificate? [y/n]" y ; "1 out of 1 certificate requests certified, commit? [y/n]" y)
- Générer une paire par client :
./build-key sysadmin
par exemple (bien choisir sysadmin comme Common Name) pour créer la paire qui ira sur le client sysadmin
- Générer les paramètres Diffie Hellman :
./build-dh
Initialisation du fichier de configuration
Copier /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz dans /etc/openvpn et le décompresser gunzip /etc/openvpn/server.conf.gz)
- Modifier les paramètres ca, cert, key, dh :
ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem server 10.25.2.0 255.255.255.0 #Je choisis ici d'avoir comme RPV 10.25.2.0/24 push "route 10.0.0.0 255.0.0.0" #pour ajouter la route 10.0.0.0/8
Mettre à jour le filtrage
Ajouter les lignes suivantes dans le fichier de configuration du filtrage (par exemple /etc/network/firewall-install) :
#openvpn : on accepte openvpn (depuis poste de l'admin) # nfs-cotonou a cause de snat, sinon ca devrait etre l'ip du poste : $IPT -A INPUT -p udp --dport 1194 -s 81.91.236.4 -j ACCEPT $IPT -A OUTPUT -p udp --dport 1194 -d 81.91.236.4 -j ACCEPT # Allow TUN interface connections to OpenVPN server ${IPT} -A INPUT -i tun+ -j ACCEPT # Allow TUN interface connections to be forwarded through other interfaces ${IPT} -A FORWARD -i tun+ -j ACCEPT
Tester
sudo openvpn /etc/openvpn/server.conf devrait donner quelque chose comme :
Thu Nov 23 17:20:37 2006 OpenVPN 2.0 i386-pc-linux [SSL] [LZO] [EPOLL] built on Apr 6 2006 Thu Nov 23 17:20:37 2006 Diffie-Hellman initialized with 1024 bit key Thu Nov 23 17:20:37 2006 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ] Thu Nov 23 17:20:37 2006 TUN/TAP device tun0 opened Thu Nov 23 17:20:37 2006 /sbin/ifconfig tun0 10.25.2.1 pointopoint 10.25.2.2 mtu 1500 Thu Nov 23 17:20:37 2006 /sbin/route add -net 10.25.2.0 netmask 255.255.255.0 gw 10.25.2.2 Thu Nov 23 17:20:37 2006 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:23 ET:0 EL:0 AF:3/1 ] Thu Nov 23 17:20:37 2006 GID set to openvpn Thu Nov 23 17:20:37 2006 UID set to nobody Thu Nov 23 17:20:37 2006 UDPv4 link local (bound): [undef]:1194 Thu Nov 23 17:20:37 2006 UDPv4 link remote: [undef] Thu Nov 23 17:20:37 2006 MULTI: multi_init called, r=256 v=256 Thu Nov 23 17:20:37 2006 IFCONFIG POOL: base=10.25.2.4 size=62 Thu Nov 23 17:20:37 2006 IFCONFIG POOL LIST Thu Nov 23 17:20:37 2006 Initialization Sequence Completed
Sur le client
- Installer le paquet openvpn
- Récupérer la pair clé/certificat du client ainsi que le CA maître générés sur le serveur (/!\ ce n'est pas optimal : il serait mieux de créer les pairs de chaque client directement sur le client et pas sur le serveur)
Récupérer client.conf dans /usr/share/doc/openvpn/examples/sample-config-files et configurer les paramètres ca, cert, key, remote :
remote 81.91.236.1 1194 ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/sysadmin.crt key /etc/openvpn/keys/sysadmin.key
Tester : sudo openvpn /etc/openvpn/client.conf doit vous donner un affichage du genre :
Fri Nov 24 10:04:12 2006 OpenVPN 2.0.6 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] built on Apr 10 2006 Fri Nov 24 10:04:12 2006 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Fri Nov 24 10:04:12 2006 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info. Fri Nov 24 10:04:12 2006 LZO compression initialized Fri Nov 24 10:04:12 2006 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ] Fri Nov 24 10:04:12 2006 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ] Fri Nov 24 10:04:12 2006 Local Options hash (VER=V4): '41690919' Fri Nov 24 10:04:12 2006 Expected Remote Options hash (VER=V4): '530fdded' Fri Nov 24 10:04:12 2006 UDPv4 link local: [undef] Fri Nov 24 10:04:12 2006 UDPv4 link remote: 81.91.236.1:1194 Fri Nov 24 10:04:12 2006 TLS: Initial packet from 81.91.236.1:1194, sid=c77a8b68 48e5b272 Fri Nov 24 10:04:12 2006 VERIFY OK: depth=1, /C=BJ/ST=Atlantique/L=Cotonou/O=AUF/OU=CNFC/CN=fw-cotonou/emailAddress=root_openvpn@bj.refer.org Fri Nov 24 10:04:12 2006 VERIFY OK: depth=0, /C=BJ/ST=Atlantique/O=AUF/OU=CNFC/CN=server/emailAddress=root_openvpn@bj.refer.org Fri Nov 24 10:04:12 2006 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key Fri Nov 24 10:04:12 2006 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Fri Nov 24 10:04:12 2006 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key Fri Nov 24 10:04:12 2006 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Fri Nov 24 10:04:12 2006 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA Fri Nov 24 10:04:12 2006 [server] Peer Connection Initiated with 81.91.236.1:1194 Fri Nov 24 10:04:13 2006 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1) Fri Nov 24 10:04:13 2006 PUSH: Received control message: 'PUSH_REPLY,route 10.0.0.0 255.0.0.0,route 10.25.2.1,ping 10,ping-restart 120,ifconfig 10.25.2.6 10.25.2.5' Fri Nov 24 10:04:13 2006 OPTIONS IMPORT: timers and/or timeouts modified Fri Nov 24 10:04:13 2006 OPTIONS IMPORT: --ifconfig/up options modified Fri Nov 24 10:04:13 2006 OPTIONS IMPORT: route options modified Fri Nov 24 10:04:13 2006 TUN/TAP device tun0 opened Fri Nov 24 10:04:13 2006 ifconfig tun0 10.25.2.6 pointopoint 10.25.2.5 mtu 1500 Fri Nov 24 10:04:13 2006 route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.25.2.5 Fri Nov 24 10:04:13 2006 route add -net 10.25.2.1 netmask 255.255.255.255 gw 10.25.2.5 Fri Nov 24 10:04:13 2006 Initialization Sequence Completed
Finalisation
Le paquet openvpn a déjà installé /etc/init.d/openvpn qui démarrera automatiquement le serveur OpenVPN en utilisant ce qu'il trouve comme fichier de configuration dans /etc/openvpn/*.conf au prochain démarrage (ou avec un simple sudo invoke-rc.d openvpn start)
Il faut maintenant spécifier automatiquement dans votre resolv.conf que le serveur de nom ne doit pas être récupéré par dhcp :
Installer le paquet resolvconf
- Ajouter les lignes suivantes dans /etc/network/interfaces :
dns-nameservers 10.25.1.1 dns-search refer.bj
- Empêcher le client DHCP de récupérer les serveurs de nom et le search : supprimer les requêtes
domain-name, domain-name-servers
de /etc/dhcp3/dhclient.conf
Redémarrer les interfaces : sudo invoke-rc.d networking restart