Vous êtes sur la page 1sur 23

Administration rseau sous Linux

TP Licence - Rsum des cours


Administration rseau sous Linux/TP Licence - Rsum des cours

Sections
[masquer]

1 Configuration rseau

1.1 Installation de la carte rseau

1.2 Configuration de la carte rseau

1.2.1 Adresse IP

1.2.2 Passerelle et routage

1.2.3 Tester le rseau

1.2.4 Informations sur les interfaces

1.2.5 Nom d'hte (hostname)

1.2.6 Configuration automatique au dmarrage

1.2.7 Rsolution de noms

1.2.7.1 Serveurs DNS

1.2.7.2 Fichier hosts

2 DHCP

2.1 Configuration

2.2 Interfaces

2.3 Adresse dynamique

2.4 Adresse fixe

2.5 Options

3 Samba

3.1 Configuration du service Samba

3.1.1 Exemple

3.2 Configuration du partage des rpertoires

3.2.1 Exemples

3.3 Protger les rpertoires partags

3.4 Lancement du service

3.5 Accs aux rpertoires

4 Apache

4.1 Fichiers log

4.2 Configuration de base

4.2.1 Configuration du serveur

4.2.2 Configuration des modules

4.2.3 Configuration des sites

4.3 Quelques directives classiques

4.4 Paramtrage des rpertoires

4.5 Grer les pages Web personnelles

4.6 Le module PHP

4.7 Principe

4.8 Protection par provenance

4.9 Protection par mot de passe

4.9.1 Configuration de l'authentification

4.9.2 Fichier de mots de passe

4.10 Redirections

4.11 Serveurs virtuels (virtual hosts)

5 Firewall

5.1 Fonctionnement

5.1.1 Filtrage

5.1.2 Chanes

5.1.3 Rgles

5.2 Syntaxe

5.2.1 Commandes

5.2.2 Critres

5.2.3 Cibles

5.3 Utilisation simple

5.4 Crer et appliquer des rgles

5.5 Quelques exemples

5.6 Le cas FTP

6 Routage

6.1 Adresses IP et MAC

6.2 Sous-rseaux

6.2.1 Classes de sous-rseaux

6.2.2 Masque de sous-rseau

6.3 Routage

6.3.1 Routes

6.3.2 Route par dfaut (gateway)

6.3.3 NAT et masquerading

6.3.4 Redirection

Configuration rseau[modifier | modifier le wikitexte]


Installation de la carte rseau[modifier | modifier le wikitexte]
Les cartes rseau sont souvent dtectes au dmarrage. Si ce n'est pas le cas il faudra charger les modules
correspondants.
Pour obtenir la liste des interfaces rseau qui ont t dtectes, on peut utiliser la commande
ifconfig -a

Les sections qui commencent par ethX correspondent aux cartes ethernet, o X est le numro de la carte.
Si la carte n'est pas dtecte, il faudra charger le module avec la commande
modprobe <nom du module>

Parmi les modules courants on peut noter : ne2k-pci pour les cartes NE2000, via-rhine, rtl8139...
Les modules disponibles pour votre noyau se trouvent dans /lib/modules/<nom du
noyau>/kernel/drivers/net/. La commande suivante affiche les modules rseau disponibles pour le noyau
en cours d'utilisation :
ls /lib/modules/`uname -r`/kernel/drivers/net/

Pour connatre le nom du module en fonction du nom commercial d'une carte, une recherche sur internet est
souvent la meilleure solution.
Le noyau donne parfois des informations utiles sur les cartes rseau. On peut rechercher les messages
contenant "eth0" pour avoir plus d'informations sur la premire carte rseau dtecte :
dmesg | grep eth0

La commande suivante permet d'afficher les cartes rseaux relies au bus PCI :
lspci | grep Ethernet

Configuration de la carte rseau[modifier | modifier le wikitexte]


Une fois votre carte reconnue par le noyau, vous devez au moins prciser l'adresse IP et le masque de sousrseau de la carte. Dans le cas d'un rseau local connect Internet, vous devez aussi ajouter l'adresse IP de la
passerelle et l'adresse IP d'un ou plusieurs serveurs DNS.

Adresse IP[modifier | modifier le wikitexte]


Pour attribuer une adresse IP une interface rseau, on peut utiliser la commande ifconfig :
ifconfig <interface> <adresse ip>

Par exemple :
ifconfig eth0 192.168.1.12

Le masque de sous-rseau est dtermin automatiquement en fonction de la classe de l'adresse IP. S'il est
diffrent on peut le spcifier avec l'option netmask :
ifconfig eth0 192.168.1.12 netmask 255.255.255.128

Pour voir si la carte rseau est bien configure, on peut utiliser la commande :
ifconfig eth0

Passerelle et routage[modifier | modifier le wikitexte]


Pour ajouter une passerelle, on peut utiliser la commande route :

route add default gw <adresse ip>

Pour afficher les routes vers les diffrents rseaux :


route -n

Tester le rseau[modifier | modifier le wikitexte]


Pour tester si la carte rseau fonctionne, on peut essayer de communiquer avec une autre machine avec la
commande
ping <adresse ip>

La commande ping envoi un paquet l'adresse IP puis attend que la machine rponde. Elle affiche ensuite le
temps qu'a pris toute l'opration, en millisecondes.

Informations sur les interfaces[modifier | modifier le wikitexte]


Pour vrifier le statuts de toutes les interfaces on peut utiliser la commande
netstat -i

Nom d'hte (hostname)[modifier | modifier le wikitexte]


Le fichier /etc/hostname contient le nom de la machine. Il suffit de l'diter pour changer le nom d'hte de la
machine. Cette modification n'est pas prise en compte immdiatement par le systme. Elle le sera au prochaine
dmarrage de la machine ou aprs avoir lanc :
/etc/init.d/hostname.sh

On peut galement changer le nom d'hte avec la commande suivante, mais il ne sera pas conserv au
prochain dmarrage :
hostname <nom d'hte>

Configuration automatique au dmarrage[modifier | modifier le wikitexte]


Le fichier /etc/network/interfaces permet de configurer les cartes rseau de manire permanente.
Par exemple :
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1

Et si l'interface eth0 doit tre configure automatique grce un serveur DHCP :


auto eth0
iface eth0 inet dhcp

Pour que les modifications de ce fichier soient prises en compte, il faut redmarrer ou utiliser les
commandes ifup et ifdown. Par exemple :
ifup eth0

Rsolution de noms[modifier | modifier le wikitexte]


