Mise en place d'un VPN
|
FreeS/WAN : http://www.freeswan.org
OpenVPN : http://openvpn.sourceforge.net
Avertissement:
Ce document ne se veut pas être une fidèle traduction des documentation disponibles sur
les sites ci-dessus, mais une simple adaptation de celles-ci agrémentées de
quelques points qui pourraient poser problème.
Introduction :
FreeS/WAN et openVPN sont 2 VPNs intéressants pour des raisons bien différentes: le premier va être implémenté dans la future version d'IPV6, le second est très facile à mettre en place. Nous verrons ici comment réaliser une connexion en mode tunnel pour ces 2 logiciels!
FreeS/WAN
http://www.freeswan.org[L]# dselect (patch freeswan, sources noyau + dependances) [L]# cp /usr/src/kernel-patches/all/apply/freeswan /usr/src/linux/ [L]# /usr/src/linux/freeswanRecompilation du noyau
[L]# make config (menuconfig) (choix des options de compilation laissé à vos soins, neanmoins: CONFIG_IPSEC=y (rubrique networking) CONFIG_IPSEC_IPIP=y CONFIG_IPSEC_AH=y CONFIG_IPSEC_AUTH_HMAC_MD5=y CONFIG_IPSEC_AUTH_HMAC_SHA1=y CONFIG_IPSEC_ESP=y CONFIG_IPSEC_ENC_3DES=y CONFIG_IPSEC_EXT=y CONFIG_IPSEC_IPCOMP=y CONFIG_IPSEC_DEBUG=y) [L]# make clean; make bzImage (make modules; make modules_install #optionnels)Mise en place de Lilo (ou GRUB)
[L]# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-fs Modification de /etc/lilo.conf (menu.lst pour grub) [L]# lilo [L]# reboot
[L]# dselect (FreeS/WAN et toutes ses dépendances) \-> génération des clés et certificats (Cf répertoire /etc/ipsec.d/) Création de la clé publique d'échange [L]# ipsec rsasigkey --verbose 2048 > /root/clef-fs \-> copie du contenu dans /etc/ipsec.secrets (Cf fichier plus bas) \-> attention à la syntaxe!!!! Fichier de configuration /etc/ipsec.conf \-> (Cf fichier plus bas)Modification du fichier /etc/network/interfaces
[L]# /etc/init.d/networking restart* A droite - Même démarche qu'à gauche :
# On declare l'interface: DEV_EXT="ethX" # interface du reseau vers internet DEV_INT="ethX" # interface du reseau interne # On fixe les regles du firewall iptables -A INPUT -p udp -i $DEV_EXT --sport 500 --dport 500 -j ACCEPT iptables -A OUTPUT -p udp -o $DEV_EXT --sport 500 --dport 500 -j ACCEPT iptables -A INPUT -p 50 -i $DEV_EXT -j ACCEPT iptables -A OUTPUT -p 50 -o $DEV_EXT -j ACCEPT iptables -A FORWARD -d $prive -i ipsec+ -j ACCEPT iptables -A FORWARD -s $prive -i $DEV_INT -j ACCEPTLancement de FreeS/WAN:
[L|R]# ipsec auto --up nom_de_la_connexion
------------------------------ Fichier /etc/ipsec.conf gauche ------------------------------ # /etc/ipsec.conf - FreeS/WAN IPsec configuration file sic configuration config setup interfaces="ipsec0=eth1" klipsdebug=none plutodebug=none plutoload=%search plutostart=%search # uniqueids=yes # defaults for subsequent connection descriptions conn %default keyingtries=0 # disablearrivalcheck=no authby=rsasig # leftrsasigkey=%dns # rightrsasigkey=%dns # sample VPN connection conn vpn left=213.41.42.86 leftsubnet=192.168.6.0/24 right=213.41.42.87 rightsubnet=192.168.7.0/24 auto=add leftrsasigkey=0sAQNhwSfAyL/09N84... rightrsasigkey=0sAQN/McvSpoKxSk/DX+P... ----------------------------- Fichier /etc/ipsec.conf droit ----------------------------- # /etc/ipsec.conf - FreeS/WAN IPsec configuration file # basic configuration config setup interfaces="ipsec0=eth0" klipsdebug=none plutodebug=none plutoload=%search plutostart=%search # uniqueids=yes conn %default keyingtries=0 # disablearrivalcheck=no authby=rsasig # leftrsasigkey=%dns # rightrsasigkey=%dns conn vpn auto=add left=213.41.42.87 leftsubnet=192.168.7.0/24 right=213.41.42.86 rightsubnet=192.168.6.0/24 leftrsasigkey=0sAQN/McvSpoKxSk/DX+P... rightrsasigkey=0sAQNhwSfAyL/09N84... ---------------------------- Fichier /etc/ipsec.secrets g ---------------------------- : RSA { # RSA 2048 bits formation6 Mon Aug 5 10:24:38 2002 # for signatures only, UNSAFE FOR ENCRYPTION #pubkey=0sAQNhwSfAyL/09N84... #IN KEY 0x4200 4 1 AQNhwSfAyL/09N84... # (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA) Modulus: 0x61c127c0c8bff4f4df3868a58fe7e6997719286c343b765bc PublicExponent: 0x03 # everything after this point is secret PrivateExponent: 0x104adbf576caa8d37a8966c642a6a66ee92edc1 Prime1: 0xa22dc9e14edc29ca16a117e7c453283eacf5f486eb1feeb02 Prime2: 0x9a4e4f7da8e891dd95ae2d6f291dcf44b990024ba3fc51e66 Exponent1: 0x6c1e86963492c686b9c0ba9a82e21ad4734ea3049cbff4 Exponent2: 0x66dedfa91b45b693b91ec8f4c613df8326600187c2a836 Coefficient: 0x2a18ba68dcb96f47f293d7a150a52536fda0fcb6cf77 } ---------------------------- Fichier /etc/ipsec.secrets d ---------------------------- : RSA { # RSA 2048 bits debian Mon Aug 5 10:22:32 2002 # for signatures only, UNSAFE FOR ENCRYPTION #pubkey=0sAQN/McvSpoKxSk/DX+P... #IN KEY 0x4200 4 1 AQN/McvSpoKxSk/DX+P... # (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA) Modulus: 0x7f31cbd2a682b14a4fc35fe3e566600d62c83e6463df7da4c5 PublicExponent: 0x03 # everything after this point is secret PrivateExponent: 0x1532f74dc66b1d8c62a08ffb50e665579076b510bb Prime1: 0xd5d71da88a461bbce6ba2bb2cfe402372b0d7ae240344a07509 Prime2: 0x98458529b153811b02cb8b6e4a09545172bd91ef5f3e6974a3b Exponent1: 0x8e8f691b06d967d3447c1d21dfed56cf7208fc96d578315a Exponent2: 0x6583ae1bcb8d00bcac87b24986b0e2e0f7290bf4ea299ba3 Coefficient: 0x7288279750ebec014f827f29f736efef731faa9eefaedd }