Home (autres pages) Léa Linux TrustOn Me OpenVPN French Linux Doc Project

Configuration du service OpenVPN

  • Fonctionnement
  • Installation d'OpenVPN
  • Configuration d'OpenVPN
    • Génération du certificat authentifiant (ou root)
    • Génération des certificats individuels
  • Configuration du serveur OpenVPN
  • Démarrage du serveur
  • Connexion depuis un client Windows
  • Lancement du serveur au démarrage
  • Et lancer le serveur avec xinetd ?

Configuration du service OpenVPN

Fonctionnement

SSH signifie "Secure Shell". Pour simplifier, il s'agit en fait d'un terminal sécurisé. Cela permet de remplacer le "telnet" et cela permet de faire plein d'autres choses plutôt marrantes.

Bon, le VPN... comment cela marche ?

VPN est l'acronyme de Virtual Private Network et c'est le fait de "créer" un "réseau privé sur le réseau Internet public".

Par exemple, j'ai deux pécés à la maison qui sont reliés par un câble croisé, eh bien je peux leur mettre une adresse privée et réaliser des transferts de fichiers tranquille sous Windows. Il suffit de partager des répertoires puis de les déclarer d'une machine sur l'autre. Ces transferts se font en toute sécurité puisque l'on utilise le LAN. Le protocole utilisé est SMB, il s'agit d'un protocole utilisant les ports 137 à 139 et c'est du microsoft.

Bon, mettons que maintenant je suis sur un ordinateur portable, en déplacement, ou bien que je souhaite partager des fichiers avec mon frère qui se trouve à l'autre bout de la France, comment faire ?

Dans ce cas-là, on peut utiliser tout autre type de protocole de transfert de fichiers comme par exemple FTP pour garder la possibilité de restreindre l'accès aux fichiers. Toutefois, il serait plus "pratique" de mettre à disposition les partages Windows (répertoires et imprimantes pourquoi pas ?). Comment faire ?

Eh bien le moyen est de raccrocher l'ordinateur distant au LAN pour qu'il croit qu'il se retrouve en LAN, même s'il traverse l'internet !

La solution pour réaliser cela s'appelle le VPN !

En gros, on créé un tunnel entre les deux extrémités de notre futur VPN et l'on assigne une adresse privée à chaque extrémité de ce tunnel.

Schématiquement, cela ressemble à cela :

L'ordinateur distant possède une interface physique qui a pour adresse 193.121.12.134 qui le connecte sur Internet. Ensuite, on construit un tunnel. Pour cela, on créé une interface virtuelle qui aura pour adresse 192.168.0.51. Sur la passerelle, on trouve le même schéma, c'est à dire une interface physique et une ou plusieurs interfaces virtuelles.

Ainsi, l'ordinateur distant se retrouve, virtuellement, sur le même LAN que les pécés à la maison ! si aucune règle n'est ajoutée sur le firewall pour empêcher la diffusion du protocole SMB, alors il est possible d'exporter les répertoires et imprimantes partagées ! A ce niveau de définition de l'architecture VPN, on peut utiliser tout protocole unicast de niveau 3, TCP ou UDP. Par définition, les broadcasts ne passent pas les routeurs ou, dans notre cas, la passerelle qui sert entre autres, de routeur.

Ce dernier point est embêtant dans le cas où nous souhaitons jouer en réseau. En effet, la plupart des réseaux disposant d'une option de jeu en LAN diffuse des requêtes clients/serveur en broadcast ! Si notre passerelle, par défaut, ne permet pas de diffuser le broadcast, alors les jeux ne fonctionneront pas à travers le VPN.

