Académique Documents
Professionnel Documents
Culture Documents
Sections
[masquer]
1 Configuration rseau
1.2.1 Adresse IP
2 DHCP
2.1 Configuration
2.2 Interfaces
2.5 Options
3 Samba
3.1.1 Exemple
3.2.1 Exemples
4 Apache
4.7 Principe
4.10 Redirections
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
6 Routage
6.2 Sous-rseaux
6.3 Routage
6.3.1 Routes
6.3.4 Redirection
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
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
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.
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>
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
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.
attribuer une configuration fixe certains postes (on les reconnat grce leur adresse MAC)
Il est obligatoire d'avoir une section "subnet" (voir ci-dessous) pour le rseau de chaque interface.
Pour chaque nom que vous avez rentr, il faut ajouter l'utilisateur samba avec
Un compte unix du mme nom doit exister. Si ce n'est pas le cas, il faut le crer avec la commande adduser.
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.
Diffrentes options sont disponibles. On peut les consulter dans man smbclient et man smbmount.
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].
...
</VirtualHost>
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-
Les paramtres possibles de la directive Options [archive] sont : "None", "All", "Indexes", "Includes",
"FollowSymLinks", "ExecCGI", ou "MultiViews".
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
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
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
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) :
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
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)
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 ;
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 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.
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.
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.
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>
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.
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>]
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.
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.
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).
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
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) :
Pour rejeter les paquets entrants sur le port 3128, souvent utilis par les proxies :
iptables -A INPUT -p tcp --dport 3128 -j REJECT
Destination NAT :
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.1
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).
$ ifconfig eth0
eth0
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.
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) ;
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
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.