Forum debian-fr.org

Rechercher:

* Connexion   * M’enregistrer

* FAQ    * Rechercher





Poster un nouveau sujet Répondre au sujet  [ 46 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
 Sujet du message: install openvpn en mode bridge
MessagePosté: 25 Aoû 2006 19:02 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 08 Sep 2004 23:53
Messages: 22412
Localisation: CAEN
Openvpn est un service vpn trés sûr, super stable, et d'enveloppe légère (la qualité enfonce largement PPTP), relativement simple à mettre en place, même si j'ai galèré à comprendre sa simplicité, et bourré de fonctionnalités utiles (cf la doc sur http://www.openvpn.org )..
Indépendament des cas évidents ou l'on a besoin de connecter de manière sûre des sites distant, c'est un bon outil pour faire transiter des données jusqu'à une passerelle et travailler en wifi, le tout avec un bon niveau de sécurité.
Par ailleurs la version windows fonctionne aussi bien et se configure à peu prés de la même manière (et oui, on a parfois des clients windows à gèrer aussi, il faut s'en souvenir).

Phase 1: prérequis, preinstallation des paquets necessaires
Attention
En fin d'install, il y a des modifications à vérifier:
* créer un user/group openvpn avant de lancer le script.
* Penser à changer l'interface d'écoute eth0 en br0 dans par exemple les fichiers de routage, de configuration diverses de serveurs (Squid, Samba, etc) ET surtout dans /etc/default/dhcp

openvpn plante parfois avec un noyau 2.4, il vaut mieux utiliser un 2.6.
Par ailleurs, quoi que je ne l'ai pas testé pour des raisons diverses, il est conseillé d'utiliser un noyau sur lequel est appliqué le patch grsecurity, trouvable sur http://www.grsecurity.net/ .

votre noyau doit comporter les options actives suivantes:
Citation:
Device Driver
-> Networking support
--> Networking Options
---> Universal Tun/Tap device driver support
---> 802.1d Ethernet Bridging


installations
sur le serveur debian:
Code:
apt-get install bridge-utils openvpn openssl libssl-dev liblzo1 liblzo-dev

sur le client debian:
Code:
apt-get install openvpn liblzo1

Tous ces paquets peuvent être pris en source et recompilés plus finement bien sûr dans le cas d'un serveur d'accés dédié.

Phase 2: mise en oeuvre de la PKI
Pour l'authentification, nous allons mettre en oeuvre une PKI ( "Public Key Infrastructure"=Infrastructure de clé publique ), et identifier un à un les clients du serveur d'accés, en utilisant le jeu de scripts "easy-rsa" fourni par le paquet openvpn.
preparation
Commencez par recopier, dans un coin sûr, le répertoire /usr/share/doc/openvpn/examples/easy-rsa.
Code:
$ cp -R /usr/share/doc/openvpn/examples/easy-rsa/ .

Passez en root, et sécurisez le répertoire:
Code:
# chown -R root.root easy-rsa
# chmod -R 0700 easy-rsa

Descendez dans le répertoire.
La première étape consiste à modifier les variables communes à la génération des différentes clés. Ces variables sont à ajuster dans le fichier vars. Voici un exemple:
Citation:
export D=`pwd`
export KEY_CONFIG=$D/openssl.cnf
export KEY_DIR=$D/keys
export KEY_SIZE=1024
export KEY_COUNTRY=FR
export KEY_PROVINCE=France
export KEY_CITY=UNEVILLE
export KEY_ORG="Ma société"
export KEY_EMAIL="bidon@isp.com"

à partir de maintenant, chaque fois que vous reviendrez génèrer des clés ou faire une opération de clé, pensez à "sourcer" ce fichier avant pour mettre à jour votre environnement:
Code:
# . ./vars
Ensuite:
Code:
# mkdir keys
# touch keys/index.txt
# echo 01 > keys/serial
# chmod -R 0700 keys

Préparation des clés du serveur:
Code:
# ./build-dh
# ./build-ca
# ./build-key-server serveur

(ndr: à etoffer)
Et d'un client:
Code:
./build-key client

(ndr: à etoffer)

A l'issue de ces manoeuvres on se retrouve avec les fichiers suivants dans keys:
Code:
-rwx------ 1 root root    0 2008-09-18 18:58 index.txt.old
-rwx------ 1 root root    3 2008-09-18 18:59 serial.old
-rw-r--r-- 1 root root  245 2008-09-18 19:00 dh1024.pem
-rw------- 1 root root  887 2008-09-18 19:01 ca.key
-rw-r--r-- 1 root root 1224 2008-09-18 19:01 ca.crt
-rw------- 1 root root  887 2008-09-18 19:01 serveur.key
-rw-r--r-- 1 root root  680 2008-09-18 19:01 serveur.csr
-rw-r--r-- 1 root root 3647 2008-09-18 19:01 serveur.crt
-rw-r--r-- 1 root root    3 2008-09-18 19:01 serial
-rw-r--r-- 1 root root   21 2008-09-18 19:01 index.txt.attr
-rw-r--r-- 1 root root  105 2008-09-18 19:01 index.txt
-rw-r--r-- 1 root root 3647 2008-09-18 19:01 01.pem
-rw-r--r-- 1 root root  887 2008-09-18 19:03 client.key
-rw-r--r-- 1 root root  688 2008-09-18 19:03 client.csr
-rw-r--r-- 1 root root    0 2008-09-18 19:03 client.crt

les fichiers .key sont les clefs privés du serveur, du client et du serveur d'au
thentification (ca.key). Les fichiers .crt sont les certificats correspondants.
dh1024.pem est un paramètre Diffie Hellman [à expliquer, m'a l'air curieux ce tr
uc] permettant apparemment de sécuriser les transferts contre une attaque man-in
-the-middle.


Pour notre utilisation, il faut en fait mettre ces fichiers dans le répertoire /etc/openvpn
# cp ./keys/ca.crt /etc/openvpn/
# cp ./keys/ca.key /etc/openvpn/
# cp ./keys/serveur.crt /etc/openvpn/
# cp ./keys/serveur.key /etc/openvpn/
# cp ./keys/dh1024.pem /etc/openvpn/

Notes:
- N'oubliez pas d'utiliser des CN (Common Name) unique pour chaque participant du VPN (serveur, et chaque client), sinon votre serveur ne fonctionnera pas ! Mettez aussi un ON (Organization Name) Commun au serveur et aux clients.
- N'utilisez pas de fqdn pour désigner votre serveur et vos clients, openvpn n'aime pas les clés avec un nom de fichier long avec une arobase dedans. Je n'ai pas reussi à savoir pourquoi, mais certains noms fqdn passent, d'autres non.
- ne transfèrez pas vos clés par un canal non sécurisé. L'idéal est de stocker le repertoire keys sur une clé usb et rien sur la machine, mais on peut aussi utiliser le user openvpn pour les transfèrer en scp (puisque le user root doit si vous êtes raisonable être désactivé pour ssh).
- une precaution supplémentaire est d'utiliser une solution tls et de génèrer une clé supplémentaire pour éviter les interceptions de clé (attaque "Man in the Middle"). Vous pourrez trouver un exemple de config ici : http://www.nbs-system.com/article/openvpn2_howto . Pour les paranos, ce tuto effectue un chroot du serveur en plus de la démarche que je décris ici, et il est en français.

Ca y est, vous pouvez annoncer à tout le monde que vous avez votre propre PKI (la frime) ;)

Configuration du serveur
Comme je l'ai indiqué dans le titre, ce tuto propose une configuration en mode pont ("Bridged"), en opposition au mode routé ("Routed").
Ponté ou non, openvpn utilise un mecanisme appelé Tun/Tap, qui est une sorte de "cable virtuel" entre le client et le serveur, et qui se traduit des deux cotés par l'ajout d'une interface (tunX en routé, tapX en ponté).
Le mode routé est facilement comprehensible, à savoir qu'il faut configurer, une fois le "cable" branché, les tables éventuelles de routage sur le client et le serveur qu'on considère alors comme des routeurs. Cette configuration est plutot simple, mais necessite d'utiliser un réseau "à part" pour l'interface d'entrée du serveur et les clients, augmente d'un hop la distance entre les deux lan connectés, et ne permet pas de transfèrer d'autres protocoles que ceux qu'iptables sait router (pas d'ipx, ni de - beurk - netbios, par exemple). Pour info, il suffit d'installer la config serveur openvpn d'exemple, de modifier un peu les valeurs, et de configurer un peu de routage.

config sur le serveur (dans /etc/openvpn/server.conf, par exemple)

Code:
port 5555
proto udp
dev tap0

ca ca.crt
cert serveur.crt
key serveur.key
dh dh1024.pem

ifconfig-pool-persist ipp.txt

server-bridge 192.168.0.1 255.255.255.0 192.168.0.151 192.168.0.250

keepalive 10 120
comp-lzo

user openvpn
group openvpn

persist-key
persist-tun
status openvpn-status.log
verb 1



Démarrage d'openvpn
à l'installation, openvpn est configuré pour démarrer avec la machine. Pour le mode ponté, celà n'est pas souhaitable, car celà pose des problême si le pont n'est pas bien configuré à ce moment la.
Pour désactiver le service:
Code:
update-rc.d -f openvpn remove

Plutot que d'utiliser un script pour lever le bridge comme beaucoup de tutos non specifiques debian font, nous allons utiliser les scripts de levées d'interface dans /etc/network/interfaces.
c'est le bridge qui va désormais hériter des caractèristique de la carte vers le lan.

considèrons dans notre exemple que la carte (la seule dans notre exemple) vers le lan est eth0 configurée en static 192.168.0.1/24 .
On aura alors:

* /etc/network/interfaces
Code:
auto lo br0
iface lo inet loopback
iface br0 inet static
       address 192.168.0.1
       netmask 255.255.255.0
       broadcast 192.168.0.255
       bridge-ports eth0
       post-up /etc/openvpn/scripts/ovup && /etc/init.d/openvpn start
       pre-down /etc/init.d/openvpn stop
       post-down /etc/openvpn/scripts/ovdown

* /etc/openvpn/scripts/ovup
Code:
#!/bin/sh
openvpn --mktun --dev tap0
brctl addif br0 tap0
ifconfig eth0 promisc up
ifconfig tap0 promisc up
ifconfig br0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255

* /etc/openvpn/scripts/ovdown
Code:
#!/bin/sh
openvpn --rmtun --dev tap0


Config sur le client:
Sur le client, un fichier de config suffit:
* /etc/openvpn/client.conf
Code:
client
dev tap0
proto udp
remote adresse.du.serveur 5555
resolv-retry infinite
nobind
user openvpn
group openvpn
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 1


Conclusion
N'hesitez pas à regarder les fichier d'example de configuration dans /usr/share/doc/openvpn/examples.
Je ne peux que vous renvoyer à
http://www.nbs-system.com/article/openvpn2_howto
qui s'est encore affiné depuis le début de la redaction de ce post.

_________________
«l'homme n'est pas une marchandise comme les autres»
Nikolaë Sarköcescu, 1955-, "Discours de campagne, St Etienne 9/11/2006"

PS: Je fais du referencement internet et sur notre blog, je traite de référencement sous linux.


Dernière édition par mattotop le 08 Jan 2007 19:30, édité 10 fois.

Haut
 Profil  
 
MessagePosté: 25 Aoû 2006 21:25 
cool merci pour l'initiative, ca risque de me servir :)


Haut
  
 
MessagePosté: 13 Sep 2006 15:31 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 08 Sep 2004 23:53
Messages: 22412
Localisation: CAEN
Terminé.

_________________
«l'homme n'est pas une marchandise comme les autres»
Nikolaë Sarköcescu, 1955-, "Discours de campagne, St Etienne 9/11/2006"

PS: Je fais du referencement internet et sur notre blog, je traite de référencement sous linux.


Haut
 Profil  
 
MessagePosté: 16 Sep 2006 00:33 
Je passe de plus en plus pour un con quand les gens me voient me branché chez moi avec un fil, meme les plus attardé en informatique ont maintenant le wifi chez eux. Bon la plus part du temps ya meme pas une clef WEP, mais il s'en foutent l'ignorance les proteges :roll:

Enfin voila j'ai une carte wifi sur mon PC fix et je voudrais que moi ou des visiteurs puissions nous brancher dessus, mais tu parle d'un logiciel client pour windows, ca craint ca y a pas moyen de faire sans ? il doit bien avoir des outils vpn intégré a windows XP ?

Ha oui question subsidiaire, je n'habite pas en france et je me contre fous des limitations sur le cryptage. Je ne connais pas la lois ici, mais je suis certain que c'est le dernier de leur soucis a eux aussi de respecter ce genre de norme imposé par des gouvernement big brother style. Alors quel genre de clef me conseils tu ?


Haut
  
 
MessagePosté: 16 Sep 2006 02:20 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 08 Sep 2004 23:53
Messages: 22412
Localisation: CAEN
avision a écrit:
(...)Enfin voila j'ai une carte wifi sur mon PC fix et je voudrais que moi ou des visiteurs puissions nous brancher dessus, mais tu parle d'un logiciel client pour windows, ca craint ca y a pas moyen de faire sans ? il doit bien avoir des outils vpn intégré a windows XP ?
Si ipsec, mais c'est ingèrable sous lin, et pptp qui est cassable en 3 minutes.
Mais le client windows se télécharge et s'installe en 10 minutes, et aprés, il faut deux secondes pour copier la PKI et la config depuis une clé usb. Une fois installé, le tunnel est actif définitivement sans toucher à rien si le service est actif et le point d'accés répond.
avision a écrit:
Ha oui question subsidiaire, je n'habite pas en france et je me contre fous des limitations sur le cryptage. Je ne connais pas la lois ici, mais je suis certain que c'est le dernier de leur soucis a eux aussi de respecter ce genre de norme imposé par des gouvernement big brother style. Alors quel genre de clef me conseils tu ?
Je ne sais pas. Je me fous de la legislation française en la matière (en plus, je crois qu'elle a évolué), et par principe, j'ai pris la taille qui etait conseillée qui est un compromis entre une cle trop faible qui n'apporte pas de securité, et une clé trop grosse qui ralentit le cryptage/decryptage.

_________________
«l'homme n'est pas une marchandise comme les autres»
Nikolaë Sarköcescu, 1955-, "Discours de campagne, St Etienne 9/11/2006"

PS: Je fais du referencement internet et sur notre blog, je traite de référencement sous linux.


Haut
 Profil  
 
MessagePosté: 17 Sep 2006 00:49 
oui tu as raison installé un logiciel n'est pas si genant puisque il faudra bien faire passé la clef de toute facons, mais ca perd de sa spontanéité c'est ca qui est un peu domage...


Haut
  
 
MessagePosté: 17 Sep 2006 01:06 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 08 Sep 2004 23:53
Messages: 22412
Localisation: CAEN
avision a écrit:
oui tu as raison installé un logiciel n'est pas si genant puisque il faudra bien faire passé la clef de toute facons, mais ca perd de sa spontanéité c'est ca qui est un peu domage...
Ah oui, ça. Peut être que de windows à windows, la mise en oeuvre d'ipdec est plus simple, mais j'en doutes. :cry:

_________________
«l'homme n'est pas une marchandise comme les autres»
Nikolaë Sarköcescu, 1955-, "Discours de campagne, St Etienne 9/11/2006"

PS: Je fais du referencement internet et sur notre blog, je traite de référencement sous linux.


Haut
 Profil  
 
MessagePosté: 17 Sep 2006 02:46 
Si la spontanéité sinifie se priver de protection je dis non :lol:


Haut
  
 
MessagePosté: 01 Oct 2006 04:45 
J'ai lu quelques trucs a propo de WPA pro ca parait etre un bon compromis, je ne me suis toujours pas décidé en tout cas, je n'ai pas eu trop le temps ces derniers temps.
Mais quand je vois que en me rapprochant bien de mon balcon j'arrive a détecté un reseau de l'ambassade du mexique non protégé je me dis que je suis quand meme bien plus parano que la moyenne! (preuve je n'ai pas essayé de me connecté de peur que ce soit un genre de piege :lol: )


Haut
  
 
MessagePosté: 01 Oct 2006 13:13 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 08 Sep 2004 23:53
Messages: 22412
Localisation: CAEN
vu comment le fonctionnement d'openvpn est transparent une fois en place, faut pas se priver de sécuriser tout ce qu'on fait.

_________________
«l'homme n'est pas une marchandise comme les autres»
Nikolaë Sarköcescu, 1955-, "Discours de campagne, St Etienne 9/11/2006"

PS: Je fais du referencement internet et sur notre blog, je traite de référencement sous linux.


Haut
 Profil  
 
MessagePosté: 27 Nov 2006 19:38 
How to bridge networks with OpenVPN
( Tuesday November 21, 2006 )
http://www.linux.com/article.pl?sid=06/11/07/213217


Haut
  
 
MessagePosté: 28 Nov 2006 02:08 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 08 Sep 2004 23:53
Messages: 22412
Localisation: CAEN
J'explique mieux. 8)

_________________
«l'homme n'est pas une marchandise comme les autres»
Nikolaë Sarköcescu, 1955-, "Discours de campagne, St Etienne 9/11/2006"

PS: Je fais du referencement internet et sur notre blog, je traite de référencement sous linux.


Haut
 Profil  
 
MessagePosté: 28 Nov 2006 13:18 
Ah oui c'est pas comparable
;)


Haut
  
 
MessagePosté: 18 Sep 2008 22:00 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 17 Fév 2006 12:20
Messages: 15345
Localisation: Ile de France
Je rajouterais bien les précisions suivantes:
-----------------------------
A l'issue de ces manoeuvres on se retrouve avec les fichiers suivants dans keys:
Code:
-rwx------ 1 root root    0 2008-09-18 18:58 index.txt.old
-rwx------ 1 root root    3 2008-09-18 18:59 serial.old
-rw-r--r-- 1 root root  245 2008-09-18 19:00 dh1024.pem
-rw------- 1 root root  887 2008-09-18 19:01 ca.key
-rw-r--r-- 1 root root 1224 2008-09-18 19:01 ca.crt
-rw------- 1 root root  887 2008-09-18 19:01 serveur.key
-rw-r--r-- 1 root root  680 2008-09-18 19:01 serveur.csr
-rw-r--r-- 1 root root 3647 2008-09-18 19:01 serveur.crt
-rw-r--r-- 1 root root    3 2008-09-18 19:01 serial
-rw-r--r-- 1 root root   21 2008-09-18 19:01 index.txt.attr
-rw-r--r-- 1 root root  105 2008-09-18 19:01 index.txt
-rw-r--r-- 1 root root 3647 2008-09-18 19:01 01.pem
-rw-r--r-- 1 root root  887 2008-09-18 19:03 client.key
-rw-r--r-- 1 root root  688 2008-09-18 19:03 client.csr
-rw-r--r-- 1 root root    0 2008-09-18 19:03 client.crt

les fichiers .key sont les clefs privés du serveur, du client et du serveur d'au
thentification (ca.key). Les fichiers .crt sont les certificats correspondants.
dh1024.pem est un paramètre Diffie Hellman [à expliquer, m'a l'air curieux ce tr
uc] permettant apparemment de sécuriser les transferts contre une attaque man-in
-the-middle.

Il faut en fait mettre ces fichiers dans le répertoire /etc/openvpn
# cp ./keys/ca.crt /etc/openvpn/
# cp ./keys/ca.key /etc/openvpn/
# cp ./keys/serveur.crt /etc/openvpn/
# cp ./keys/serveur.key /etc/openvpn/
# cp ./keys/dh1024.pem /etc/openvpn/

-----------------------

Le fichier configurant le serveur est /etc/openvpn/server.conf.


Sinon, pourquoi mettre les interfaces en mode promiscuous???
Code:
ifconfig eth0 promisc up
ifconfig tap0 promisc up

je n'arrive pas à voir l'intérêt...
[edit: En fait, elles se mettent d'emblée dans ce mode]

Attention
* créer un user/group openvpn avant de lancer le script.
* Penser à changer eth0 en br0 dans les fichiers de routage, de configuration diverses de serveurs (Squid, Samba, etc) ET surtout dans /etc/default/dhcp




Sinon, je confirme que c'est particulièrement pratique, j'ai essayé avec ipsec+strongswan, c'est incomprehensible.

_________________
Debian Squeeze amd64 Linux version 2.6.30-1
Le Dell 1525N a pété après 19 mois, Toshiba A500D Intel Core 2 Duo 4G RAM
Carte Nvidia, XFCE avec compiz (ben si...)

2 mains de 5 doigts chacune, une tête plus options usuelles


Haut
 Profil  
 
MessagePosté: 19 Sep 2008 09:31 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 08 Sep 2004 23:53
Messages: 22412
Localisation: CAEN
fran.b a écrit:
Je rajouterais bien les précisions suivantes:
(...)
fait.
fran.b a écrit:
Sinon, pourquoi mettre les interfaces en mode promiscuous???
Code:
ifconfig eth0 promisc up
ifconfig tap0 promisc up

je n'arrive pas à voir l'intérêt...
[edit: En fait, elles se mettent d'emblée dans ce mode]
Et c'est partout fait comme ça, alors j'ai fait comme ça. Ca doit être lié à l' "apprentissage" du bridge.
fran.b a écrit:
Attention
(...)
intègré.

A noter que l'empaquetage debian s'est amélioré, et je n'ai pas encore eu le temps d'y mettre mon nez, mais tout doit pouvoir maintenant être configuré sans script, juste avec de la syntaxe avancée dans /etc/network/interfaces, et des choses en plus dans le server.conf . A voir.

_________________
«l'homme n'est pas une marchandise comme les autres»
Nikolaë Sarköcescu, 1955-, "Discours de campagne, St Etienne 9/11/2006"

PS: Je fais du referencement internet et sur notre blog, je traite de référencement sous linux.


Haut
 Profil  
 
MessagePosté: 24 Sep 2008 16:42 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 17 Fév 2006 12:20
Messages: 15345
Localisation: Ile de France
Sur Etch, j'ai finalement configuré openVPN comme suit:

Fichier interfaces:
Citation:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
auto lo br0 eth1
# The loopback interface
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
iface br0 inet static
address 192.168.0.251
netmask 255.255.255.0
broadcast 192.168.0.255
bridge-ports eth0
post-up /etc/init.d/vpn start
post-down /etc/init.d/vpn stop

#iface eth0 inet static
# address 192.168.0.251
# netmask 255.255.255.0
# network 192.168.0.0
# broadcast 192.168.0.255
[...]


Fichier /etc/init.d/vpn
Code:
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="VPN"
NAME=vpn
SCRIPTNAME=/etc/init.d/$NAME


[ -r /etc/default/$NAME ] && . /etc/default/$NAME

. /lib/init/vars.sh

. /lib/lsb/init-functions

do_start()
{
        /etc/init.d/openvpn start
        ifconfig tap0 0.0.0.0 promisc up
        brctl addif br0 tap0
        ifconfig br0 192.168.0.251 netmask 255.255.255.0 broadcast 192.168.0.255 up
}

do_stop()
{
        /etc/init.d/openvpn stop
}


case "$1" in
  start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 3
        ;;
esac


Il n'est plus nécessaire de faire un «openvpn --mktun --dev tap0» et «openvpn --rmtun --dev tap0» semble-t-il. Il est important de noter que le serveur dhcp doit être arrêté avant d'arrêter le VPN... Par contre le ifconfig tap0 0.0.0.0 promisc up est absolument indispensable. Dans le cas où on l'oublie, le VPN semble marcher mais il n'y a aucune connexion entre tap0 et br0, les paquets arrivent mais sont cachés et la connexion ne se fait pas. C'est assez dur à repérer comme erreur (à noter que matt avait dit de le faire!)

_________________
Debian Squeeze amd64 Linux version 2.6.30-1
Le Dell 1525N a pété après 19 mois, Toshiba A500D Intel Core 2 Duo 4G RAM
Carte Nvidia, XFCE avec compiz (ben si...)

2 mains de 5 doigts chacune, une tête plus options usuelles


Dernière édition par fran.b le 25 Sep 2008 17:01, édité 1 fois.

Haut
 Profil  
 
MessagePosté: 25 Sep 2008 10:31 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 17 Fév 2006 12:20
Messages: 15345
Localisation: Ile de France
La configuration d'un client sous Windows est identique, il faut installer openVPN téléchargé ici, et mettre dans
c:\program files\openVPN\config
un fichier config.vpn comme suit par exemple
Code:
client
dev tap
proto udp
remote IP_du_serveur 5555
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
verb 1


ainsi que les fichiers client.crt, client.key et ca.crt.

Si on veut faire en sorte que TOUT passe par le VPN (et que tout se passe comme si on était sur le réseau distant en local), il faut modifier plusieurs choses. cela se fait comme suit:

1) Accès du serveur assuré (il faut connaitre l'IP de la passerelle du réseau réel et l'IP de la passerelle du réseau distant (celui où on accède par VPN)):
Code:
Linux:
route add -host IP_du_SERVEUR_VPN gw IP_de_la_passerelle
Windows:
c:\>route add IP_du_SERVEUR_VPN IP_de_la_passerelle

2) Changer le DNS de la machine utilisé de telle manière à utiliser celui du réseau distant.
3) Changement de la route par défaut:
Code:
Linux:
route del default gw IP_de_la_passerelle
route add default gw IP_de_la_passerelle_du_reseau_distant
Windows:
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 IP__de_la_passerelle_du_reseau_distant metric 20

Attention à également changer les proxy éventuels dans les réglages de firefox/IE.
À partir de ce moment, la machine réagit comme si elle était physiquement sur le réseau distant.

_________________
Debian Squeeze amd64 Linux version 2.6.30-1
Le Dell 1525N a pété après 19 mois, Toshiba A500D Intel Core 2 Duo 4G RAM
Carte Nvidia, XFCE avec compiz (ben si...)

2 mains de 5 doigts chacune, une tête plus options usuelles


Haut
 Profil  
 
MessagePosté: 30 Nov 2008 12:48 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 17 Fév 2006 12:20
Messages: 15345
Localisation: Ile de France
Une dernière remarque, si il s'agit de faire un vpn fait à la demande sous linux (et non de manière automatique), le script sommaire suivant convient en faisant automatiquement ce qui est dit dans le message précédent:
Code:
#!/bin/sh
RESEAU=IP_SERVEUR_VPN
if [ -z $1 ] ; then
PASSERELLE=`route -n | grep "^0.0.0.0 " | awk '{print $2}'`
PASSEVPN=IP_PASSERELLE_DU_VPN
        /etc/init.d/openvpn start
        sleep 1
echo    /etc/init.d/openvpn start
        route add -host $RESEAU gw $PASSERELLE
echo    route add -host $RESEAU gw $PASSERELLE
        route del default gw $PASSERELLE
echo    route del default gw $PASSERELLE
        sleep 4
        route add default gw $PASSEVPN
echo    route add default gw $PASSEVPN
        echo $PASSERELLE > /tmp/__vpnpasse
        cp /etc/resolv.conf /tmp/__vpnresolv.conf
        cp /etc/resolv.conf.vpn /etc/resolv.conf
else
if [ -f /tmp/__vpnresolv.conf ] ; then
PASSERELLE=`cat /tmp/__vpnpasse`
PASSEVPN=`route -n | grep "^0.0.0.0 " | awk '{print $2}'`
        route del default gw $PASSEVPN
        route add default gw $PASSERELLE
        mv /tmp/__vpnresolv.conf /etc/resolv.conf
        /etc/init.d/openvpn stop
        route del -host $RESEAU gw $PASSERELLE
fi
fi


le «sleep 4» est indispensable, il faut que le vpn soit opérationnel avant de modifer la table de routage.
# vpn
lance le VPN
# vpn stop
(vpn avec un argument quelconque en fait) stoppe le VPN.

Il ne reste plus qu'à savoir comment attribuer une IP fixe à un client. Cela semble se faire sans problème, reste à rédiger le bazar.

_________________
Debian Squeeze amd64 Linux version 2.6.30-1
Le Dell 1525N a pété après 19 mois, Toshiba A500D Intel Core 2 Duo 4G RAM
Carte Nvidia, XFCE avec compiz (ben si...)

2 mains de 5 doigts chacune, une tête plus options usuelles


Haut
 Profil  
 
MessagePosté: 20 Déc 2008 18:44 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 01 Avr 2006 19:10
Messages: 728
Localisation: Belgique
Je suis en train de suivre ce tuto. A ce stade:
  • Une info complémentaire, la création du répertoire keys put se faire automatiquement avec le script clean-all après avoir sourcé vars. ça remplace:
    Code:
    # mkdir keys
    # touch keys/index.txt
    # echo 01 > keys/serial
    # chmod -R 0700 keys
  • Quel client utilisez-vous pour tester si le serveur marche bien?

J'ai d'autres questions que je pose sur le fil suivant pour ne pas trop polluer celui-ci.
viewtopic.php?f=3&t=17611

_________________
ripat
Jabber: ripat at im.apinc.org Image


Haut
 Profil  
 
MessagePosté: 21 Déc 2008 02:51 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 08 Sep 2004 23:53
Messages: 22412
Localisation: CAEN
ripat a écrit:
Je suis en train de suivre ce tuto. A ce stade:
  • Une info complémentaire, la création du répertoire keys put se faire automatiquement avec le script clean-all après avoir sourcé vars. ça remplace:
    Code:
    # mkdir keys
    # touch keys/index.txt
    # echo 01 > keys/serial
    # chmod -R 0700 keys
  • Quel client utilisez-vous pour tester si le serveur marche bien?
openvpn :mrgreen:
ripat a écrit:
J'ai d'autres questions que je pose sur le fil suivant pour ne pas trop polluer celui-ci.
viewtopic.php?f=3&t=17611
j'va aller voir, mais si c'est une suite de ce tuto, autant que les questions le concernant soient dessus.

_________________
«l'homme n'est pas une marchandise comme les autres»
Nikolaë Sarköcescu, 1955-, "Discours de campagne, St Etienne 9/11/2006"

PS: Je fais du referencement internet et sur notre blog, je traite de référencement sous linux.


Haut
 Profil  
 
MessagePosté: 21 Déc 2008 15:59 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 01 Avr 2006 19:10
Messages: 728
Localisation: Belgique
Bon, alors je me lance mais ça rique d'être long.

Je ne sais pas trop par où commencer pour expliquer ma totale incompréhension des interfaces réseau sous linux. Entre tap(x)/tn(x), eth(x) et br(x) je ne vois vraiment pas qui fait quoi ni pourquoi. Je suis en train de faire des essais sur un réseau interne 192.168.0/24. Le serveur (sans openvpn) a un interfaces classique avec une ip statique.
Code:
auto lo eth0
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.158
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

Ce qui donne comme interfaces:
Code:
eth0      Lien encap:Ethernet  HWaddr 00:0C:F1:CA:05:93 
          inet adr:192.168.0.158  Bcast:192.168.0.255  Masque:255.255.255.0
lo        Lien encap:Boucle locale 
          inet adr:127.0.0.1  Masque:255.0.0.0


Je lance l'openVPN avec la config du sample-config-files d'openvpn:
Code:
port 1194
proto udp
dev tap

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun

status openvpn-status.log
log-append  /var/log/openvpn.log
verb 3
et j'obtiens:
Code:
eth0      Lien encap:Ethernet  HWaddr 00:0C:F1:CA:05:93 
          inet adr:192.168.0.158  Bcast:192.168.0.255  Masque:255.255.255.0
lo        Lien encap:Boucle locale 
          inet adr:127.0.0.1  Masque:255.0.0.0
tap0      Lien encap:Ethernet  HWaddr 5A:D7:43:F7:9A:4D 
          inet adr:10.8.0.1  Bcast:10.8.0.255  Masque:255.255.255.0
Avec une table de routage:
Code:
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
10.8.0.0        *               255.255.255.0   U     0      0        0 tap0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
Depuis un client openvpn, je parviens à pinger 10.8.0.1. Je suppose que le tunnel VPN fonctionne donc.

Maintenant en mode bridge. Configuration bridge de Mat avec les variantes de fran.b là, c'est un peu le b...

Dans le server.conf j'ai mis server-bridge 192.168.0.158 255.255.255.0 192.168.0.151 192.168.0.250 où (...158 est l'ip statique de mon serveur) et modifié mon fichier interfaces et ajouté les scripts ovup et ovdown en ajoutant juste une ligne gateway (192.168.0.1) dans interfaces:
Code:
port 1194
proto udp
dev tap0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
ifconfig-pool-persist ipp.txt
server-bridge 192.168.0.158 255.255.255.0 192.168.0.151 192.168.0.250
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append  /var/log/openvpn.log
verb 5

auto lo br0
iface lo inet loopback

# Fichier interfaces

iface br0 inet static
address 192.168.0.158
netmask 255.255.255.0
gateway 192.168.0.1
broadcast 192.168.0.255
bridge-ports eth0
post-up /etc/openvpn/scripts/ovup && /etc/init.d/openvpn start
pre-down /etc/init.d/openvpn stop
post-down /etc/openvpn/scripts/ovdown


# script ovup
#!/bin/sh
openvpn --mktun --dev tap0
brctl addif br0 tap0
ifconfig eth0 promisc up
ifconfig tap0 promisc up
ifconfig br0 192.168.0.158 netmask 255.255.255.0 broadcast 192.168.0.255


Après lancement, Ifconfig du serveur.
Code:
br0       Lien encap:Ethernet  HWaddr 00:0C:F1:CA:05:93 
          inet adr:192.168.0.158  Bcast:192.168.0.255  Masque:255.255.255.0
eth0      Lien encap:Ethernet  HWaddr 00:0C:F1:CA:05:93 
          adr inet6: fe80::20c:f1ff:feca:593/64 Scope:Lien
lo        Lien encap:Boucle locale 
          inet adr:127.0.0.1  Masque:255.0.0.0
tap0      Lien encap:Ethernet  HWaddr 6A:57:0C:C9:21:74 
          adr inet6: fe80::6857:cff:fec9:2174/64 Scope:Lien
Ici, déjà tap0 et eth0 du serveur n'ont pas d'adresse IP.

Si sur un client linux je lance openvpn client.conf j'ai le warning suivant:
Code:
--remote address [192.168.0.158] conflicts with --ifconfig subnet [192.168.0.151, 255.255.255.0] -- local and remote addresses cannot be inside of the --ifconfig subnet.
et, dans l'ifconfig du client le tap0 suivant vient s'ajouter:
Code:
tap0      Link encap:Ethernet  HWaddr 00:ff:a6:11:23:eb 
          inet adr:192.168.0.151  Bcast:192.168.0.255  Masque:255.255.255.0

Quand je ping 192.168.0.151 ou que je me connecte en ssh sur cette ip, je reviens sur la machine client dont la table de routage est devenue:
Code:
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     *               255.255.255.0   U     0      0        0 tap0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
Bref, je me rends compte que j'ai de sérieux efforts à faire pour comprendre les interfaces réseau et ce qui s'en suit... J'y travaille mais, avec votre aide, ça ira plus vite :=)

_________________
ripat
Jabber: ripat at im.apinc.org Image


Dernière édition par ripat le 21 Déc 2008 16:30, édité 3 fois.

Haut
 Profil  
 
MessagePosté: 21 Déc 2008 16:05 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 01 Avr 2006 19:10
Messages: 728
Localisation: Belgique
Message en double. Un admin pour le supprimer?

_________________
ripat
Jabber: ripat at im.apinc.org Image


Haut
 Profil  
 
MessagePosté: 21 Déc 2008 16:30 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 08 Sep 2004 23:53
Messages: 22412
Localisation: CAEN
Bon, je suis un peu pressé (je ne vois pas de doublon de message à supprimer, d'ailleurs), mais il y a un truc, déjà à comprendre, c'est qu'une fois intègrées au bridge par le script ovup, tu peux complètement oublier eth0 et tap0 qui n'existent plus pour le réseau. Seul le bridge reste en tant qu'interface, et il écoute à la fois sur eth0 et sur tap0 en connectant les deux LANs comme s'ils n'en faisaient plus qu'un (tu peux d'ailleurs avoir -dans d'autres cas que le vpn - des bridges transparents sans adresse IP, même si c'est pas forcément pratique à administrer à distance, dans ce cas).
Sinon, je me plongerais dans ton pb plus tard.

_________________
«l'homme n'est pas une marchandise comme les autres»
Nikolaë Sarköcescu, 1955-, "Discours de campagne, St Etienne 9/11/2006"

PS: Je fais du referencement internet et sur notre blog, je traite de référencement sous linux.


Haut
 Profil  
 
MessagePosté: 21 Déc 2008 20:11 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 01 Avr 2006 19:10
Messages: 728
Localisation: Belgique
J'ai un début de piste. Sorti du howto d'openvnp.net

Citation:
If you want to use a virtual IP address range other than 10.8.0.0/24, you should modify the server directive. Remember that this virtual IP address range should be a private range which is currently unused on your network.
Déjà là je me suis planté.

Ensuite je reprends la piste du mode routed qui semble permettre de mieux filtrer les clients:
Citation:
Les entreprises souhaitant interconnecter plusieurs sites (réseaux) distants et les joueurs en lignes souhaitant se faire un réseau privé opteront plus pour un réseau bridgé et les entreprises qui désirent un réseau pouvant accueillir des nomades et les filtrer de façon plus fines seront probablement plus intéressées par le mode routé.
http://www.nbs-system.com/dossiers/howto-openvpn2.html


Pas mal tâtonné en raison de ma méconnaissance des commandes de configuration d'interface réseau.

server.conf
Code:
# mode routed
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 5


/etc/network/interfaces
Code:
auto lo br0
iface lo inet loopback

iface br0 inet static
address 192.168.0.158
netmask 255.255.255.0
broadcast 192.168.0.255
bridge-ports eth0
post-up /etc/openvpn/scripts/ovup.routed
post-down /etc/openvpn/scripts/ovdown.routed
gateway 192.168.0.1


ovup.routed
Code:
#!/bin/sh
/etc/init.d/openvpn start
openvpn --mktun --dev tun0P
ifconfig tun0 0.0.0.0 promisc up
#brctl addif br0 tun0   # provoquait une erreur
ifconfig br0 192.168.0.158 netmask 255.255.255.0 broadcast 192.168.0.255 up
/etc/init.d/openvpn force-reload

Ici j'ai été obligé de faire un force-relaod d'openvpn sans quoi aucune IP n'était attribuée à tun0. De plus j'ai supprimé le brtcl.... qui me sortait une erreur (explication?).

ovdown.routed
Code:
/etc/init.d/openvpn stop
# openvpn --rmtun --dev tun0

Ne contient que l'arrêt d'openvpn. Je confirme ce que disait fran.b plus haut. Le remove de tun0 est non seulement inutile ça me laissait mes interfaces dans un état qui ne permettait pas redémarrage correct par /etc/init.d/networking restart. Pas compris pourquoi mais ça marche mieux sans.

Voici le résultat d'un ifconfig (résumé) du serveur:
Code:
br0       Lien encap:Ethernet  HWaddr 00:0C:F1:CA:05:93 
          inet adr:192.168.0.158  Bcast:192.168.0.255  Masque:255.255.255.0
eth0      Lien encap:Ethernet  HWaddr 00:0C:F1:CA:05:93 
          adr inet6: fe80::20c:f1ff:feca:593/64 Scope:Lien
lo        Lien encap:Boucle locale 
          inet adr:127.0.0.1  Masque:255.0.0.0
tun0      Lien encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          inet adr:10.8.0.1  P-t-P:10.8.0.2  Masque:255.255.255.255


Est-ce que tout ça vous semble correct? Si j'ai bien compris, br0 est une "interface virtuelle" qui pointe vers l'interface physique eth0 c'est bien ça?

_________________
ripat
Jabber: ripat at im.apinc.org Image


Haut
 Profil  
 
MessagePosté: 21 Déc 2008 21:23 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 08 Sep 2004 23:53
Messages: 22412
Localisation: CAEN
Ben c'est correct si ça fonctionne, je n'ai pas vraiment lu, mais tu t'es pris la tête.
Pour le mode bridge, tu dois passer par script ifup pour lancer openvpn seulement une fois que tu as constitué le bridge, d'ou la necessité d'un tuto, mais pour le mode routé sous debian, tu installes le paquet openvpn, tu fais un server.conf, et c'est tout. :smt003
Par ailleurs pour faire du filtrage sur un bridge, tu as moyen d'utiliser le physdev (à voir dans le man d'iptables), ce qui ne te permet pas tout, mais le plus souvent, c'est suffisant pour faire ce qu'on a à faire comme filtrage de base.
Dommage. Mais bon, ça te permet de lire de la doc. :lol:

_________________
«l'homme n'est pas une marchandise comme les autres»
Nikolaë Sarköcescu, 1955-, "Discours de campagne, St Etienne 9/11/2006"

PS: Je fais du referencement internet et sur notre blog, je traite de référencement sous linux.


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 46 messages ]  Aller à la page 1, 2  Suivante

Index du forum » Forums d'aide » Trucs et Astuces


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Aller à:  
Flux RSS Flux RSS Liste des flux Liste des flux
Powered by phpBB® Forum Software © phpBB Group
Traduction par: phpBB-fr.com
SEO
[ Time : 0.529s | 10 Queries | GZIP : Off ]