Le fichier /etc/host.conf indique comment les noms doivent tre rsolus (c'est dire comment passer d'une
adresse IP un nom, et inversement). Par exemple :
# D'abord traduire avec les serveurs DNS et ensuite avec /etc/hosts.
order bind,hosts
# Il existe des machines avec plusieurs adresses
multi on
# Vrifie l'usurpation d'adresse IP
nospoof on

Serveurs DNS[modifier | modifier le wikitexte]


Le fichier /etc/resolv.conf contient les adresses IP des serveurs DNS. Par exemple :
nameserver 208.164.186.1
nameserver 208.164.186.2
search foo

La commande search indique que si un nom de domaine n'est pas trouv, il faudra essayer en lui
ajoutant .foo.
Fichier hosts[modifier | modifier le wikitexte]
Le fichier /etc/hosts contient une liste de rsolutions de noms (adresses IP et noms de machine). Par
exemple:
192.168.105.2 sasa

Ce fichier indique que sasa correspond l'adresse IP 192.168.105.2, qui sera accessible par cet alias.

DHCP[modifier | modifier le wikitexte]


Le protocole DHCP (pour Dynamic Host Configuration Protocol) est un protocole rseau dont le rle est
d'assurer la configuration automatique des paramtres rseau d'une station, notamment en lui assignant
automatiquement une adresse IP et un masque de sous-rseau.
Le protocole DHCP est trs souvent mis en uvre par les administrateurs de parc de stations car il offre
l'norme avantage de centraliser la configuration des stations sur une unique machine : le serveur DHCP. Le
principal danger de DHCP est qu'en cas de panne du serveur DHCP, plus aucune station n'accde au rseau.
Il y a deux utilisations principales d'un serveur DHCP :

attribuer une configuration fixe certains postes (on les reconnat grce leur adresse MAC)

et attribuer une configuration dynamique aux postes inconnus.


On peut par exemple donner une adresse IP fixe certains serveurs, et attribuer des adresses variables aux
autres postes. Le protocole est prvu pour qu'un poste qui revient sur le rseau rcupre la mme adresse qu'il
avait la premire fois. Elle lui est rserve un certain temps (le lease time).

Configuration[modifier | modifier le wikitexte]


Le fichier de configuration principal est /etc/dhcp3/dhcpd.conf. Sa syntaxe est dcrite dans man dhcpd.conf.
Il possde des options globales, gnralement places au dbut, et des sections pour chaque hte ou rseau
configurer.
Aprs chaque modification de la configuration, il faut relancer le serveur :
/etc/init.d/dhcp3-server restart

S'il ne se relance pas, le dtail de l'erreur se trouve gnralement dans /var/log/syslog

Interfaces[modifier | modifier le wikitexte]


Par dfaut, le serveur DHCP(Dynamic host configuration protocol) est lanc sur toutes les interfaces. Dans ce
cas il est impratif de configurer un rseau par interface dans dhcpd.conf.
Pour choisir les interfaces sur lesquels le serveur est lanc, il faut modifier /etc/default/dhcp3-server en
indiquant par exemple
INTERFACES="eth1 eth2"

Il est obligatoire d'avoir une section "subnet" (voir ci-dessous) pour le rseau de chaque interface.

Adresse dynamique[modifier | modifier le wikitexte]


Pour configurer une plage d'adresses attribuer dynamiquement aux adresses MAC inconnues, on utilise une
section subnet dans dhcpd.conf. La section suivante attribuera par exemple des adresses comprises entre
192.168.1.101 et 192.168.1.199 :
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.101 192.168.1.199;
}

Adresse fixe[modifier | modifier le wikitexte]


Pour donne une adresse fixe un poste, il faut connatre son adresse MAC et crire une section host. Par
exemple la section suivante attribue l'adresse 192.168.0.47 au postecobalt dont l'adresse MAC
est 00:13:d4:bd:b7:9a :
host cobalt {
hardware ethernet 00:13:d4:bd:b7:9a;
fixed-address 192.168.0.47;
}

Options[modifier | modifier le wikitexte]


Le serveur DHCP peut fournir d'autres informations que l'adresse IP. Ces options peuvent tre dfinies de
manire globale en les plaant en dehors de toute section. Elles s'appliqueront alors toutes les sections qui ne
les redfinissent pas. Si elles sont places dans une section particulire, elles ne s'appliquent qu' celle-ci.
L'option domain-name-servers permet par exemple d'indiquer au poste les adresses des serveurs DNS.
L'option routers indique la passerelle.
Toutes les options sont dcrites dans la page de man. On peut galement consulter cette documentation sur
internet[1].

Samba[modifier | modifier le wikitexte]


Samba est un service permettant de partager des rpertoires et imprimantes entre des stations Linux et des
stations Windows.

Configuration du service Samba[modifier | modifier le wikitexte]


Pour la configuration de ce service le principal fichier modifier est smb.conf qui se trouve gnralement
dans /etc ou /etc/samba selon la distribution.
Il existe galement des interfaces graphiques pour configurer Samba.
La section [global] contient les options communes tous les rpertoires partags.
Voici quelques options utilisables :
workgroup
Le nom du groupe de travail. Les ordinateurs du mme groupe de travail se retrouvent cte cte dans le
voisinnage rseau de Windows.
server string
La description du serveur, qui apparaitra cot de son nom dans l'explorateur Windows. Si la description
contient le terme %h, il sera remplac par le nom d'hte de la machine.
encrypt passwords
Dtermine si les mots de passe doivent tre crypts avant d'tre transmis. C'est fortement recommand et tous
les systmes Windows partir de 98 et NT4 SP3 utilisent cette fonctionnalit par dfaut.
log file
Le nom du fichier qui contiendra le journal des activits du serveur. On peut avoir un journal par machine client
en utilisant %m dans le nom du fichier. Le %m sera remplac par le nom de la machine client.
max log size
Taille maximale du fichier journal, en Kio.
socket options
Indique les options mettre sur les sockets comme par exemple TCP_NODELAY pour que le systme envoi
immdiatement les petits paquets sans attendre d'en avoir plusieurs.
De nombreuses autres options sont disponibles. Elles sont dtailles dans la page de man de smb.conf [archive]

Exemple[modifier | modifier le wikitexte]


[global]
workgroup = maison
server string = Serveur Samba sur %h
encrypt passwords = true
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY

Configuration du partage des rpertoires[modifier | modifier le wikitexte]


Les partages Samba sont dcrits dans des sections ayant la forme suivante :
[<nom du partage>]
<option> = <valeur>
...

Les paramtres principaux sont les suivantes :


