|
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
}