Différences entre versions de « VPN »
Sauter à la navigation
Sauter à la recherche
imported>SylvainBeucler m (→Serveur) |
imported>SylvainBeucler m (→Serveur) |
||
Ligne 51 : | Ligne 51 : | ||
* Configuration serveur: [http://poptop.sourceforge.net/dox/] | * Configuration serveur: [http://poptop.sourceforge.net/dox/] | ||
− | * Pare-feu: protocole IP 47/GRE, 1723/tcp | + | * Pare-feu: protocole IP 47/GRE, 1723/tcp |
+ | * Apparemment le traffic GRE est inclus dans RELATED,ESTABLISHED | ||
+ | * Utiliser <code>-i ppp+</code> pour une règle s'appliquant sur toutes les interfaces <code>ppp0</code>, <code>ppp1</code>, <code>ppp2</code>, etc. | ||
* Support MPPE inclus dans le noyau Linux depuis v2.6.15 | * Support MPPE inclus dans le noyau Linux depuis v2.6.15 | ||
Version du 23 février 2007 à 16:12
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 (?)
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.
Devrait se charger automatiquement en principe:
modprobe ppp-compress-18 # alias: modprobe ppp_mppe
Par contre si ça ne marche pas à la main, vous n'avez pas le support noyau.
Noyau: CONFIG_PPP_MPPE ne suffit apparemment pas. Il me manque quelque chose d'autre (iptables?).
Configuration:
# Installer pptpclient: aptitude install pptpclient # /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 * Utiliser-i ppp+
pour une règle s'appliquant sur toutes les interfacesppp0
,ppp1
,ppp2
, etc.
- Support MPPE inclus dans le noyau Linux depuis v2.6.15
Configuration serveur:
# Installer PoPToP: aptitude install pptp-linux # Authoriser l'accès vers sylvain@cliss21 pour toute adresse IP # (recopier le chap-secrets du client et ajouter une '*' à la fin) cat <<EOF >> /etc/ppp/chap-secrets sylvain cliss21 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
- TCP over TCP ?: d'après l'auteur, une mauvaise idée, avec dégradation facile du réseau.
- Tunnels ethernet avec openssh: OpenSSH 4 intégre TUN/TAP.
À 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
- Dirty NAT tricks to get a VPN to work with clients also numbered in the private address space: réadressage dynamique du réseau avec
iptables -j NETMAP
.