• Aucun résultat trouvé

Le probleme des reseaux IP prives

IP sur ligne serie | SLIP

7.3 Le probleme des reseaux IP prives

Vous vous souvenez que nous avons dit dans le chapitre 5 que((La biere virtuelle ))

utilise une adresse reseau qui est reservee uniquement aux usages internes: aucun pa- quet de ce reseau ne sera route sur l'Internet. Cela signi e que les h^otes de l'entreprise ne peuvent pas parler a des machines connectees sur l'Internet, car les trames seraient discretement eliminees par le premier routeur venu.

Pour contourner ce probleme, nous allons con gurer

kro

comme une sorte de rampe de lancement permettant d'acceder aux services Internet. Pour le monde exterieur, elle se presentera comme un h^ote tout a fait normal, avec une adresse IP d^ument enregistree (probablement assignee par le fournisseur de services). Pour avoir acces a l'Internet, par exemple a un serveur FTP, les utilisateurs doivent se connecter sur

kro

et invoquer le client FTP sur cette machine, de sorte que la connexion paraisse venir d'un h^ote valide. Pour les autres applications, il peut y avoir des solutions evitant cette connexion intermediaire. Les utilisateurs de WWW par exemple, peuvent employer ce que l'on appelle un serveur proxy sur

kro

, qui fera le relais des requ^etes vers les serveurs demandes.

C'est une solution assez lourde, bien entendu. Mais, en plus d'avoir elimine la paperas- serie necessaire a l'enregistrement d'un reseau IP, elle apporte le bene ce de realiser une con guration rewall tres ecace. Les rewalls sont des h^otes dedies destines a o rir des acces limites a l'Internet aux utilisateurs d'un reseau local, sans exposer ce reseau aux attaques exterieures.

Considerons que nos brasseurs se sont vu attribuer pour la session SLIP, l'adresse IP

192.168.5.74

. Tout ce que vous aurez a faire pour realiser la con guration decrite ci- dessus sera d'indiquer cette adresse dans le chier /etc/hosts, en l'appelant

kro-slip

. La procedure d'etablissement du lien SLIP reste inchangee.

7.4 Utilisation de

dip

Jusqu'ici, tout etait plut^ot simple. Neanmoins, vous souhaiterez sans doute automa- tiser toutes les etapes de maniere a n'avoir qu'une seule commande a taper pour que

tout se fasse tout seul. C'est le r^ole du programme dip. . La version actuelle, a l'heure ou nous ecrivons ces lignes, est 3.3.7. Il a eteenormement modi e par un grand nombre de personnes, aussi il n'est plus possible de parler d'un unique programme dip. Ces di erentes variantes de developpement aboutiront heureusement un jour a une seule version de nitive.

Le programme dip o re un petit langage script permettant de dialoguer avec le modem et le serveur, passer en mode SLIP et con gurer les interfaces. Il est tres primitif et limite, mais susant dans la plupart des cas. Ce langage changera peut-^etre dans une future version, plus elaboree.

Pour pouvoir con gurer l'interface SLIP, dip a besoin des privileges root. Il serait tentant de l'installer setuid a

root

, pour que tout utilisateur ordinaire puisse appeler un service SLIP sans qu'il soit necessaire de lui donner l'acces superutilisateur. C'est pourtant une methode extr^emement dangereuse, car con gurer de mauvaises inter- faces ou routes par defaut avec dip peut paralyser completement votre reseau. Pis, cela autoriserait n'importe quel utilisateur a telephoner n'importe ou, entre autres choses. Aussi, si vous avez vraiment besoin d'autoriser un utilisateur a initialiser lui-m^eme des liaisons SLIP, la meilleure solution est d'ecrire un petit programme frontal pour chaque serveur a connecter, qui lui seul realisera l'appel a dip en tant que

root

avec les scripts adaptes a chaque cas, en toute securite.4

7.4.1 Exemple de script

Supposons que l'h^ote avec lequel nous voulons realiser notre connexion SLIP soit

gogoslip

, et que nous ayons deja ecrit un script appele gogoslip.dip. Nous appellerons dipde cette facon:

# dip gogo.dip

DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93) Written by Fred N. van Kempen, MicroWalt Corporation. connected to gogoslip.mou.com with addr 192.168.5.74 #

