Page suivantePage pr�c�denteTable des mati�res

4. Le faire

4.1 Pr�paration

Avant de commencer � mettre en place votre syst�me, vous devriez conna�tre les d�tails concernant le r�seau. Je consid�re que vous avez deux firewalls, chacun prot�geant un intranet, et qu'il sont tous deux connect�s � l'internet. De fait, vous devriez avoir deux interfaces (au moins) par firewall. Prenez une feuille de papier et �crivez leurs adresses IP et masques de r�seau. Vous aurez besoin d'une adresse IP supl�mentaire par firewall pour le VPN que vous voulez mettre en place. Ces adresses devraient �tre ext�rieures � vos sous-r�seaux existants. Je vous sugg�re d'utiliser des adresses de l'espace d'adressage "priv�". Les voici :

Pour les besoins de l'exemple, voici une configuration : les deux bastions s'appellent fellini et polanski. Ils ont une interface vers l'internet (-out), une pour l'intranet (-in), et une pour le VPN (-vpn).

Voici pour les pr�paratifs.

4.2 Rassembler les outils

Vous aurez besoin :

Version actuelles (NDT :au moment de la r�daction de cet HOWTO)

4.3 Compiler et installer

Compilez ou installez les outils que vous venez de rassembler. Consultez attentivement leur documentation (et le firewall-howto) pour de plus amples informations. Mantenant, nous disposons des outils.

4.4 Configurer les autres sous-syst�mes

Configurez correctement les param�tres des firewalls. Vous devez autoriser les communications ssh entre les deux h�tes disposant de firewalls. Cela signifie qu'il doit exister une connexion sur le port 22 du ma�tre vers l'esclave. Lancez sshd sur l'esclave et v�rifiez que vous pouvez vous connecter. Je n'ai pas v�rifi� cette �tape, n'h�sitez pas � me communiquer les r�sultats que vous avez obtenus.

4.5 Configurer les comptes pour le VPN

Cr�ez un compte sur le firewall esclave en utilisant vos outils favoris (par exemple vi, mkdir, chown, chmod). Vous pouvez aussi cr�er un compte sur le ma�tre, mais je pense que vous souhaitez que la connexion se fasse au d�marrage, nous nous servirons donc de votre compte root habituel. Est-ce que quelqu'un pourrait me signaler les risques qu'il y a � utiliser le compte root sur le ma�tre?

4.6 G�n�rer une cl� ssh pour le compte du ma�tre

Utilisez le programme de g�n�ration de cl� de ssh. Donnez un mot de passe vide pour la cl� priv�e si vous voulez r�aliser une configuration automatique du VPN.

4.7 Configurer une connexion ssh automatique pour le compte esclave

Copiez la cl� publique fra�chement g�n�r�e dans le compte esclave dans le fichier .ssh/authorized_keys, et configurez les droits d'acc�s comme indiqu� ci dessous :

drwx------ 2 esclave esclave 1024 Apr 7 23:49 ./
drwx------ 4 esclave esclave 1024 Apr 24 14:05 ../
-rwx------ 1 esclave esclave 328 Apr 7 03:04 authorized_keys
-rw------- 1 esclave esclave 660 Apr 14 15:23 known_hosts
-rw------- 1 esclave esclave 512 Apr 21 10:03 random_seed

la premi�re ligne �tant ~esclave/.ssh, la seconde ~esclave.

4.8 Resserrer la s�curit� ssh sur les bastions.

Ce qui se traduit par la configuration suivante dans sshd_conf :

PermitRootLogin no
IgnoreRhosts yes
StrictModes yes
QuietMode no
FascistLogging yes
KeepAlive yes
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no

L'authentification par mot de passe �tant d�sactiv�e, la connexion n'est possible qu'avec les cl�s autoris�es. (Vous aurez bien entendu d�sactiv� telnet et la commande 'r').

4.9 Permettre l'ex�cution de ppp et route sur les deux comptes.

Comme le compte ma�tre est aussi le compte root en ce qui me concerne, Il n'y a rien eu � faire. Pour le compte esclave, les lignes suivantes apparaissent dans /etc/sudoers :

Cmnd_Alias VPN=/usr/sbin/pppd,/usr/local/vpn/route
esclave ALL=NOPASSWD: VPN

Comme vous pouvez le voir, j'utilise des scripts pour mettre en place ppp et les tables de routage sur l'h�te esclave.

4.10 Faire les scripts

Sur l'h�te ma�tre, j'utilise un full-blown script :

#! /bin/sh
# skeleton      example file to build /etc/init.d/ scripts.
#               This file should be used to construct scripts for /etc/init.d.
#
#               Written by Miquel van Smoorenburg <miquels@cistron.nl>.
#               Modified for Debian GNU/Linux
#               by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version:      @(#)skeleton  1.6  11-Nov-1996  miquels@cistron.nl
#
PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11/:
PPPAPP=/home/esclave/ppp
ROUTEAPP=/home/esclave/route
PPPD=/usr/sbin/pppd
NAME=VPN
REDIR=/usr/local/bin/pty-redir
SSH=/usr/bin/ssh
MYPPPIP=192.168.0.1
TARGETIP=192.168.0.2
TARGETNET=193.6.37.0
MYNET=193.6.35.0
ESCLAVEWALL=polanski-out
ESCLAVEACC=esclave
test -f $PPPD || exit 0
set -e
case "$1" in
 start)
 echo setting up vpn
 $REDIR $SSH -o 'Batchmode yes' -t -l $ESCLAVEACC $ESCLAVEWALL sudo $PPPAPP>/tmp/device
 TTYNAME=`cat /tmp/device`
echo tty is $TTYNAME
 sleep 10s
 if [ ! -z $TTYNAME ]
 then
 $PPPD $TTYNAME ${MYPPPIP}:${TARGETIP}
 else
 echo FAILED!
 logger "vpn setup failed"
 fi
 sleep 5s
 route add -net $TARGETNET gw $TARGETIP
 $SSH -o 'Batchmode yes' -l $ESCLAVEACC $ESCLAVEWALL sudo $ROUTEAPP
 ;;
 stop)
 ps -ax | grep "ssh -t -l $ESCLAVEACC " | grep -v grep | awk '{print $1}' | xargs kill
 ;;
 *)
 # echo "Usage: /etc/init.d/$NAME {start|stop|reload}"
 echo "Usage: /etc/init.d/$NAME {start|stop}"
 exit 1
 ;;
esac
exit 0

L'esclave utilise un script pour la pr�paration du routage (/usr/local/vpn/route) :

#!/bin/bash
/sbin/route add -net 193.6.35.0 gw 192.168.0.1

et son .ppprc est tel qu'indiqu� ci-dessous :

passive


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:38