Bon, mais ce qui nous intéresse, c'est de pouvoir jouer... alors comment faire ? eh bien la solution c'est de transformer notre routeur en pont ! (lire les articles à la page http://www.commentcamarche.net/lan/connect.php3 sur les ponts et routeurs, mais les explications sont un peu limitées...).

Bon, aller je réexplique différemment les ponts et routeurs. En fait, les deux équipements agissent à un niveau différent de la couche OSI. Pour rappel, la couche 1 est la couche physique, ce sont les câbles et interfaces électriques. Ensuite, nous trouvons la couche de liaison des données, couche 2, c'est ce protocole qui est utilisé dans les LAN, il s'agit en général du protocole ethernet. Ensuite, nous trouvons la couche 3 qui est une couche réseau, c'est la couche IP. En général, on associe le TCP et UDP à la couche 3.

Donc en simplifiant, nous avons :

( NIV 1 : PHYSIQUE )
( NIV 2 : ETHERNET ) ( NIV 2 : TOKEN RING ) .....
( NIV 3 : TCP / IP )
		

Un routeur agit au niveau 3, un pont au niveau 2. Un pont est, en général, utilisé pour transformer un protocole de niveau 2 en un autre protocole de niveau 2. Par exemple, certaines entreprises utilisent encore le protocole de niveau 2 propriétaire IBM "Token Ring". Pour pouvoir raccrocher ces LAN aux LAN ethernet, on utilise le pont pour diffuser les informations d'un LAN ethernet vers un LAN token ring et inversement.

Bon bref, revenons en à notre VPN. En fait, pour diffuser les broadcasts, il suffit de définir un pont virtuel sur la passerelle et d'y inclure l'ensemble de nos interfaces, virtuelles et physiques, puis de définir un domaine de broadcast commun.

On obtient quelque chose comme (bon, cela semble compliqué mais c'est pas si compliqué...)

L'interface virtuelle est nommée "TAP". On vient bien, par le schéma, les extrémités des tunnels et le fait qu'une principale interface virtuelle regroupe l'ensemble des interfaces.


Installation d'OpenVPN

Venons en maintenant à l'installation...

Tout d'abord, je propose d'utiliser une solution VPN très "light", il s'agit d'OpenVPN. Par rapport au schéma ci-dessus, je propose l'installation de la version 2.0 d'OpenVPN qui simplifie pas mal.... En fait, avec les versions inférieures, il fallait créer un serveur par client et ouvrir plusieurs ports d'écoute. Cette version permet la connexion de plusieurs clients sur le même serveur. Par contre la configuration est un peu plus compliquée... :-/

Donc les étapes sont simples : téléchargement des sources, décompression, compilation et installation.

A noter que pour utiliser une compression des données à la volée, vous pouvez aussi télécharger les librairies "LZO" disponibles sur le site www.oberhumer.com. Il faut télécharger, compiler et installer ces sources avant la configuration d'OpenVPN.

Vérification que la couche SSL est bien installée, si les librairies suivantes ne sont pas installées, eh bien... installez-les ! :)
# rpm -qa | grep ssl
openssl-0.9.7b-4mdk
libopenssl0.9.7-devel-0.9.7b-4mdk
libopenssl0.9.7-0.9.7b-4mdk
#

Récupération du tarball
[/compil]# wget http://openvpn.net/release/openvpn-2.0.2.tar.gz

Décompression du tarball
[/compil]# tar xzvf openvpn-2.0.2.tar.gz
[/compil]# cd openvpn-2.0.2
[/compil/openvpn-2.0.2]# ./configure
[/compil/openvpn-2.0.2]# make
[/compil/openvpn-2.0.2]# make install

OpenVPN est installé dans le répertoire "/usr/local/sbin". Personnellement, j'ai créé un lien symbolique vers "/sbin", comme cela le programme est dans mon "path".
[/compil]# ln -s /usr/local/sbin/openvpn /sbin/openvpn
[/compil]# openvpn --version
OpenVPN 2.0.2 i686-pc-linux-gnu [SSL] [LZO] built on May 23 2004
Copyright (C) 2002-2004 James Yonan
[/compil]#

Configuration d'OpenVPN

Ca se complique car, eh bien, il faut installer tout un système de certificats alors qu'avec les versions précédentes, on pouvait utiliser une clé partagée. La gestion de cette couche est proposée par OpenSSL. Configurons donc OpenSSL !

Tout d'abord, retrouvé le fichier de configuration d'OpenSSL

[/root]# openssl ca
Using configuration from /usr/lib/ssl/openssl.cnf
<------ coupé ----->
[/root]#

Ok, donc éditons le fichier de configuration... J'ai quasiment tout laissé d'origine, excepté le répertoire où je vais stocker les certificats :

HOME = /usr/local/etc/ssl
...
[ CA_default ]

dir = /usr/local/etc/ssl # Where everything is kept
....
private_key = $dir/private/cakey.pem
....

Il faut aussi créer un périphérique TUN sous Linux :

[/root]# mkdir /dev/net
[/root]# mknod /dev/net/tun c 10 200

Rajouter la ligne suivantedans le fichier /etc/modules.conf :

alias eth1 ne2k-pci
alias eth0 8139too
probeall usb-interface usb-ohci
alias sound-slot-0 es1371

# Ligne à ajoutée pour la configuration du nouveau device au démarrage
alias char-major-10-200 tun

et enfin

On ajoute dynamiquement le module gérant les tunnels

[/root]# modprobe tun

Et on active le forwarding (voir la config du parefeu pour bien comprendre)

[/root]# echo 1 > /proc/sys/net/ipv4/ip_forward

Génération du certificat authentifiant (ou root CA)

On créé tout d'abord le répertoire où seront stockés les certifcats

[/root]# cd /usr/local/etc
[/usr/local/etc]# mkdir ssl
[/usr/local/etc]# cd ssl
[/usr/local/etc/ssl]# mkdir certs; mkdir private
[/usr/local/etc/ssl]# chmod 700 private
[/usr/local/etc/ssl]# echo '01' > serial
[/usr/local/etc/ssl]# touch index.txt

On génère maintenant le certifcat root avec un temps de validité très long

[/usr/local/etc/ssl]# openssl req -x509 -newkey rsa -out cacert.pem -outform PEM -days 10000
Generating a 1024 bit RSA private key
.++++++
................++++++
writing new private key to 'privkey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase: <
-----
...
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:Root Certif
Email Address []:

[/usr/local/etc/ssl]# ls
cacert.pem privkey.pem
[/usr/local/etc/ssl]# mv privkey.pem cakey.pem

Et l'on créé un fichier Dieffe-Helmann

[/usr/local/etc/ssl]# openssl dhparam -out dh1024.pem 1024

Maintenant, grâce à ce certifcat, notre machine pourra "signer" une requête de certificat d'une tierce personne.

Comment ça marche ? En fait, une personne va vouloir se connecter à notre VPN. Pour cela, il faut qu'elle s'authentifie avec un certificat. Ce certificat est envoyé à OpenVPN qui va contrôler sa validité, c'est à dire si ce certificat a été signé par notre certificat "root".

Pour avoir un certificat valide, il faut que l'utilisateur envoie une requête de certificat qui contient des informations personnelles ainsi qu'une clé personnelle. OpenSSL, par l'utilisation du certificat "root", va transformer cette requête de certificat en certificat, en ajoutant sa propre clé, des informations supplémentaires, etc. Ce certificat peut être renvoyé à la personne avec la clé publique de notre serveur certifiant (cacert.pem).

La clé "cacert.pem" doit être envoyée à toutes les personnes souhaitant s'authentifier auprès de notre serveur SSL.

Génération des certificats individuels

Ok donc.... nous avons un système qui permet la création de certificats... La marche à suivre est simple. Normalement, la requête doit être exécutée par la personne souhaitant le certificat... mais bon....

Pour cela, vous pouvez utiliser le petit script "create_certs.sh" qui permet de simplifier la création des certificats. Copiez ce script dans le répertoire "/etc/openvpn"

mais avant d'utiliser ce script, copiez le cacert.pem dans le répertoire "/etc/openvpn"

[/usr/local/etc/ssl]# mkdir /etc/openvpn
[/usr/local/etc/ssl]# mv openvpn* /etc/openvpn
[/usr/local/etc/ssl]# cp cacert.pem /etc/openvpn
[/usr/local/etc/ssl]# cd /etc/openvpn
[/etc/openvpn/]# cp /usr/local/etc/ssl/cacert.pem .

Création d'un certificat pour le serveur OpenVPN

Avant de créer les certificats pour ses amis, il faut créer un premier certificat pour le serveur OpenVPN.

On génère le certificat pour le serveur OpenVPN

[/etc/openvpn/]# ./create_certs.sh openvpn
Generating a 1024 bit RSA private key .........................++++++ .++++++
writing new private key to 'openvpnkey.pem'
.....
Country Name (2 letter code) [GB]:FR
State or Province Name (full name) []:
Locality Name (eg, city) []:Chicago
Organization Name (eg, company) [My Company Ltd]:
...ETC...
un nouveau répertoire vient d'être créé "/etc/openvpn/openvpn", vous pouvez déplacer les certificats
[/etc/openvpn/]# mv openvpn/* . ; rm -rf openvpn
[/URL]

Création d'un certificat pour un ami


Maintenant, on génère un certifcat pour un ami,
[TEXTBOX]
[/etc/openvpn/]# ./create_certs.sh test
Generating a 1024 bit RSA private key .........................++++++ .++++++
writing new private key to 'openvpnkey.pem'
.....
Country Name (2 letter code) [GB]:FR
State or Province Name (full name) []:
Locality Name (eg, city) []:Chicago
Organization Name (eg, company) [My Company Ltd]:
...ETC...

Maintenant, on a le certificat définitif "testcert.cert", il suffit d'envoyer la clé publique de notre serveur "cacert.pem", la clé privée de la personne "testkey.pem" et le certificat qui lie le tout "testcert.cert".

Bon, pour être tout à fait "secure" (comme on dit en ce moment), il faudrait que la clé privée soit générée directement par la personne, en bref je n'aurais pas du moi-même générer les clés des personnes qui viendront se connecter... Bref, aller pas grave !


Configuration du serveur OpenVPN

Et maintenant crééons le fichier de configuration "server.conf" :

# FICHIER DE CONFIG : /etc/openvpn/server.conf
# version 1.1 : usage of new option "server-bridge" and inactivity control
#

# On définit le port d'écoute sur le port 5000
port 5000
# On définit le type d'interface virtuelle, on veut une interface ethernet virtuelle
dev tap0

ca /etc/openvpn/cacert.pem
cert /etc/openvpn/openvpncert.cert
key /etc/openvpn/openvpnkey.pem
dh /usr/local/etc/ssl/dh1024.pem # je n'utilise pas d'encryptage, sinon je décommente la ligne suivante
#tls-cipher RC4-MD5
# la commande server-bridge remplace le bloc de commande suivant :
# mode server
# tls-server
# ifconfig-pool 192.168.0.32 192.168.0.64 255.255.255.0
# push "route-gateway 192.168.0.1"

server-bridge 192.168.0.1 255.255.255.0 192.168.0.32 192.168.0.64


# comme on veut créer un pont entre les différentes interfaces, on utilise des tunnels persistents.
# Franchement, je ne sais pas si c'est utile avec la version 2.0 mais avec la 1.5, il le fallait.... donc...
persist-tun
persist-key
inactive 3600
ping 10
ping-exit 60

user nobody
group nobody

verb 4

Démarrage du serveur

Maintenant, on créé notre interface virtuelle et puis on lance le serveur... J'ai créé un script pour tout cela... Il est simple et ne fait aucune vérification....

A noter, pour diffuser les broadcasts, lancés par certains jeux en mode réseau, il faut créer une interface virtuelle particulière que l'on appelle pont ou bridge.

Pour commencer, il faut installer les outils de "bridging", dans la mandrake 9.2b le paquetage a installé est le suivant :

bridge-utils-0.9.6-2mdk.i586.rpm

[/root]# urpmi bridge-utils

Ensuite, il suffit de copier le script ci-dessous dans le répertoire "/etc/openvpn".

#! /bin/sh
#
# Created by Raum
# changes:
# 04/11/22 : daemon option used instead of daemon in config file
#

OPENVPN="/sbin/openvpn"

# On commence par creer un tunnel persistant en mode TAP
$OPENVPN --mktun --dev tap0

# on cree un nouvelle interface de type "bridge"
brctl addbr br0

# et on ajoute l'interface INTERNE du reseau local et l'interface
# virtuelle TAP dans le bridge
brctl addif br0 tap0
brctl addif br0 eth0

# on configure les interfaces en mode promiscuite (elles écoutent tout
# meme ce qui les concerne pas)
ifconfig eth0 0.0.0.0 promisc up
ifconfig tap0 0.0.0.0 promisc up

# enfin on configure notre interface virtuelle "bridge"
ifconfig br0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255

# et on finit par demarrer OpenVPN.
$OPENVPN --daemon --config /etc/openvpn/server.conf --log-append /var/log/openvpn.log

Maintenant, il suffit de lancer le script (n'oubliez pas de lui donner les droits d'exécution ;) chmod 700).