comment
La description du rpertoire partag.
path
Le chemin du rpertoire partag. C'est le contenu du rpertoire indiqu qui sera partag.
read only
Dtermine si les clients pourront crire ou non dans le rpertoire partag.
public
Autoriser ou non les connexions sans mot de passe.
valid users
Liste des seuls utilisateurs autoriss se connecter spars par des espaces. Si on veut autoriser tous les
utilisateurs il ne faut pas mettre cette option.
browseable
Dtermine si le partage apparaitra dans la liste des partages du serveur.
La section [homes] est un partage particulier. Elle dfinit le partage des rpertoires utilisateur des comptes unix
de la machine.
De nombreuses autres options sont disponibles. Elles sont dtailles dans la page de man de smb.conf [archive]

Exemples[modifier | modifier le wikitexte]


[cdrom]
comment = Samba server's CD-ROM
read only = yes
locking = no
path = /cdrom
guest ok = yes
[partage]
path = /media/d/partage
available = yes
browsable = yes
public = yes
writable = yes
[zelinux]
comment = Site web
path = /myrep/zelinux
read only = no

Protger les rpertoires partags[modifier | modifier le wikitexte]


Il est possible de rendre priv un rpertoire et d'autoriser ou non des utilisateurs y accder.
Pour cela, pour chaque rpertoire partag ajoutez les options:
public = no
valid users = <nom des utilisateurs autoriss accder aux rpertoires>

Pour chaque nom que vous avez rentr, il faut ajouter l'utilisateur samba avec

smbpasswd -a <nom de l'utilisateur>

Un compte unix du mme nom doit exister. Si ce n'est pas le cas, il faut le crer avec la commande adduser.

Lancement du service[modifier | modifier le wikitexte]


Lancement :
/etc/init.d/samba start

Pour le stopper :
/etc/init.d/samba stop

Pour le relancer :
/etc/init.d/samba restart

Les modifications du fichier smb.conf sont prises en compte pour chaque nouvelle connexion. Pour les rendre
effectives sur les connexions dj tablies, il faut relancer Samba.

Accs aux rpertoires[modifier | modifier le wikitexte]


Pour accder aux partage sous Windows, il suffit d'ouvrir le voisinage rseaux d'une station Windows et de
vrifier si la machine y est.
Pour se connecter en ligne de commande un partage partir de Linux, on peut utiliser la commande
smbclient //<nom du serveur>/<nom du partage> -U <utilisateur>

Il est galement possible de monter un partage Samba avec


smbmount //<nom du serveur>/<nom du partage> <rpertoire local>

Diffrentes options sont disponibles. On peut les consulter dans man smbclient et man smbmount.

Apache[modifier | modifier le wikitexte]


Apache est un serveur HTTP libre. Un serveur HTTP permet d'hberger des sites web qui seront accessibles
avec un navigateur tel que Mozilla Firefox.
Un site web peut fournir tout type de contenu (des fichiers textes, HTML, Flash, zip). Ce contenu peut tre
statique (le serveur transmet un fichier au navigateur) ou dynamique (le contenu est gnr par un programme
excut par le serveur). Les sites web contiennent gnralement plusieurs types de documents, certains tant
statiques et d'autres dynamiques.
Nous traiterons ici d'Apache 2.2 sur un systme Debian (et ses drivs, comme Ubuntu).

Fichiers log[modifier | modifier le wikitexte]


Par dfaut sous Debian, Apache enregistre les erreurs dans le fichier /var/log/apache2/error.log. Quand
quelque chose ne fonctionne pas, ce fichier fournit souvent des pistes pour trouver la solution.
Il enregistre galement toutes les requtes dans /var/log/apache2/access.log.

Configuration de base[modifier | modifier le wikitexte]


Sous Debian, Apache se lance automatiquement lorsqu'on l'installe et chaque dmarrage du systme.
Lorsqu'on modifie sa configuration, il faut lui faire prendre connaissance des changements avec la commande
/etc/init.d/apache2 reload

Pour l'arrter, le lancer ou le relancer on utilisera la mme commande avec stop, start ou restart.
Pour d'autres systmes il faudra consulter la documentation du systme ou celle d'Apache [archive].

Configuration du serveur[modifier | modifier le wikitexte]


La configuration [archive] du serveur se trouve dans /etc/apache2/apache2.conf. Ce fichier contient des
instructions Include [archive] qui permettent de dplacer certaines parties de la configuration dans d'autres
fichiers. Debian utilise cette fonctionnalit pour les modules [archive] (comme PHP) et la gestion des serveurs
virtuels [archive] :

Configuration des modules[modifier | modifier le wikitexte]


Le rpertoire /etc/apache2/mods-available contient les modules installs. Le
rpertoire /etc/apache2/mods-enabled contient les modules activs. Les modules activs sont des liens
symboliques vers les modules installs.
Pour activer ou dsactiver un module, on peut manipuler directement les liens ou utiliser les
commandes a2enmod et a2dismod (voir les pages de man).

Configuration des sites[modifier | modifier le wikitexte]


De la mme manire, le rpertoire /etc/apache2/sites-available contient les sites web disponibles
et /etc/apache2/sites-enabled les sites activs. Il en existe un prinstall : le site default.
Les sites peuvent s'activer ou se dsactiver en manipulant les liens dans sites-enabled ou en
utilisant a2ensite et a2dissite.

Quelques directives classiques[modifier | modifier le wikitexte]


La syntaxe d'Apache est assez simple. On trouve des blocs (ou contextes) comme par exemple :
<VirtualHost ...> # dbut de bloc VirtualHost
...
<Directory ...> # dbut de bloc Directory
...
</Directory>

# fin de bloc Directory

...
</VirtualHost>

# fin de bloc VirtualHost

et des directives comme par exemple


Include /etc/apache2/sites-enabled/

Les directives qui permettent de configurer le serveur lui-mme sont gnralement places
dans apache2.conf. Celles qui ne concernent qu'un site web sont dportes dans le fichier de configuration du
site (sites-available/mon-site-web).
La directive DocumentRoot [archive] fixe la racine du serveur Web, c'est--dire le rpertoire de base o se trouvent
les documents. Par exemple avec la directive DocumentRoot /var/www/html, si le navigateur demande la
page http://serveur/repertoire/fichier.txt, le serveur cherchera le
fichier /var/www/html/repertoire/fichier.txt.
UserDir [archive] permet d'indiquer le rpertoire personnel des utilisateurs du systme. La directive UserDir
public_html signifie qu'un utilisateur peut publier ses pages web personnelles dans un sous-

rpertoire public_html de son rpertoire personnel. Pour l'utilisateur toto, c'est


