Outils pour utilisateurs

Outils du site


brouillon_ipsec

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
brouillon_ipsec [2009/06/28 00:55] thierrybrouillon_ipsec [2009/07/04 21:46] (Version actuelle) thierry
Ligne 8: Ligne 8:
   *http://wiki.debian.org/HowTo/openswan   *http://wiki.debian.org/HowTo/openswan
   *http://ubuntuforums.org/showthread.php?p=1781442   *http://ubuntuforums.org/showthread.php?p=1781442
 +  *http://www.gentoo-wiki.info/HOWTO_IPSEC
  
   *ipsec-tools   *ipsec-tools
Ligne 20: Ligne 21:
 Son fonctionnement est au niveau de la couche 3 , donc IP . Son fonctionnement est au niveau de la couche 3 , donc IP .
  
-C'est a dire que les applications n'ont pas conscience que l'IP utilisé est chiffré: c'est transparent.+C'est a dire que les applications n'ont pas conscience que l'IP utilisé est authentifiée et/ou chiffrée: c'est transparent.
  
 Protocoles: Protocoles:
Ligne 31: Ligne 32:
 2 modes de fonctionnement: 2 modes de fonctionnement:
   *transport : authentifier/chiffrer les communications entre 2 IP (public ou local)   *transport : authentifier/chiffrer les communications entre 2 IP (public ou local)
-  *tunnel : authentifier/chiffer un tunnel entre 2 LAN+  *tunnel : authentifier/chiffrer un tunnel entre 2 LAN 
 + 
 + 
 +**''pluto''** : c'est "ike" ... Mais c'est aussi "racoon" ...  
 + 
 +Voir package **''ike-scan''** 
  
-**''pluto''** : c'est "ike" ... package **''ike-scan''** 
  
 ===== ipsec-tools ===== ===== ipsec-tools =====
Ligne 277: Ligne 282:
   *http://www.kame.net/newsletter/20001119/   *http://www.kame.net/newsletter/20001119/
  
-===== LAN-2-LAN =====+==== au putain ==== 
 +=== LAN-2-LAN === 
 +Aprés de tréééééés longues recherches, voici ce que j'ai compris: 
 +| le tunnel ne fonctionne que pour les IP LAN-2-LAN |
  
-Lien: http://wiki.debian.org/HowTo/openswan+En clair, si vous voulez entrer dans le tunnel, il faut que l'IP source et destination appartiennent au tunnel !
  
 +Aucun routage ne pourra être forcé dans le tunnel.
  
-==== Test sur le même LAN ====+=== forward === 
 +Il faut autoriser le Forward... 
 +  # echo "1" > /proc/sys/net/ipv4/ip_forward
  
-=== exemple ===+==== simple ==== 
 +Liens: 
 +  *http://www.linuxplusvalue.be/mylpv.php?id=177
  
-Soit 2 becannes sur le même LAN, mais souhaitant partagé "secretement" un reseau ...+On va faire un tunnel trés simple __sans racoon__ .
  