Ce script va créer une interface de type "pont" qui prendra l'adresse de notre interface eth0, adresse 192.168.0.1

Pour information, voici le résultat de la commande "ifconfig" après lancement du serveur :

# ifconfig
br0 Lien encap:Ethernet HWaddr 00:E0:7D:E2:
     inet adr:192.168.0.1 Bcast:192.168.0.255 Masque:255.255.255.0
     adr inet6: fe80::2e0:7dff:fee2:4ba6/64 Scope:Lien
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     (...)
eth1 Lien encap:Ethernet HWaddr 00:E0:7D:72:
     inet adr:82.67.XX.XX Bcast:82.67.XX.255 Masque:255.255.255.0
     adr inet6: fe80::2e0:7dff:fe72:f33b/64 Scope:Lien
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     (...)
lo Lien encap:Boucle locale
     inet adr:127.0.0.1 Masque:255.0.0.0
     adr inet6: ::1/128 Scope:Hôte
     UP LOOPBACK RUNNING MTU:16436 Metric:1
     (...)
sit0 Lien encap:IPv6-dans-IPv4
     adr inet6: ::82.67.XX.XX/96 Scope:Compat
     adr inet6: ::127.0.0.1/96 Scope:Inconnu
     UP RUNNING NOARP MTU:1480 Metric:1
     (...)