gnralement /home/toto/public_html. Sa page d'accueil sera alors accessible par l'URL
spciale http://serveur/~toto.
DirectoryIndex [archive] indique la liste des fichiers qu'Apache cherchera afficher si l'URL n'en prcise pas. Par
exemple si la configuration contient DirectoryIndex index.html index.php et qu'on demande
l'URL http://serveur/repertoire/, Apache va chercher dans le rpertoire un
fichier index.html ou index.php. Si un de ces fichiers existe, il sera affich. Sinon, Apache affichera soit la
liste des fichiers, soit une erreur (suivant la prsence de Indexes dans la directive Options [archive]).
AccessFileName [archive] dfinit le nom du fichier qu'on peut placer dans un rpertoire pour en modifier sa
configuration. Cela permet, par exemple, d'interdire localement l'affichage de la liste des fichiers, ou de protger
par mot de passe un rpertoire et ses sous rpertoires.
Listen [archive] indique Apache sur quel port TCP il doit couter. Le port par dfaut du protocole HTTP est 80.
ServerName [archive] indique Apache son nom de domaine et ventuellement son port. Il s'en sert lorsqu'il doit
communiquer son adresse au client (le navigateur). C'est le cas par exemple lorsqu'on demande
l'adresse http://serveur/repertoire sans slash (/) la fin. Comme ce n'est pas une URL valide (l'URL
d'un rpertoire doit se terminer par un slash), Apache utilise la directive ServerName pour reconstruire une
adresse avec un slash et la renvoi au client.

Paramtrage des rpertoires[modifier | modifier le wikitexte]


Chaque rpertoire auquel Apache accde peut tre configur indpendamment (et ses sous-rpertoires en
hritent).
Le paramtrage d'un rpertoire se met dans un "conteneur" dlimit par <Directory
chemin_du_rpertoire> et </Directory>. La configuration s'applique au rpertoire et tous ses sous
rpertoires. Si un sous-rpertoire possde galement sa propre configuration, elle vient s'ajouter celle du
parent.
Voici quelques exemples de contrle d'accs. Plus de dtails sont donns dans la section "Un exemple de
configuration".
# Configuration du rpertoire racine du systme
<Directory />
# On n'autorise aucune option particulire
Options None
# Aucune modification n'est autoris dans les fichiers .htaccess
AllowOverride None
</Directory>
# Pour la racine du serveur:
<Directory /var/www/html>
# Quelques options
Options Indexes Includes FollowSymLinks
# Les options peuvent tre changes dans un .htaccess
AllowOverride All
# Permet tout le monde d'accder aux documents
Allow from All
# Spcifie comment appliquer la rgle prcdente
Order allow,deny
</Directory>

# Le rpertoire contenant des excutables CGI


<Directory /usr/lib/cgi-bin>
AllowOverride None
Options ExecCGI
</Directory>

Les paramtres possibles de la directive Options [archive] sont : "None", "All", "Indexes", "Includes",
"FollowSymLinks", "ExecCGI", ou "MultiViews".

Grer les pages Web personnelles[modifier | modifier le wikitexte]


Il est possible de permettre aux utilisateurs du systme de diffuser des pages personnelles sans avoir crer un
site par utilisateur. Il faut pour cela utiliser le module userdir.
Le rpertoire contenant le site web doit tre cr dans le home de l'utilisateur et doit tre accessible en lecture
pour tous. Le nom du rpertoire est dfini par la directiveUserDir [archive]. Par dfaut il s'agit du
rpertoire public_html.
L'adresse pour accder ces sites personnels est le nom de l'utilisateur prcd d'un tilde (~).
Par exemple un utilisateur toto sur le serveur www.iut.clermont.fr peut crer les pages de son site dans le
rpertoire /home/toto/public_html, et on pourra y accder avec l'adresse : http://www.iut.clermont.fr/~toto/.
Il est possible de n'autoriser que certains utilisateurs bnficier du UserDir. Par exemple pour n'autoriser
que sasa et toto avoir un site personnel :
UserDir disabled
UserDir enabled sasa toto

Pour dfinir les options de ces rpertoires, on peut utiliser une clause Directory pour le
rpertoire /home/*/public_html :
<Directory /home/*/public_html>
Order allow,deny
Allow from all
</Directory>

La clause UserDir public_html ne fonctionne que pour des utilisateurs ayant un compte sur le systme.
L'URL http://www.iut.clermont.fr/~toto ne fonctionne que si toto est un vritable utilisateur (auquel cas
l'expression Unix ~toto a un sens), pas seulement si le rpertoire /home/toto/public_html existe.
On peut utiliser une autre forme de UserDir pour autoriser les rpertoires sans forcment qu'il y ait un compte
unix associ :
UserDir /home/*/public_html

Le module PHP[modifier | modifier le wikitexte]


PHP a normalement t intgr au serveur Apache sous forme d'un module chargeable situ comme tous les
autres modules d'Apache dans /usr/lib/apache2/modules.
Les fichiers /etc/apache2/mods-availiable/php.load et /etc/apache2/modsavailiable/php.conf contiennent les directives LoadModule et AddType qui permettent Apache d'excuter
du PHP quand on demande un fichier se terminant par .php. Ils doivent tre lis dans /etc/apache2/modsenabled pour activer PHP. On peut utiliser pour cela la commande a2enmod.

En marge de Apache, PHP possde lui aussi son fichier de configuration, souvent /etc/php.ini. Il n'est pas
particulirement conseill d'y intervenir sauf si on sait ce que l'on fait. On peut nanmoins y observer que PHP
prend bien en compte le module d'extension MySQL, contenant les fonctions d'accs au "moteur" de base de
donnes MySQL (qui a d tre install part), par la prsence de extension=mysql.so.
En cas de modification d'un fichier de configuration, comme PHP fonctionne comme module d'Apache, il faut
redmarrer Apache pour qu'il rinitialise PHP par la lecture de php.ini.
/etc/init.d/apache2 restart

Principe[modifier | modifier le wikitexte]


Pour protger un rpertoire en particulier (et ses sous-rpertoires), il suffit de placer un fichier
nomm .htaccess dedans. Apache appliquera instantanment ensuite les rgles qu'il contient, uniquement
dans cette arborescence.
L'explorer de Windows ne permet pas de rebaptiser des fichiers commenant par des points, il faut donc passer
par un diteur de texte.
Par exemple, pour interdire de visualiser les fichiers d'un rpertoire qui n'a pas d'index (ex : .html, .php), ajouter
le code : Options -Indexes.

Protection par provenance[modifier | modifier le wikitexte]


De nombreux robots tentent quotidiennement de pirater des bases de donnes (par exemple via PhpMyAdmin).
Pour s'en prmunir on peut n'autoriser que deux IP lire ce rpertoire :
deny from all
allow from 127.0.0.1
allow from 127.0.0.2

Si les plages d'autorisation chevauchent celles d'interdiction, il est possible de prciser leur prcdence (l'ordre
des lignes dans le fichier ne change rien) :
order allow, deny

commence par les autorisation puis dmarre les interdictions au risque d'interdire ce qui tait autoris.
order deny, allow

le contraire est moins restrictif.

Protection par mot de passe[modifier | modifier le wikitexte]


Configuration de l'authentification[modifier | modifier le wikitexte]
Il est impratif que la modification des paramtres d'authentification soit autorise dans la configuration
d'Apache.
Il faut que la directive AllowOverride [archive] d'un rpertoire parent contienne l'option AuthConfig.
Les directives placer dans le .htaccess sont les suivantes :
AuthType basic

type d'authentification communment adopt mais peu scuris


AuthName "Mon message"

affichera le texte comme invite dans la bote de dialogue


AuthUserFile /etc/apache2/my_passwd

indique o vont se trouver les mots de passe


Require valid-user

prcise qu'il faut un compte dans le fichier de mots de passe pour accder au rpertoire
On peut aussi utiliser Require user toto sasa pour n'autoriser que les comptes toto et sasa.

Le type d'authentification basic fait circuler les mots de passe en clair. Il existe d'autres types plus scuriss
comme digest, qu'il est recommand de combiner HTTPS. Voirl'article sur wikipdia pour plus de dtails sur le
fonctionnement.
La premire requte adresse ce rpertoire protg provoquera l'affichage d'une bote de dialogue par
laquelle l'utilisateur devra s'identifier (nom et mot de passe) :

Si le mot de passe saisi est invalide, la boite de dialogue s'affichera de nouveau.

S'il est valide, le navigateur l'enregistre et ne le demandera plus.


Il faudra relancer le navigateur pour qu'il le demande de nouveau.

Fichier de mots de passe[modifier | modifier le wikitexte]


Pour crer un fichier stockant les mots de passe permettant de lire un site, nomm /etc/apache2/defaultpasswd avec comme 1er utilisateur toto, on utilisera la commande
htpasswd -c /home/user/www/.htpasswd toto

Pour ajouter ou modifier un utilisateur un fichier de mots de passe existant :


htpasswd /home/user/www/.htpasswd sasa

Pour que le .htaccess active le .htpasswd, y ajouter les directives :


AuthName "Page protge"
AuthType Basic
AuthUserFile "/home/user/www/.htpasswd"
Require valid-user

Redirections[modifier | modifier le wikitexte]


La syntaxe est la mme que dans le fichier de configuration gnrale d'Apache, sauf que cela n'affectera que le
rpertoire du fichier .htaccess.

Serveurs virtuels (virtual hosts)[modifier | modifier le wikitexte]


Apache peut grer plusieurs sites web simultanment. Ils seront tous accessibles partir de la mme adresse IP
et du mme port. Pour les diffrencer, Apache se sert de l'adresse demande par le navigateur.
Par exemple si site1.com et site2.com pointent sur la mme adresse IP, les URL http://site1.com/ et
http://site2.com/ aboutiront sur le mme serveur. Mais au moment de la requte, le navigateur prcise qu'il a
demand l'adresse http://site1.com/ ou http://site2.com/. Apache se sert de cette information pour savoir quel
site afficher. On parle deserveur virtuel ou virtual host.
Pour indiquer Apache quel site correspond un nom de domaine, on utilise une section <VirtualHost *>.
Sous Debian, il y a gnralement un fichier par sectionVirtualHost dans le rpertoire /etc/apache2/sitesavailiable.
La section devra contenir une directive ServerName [archive] qui indiquera le nom associ ce serveur virtuel. Elle
pourra galement contenir une directive ServerAlias [archive]si on veut que d'autres noms aboutissent ce site.
Par exemple :
<VirtualHost *>
ServerAdmin admin@site1.com
DocumentRoot /home/site1/racine
ServerName site1.com
ServerAlias www.site1.com

AccessLog /home/site1/access.log
ErrorLog /home/site1/error.log
<Directory /home/site1/racine>
AllowOverride All
</Directory>
</VirtualHost>

La documentation d'Apache sur les serveurs virtuels [archive] contient des informations dtailles sur le sujet.
Pour que ce serveur virtuel fonctionne, il est impratif que les noms site1.com et www.site1.com soient connus
par la machine qui tente d'y accder (celle qui lance le navigateur). Pour cela il y a plusieurs mthodes :

acheter le nom de domaine en question et le configurer pour qu'il pointe sur la bonne adresse IP

utiliser un serveur DNS qui renverra la bonne IP pour ce domaine

modifier le fichier hosts sur la machine cliente pour faire correspondre ce domaine la bonne adresse IP (voir
la partie Installation et configuration d'une carte rseau)

Firewall[modifier | modifier le wikitexte]


Netfilter est un module qui permet de filtrer et de manipuler les paquets rseau qui passent dans le systme.
Il fournit Linux :

des fonctions de pare-feu et notamment le contrle des machines qui peuvent se connecter, sur quels ports, de
lextrieur vers lintrieur, ou de lintrieur vers lextrieur du rseau ;

de traduction d'adresse (NAT) pour partager une connexion internet (masquerading), masquer des machines du
rseau local, ou rediriger des connexions ;

et d'historisation du trafic rseau.


iptables est la commande qui permet de configurer Netfilter.

Fonctionnement[modifier | modifier le wikitexte]


Netfilter intercepte les paquets rseau diffrents endroits du systme ( la rception, avant de les transmettre
aux processus, avant des les envoyer la carte rseau, etc.). Les paquets intercepts passent travers
des chanes qui vont dterminer ce que le systme doit faire avec le paquet. En modifiant ces chaines on va
pouvoir bloquer certains paquets et en laisser passer d'autres.

Filtrage[modifier | modifier le wikitexte]

Principal cheminement des paquets travers Netfilter

Dans son fonctionnement le plus simple, Netfilter permet de jeter ou de laisser passer les paquets qui entrent et
qui sortent.
Il fournit pour cela trois chanes principales :

une chane INPUT pour filtrer les paquets destination du systme,

une chane OUTPUT pour filtrer les paquets mis par les processus du systme,

et une chane FORWARD pour filtrer les paquets que le systme doit transmettre.
En ajoutant des rgles dans ces chanes on pourra laisser passer ou jeter les paquets suivant certains critres.

Chanes[modifier | modifier le wikitexte]


Une chane est un ensemble de rgles qui indiquent ce qu'il faut faire des paquets qui la traversent.
Lorsqu'un paquet arrive dans une chane :

Netfilter regarde la 1re rgle de la chane,

puis regarde si les critres de la rgle correspondent au paquet.

Si le paquet correspond, la cible est excute (jeter le paquet, le laisser passer, etc.).

Sinon, Netfilter prend la rgle suivante et la compare de nouveau au paquet. Et ainsi de suite jusqu' la dernire
rgle.

Si aucune rgle n'a interrompu le parcours de la chane, la politique par dfaut est applique.

Rgles[modifier | modifier le wikitexte]


Une rgles est une combinaison de critres et une cible. Lorsque tous les critres correspondent au paquet, le
paquet est envoy vers la cible.
Les critres disponibles et les actions possibles dpendent de la chane manipule.

Syntaxe[modifier | modifier le wikitexte]


La syntaxe d'iptables et toutes les options sont dcrites dans la page de man.
Pour chaque paramtre il existe gnralement une forme longue avec deux tirets (par exemple --append) et
une forme courte avec un seul tiret (par exemple -A). Utiliser l'une ou l'autre n'a pas d'importance, elles sont
quivalentes. Les deux possibilits sont souvent reprsentes dans la documentation sous la forme -append|-A.
Les paramtres indiqus entre crochets (par exemple [-t <table>]) sont facultatifs.
Ce qui se trouve entre infrieur et suprieur (par exemple <table>) doit tre remplac par une valeur.
La forme gnrale pour utiliser iptables est la suivante :
iptables [-t <table>] <commande> <options>

La table par dfaut est la table filter.

Commandes[modifier | modifier le wikitexte]


Les commandes principales sont les suivantes :
--list|-L [<chane>]

Affiche les rgles contenues dans les chanes ou seulement dans la chane slectionne.
Si le paramtre -v est plac avant cette commande, le nombre de paquets ayant travers chaque rgle sera
galement affich.

--append|-A <chane> <critres> -j <cible>

Ajoute une rgle la fin de la chane <chaine>. Si tous les critres correspondent au paquet, il est envoy la
cible. Voir plus bas pour une description des critres et des cibles possibles.
--insert|-I <chane> <critres> -j <cible>

Comme --append mais ajoute la rgle au dbut de la chane.


--delete|-D <chane> <critres> -j <cible>

Supprime la rgle correspondante de la chane.


--flush|-F [<chane>]

Efface toutes les rgles de la chane. Si aucune chane n'est indique, toutes les chanes de la table seront
vides.
--policy|-P <chane> <cible>

Dtermine la cible lorsque qu'aucune rgle n'a interrompu le parcours et que le paquet arrive en fin de chane.

Critres[modifier | modifier le wikitexte]


Les critres possibles sont nombreux. En voici quelques uns :
--protocol|-p [!] <protocole>

Le protocole est <protocole>. Les protocoles possibles sont tcp, udp, icmp, all ou une valeur numrique. Les
valeurs de /etc/protocols sont aussi utilisables. Si un point d'exclamation se trouve avant le protocole, le critre
correspondra au paquet seulement s'il n'est pas du protocole spcifi.
--source|-s [!] <adresse>[/<masque>]

L'adresse source est <adresse>. Si un masque est prcis, seules les parties actives du masque seront
compares. Par exemple lorsqu'on crit -s 192.168.5.0/255.255.255.0, toutes les adresses entre
192.168.5.0 et 192.168.5.255 correspondront. On peut aussi crire le masque sous la forme d'un nombre de bits
(/8 correspond 255.0.0.0, /24 255.255.255.0, etc.) Le masque par dfaut est /32 (/255.255.255.255), soit
l'intgralit de l'adresse.
Un point d'exclamation ne fera correspondre le paquet que s'il n'a pas cette adresse source.
--destination|-d [!] <adresse>[/<masque>]

Comme --source mais pour l'adresse destination.


--dport [!] <port>

Le port destination est <port>. Il est obligatoire de prciser le protocole (-p tcp ou -p udp), car dans les autres
protocoles il n'y a pas de notion de port.

--sport [!] <port>

Comme --dport mais pour le port source.


-i <interface>

L'interface rseau d'o provient le paquet. N'est utilisable que dans la chane INPUT.
-o <interface>

L'interface rseau de laquelle va partir le paquet. N'est utilisable que dans les chanes OUTPUT et FORWARD.

Cibles[modifier | modifier le wikitexte]


Les cibles principales sont les suivantes :
-j ACCEPT

Autorise le paquet passer et interrompt son parcours de la chane.


-j DROP

Jette le paquet sans prvenir l'metteur. Le parcours de la chane est interrompu.


-j REJECT

Comme DROP mais prvient l'metteur que le paquet est rejet. La rponse envoye l'metteur est galement
un paquet qui devra satisfaire les rgles de sortie pour pouvoir passer.
-j LOG [--log-level <level>] [--log-prefix <prefix>]

Enregistre le paquet dans les logs systmes. Au <level> par dfaut, le paquet est affich sur la console
principale du systme.
Cette cible est utile pour voir certains paquets qui passent (pour dbugger ou pour alerter).

Utilisation simple[modifier | modifier le wikitexte]


Le principe est assez simple comprendre. Un paquet IP arrive sur votre machine, vous devez alors choisir ce
que vous en faites. Vous pouvez laccepter (ACCEPT), le rejeter (REJECT) ou le denier (DROP). La diffrence
entre les deux derniers modes, est de prvenir ou non lenvoyeur, que son paquet a t refus (avec REJECT
on prvient, mais pas avec DROP).
Trois types de paquets peuvent passer par le firewall. Les paquets sortants (OUTPUT), entrant (INPUT) ou
passant , cest--dire qui ne font que rebondir sur le routeur qui doit les rediriger FORWARD).
Pour organiser les rgles dacceptation/rejet, on procde de la faon suivante : INPUT, OUTPUT, FORWARD,
sont appels des chanes une rgle est un ensemble dattributs auxquels correspond (ou non) un paquet : IP
source, IP destination, port source, port destination, protocole . . . quand un paquet passe par le firewall, il est
aiguill vers la chane correspondante ensuite, les rgles de la chane sont testes une par une, dans lordre,
sur le paquet. Ds que le paquet correspond une rgle, on sarrte. Si la rgle stipule ACCEPT, le paquet est
accept. Si elle stipule DROP, il est ignor. Si elle stipule REJECT, il est refus avec acquittement. Les rgles
suivantes ne sont pas testes. si aucune rgle ne correspond au paquet, la politique par dfaut est applique.
Elle peut tre positionne ACCEPT, DROP ou REJECT.

Il est plus scurisant (mais plus long mettre en place) dutiliser une politique par dfaut DROP et de crer des
rgles ACCEPT.
La syntaxe diptables est la suivante :
iptables -A|I chane -i (ou -o) interface -p protocole
--sport [port_dbut[:port_fin][,autre_port...]]
--dport [port_dbut[:port_fin][,autre_port]]
-s adresse_source -d adresse_dest -j politique

Il y a bien sr de nombreuses autres options.

Crer et appliquer des rgles[modifier | modifier le wikitexte]


Toutes les commandes iptables sont tapes directement sur la ligne de commande du terminal. Il est plus
pratique de les inscrire dans un fichier script et de rendre ce script excutable (chmod +x). Ne donnez que les
droits minimum ce fichier pour quil ne puisse pas tre lu et modifi par tout le monde. Exemple de fichier :
#!/bin/sh
# Effacer toutes les rgles avant toute chose, afin de partir dune base
# propre et de savoir exactement ce que vous faites
iptables -F
# Dfinir une politique par dfaut : le plus normal est de tout interdire par
# dfaut et de nautoriser que certains paquets.
# "DROP" ignore les paquets, "REJECT" les refuse avec acquittement pour lenvoyeur
# on met souvent "DROP" pour lINPUT (on ne donne pas dinformations un
# ventuel pirate) et "REJECT" pour lOUTPUT et le FORWARD (on peut ainsi
# rcuprer des infos pour soi) mais iptables nautorise pas REJECT
# comme politique par dfaut
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Autoriser le trafic sur linterface loopback :
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Ensuite, cest vous dajouter les rgles permettant de faire fonctionner
# les services que vous souhaitez utilisez sur votre machine.

Quelques exemples[modifier | modifier le wikitexte]


Pour vider la chaine INPUT de la table filter (la table par dfaut) :
iptables --flush INPUT

La politique par dfaut est d'accepter tous les paquets, ce qui est gnralement un mauvais choix pour la
scurit. Pour changer cette rgle sur la chaine FORWARD de la tablefilter :
iptables -P FORWARD DROP

Pour laisser passer les paquets sur le port telnet qui viennent d'un rseau local (forme longue) :
iptables --append INPUT --protocol tcp --destination-port telnet --source
192.168.13.0/24 --jump ACCEPT

Pour ignorer les autres paquets entrants sur le Port (logiciel)|port telnet (forme courte) :

iptables -A INPUT -p tcp --dport telnet -j DROP

Pour rejeter les paquets entrants sur le port 3128, souvent utilis par les proxies :
iptables -A INPUT -p tcp --dport 3128 -j REJECT

Pour autoriser telnet vers votre machine (serveur telnet) :


iptables -A INPUT -p tcp --dport telnet -j ACCEPT
iptables -A OUTPUT -p tcp --sport telnet -j ACCEPT

Pour autoriser telnet depuis votre machine (client telnet) :


iptables -A OUTPUT -p tcp --dport telnet -j ACCEPT
iptables -A INPUT -p tcp --sport telnet -j ACCEPT

Destination NAT :
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.1

Le cas FTP[modifier | modifier le wikitexte]


Le protocole FTP est difficile grer avec un firewall car il utilise plusieurs connexions. Lorsqu'on se connecte
par FTP sur un serveur, on cr une connexion dite de contrlequi permet d'envoyer les commandes au serveur.
Ensuite pour chaque transfert de fichier et chaque listage de rpertoire, une nouvelle connexion
de donnes sera cre.
Le firewall peut trs bien grer la connexion de contrle, mais pas celles de transfert car elles sont faites sur des
ports indtermins. Sur certains serveurs FTP il est possible de fixer une plage de ports utiliser, et dans ce cas
on peut faire du NAT simple.
Il est galement possible d'utiliser le "conntrack ftp". C'est un module pour Netfilter qui inspecte les connexions
FTP de contrle pour dtecter les connexions de donnes. Il indique alors au noyau que ces connexions sont
lies une autre connexion (RELATED). Pour autoriser ces connexions avec iptables on utilise le module state.
Pour cela il faut charger le module ip_conntrack_ftp :
modprobe ip_conntrack_ftp

Et autoriser les connexions RELATED en entre et en sortie :


iptables -A INPUT -m state --state RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED -j ACCEPT

Routage[modifier | modifier le wikitexte]


Adresses IP et MAC[modifier | modifier le wikitexte]
Chaque interface de chaque ordinateur sera identifi par

Son adresse IP : une adresse IP (version 4, protocole IP V 4) permet didentifier un hte et un sous-rseau.
Ladresse IP est code sur 4 octets. (les adresses IP V 6, ou IP next generation seront codes sur 6 octets).

Ladresse mac de sa carte rseau (carte ethernet ou carte wifi) ;


Une adresse IP permet didentifier un hte. Une passerelle est un ordinateur qui possde plusieurs interfaces et
qui transmet les paquets dune interface lautre. La passerelle peut ainsi faire communiquer diffrents rseaux.
Chaque carte rseau possde une adresse MAC unique garantie par le constructeur. Lorsquun ordinateur a
plusieurs plusieurs interfaces, chacune possde sa propre adresse MAC et son adresse IP. On peut voir sa
configuration rseau par ifconfig :

$ ifconfig eth0
eth0

Link encap:Ethernet HWaddr 00:B2:3A:24:F3:C4

inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0


inet6 addr: fe80::2c0:9fff:fef9:95b0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:5
collisions:0 txqueuelen:1000
RX bytes:1520 (1.4 KiB) TX bytes:2024 (1.9 KiB)
Interrupt:10

On voit ladresse MAC 00:B2:3A:24:F3:C4 et ladresse IP 192.168.0.2. Cela signifie que le premier octet de
ladresse IP est gal 192, le deuxime 168, le troisime octet est nul, et le quatrime vaut 2.

Sous-rseaux[modifier | modifier le wikitexte]


Classes de sous-rseaux[modifier | modifier le wikitexte]
Les adresses IPV4 sont organises en sous-rseaux. Chaque sous-rseau possde une adresse, qui est une
partie de ladresse IP des machines de ce sous-rseau.
Par exemple, ladresse IP 192.168.4.35 appartient au sous-rseau 192.168.4, parfois aussi not 192.168.4.0.
Les sous-rseaux sont organiss en classes. Chaque classe de sous-rseaux correspond des rseaux
pouvant contenir un certain nombre de machines.

Classe A : les adresses de de 1.0.0.0 127.0.0.0. Lidentifiant du rseau est alors sur 8 bits et les identifiants de
machine sont sur 24 bits (plusieurs millions de machines par sous-rseau ;

Classe B : les adresses de de 128.0.0.0 191.255.0.0. Lidentifiant du rseau est alors sur 16 bits et les
identifiants de machine sont sur 16 bits (plus de 65 000 machines par sous-rseau) ;

Classe C : les adresses de de 192.0.0.0 223.255.255.0. Lidentifiant du rseau est alors sur 24 bits et les
identifiants de machine sont sur 8 bits (au plus 254 machines par sous-rseau, numrotes de 1 254) ;

Masque de sous-rseau[modifier | modifier le wikitexte]


Un masque de sous-rseau est une donne sur 4 octets qui, avec ladresse du sous-rseau, caractrise les IP
du sous-rseau.
Un bit du masque de sous-rseau est 1 si pour toutes les adresses IP du sous-rseau, ce mme bit est le
mme pour ladresse IP et le sous-rseau.
Par exemple, pour le rseau de classe A 37.0.0.0 avec le masque de sous-rseau 255.0.0.0, les 8 premiers bits
de toutes les adresses IP du sous-rseau valent 37.
Autre exemple : pour le sous-rseau de classe C 193.56.49.0 et le masque de sous-rseau 255.255.255.0, les
24 premiers bits de toutes les IP du sous-rseau sont 193.56.49.
On peut dsigner un sous-rseau par son adresse et son masque, mais on peut aussi dsigner le sous-rseau
en donnant seulement le nombre de bits du masque. On parle alors, pour reprendre les deux exemples
prcdents, du sous-rseau 37.0.0.0/8 ou du sous-rseau 193.56.49.0/24.

Routage[modifier | modifier le wikitexte]


Le routage permet de faire communiquer plusieurs sous-rseaux. Une passerelle (en anglais gateway) est en
communication avec diffrents sous-rseaux sur diffrentes interfaces, et assure la communication entre les
diffrents sous-rseaux (voir figure 8.1).

Routes[modifier | modifier le wikitexte]

Une route dfinie sur une station est un chemin que doivent prendre les paquets destination dun certain sousrseau. Prenons lexemple (voir figure 8.1) dune station, appele station 1, dadresse IP 121.65.77.8 sur un
rseau 112.0.0.0/8.
(Fig. 8.1: Exemple de passerelle faisant communiquer deux rseaux)
Elle est connecte une passerelle qui a pour IP dans ce rseau 112.65.123.3 sur son interface eth0. La
passerelle est aussi connecte au rseau 192.168.0.0/24 via son interface eth1 qui a pour IP 192.168.0.1. Si la
station 1 veut communiquer directement avec la station, appele station 6, dadresse IP 192.168.0.2 sur le
rseau 192.168.0.0/24, trois condition doivent tre runies ;

Une route doit tre dfinie sur la station 1 indiquant que les paquets destination du rseau 192.168.0.0/24
doivent passer par la passerelle 112.65.123.3. Pour cela, on peut utiliser la commande route :
route add -net 192.168.0.0/24 gw 112.65.123.3

Une route doit tre dfinie sur la station 6 indiquant que les paquets destination du rseau 112.0.0.0/8 doivent
passer par la passerelle 192.168.0.1 ; Pour cela, on peut utiliser la commande route :
route add -net 112.0.0.0/8 gw 192.168.0.1

La passerelle doit tre configure pour transmettre (ou forwarder) les paquets IP dun rseau lautre, ce qui se
fait par la commande :
echo 1 >/proc/sys/net/ipv4/ip_forward

Remarque : Il faut refaire ces commandes aprs un redmarrage. Pour viter de relancer ces commandes
manuellement, on peut les mettre dans des scripts dinitialisation au dmarrage avec la commande update-rc.d
(sous debian)). Pour ajouter une script my_ script linitialisation :
mv my_script /etc/init.d
update-rc.d my_script defaults

On peut voir ltat des routes avec la commande route -n. Par exemple, sur la station 1 :
route -n
Destination
Metric Ref

Gateway

192.168.0.0
0

Genmask

Flags

112.65.123.3

255.255.255.0

Gateway

Genmask

Flags

255.0.0.0

Use Iface
0

0 eth2

etc...

Sur la station 6
route -n
Destination
Metric Ref

Use Iface

112.0.0.0
0

192.168.0.1
0 wlan0

etc...

Pour supprimer une route, par exemple vers le rseau 193.86.46.0/24 via une passerelle 196.24.52.1, on fait :
route del -net 193.86.46.0/24 gw 196.24.52.1

Route par dfaut (gateway)[modifier | modifier le wikitexte]


Quand on a dfini un certain nombre de routes sur une station, on peut dfinir une route spciale pour les
paquets IP destination des rseaux non prvus dans les autres routes. On appelle une telle route une route
par dfaut. En gnral, cest la route quil faut employer pour aller sur internet. On emploie le rseau 0.0.0.0
(masque 255.255.255.255). Pour dfinir une route par dfaut on peu employer route. Par exemple, pour dfinir
la route par dfaut via la passerelle 194.56.87.1 :
route add default gw 194.56.87.1

Pour supprimer cette mme route :


route del default gw 194.56.87.1

NAT et masquerading[modifier | modifier le wikitexte]


Lorsqu'un hte ayant une adresse IP sur un rseau local cherche se connecter sur un rseau plus vaste, par
exemple sur internet, via une passerelle, cet hte a besoin dune adresse IP sur le rseau vaste. Pour cela, soit
on demande ce que les adresses du rseau local soient routes sur le rseau global, mais il faut alors
demander rserver un plage dadresses sur le rseau global, soit ladministrateur de la passerelle a la
possibilit de prter lIP de la passerelle aux machines du rseau local. Pour cela, on utilise iptables avec NAT.
Par exemple, si la passerelle se connecte internet via son interface eth0, il suffit dexcuter la commande
suivante sur la passerelle :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Toute machine du rseau local (par exemple 192.168.0.0/24) qui se connecte internet via cette passerelle aura
alors ladresse IP de la passerelle sur internet. On peut aussi donner aux machines du rseau local une autre
adresse IP que lon spcifie avec to :
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 193.56.17.9

Nous aurons un aperu plus complet des possibilits diptables dans la documentation sur Netfilter.

Redirection[modifier | modifier le wikitexte]


Il est galement possible de modifier la destination d'un paquet. C'est utile lorsqu'on veut cacher une machine
derrire une autre : le client se connecte un serveur, qui va transmettre tous les paquets un autre. Pour le
client c'est transparent, c'est comme si c'tait le premier serveur qui rpondait. On appelle cela du Destination
NAT (DNAT).
Exemple pour rediriger toutes les connexions du port 22 vers le serveur 192.168.1.12 :
iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to 192.168.1.12

Vous aimerez peut-être aussi