Вы находитесь на странице: 1из 7

INSTALLATION D'UN

FIREWALL/MASQUERADING SOUS
LINUX EN QUELQUES CLICS !
Le but de cet article n'est pas de fournir une description détaillée du fonctionnement des
firewalls , pour cela je ne saurais trop conseiller les lectures très instructives que sont le
Firewall-HOWTO et le IP-Masquerade mini HOWTO. Vous pouvez trouver ces documents,
entre autres, sur les CD de distribution RedHat ou Mandrake.

Nous allons plutôt tenter de présenter un logiciel pouvant aider grandement à la mise en place
d'un firewall sous Linux.

Généralités sur les Firewalls


Un firewall est un ordinateur ou appareil munie de deux interfaces réseau qui sert à protéger
et isoler les réseaux les uns des autres. Le cas le plus courant d'utilisation est de protéger un
réseau interne d'une entreprise ou d'un particulier du réseau Internet, mais il peut tout aussi
bien servir pour séparer les réseaux de deux entreprises ou deux services.

On s'aperçoit sur ce schéma que le seul moyen pour une machine sur un des réseau, d'accéder
à l'autre est de passer par la machine firewall, ce qui permet de contrôler totalement ce qui
s'échange entre les deux réseaux en ouvrant ou fermant les "robinets" sur le firewall.

Il existe deux types de firewall :

1. les firewalls IP ou filtrants.


Ils fonctionnent au niveau paquet. Ils sont conçus pour contrôler le flux de paquets en
fonction de l'origine, la destination, le port et l'information de type de paquet contenue
dans chacun de ceux-ci.
2. les serveurs proxy.
Ils utilisent un soft particulier pour faire passer les requêtes d'un réseau à l'autre, ils
permettent l'accès indirect a Internet depuis l'arrière d'un firewall.

Les serveurs Proxy, on peut citer notamment SOCKS, et TIS Firewall Toolkit (FWTK),
présentent l'inconvénient d'être plus difficile à configurer et surtout de ne pas être transparent
pour l'utilisateur, en effet il faut configurer son navigateur ou son client ftp pour passer par le
proxy.

10
Au contraire, un firewall filtrant permet un accès transparent pour l'utilisateur , tout en
assurant une bonne sécurité puisque l'on peut totalement contrôler ce qui passe et vers quoi !

Nous nous concentrerons donc sur ce type de firewall, qui combiné au fonction de
masquerading permettent également l'accès indirect à Internet depuis l'arrière d'un firewall.

Généralités sur le Masquerading


Pour qu'une machine puisse accéder à Internet il faut que le fournisseur d'accès lui fournisse
un numéro IP, si vous désirez connecter plusieurs machines il vous faudra obtenir autant de
numéros ! Le masquerading aussi appelé Network Address Translation permet de cacher un
ensemble de machines ( un réseau ) derrière une passerelle, qui apparaît comme étant le seul
système utilisant la connexion Internet.

Ceci à pour double avantage , d'une part un coût moindre car il suffit d'avoir une seule
connexion à Internet pour plusieurs machines, d'autre part une sécurité accrue car il n'existe
aucun moyen pour quelqu'un de l'extérieur, d'accéder aux machines internes , en effet
l'extérieur ne voit qu'une seule machine : le firewall!

Configurer Linux pour pouvoir jouer le rôle d'un firewall


filtrant
Le noyau Linux inclut nativement un logiciel de filtrage de paquets ainsi que la fonction de
masquerading ! Il faut juste employer un utilitaire appelé ipfwadm permettant de configurer
ces fonctions dans le noyau ! ipfwadm est compris dans les distributions RedHat ou
Mandrake , et probablement dans les autres !

Pour utiliser ces fonctions , il vous faudra recompiler votre noyau comme suit :
Allez dans le répertoire /usr/src/linux puis faites make xconfig:
Vous voyez apparaître l'utilitaire de configuration du noyau :

Sélectionnez networking options et dans le menu networking options sélectionnez :

11
• Activez le firewall réseau,
• Activez le protocole TCP/IP,
• Activez la transmission/routage IP (forwarding/gatewaying)
• Activez le Firewalling IP,
• Activez la trace des paquets de firewall (ce n'est pas indispensable, mais c'est une
bonne idée),
• Activez le masquage (masquerading),
• Activez le masquage pour ICMP , nécessaire si vous voulez pouvoir utiliser ping et
traceroute,
• Activez la gestion des comptes (accounting),
• l'aliasing n'est pas nécessaire , mais vous pouvez l'activer pour simuler plusieurs cartes
réseau à des fins de test

Voila vous pouvez sauver, faite make zImage et make modules pour recompiler le noyau et
les modules associés, puis réinstallez le noyau et redémarrez.

Ne perdez pas de vue qu'une machine firewall doit, pour jouer son rôle de protection,
posséder deux interfaces réseau. En effet si ce n'est pas le cas, rien 'empêche une station sur le

12
réseau externe d'accéder directement au réseau interne sans passer par le firewall, le rendant
ainsi inutile !

Si les 2 interfaces réseau sont des cartes Ethernet, il faudra également configurer le noyau
pour qu'il puisse gérer les 2 cartes. Ce sujet n'est pas traité ici , se reporter au Multi Ethernet
mini-HOWTO pour plus de précisions.

Cependant une configuration plus modeste et probablement plus répandue peut se limiter à
une seule carte ethernet pour le réseau local, et une connexion ppp vers Internet. Dans ce cas
il n'y a rien de plus à rajouter à la config Linux que la connexion ppp classique vers le
fournisseur d'accès !