tap0 Lien encap:Ethernet HWaddr A2:7C:27:B2:
     adr inet6: fe80::a07c:27ff:feb2:6135/64 Scope:Lien
     UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1

Connexion depuis un client Windows

Commencez par télécharger le fichier installant OpenVPN 2.0 toujours sur le site d'OpenVPN.

Une fois OpenVPN installé, une nouvelle interface virtuelle a été créé dans "vos favoris réseau". Il suffit d'en ouvrir la propriété pour voir quelque chose comme "TAP-Win32 Driver".

Créez un répertoire "C:\VPN" et copiez les fichiers "testcert.cert", "cacert.pem" et "testkey.pem" puis créez un fichier de configuration :

# FICHIER DE CONFIG : C:\VPN\client.conf

# chez qui doit on se connecter et sur quel port ?
port 5000
dev tap
remote 82.46.73.52

# TLS parms
tls-client
ca c://VPN//cacert.pem
cert c://VPN//testcert.cert
key c://VPN//testkey.pem

# This parm is required for connecting
# to a multi-client server. It tells
# the client to accept options which
# the server pushes to us.
pull
ping 20

Puis, à partir d'une invite de commande, il suffit de taper :

C:\VPN> openvpn --config client.conf

Et dans une autre invite de commande :

On teste la joignabilité du pont
C:\> ping 192.168.0.1
Envoi d'une requête 'ping' sur 192.168.100.1 avec 32 octets de données :
Réponse de 192.168.0.1 : octets=32 temps<10 ms TTL=128