-PC-A ("serveur": +PC-A veut mettre en tunnel le réseau192.168.0.0/24\\ 
- IP: 172.16.0.33 +PC-B veut mettre en tunnel le réseau: 192.168.1.0/24
- LAN SECRET: 192.168.50/24+
  
-PC-B ("client"+Donc, si nécessaire, faire d'abord
- IP: 172.16.0.39 +  # /etc/init.d/racoon stop
- LAN SECRET: aucun+
  
-Sur PC-A+Sur PC-A, editer **''/etc/ipsec-tools.conf''** afin d'avoir: 
-  # cat /etc/ipsec.secrets +  flush; 
-  172.16.0.33 172.16.0.39 : PSK "le_mot_de_passe_secret"+  spdflush;
      
-  # cat /etc/ipsec.conf +  add <IP-A> <IP-B> esp 34501 -m tunnel -E 3des-cbc "123456789012123456789012"; 
-  version 2.0     # conforms to second version of ipsec.conf specification+  add <IP-B> <IP-A> esp 34502 -m tunnel -E 3des-cbc "123456789012123456789012";
      
-  config setup +  # Tunnel 
-        nhelpers=0+  # PC-A -> PC-B 
 +  spdadd 192.168.0.0/24 192.168.1.0/24 any -P out ipsec 
 +        esp/tunnel/<IP-A>-<IP-B>/require;
      
-  conn mynet +  # PC-A <- PC-B 
-        authby=secret +  spdadd 192.168.1.0/24 192.168.0.0/24 any -P in ipsec 
-        left=172.16.0.33 +        esp/tunnel/<IP-B>-<IP-A>/require; 
-        leftsubnet=192.168.50.0/24 +Et puis: 
-        right=172.16.0.39 +  # /etc/init.d/setkey restart 
-        auto=start+ 
 +Maintenant sur PC-B, editer **''/etc/ipsec-tools.conf''** afin d'avoir: 
 +  flush; 
 +  spdflush;
      
-  include /etc/ipsec.d/examples/no_oe.conf+  add <IP-A> <IP-B> esp 34501 -m tunnel -E 3des-cbc "123456789012123456789012"; 
 +  add <IP-B> <IP-A> esp 34502 -m tunnel -E 3des-cbc "123456789012123456789012"; 
 +   
 +  # Tunnel 
 +  # PC-B -> PC-A 
 +  spdadd 192.168.1.0/24 192.168.0.0/24 any -P out ipsec 
 +        esp/tunnel/<IP-B>-<IP-A>/require; 
 +   
 +  # PC-B <- PC-A 
 +  spdadd 192.168.0.0/24 192.168.1.0/24 any -P in ipsec 
 +        esp/tunnel/<IP-A>-<IP-B>/require;   
 +Et puis: 
 +  # /etc/init.d/setkey restart
  
-Copier **''ipsec.secrets''** et **''ipsec.conf''*sur le "PC_B".+Pour tester, c'est plus compliqué: 
 +  *il faut que l'IP source soit dans l'un des LAN, et que l'IP destinataire soit dans l'un des autres LAN. 
 +  *il faut activer le forward entre interface (si on fait un test a partir d'un autre poste) 
 +  *il faut autoriser le firewall a balancer des IP local sur le WAN !
  
-Inverser les IP dans le fichier **''ipsec.secrets''** , afin d'avoir+Soit le cas de figure suivant: 
-  172.16.0.39 172.16.0.33 : PSK "le_mot_de_passe_secret"+  *PC-A a une IP 192.168.0.x 
 +  *PC-B a une IP 192.168.1.y 
 +Alors on peut faire
 +  # nc -s 192.168.0.x 192.168.1.y 22 
 +  SSH-2.0-OpenSSH_5.1p1 Debian-5
  
-Puissur chacun des PC+Dans le genre bizarreil a fallut autoriser (vite fait) le firewall avec un règle comme cela
-  /etc/init.d/ipsec start   (ou restart)+  $IPTABLES -A INPUT -i $WAN_IF -d 192.168.0.0/16 -s 192.168.0.0/16 -j ACCEPT 
 +Et oui: du WAN arrive des IP locales...
  
-Un test montre que les requetes ARP passent aussi !?+==== avec IKE ====
  
-=== explications ===+ou plutot, avec **''racoon''**.
  
-(sous réserve d'avoir bien compris!)+En fait, il faut juste laisser les politiques, et supprimer les protocoles souhaités.
  
-  *"left" : c'est "soi-même"ou plus exactement: l'IP a gauche dans **''ipsec.secrets''** . +Et bien surdémarrer **''racoon''** ...
-  *"leftnexthop" : c'est la gateway Par defaut: "%direct"  ( On peut mettre aussi "%defaultroute"+
-  *"leftsubnet" : le reseau a partager +
-  *"right" : c'est l'autre+
  
-Les 2 ne sont pas obligés de partager...+Voila.
  
  
-=== pluto === +===== Tips ===== 
-  # cat /var/log/syslog | grep pluto +==== Route et MTU ==== 
-  Jun 24 11:43:29 xxxxxx ipsec__plutorun: 104 "mynet" #1: STATE_MAIN_I1: initiate +On doit parfois jouer avec les routes...
-  Jun 24 11:43:29 xxxxxx ipsec__plutorun: ...could not start conn "mynet"+
  
-=== ike-scan ===+Mais aussi avec la MTU. 
 + 
 +Pour mémoire, on peut utiliser ce format de commande par exemple: 
 +  # ip route add <NETWORK> via <gateway> src <SRC> [mtu X] 
 +Par exemple: 
 +  # ip route add 192.168.1.0/24 via default src 192.168.0.49 mtu 1415 
 +Ainsi, ce qui est a destination de la classe "192.168.1.0/24" prendra pour source "192.168.0.49" et la MTU 1415 
 + 
 + 
 +==== iptables ==== 
 + 
 +  $IPTABLES -A INPUT -i eth0 -p esp -j ACCEPT                    ; # ESP (ou -p 50) 
 +  $IPTABLES -A INPUT -i eth0 -p ah -j ACCEPT                     ; # AH (ou -p 51) 
 +  $IPTABLES -A INPUT -i eth0 -p udp --dport 500 -j ACCEPT        ; # pour IKE/racoon/pluto 
 + 
 +Faire des bizarreries, comme autoriser les IP locales (192.168/16 10/8...) a voyager vers Internet... (sans oublier qu'en fait, ca passe par un tunnel!) 
 + 
 +==== ike-scan ====
  
   # aptitude install ike-scan   # aptitude install ike-scan
Ligne 354: Ligne 403:
         VID=afcad71368a1f1c96b8696fc77570100 (Dead Peer Detection v1.0)         VID=afcad71368a1f1c96b8696fc77570100 (Dead Peer Detection v1.0)
  
-==== Test sur 2 IP Public ====+===== Openswan =====
  
-Faire partager un reseau local, entre 2 IP public.+Lien: http://wiki.debian.org/HowTo/openswan
  
-=== conf === +Malgré tout les tutoriaux, rien ne fonctionne comme voulu.\\
- +
-"IP_PUBLIC_20" et "IP_PUBLIC_15" sont a remplacer respectivement par les IP public. +
- +
-Sur "PUBLIC_20": +
- +
-  # cat ipsec.secrets +
-  IP_PUBLIC_20 IP_PUBLIC_15 : PSK "le_mot_de_passe_secret" +
- +
-  # cat ipsec.conf +
-  version 2.0     # conforms to second version of ipsec.conf specification +
-   +
-  config setup +
-        nat_traversal=yes +
-        nhelpers=0 +
-   +
-  conn mynet +
-        authby=secret +
-        left=IP_PUBLIC_20 +
-        leftsubnet=192.168.1.0/24 +
-        leftnexthop=IP_PUBLIC_15 +
-        right=IP_PUBLIC_15 +
-        rightnexthop=IP_PUBLIC_20 +
-        auto=start +
-   +
-  include /etc/ipsec.d/examples/no_oe.conf +
- +
-Sur IP_PUBLIC_15 : \\ +
-(Simple inversion) +
-  # cat ipsec.secrets +
-  IP_PUBLIC_15 IP_PUBLIC_20 : PSK "le_mot_de_passe_secret" +
-Et "ipsec.conf" identique. +
- +
-=== detaillons === +
-Au niveau IP, c'est un peu étrange... +
- +
-Sur IP_PUBLIC_A : +
-  # route -n +
-  Table de routage IP du noyau +
-  Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface +
-  IP_PUBLIC_15    0.0.0.0         255.255.255.255 UH    0      0        0 eth0 +
-  192.168.1.0     0.0.0.0         255.255.255.0            0        0 eth1 +
-  ... +
- +
-Sur IP_PUBLIC_B : +
-  # route -n +
-  Table de routage IP du noyau +
-  Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface +
-  192.168.1.0     0.0.0.0         255.255.255.0            0        0 eth0 +
-  ... +
- +
-Au niveau du firewall IP_PUBLIC_A : +
-  WAN_IF=eth0 +
-  WIFI_IF=eth1 +
-   +
-  # ipsec test +
- +
-  $IPTABLES -A INPUT -i $WAN_IF -p 50 -s IP_PUBLIC_15 -j ACCEPT      ; # ESP +
-  $IPTABLES -A INPUT -i $WAN_IF -p 51 -s IP_PUBLIC_15 -j ACCEPT      ; # AH +
-   +
-  $IPTABLES -A INPUT -i $WAN_IF -s IP_PUBLIC_15 -d 192.168.1.0/24 -j ACCEPT +
-  $IPTABLES -A OUTPUT -o $WAN_IF -d IP_PUBLIC_15 -s 192.168.1.0/24 -j ACCEPT +
-   +
-  $IPTABLES -A FORWARD -i $WAN_IF -o $WIFI_IF -j ACCEPT +
-  $IPTABLES -A FORWARD -i $WIFI_IF -o $WAN_IF -j ACCEPT+
  
 +Donc, j'abadonne **''openswan''** ... 
  
 +Et finalement, "ipsec-tools" me suffit amplement.
brouillon_ipsec.1246150527.txt.gz · Dernière modification : 2009/06/28 00:55 de thierry