Un dernier point est à contrôler : Linux possède un interrupteur général autorisant (ou non) le
passage des trame IP d'une interface à l'autre. Si cet interrupteur est à off , aucun passage ne
sera autorisé quelque soit la configuration que vous appliquerez ! Il faut donc le mettre à on ,
quitte à interdire quand même le passage mais de manière plus sélective au moyen de
l'utilitaire ipfwadm !

Vous pouvez contrôler l'état de cet interrupteur au moyen de la commande suivante :

cat /proc/sys/net/ipv4/ip_forward
si l'on obtient 0 : pas de passage, 1 : passage autorisé selon la configuration.
On peut changer l'état grâce à la commande :
echo 1 > /proc/sys/net/ipv4/ip_forward
Les distributions RedHat et Mandrake forcent cet interrupteur à off par défaut. Ceci est
configurable dans le fichier /etc/sysconfig/network où il suffit de changer
FORWARD_IPV4=false par true !

Configurer un firewall filtrant sous Linux


Une fois notre noyau Linux correctement configuré, il est prêt à jouer son rôle de firewall ! Il
suffit pour cela d'appliquer les règles de filtrage avec la commande ipfwadm.

Il n'entre pas dans mes intentions de décrire toutes les possibilités de ipfwadm mieux vaut se
reporter au manuel pour cela, je vais donc donner juste quelques exemples d'utilisation tirés
du Firewall-HOWTO et du IP-Masquerade mini HOWTO.

# Par defaut INTERDIRE tout passage


ipfwadm -F -p deny
# Vider toutes les regles de filtrage : Maintenant, nous avons un
# firewall absolu. Rien ne peut passer au travers.
ipfwadm -F -f
ipfwadm -I -f
ipfwadm -O -f

# Autoriser l'acces de l'e-mail au serveur


ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10 25

# Autoriser les connexions e-mail vers les serveurs exterieurs


ipfwadm -F -a accept -b -P tcp -S 196.1.2.10 25 -D 0.0.0.0/0 1024:65535

# Autoriser les connexions web vers le serveur web

13
/sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 196.1.2.11
80

# Autoriser les connexions web vers les serveurs web exterieurs


/sbin/ipfwadm -F -a accept -b -P tcp -S 196.1.2.* 80 -D 0.0.0.0/0
1024:65535

# Autoriser le trafic DNS


/sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 -D 196.1.2.0/24

# masquer un reseau entier par le firewall


ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0

# ou bien masquer certaines adresse seulement


ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0
ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0

# ne pas oublier de inserer les modules necessaire au masquage de


# certain protocole
/sbin/modprobe ip_masq_ftp.o
/sbin/modprobe ip_masq_irc.o
/sbin/modprobe ip_masq_cuseeme.o
Comme vous pouvez le voir , tout ceci n'est pas trivial, spécialement quand on ne le pratique
pas tous les jours ! Il serait certainement d'une aide précieuse de pouvoir configurer ceci avec
une interface graphique !
Voila qui m'amène à présenter :

Easyfw : le firewall facile !

Easyfw est une interface graphique à ipfwadm permettant de générer un script de commande
ipfwadm. vous pouvez ensuite exécuter ce script à votre guise , ou le faire exécuter par
easyfw.

14
Easyfw permet de créer les règles de filtrage de manière visuelle et plus facilement , mais
surtout, il permet d'appliquer des configurations prédéfinies , ce qui permet dans ce cas de
configurer un firewall en quelques clics !

Easyfw : utilisation
En premier lieu, il faut définir quels sont les réseaux externes et internes. if faut donc remplir
les champs suivants :

easyfw vous propose une boite de dialogue avec les interfaces réseau existantes :

il vous suffit de cliquer sur la ligne voulue , typiquement ppp0 pour le réseau externe et eth0
pour l'interne ! Bien entendu, vous pouvez également entrer l'adresse réseau manuellement !

Ensuite , vous pouvez choisir parmi les configurations prédéfinies une qui convient à vos
besoins, par exemple :

Si vous avez trouvé votre bonheur dans les configurations prédéfinies, vous avez fini ! Il suffit
d'appuyer sur appliquer et l'on vous propose alors :

Vous pouvez choisir de ne pas appliquer immédiatement, mais attention dans ce cas aux
connexions ppp qui peuvent changer d'adresse IP, votre script généré risque de ne plus être
valide lors de la prochaine connexion.

15
Si aucune des configurations prédéfinies ne vous convient, il vous faudra alors spécifier
chaque règle de filtrage. Easyfw vous propose 3 tableaux du type :

Le premier menu spécifie le comportement par défaut lorsque aucune règle ne s'applique,
généralement pour une fonction de firewall, il vaut mieux interdire par défaut et rajouter des
règles pour autoriser tel adresse ou tel protocole ! Ensuite vous pouvez ajouter, modifier ou
détruire une règle de filtrage grâce à la boite de dialogue suivante :

Cette boite vous permet donc de rajouter une règle qui accepte/refuse en paramétrant
éventuellement les adresses source/destination, le protocole, et les ports.

On agit de la même manière pour :

• les règles d'entrée,


qui contrôlent l'arrivée des trames sur le firewall.
• les règles de sortie,
qui contrôlent la sortie des trames.
• les règles de transfert,
qui contrôlent le transfert des trames d'une interface à l'autre.

Puis on applique exactement de la même manière que pour les configurations prédéfinies.

Vous pouvez facilement créer vos propres configurations prédéfinies en éditant les fichiers de
config, la syntaxe en est très simple ! L'avantage de ces configurations prédéfinies est qu'elles
permettent en quelques clics d'installer un firewall sans recréer toutes les règles de filtrage , et
ce même si les adresses IP ont changées .

16

Вам также может понравиться