On teste la joignabilité d'une machine sur le LAN
C:\> ping 192.168.0.2
Envoi d'une requête 'ping' sur 192.168.100.2 avec 32 octets de données :
Réponse de 192.168.0.2 : octets=32 temps<10 ms TTL=128

Lancement du serveur au démarrage

Vous pouvez aussi utiliser le script "openvpnd" suivant, à copier dans le répertoire "/etc/init.d".

#!/bin/bash
#
#
# chkconfig: 345 40 60
# description: Start and stop OpenVPN service
#
# Created by Raum v0.1 (last change 22/11/04)
# 22/11/04 : chkconfig compatibility
#

# Source function library.
. /etc/init.d/functions

test -x /sbin/openvpn || exit 0

RETVAL=0

prog="/sbin/openvpn"

start() {
    # Check if atd is already running
    if [ ! -f /var/lock/subsys/openvpn ]; then
        gprintf "Starting %s: " "$prog"
        daemon /etc/openvpn/start.sh
         RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/openvpn
        echo
    fi
    return $RETVAL
}

stop() {
    gprintf "Stopping %s: " "$prog"
    killproc /sbin/openvpn
    RETVAL=$?
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/openvpn
    echo
    return $RETVAL
}


restart() {
    stop
    start
}

reload() {
    restart
}

status_at() {
    status /sbin/openvpn
}

case "$1" in
start)
    start
    ;;
stop)
    stop
    ;;
reload|restart)
    restart
    ;;
