Академический Документы
Профессиональный Документы
Культура Документы
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.
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.
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.
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!
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 :
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 !
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 !
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.
13
/sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 196.1.2.11
80
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.
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