Vous êtes sur la page 1sur 32

Scurit du systme

Configurer/scuriser un
routeur avec Linux

Plan
Routage, filtrage sur les paquets IP
Technique de masquage et de
traduction d'adresse
Masquerading et Forwarding
ICMP et le filtrage de paquets
Langage d'Ipchains
Langage d'Iptables
Fonctions de filtrage
2

Routage, Filtrage sur les


paquets IP
Les paquets ip sont routs en fonction de leur adresse de destination et de
leur adresse d'mission.
Ils utilisent un protocole de transport (UDP ou TCP).
La session est identifie par un port source et par un port de destination.
Une connexion (session au sens OSI du terme) entre un processus client et
un processus serveur est matrialise par le couple de triplets :
(@IP-source, TCP/UDP, port source) , (@IP-dest., TCP/UDP, portdest.)
Une session nous permet de dterminer quelle application (service serveur)
est sollicite.

Routage, Filtrage sur les


paquets IP

Ce sont les principaux lments que nous utiliseront dans le


cadre du routage et du filtrage sur un rseau IP.

Le schma nous montre qu'il sera possible de filtrer sur les


adresses (htes ou rseaux), les protocoles de transport ou
les applications en filtrant sur les ports.

Technique de masquage et de
traduction d'adresse
Le terme anglais "address translation" a t souvent repris
sous la forme "translation d'adresse dont la signification est
plus proche de ce que fait rellement le noyau (et de la
traduction littrale du terme anglais "translation" ).
Une adresse est ainsi "traduite en une autre".
Cette technique est principalement utilise pour partager une
ou plusieurs adresses publiques pour un rseau priv (pnurie
d'adresses publiques).
Elle permet galement de scuriser un rseau en entre, de
limiter les sorties.

Technique de masquage et de
traduction d'adresse
Dans la traduction d'adresse encore appel masquage ou
camouflage (ip masquerade), le routeur modifie dans le paquet
l'adresse source (SNAT ou ip masquerade) ou l'adresse de
destination (DNAT).
La modification est ralise lors de l'envoi et du retour du paquet.
Il y a bien deux fonctions diffrentes : le routage et le filtrage.
Le filtrage va consister appliquer des rgles supplmentaires aux
paquets qui sont routs.
Ces deux fonctions sont prises en charge par le noyau Linux. Elles
sont prises en charges par "ipchains" pour les noyaux 2.2.x et par
"netfilter" pour les noyaux 2.4.

Technique de masquage et de
traduction d'adresse
Le filtrage consiste mettre en place des rgles qui
seront appliques aux paquets. Pour netfilter, on
utilise la commande "iptables" qui permet de mettre
en place ou modifier des chanes de rgles.
Les chanes sont des ensemble de rgles qui sont
appliques squentiellement aux paquets jusqu' ce
que l'une d'entre elles soit applicable.
Il y a toujours au moins une chane par dfaut. Ces
chanes, sont places dans des tables.

Technique de masquage et de
traduction d'adresse
Il y a 3 tables principales pour netfilter (filter, nat et

mangle).
La table "filter" est la table par dfaut qui contient les

rgles de filtrage.
La table "nat" contient les rgles pour faire de la

traduction d'adresse.
La table "mangle" contient les rgles qui permettent de

modifier les paquets ip, par exemple le champ TOS.


8

Technique de masquage et de
traduction d'adresse
Dans la table filter, il y a 3 principales chanes : (INPUT,
OUTPUT, FORWARD).
La chane "INPUT" contient les rgles appliques aux paquets
entrants qui sont gnralement destines aux processus
locaux.
La chane "OUTPUT" contient les rgles appliques aux paquets
sortants qui sont gnralement mis par les processus locaux.
La chane "FORWARD" contient les rgles appliques aux
paquets qui traversent.
9

Technique de masquage et de
traduction d'adresse

10

Technique de masquage et de
traduction d'adresse
Le routeur est une "bote noire".
Chaque paquet entrant, quelque soit l'interface d'entre

est "rout" par le noyau.


Les paquets qui ne font que traverser le routeur Linux,

sont concerns par la chane FORWARD.


Ceux qui sont destins aux processus internes, c'est

dire qui entrent, sont concerns par la chane INPUT,


ceux mis par les processus internes, c'est dire qui
sortent, par la chane OUTPUT.
11

Masquerading et Forwarding
Le forwarding est une fonction qui permet de router les
paquets entre deux rseaux.
Le masquerading est le fait de permettre aux machines de
votre rseau interne de pouvoir sortir sur votre rseau externe
en utilisant une seule adresse IP officielle. Cette adresse
officielle est mise la place de l'adresse IP de votre machine
cliente et re-remplace au retour du paquet.
Dans le cas du masquerading, les machines internes ne
peuvent pas tre atteintes sans rgles supplmentaires par
une machine de l'extrieur.

12

ICMP et le filtrage de paquets


Les rseaux fonctionnant en IP ont besoin de s'envoyer des
messages de contrle, de temps autre.
Par exemple, cela permet de dire qu'un hte est inaccessible ou
encore que le paquet n'est pas arriv destination car la destination
est trop lointaine.
Ces messages sont regroups dans le protocoleICMP, Internet
Control Message Protocol, rfc 792.
Ce protocole peut facilement se filtrer avec les firewalls, il est donc
important de savoir quels messages on doit/veut bloquer et ceux que
l'on peut/veut voir traverser notre pare-feu.
Chaque paquet ICMP a un code et un type.

13

Ceux-ci tablissent une correspondance


exacte sur le "but " du paquet :

14

15

Langage d'Ipchains
Ipchains est utilisable avec les
anciennes versions de netfilter sur
les versions des noyaux 2.2.
D'aprs la page de man d'ipchains :

16

Langage d'Ipchains
Ipchains est utilis pour configurer, maintenir et

surveiller les rgles du firewall IP du noyau


Linux. Ces rgles sont stockes dans quatre
catgories de chanes diffrentes, la chane
input, la chane output, la chane forward, les
chanes utilisateurs. Pour chacune de ces
catgories une table de rgles propre la
chane est maintenue.
17

Langage d'Ipchains
target: une rgle de firewall spcifie un ensemble de critres
appliquer pour un paquet et une destination.
Si le paquet ne peut tre trait, la rgle suivante est examine,
si le paquet peut tre trait, alors la rgle est applique.
Cette rgle peut tre :

18

Langage d'Ipchains
Commandes :
ces options spcifient les actions
raliser.
Il est possible d'en spcifierqu'une
seule la foissur la ligne de
commande.

19

Langage d'Ipchains

20

Langage d'Ipchains
Attention l'criture.
Les cibles (target) sont sensibles la
casse.
Exemples d'criture:

21

Langage d'Ipchains
La premire chane signifie que pour tous les
protocoles qui entrent les paquets seront dtruits.
Pour modifier les rgles par dfaut des chanes
input, output ou forward, utiliser -P

22

Langage d'Ipchains

23

24

25

Langage d'Ipchains

26

27

Langage d'Iptables
Extrait de la page de manuel et de
l'aide :

28

Langage d'Iptables

29

Langage d'Iptables
Attention l'criture. Les cibles (target) sont sensibles la
casse.
Les tables passes en lignes de commandes ou
dynamiquement, ne sont pas conserves lors du
redmarage de la machine.
Il est ncessaire d'utiliser les commandes iptables-save et
iptables-restore pour les sauvegarder, ou les mettre dans
un script qui est excut au dmarrage de la machine, par
exemple dans /etc/init.d/rc.local.
30

Langage d'Iptables
Exemples d'utilisation d'iptables
Prenez l'habitude avant toute chose
de vrifier l'tat des rgles avant de
procder des tests. Videz les au
besoin avant de commencer.

31

Langage d'Iptables

32