condrestart)
    if [ -f /var/lock/subsys/openvpn ]; then
        restart
    fi
    ;;
status)
    status_at
    ;;
*)
    gprintf "Usage: %s {start|stop|restart|condrestart|status}\n" "$0"
    exit 1
esac

exit $?
exit $RETVAL

Le lancement est simple :

[/root]# chkconfig --add openvpnd
[/root]# /etc/init.d/openvpnd start

Et là, la vie est belle... On peut tout faire ! jouer à un jeu en réseau en utilisant l'option LAN, on peut partager des répertoires, on peut utiliser le proxy, etc.

Attention: pour la configuration de l'adresse du proxy, vous pouvez utiliser l'adresse 192.168.0.254


Et lancer le serveur avec xinetd ?

Le problème est simple. Avec la méthode si dessus, nous avons une instance d'OpenVPN toujours en fonctionnement. Le nouveau mode "server" apporté par la version 2.0 ne permet pas le fonction avec xinetd. Pour utiliser xinetd, il faut créer un tunnel par client et chaque tunnel est instancié par xinetd pour chaque client... bref, une usine à gaz.... Voici toutefois la marche à suivre... en gros. 1/ Ajout du service dans le fichier xinetd.conf

#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}


service vpn
{
type = UNLISTED
port = 5000
socket_type = dgram
protocol = udp
user = root
wait = yes
server = /sbin/openvpn
server_args = --inetd wait --config /etc/openvpn/server.conf --log-append /var/log/openvpn.log --inactive 600 --user nobody
}

includedir /etc/xinetd.d

Ensuite, pour voir en temps réel, les lancements des services :

une première fenêtre avec :

# tail -f /var/log/messages | grep xinet

une deuxième fenêtre avec:

# tail -f /var/log/messages | grep xinet

Si vous avez installé OpenVPN en tant que service, arrêtez le et supprimez le du démarrage automatique :

# /etc/init.d/openvpnd stop
# chkconfig --del openvpnd

On relance le démon xinetd :

# /etc/init.d/xinetd restart
Arrêt de xinetd : [ OK ]
Lancement de xinetd : [ OK ]
#

On peut observer dans la première fenêtre de logs :

Nov 24 12:59:27 stargate xinetd[3408]: Exiting...
nov 24 12:59:27 stargate xinetd: Arrêt de xinetd succeeded
Nov 24 12:59:28 stargate xinetd[3432]: xinetd Version 2.3.11 started with libwrap options compiled in.
Nov 24 12:59:28 stargate xinetd[3432]: Started working: 1 available services
Nov 24 12:59:30 stargate xinetd: xinetd startup succeeded
	

Et un petit contrôle supplémentaire pour vérifier que le port 5000 est bien ouvert en écoute pour le protocole UDP :

# netstat -pan | grep xinetd
udp 0 0 0.0.0.0:5000 0.0.0.0:* 3432/xinetd

Bon, normalement tout devrait être bon, reste plus qu'à lancer le client pour le test final.... et cela donne la chose suivante :

Wed Nov 24 13:50:20 2004 OpenVPN 2.0.2 i686-pc-linux-gnu [SSL] [LZO] built on May 23 2004
Wed Nov 24 13:50:20 2004 Diffie-Hellman initialized with 1024 bit key
Wed Nov 24 13:50:20 2004 TUN/TAP device tap0 opened
Wed Nov 24 13:50:20 2004 /sbin/ifconfig tap0 192.168.100.253 netmask 255.255.255.0 mtu 1500 broadcast 192.168.100.255
....
Wed Nov 24 13:50:22 2004 81.254.0.230:5000 [Raum] Peer Connection Initiated with 82.251.0.230:5000
Wed Nov 24 13:50:24 2004 Raum/82.251.0.230:5000 PUSH: Received control message: 'PUSH_REQUEST'
Wed Nov 24 13:50:24 2004 Raum/82.251.0.230:5000 SENT CONTROL [Raum]: 'PUSH_REPLY,ifconfig 192.168.100.32 255.255.255.0' (status=1)
	

pour que cela fonctionne dans tous les cas, il faut modifier le fichier de configuration pour ne pas démarrer en mode "server" et créer un fichier de conf pour chaque utilisateur.... Bon courage...

Me contacter | ©2004-2005 Raum