VPN

De ClissXXI.

(Différences entre les versions)
(L2TP)
(L2TP)
Ligne 19 : Ligne 19 :
* [http://sourceforge.net/projects/l2tpns l2tpns]: incomplet? [http://packages.debian.org/unstable/net/l2tpd deb]
* [http://sourceforge.net/projects/l2tpns l2tpns]: incomplet? [http://packages.debian.org/unstable/net/l2tpd deb]
* [http://sourceforge.net/projects/rp-l2tp rp-l2tp]: une implémentation, mais dernière [http://sourceforge.net/project/showfiles.php?group_id=63352 release] 0.4 en 2004
* [http://sourceforge.net/projects/rp-l2tp rp-l2tp]: une implémentation, mais dernière [http://sourceforge.net/project/showfiles.php?group_id=63352 release] 0.4 en 2004
-
* l2tpd: [http://www.marko.net/l2tp/ passe la main] -> [http://l2tpd.org domaine abandonné] -> [http://l2tpd.snapgear.org/ changement d'URL] -> [http://l2tpd.sourceforge.net/ remis en ligne, mais inactif] [http://packages.debian.org/unstable/net/l2tpd deb]
+
* l2tpd: [http://www.marko.net/l2tp/ passe la main] -> domaine l2tpd.org abandonné -> [http://l2tpd.snapgear.org/ changement d'URL] -> [http://l2tpd.sourceforge.net/ remis en ligne, mais inactif] [http://packages.debian.org/unstable/net/l2tpd deb]
* [http://www.xelerance.com/software/xl2tpd/ xl2tpd]: reprise de l2tpd, [ftp://ftp.xelerance.com/xl2tpd/ releases] récentes (2007)
* [http://www.xelerance.com/software/xl2tpd/ xl2tpd]: reprise de l2tpd, [ftp://ftp.xelerance.com/xl2tpd/ releases] récentes (2007)

Version du 10 mars 2007 à 09:12

Sommaire

Outils de référence

IPSec

  • IPSec: utilise de nouveaux protocoles IP (AH/50 et ESP/51). Nécessite un support noyau (natif ou KLIPS(=*swan)) et un démon optionnel pour la gestion de clefs, en principe interopétables.
    • strongSwan
    • Openswan
    • intégré au noyau
    • racoon
    • ... à trier ...
    • Utilisé par L2TP/IPSec, inclus dans Woe (2K et + ?)
    • Pare-feu: protocoles IP 50/AH et 51/ESP, ports 500/udp (isakmp) et 4500/udp (ipsec-nat-t / NAT traversal); 1701/udp l2tp (?)

L2TP

IPSec est utilisé sous Windows > 2K avec L2TP.

Implémentations:

PPTP

Client

  • pptpclient: client GNU/Linux [1] [2]
  • Inclus dans MS Woe depuis 95OSR2. Failles de sécurité dans la conception ainsi que dans l'implémentation, à réserver en solution de secours.

Support noyau: cf. QEMU#VPN

Configuration:

# Installer pptpclient:
aptitude install pptp-linux

# /etc/ppp/options.pptp est automatiquement créé, sinon cf [3]

# Description du VPN distant:
cat <<EOF > /etc/ppp/peers/cliss21
file /etc/ppp/options.pptp
# Username (1st field in /etc/ppp/chap-secrets)
name 'sylvain'
# Remote name (2nd field in chap-secrets, not needed if there's "*")
remotename 'cliss21'
# Use a command instead of a real tty
pty "pptp i.cliss21.org --nolaunchpppd"
EOF

# Fichier de mot de passe:
cat <<EOF > /etc/ppp/chap-secrets
"sylvain"       "cliss21"       "motdepasse"
EOF

Serveur

  • Configuration serveur: [4]
  • Pare-feu: protocole IP 47/GRE, 1723/tcp
    • Apparemment le traffic GRE est inclus dans RELATED,ESTABLISHED - sauf pour le réseau local?
    • Utiliser -i ppp+ pour une règle s'appliquant sur toutes les interfaces ppp0, ppp1, ppp2, etc.
  • Support MPPE inclus dans le noyau Linux depuis v2.6.15

Configuration serveur:

# Installer PoPToP:
aptitude install pptpd

# Authoriser l'accès vers sylvain@cliss21 pour toute adresse IP
# (recopier le chap-secrets du client et ajouter une '*' à la fin)
# Le nom du serveur peut être différent sur le serveur et le client
# mais doit correspondre à /etc/pptpd.conf:name
cat <<EOF >> /etc/ppp/chap-secrets
sylvain       pptp       motdepasse      *
EOF

# Configurer le nom du serveur distant
sed -i -e 's/^name .*$/name cliss21/' /etc/ppp/pptp-options

Sécurité

Si vous utilisez un mot de passe qui se trouve dans le dictionnaire de l'attaquant, asleap le trouve immédiatement:

# ./genkeys -r /etc/dictionaries-common/words -f dict.dat -n dict.idx
genkeys 1.4 - generates lookup file for asleap. <jwright@hasborg.com>
Generating hashes for passwords (this may take some time) ...Done.
98570 hashes written in 0.25 seconds:  393931.74 hashes/second
Starting sort (be patient) ...Done.
Completed sort in 724210 compares.
Creating index file (almost finished) ...Done.
# time ./asleap -i eth0 -f dict.dat -n dict.idx
asleap 1.4 - actively recover LEAP/PPTP passwords. <jwright@hasborg.com>
Using the passive attack method.

Captured PPTP exchange information:
        username:          sylvain
        auth challenge:    a0aa0d2e0ca2fde8e36d6a6c69002e9e
        peer challenge:    5568ef7b804b35ac77e757aaafa64afa
        peer response:     06e1349f2a38048f3702a728e46d9c440b0cd67918d697e1
        challenge:         8e5fe08c7dcdbb6e
        hash bytes:        89f1
        NT hash:           5fd76204806b2fffa86f8fbedf9189f1
        password:          zwieback
Closing pcap ...

real    0m3.006s
user    0m0.116s
sys     0m0.004s

Également vulnérable à une attaque de type rainbow (force brute efficace pour algorithme de cryptage sans perturbation/salt), mais je n'ai pas trouvé d'outil tout prêt.

OpenVPN

  • OpenVPN: solution basée sur TLS, ne nécessite aucun support noyau. Non intégré à Woe. Clients et GUI dispos pour GNU/Linux et Woe.
    • Pare-feu: 1194/udp (+ peut-être tcp pour le transport over TCP introduit dans la 1.5)

TCP over TCP

À creuser

  • VTun: Tun/Tap apparemment bien exploité. La documentation du noyau Linux dit qu'il peut faire VPN. Je n'ai rien trouvé dans la doc :/

Vieux

  • FreeS/WAN: abandonné et continué via les forks Openswan et strongSwan.
  • secvpn: construit un VPN à base de SSH et ppp, suivant le VPN HOWTO. TCP over TCP. Vieux.

Liens

iptables -v -t nat -A PREROUTING -i ppp+ -d 10.22.8.0/24 -j NETMAP --to 192.168.1.0/24
iptables -v -t nat -A POSTROUTING -o ppp+ -s 192.168.1.0/24 -j NETMAP --to 10.22.8.0/24
Outils personnels