Le script correspondant est presente dans la gure 7.1.

Apres s'^etre connecte a

gogoslip

et avoir mis SLIP en service, dip va se detacher du terminal et se mettre en arriere-plan. Vous pouvez alors commencer a utiliser les services reseaux habituels par la liaison SLIP. Pour terminer la session, invoquez simplement

dip

avec l'option-k. Cela enverra simplement un signal HUP au processus

indique dans /etc/dip.pid, que dip a cree au demarrage.

# dip -k

3:dipsigni eDialup IP, son auteur est Fred van Kempen.

# Exemple de script dip pour appeler gogoslip # Set local and remote name and address # Initialise les adresses locale et distante get $local kro-slip

get $remote gogoslip

port cua3 # choix du port serie speed 38400 # choix de la vitesse modem HAYES # type de modem

reset # remise a zero du modem et du tty flush # nettoie le tampon de reception modem # Preparation de l'appel

send ATQ0V1E1X1\r wait OK 2

if $errlvl != 0 goto error dial 41988

if $errlvl != 0 goto error wait CONNECT 60

if $errlvl != 0 goto error # Voila, nous sommes connectes sleep 3

send \r\n\r\n wait ogin: 10

if $errlvl != 0 goto error send Skro\n

wait ssword: 5

if $errlvl != 0 goto error send salut\n

wait running 30

if $errlvl != 0 goto error

# Nous sommes sur le systeme distant, qui lance SLIP. print Connecte a $remote avec l'adresse $rmtip

default # Positionne ce lien comme route par defaut mode SLIP # Et nous passons aussi en mode SLIP. # Les erreurs arrivent ici:

error:

print La connexion SLIP avec $remote a echoue.

Dans le langage de script de dip, les mots cles pre xes par le symbole dollar ($) denotent les noms de variables. Le programme conna^t un certain nombre de va- riables prede nies, que nous allons detailler plus loin; $remote et $local, par exemple, contiennent les noms des deux machines, respectivement distante et locale, de la liai- son point-a-point.

Les deux premieres instructions du script sont des commandes get, qui est la methode par laquelle dip initialise une variable. Ici, la machine locale est

kro-slip

et la machine distante

gogoslip

.

Les cinq instructions suivantes initialisent le terminal et le modem: reset envoie une commande de remise a zero du modem; pour les modems compatibles Hayes, il s'agit de ATZ. La ligne suivante elimine le cas echeant tous les caracteres deja recus par le modem a n que le dialogue avec le serveur puisse s'etablir proprement. Cette sequence de dialogue est tres simple: elle appelle le numero 41988, le numero de telephone de

gogoslip

, et se connecte sous le compte utilisateur Skro avec le mot de passe salut. La commande wait indique a dip d'attendre la cha^ne de caracteres donnee comme premier argument pendant le nombre de secondes indique dans le second. La condition if imbriquee dans la procedure teste qu'aucune erreur ne s'est produite pendant l'execution de la commande.

Les dernieres commandes executees sont default, qui assigne la route par defaut a la liaison SLIP, et mode, qui valide le mode SLIP sur la ligne serie et con gure l'interface et la table de routage pour vous.

7.4.2 Manuel de reference de dip

Bien que tres utilise, dip n'est pas encore tres bien documente. Nous allons malgre tout vous donner un resume des principales commandes. Vous pourrez avoir un apercu de la fonction de chacune d'elles en appelant dip en mode test et en tapant la commande help. Pour trouver la syntaxe d'une commande, vous pouvez l'entrer sans arguments; bien s^ur, cela ne marche pas pour celles qui ne prennent pas d'argument.

$ dip -t

DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93) Written by Fred N. van Kempen, MicroWalt Corporation. DIP> help

DIP knows about the following commands: databits default dial echo flush

get goto help if init

mode modem parity print port reset send sleep speed stopbits term wait

DIP> echo

Usage: echo on|off DIP> _

Tout au long de la section suivante, les exemples qui achent l'invite DIP> mon-

trent comment entrer une commande en mode test et ce qu'elle ache a l'ecran. Les exemples depourvus de cette invite doivent ^etre consideres comme des extraits de scripts.