« Reseau-secu-firewall » : différence entre les versions
Aucun résumé des modifications |
|||
(2 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[ | [[Catégorie:Sécurité]] | ||
= Firewall = | = Firewall = | ||
Attention : cette documentation est obsolète. | |||
<div class="leatitre">Firewall</div><div class="leapar">par Serge (légèrement modifié par Jicé)</div><div class="leadesc">Protégez vous derrière un mur de feu.</div> | <div class="leatitre">Firewall</div><div class="leapar">par Serge (légèrement modifié par Jicé)</div><div class="leadesc">Protégez vous derrière un mur de feu.</div> | ||
Ligne 7 : | Ligne 9 : | ||
Ce document a été inspiré du [http://www.freenix.org/unix/linux/HOWTO/Firewall-HOWTO.html Firewall-HOWTO], de l'[http://www.freenix.org/unix/linux/HOWTO/IPCHAINS-HOWTO.html IPCHAINS-HOWTO] et du [http://www.freenix.org/unix/linux/HOWTO-vo/IP-Masquerade-HOWTO.html IP-Masquerade-HOWTO]. C'est la synthèse de ces trois documents pour permettre la mise en place des techniques de Firewalling. Je vous conseille quand même de lire ces HOWTO pour plus de compréhension. Je suppose que vous savez configurer un réseau IP, au cas où jeter un coup d'oeil sur la rubrique [[Reseau-cxion locale-lan|réseau local]]. Il se peut que des erreurs se soient glissées dans cette présentation, de plus je ne pourrai être tenu responsable d'une mauvaise configuration de votre système. La sécurité est un sujet vaste, toujours en évolution et je ne prétends pas vous fournir ici une solution exempte de tout danger. Ce document est à prendre comme une présentation de ces techniques. | Ce document a été inspiré du [http://www.freenix.org/unix/linux/HOWTO/Firewall-HOWTO.html Firewall-HOWTO], de l'[http://www.freenix.org/unix/linux/HOWTO/IPCHAINS-HOWTO.html IPCHAINS-HOWTO] et du [http://www.freenix.org/unix/linux/HOWTO-vo/IP-Masquerade-HOWTO.html IP-Masquerade-HOWTO]. C'est la synthèse de ces trois documents pour permettre la mise en place des techniques de Firewalling. Je vous conseille quand même de lire ces HOWTO pour plus de compréhension. Je suppose que vous savez configurer un réseau IP, au cas où jeter un coup d'oeil sur la rubrique [[Reseau-cxion locale-lan|réseau local]]. Il se peut que des erreurs se soient glissées dans cette présentation, de plus je ne pourrai être tenu responsable d'une mauvaise configuration de votre système. La sécurité est un sujet vaste, toujours en évolution et je ne prétends pas vous fournir ici une solution exempte de tout danger. Ce document est à prendre comme une présentation de ces techniques. | ||
Attention : le filtrage plus fin et les techniques de proxy ne sont pas encore décrits. | |||
== Explications == | == Explications == | ||
<div style="margin-bottom: 0in">Bon qu'est un Firewall ? Si on traduit, cela nous donne | <div style="margin-bottom: 0in">Bon qu'est un Firewall ? Si on traduit, cela nous donne « pare-feu » , vous allez me dire « ha bon mon micro me protège du feu ? », bien sûr que non, un Firewall sert en fait à protéger un réseau vis à vis d'un autre ou d'autre réseaux.</div><div style="margin-bottom: 0in">Plusieurs types de Firewall existent et ne travaillent pas de la même façon et n'offrent pas les mêmes sécurités.</div><div style="margin-bottom: 0in">Les Firewall sont de plus en plus utilisés pour protéger les réseaux locaux d'entreprises vis à vis de l'internet. Il s'agit en fait d'une machine qui est reliée vers l'extérieur (Internet) et vers le réseaux local aussi et qui en quelque sorte analyse le trafic réseau qui la traverse pour savoir si oui ou non elle laisse passer ce trafic que ça soit dans un sens ou dans l'autre :</div><blockquote><tt> _ ---- _ ________ +---> PC2</tt><br /><tt> ( ) | | |</tt><br /><tt>( INTERNET )<---->|FIREWALL|<---+---> PC3</tt><br /><tt> (_ _) |________| |</tt><br /><tt> ---- +---> PC4</tt></blockquote> | ||
== Les différents types de Firewall == | == Les différents types de Firewall == | ||
Ligne 19 : | Ligne 21 : | ||
Vous avez compris les problèmes que cela engendre : | Vous avez compris les problèmes que cela engendre : | ||
* on travaille directement sur le Firewall donc chaque utilisateur qui va par exemple | * on travaille directement sur le Firewall donc chaque utilisateur qui va par exemple « naviguer » sur le web vas lancer un nouveau processus « navigateur », | ||
* on n'a pas accès directement à sa machine avec ses ressources mais à celle du Firewall, et la protection s'arrête juste a une authentification d'utilisateur. | * on n'a pas accès directement à sa machine avec ses ressources mais à celle du Firewall, et la protection s'arrête juste a une authentification d'utilisateur. | ||
Ce type de Firewall en fait ne filtre absolument rien et peut donc être sujet à la moindre attaque extérieure. En fait il n'est plus utilisé, on va dire que c'est le | Ce type de Firewall en fait ne filtre absolument rien et peut donc être sujet à la moindre attaque extérieure. En fait il n'est plus utilisé, on va dire que c'est le « Firewall préhistorique » en quelque sorte. Voyons maintenant les types de Firewall utilisés :</div> | ||
=== <font color="#FF6666">Les Firewalls à filtrage de paquets</font> === | === <font color="#FF6666">Les Firewalls à filtrage de paquets</font> === | ||
Ligne 42 : | Ligne 44 : | ||
<div style="margin-bottom: 0in">Leur fonctionnement ressemble un peu au fonctionnement du premier Firewall, c'est à dire quand une application d'une machine locale va vers l'extérieur, en fait elle se connecte sur le Proxy et c'est le Proxy lui-même qui va chercher l'information puis la renvoyer vers la machine demandeuse.</div><div style="margin-bottom: 0in">Un exemple : vous voulez récupérer un fichier via FTP sur internet, en fait votre client FTP vas se connecter sur le proxy qui va faire serveur FTP, le Proxy va en même temps ouvrir une session FTP sur le serveur distant, il va récupérer le fichier cible et vous le renvoyer via son serveur FTP. En fait c'est toujours le Proxy qui récupère les données et vous les renvoie.</div><div style="margin-bottom: 0in">Ça à l'avantage d'être très sécurisé pour la machine cliente, ça fait cache la plupart du temps donc ça réduit le trafic réseau, ça peut permettre l'authentification aussi si l'on oblige une authentification sur les applications du Proxy. Par contre ça demande des configurations spéciales sur les clients, ça demande aussi d'installer sur le proxy les applications serveur de chaque protocole que l'on souhaite fournir aux utilisateurs et ça consomme énormément de ressources.</div> | <div style="margin-bottom: 0in">Leur fonctionnement ressemble un peu au fonctionnement du premier Firewall, c'est à dire quand une application d'une machine locale va vers l'extérieur, en fait elle se connecte sur le Proxy et c'est le Proxy lui-même qui va chercher l'information puis la renvoyer vers la machine demandeuse.</div><div style="margin-bottom: 0in">Un exemple : vous voulez récupérer un fichier via FTP sur internet, en fait votre client FTP vas se connecter sur le proxy qui va faire serveur FTP, le Proxy va en même temps ouvrir une session FTP sur le serveur distant, il va récupérer le fichier cible et vous le renvoyer via son serveur FTP. En fait c'est toujours le Proxy qui récupère les données et vous les renvoie.</div><div style="margin-bottom: 0in">Ça à l'avantage d'être très sécurisé pour la machine cliente, ça fait cache la plupart du temps donc ça réduit le trafic réseau, ça peut permettre l'authentification aussi si l'on oblige une authentification sur les applications du Proxy. Par contre ça demande des configurations spéciales sur les clients, ça demande aussi d'installer sur le proxy les applications serveur de chaque protocole que l'on souhaite fournir aux utilisateurs et ça consomme énormément de ressources.</div> | ||
==== <font color="#CC33CC">Proxy | ==== <font color="#CC33CC">Proxy « SOCKS »</font> ==== | ||
<div style="margin-bottom: 0in">Il ne travaille pas sur les applications, en fait il | <div style="margin-bottom: 0in">Il ne travaille pas sur les applications, en fait il « refait » en quelque sorte les connexions. Le client passe par le Proxy qui lui en interne refait la connexion vers l'extérieur. Comme les Firewalls filtrants, ils ne font pas d'authentification, mais peuvent quand même enregistrer l'utilisateur qui a demandé la connexion.</div> | ||
== Pré-installation d'un Firewall filtrant sous Linux == | == Pré-installation d'un Firewall filtrant sous Linux == | ||
Ligne 61 : | Ligne 63 : | ||
* Socks | * Socks | ||
<div style="margin-bottom: 0in">Une recherche sur freshmeat vous trouvera ça :) Mais bon pour l'instant ce document ne traite que des Firewall filtrant, j'ajouterais une rubrique Proxy plus tard.</div><div style="margin-bottom: 0in">Bon il faut maintenant configurer le kernel pour activer ce filtrage. Cochez les options suivantes :</div><div style="margin-bottom: 0in"><tt><y> Enable experimental</tt></div><div style="margin-bottom: 0in"> | <div style="margin-bottom: 0in">Une recherche sur freshmeat vous trouvera ça :) Mais bon pour l'instant ce document ne traite que des Firewall filtrant, j'ajouterais une rubrique Proxy plus tard.</div><div style="margin-bottom: 0in">Bon il faut maintenant configurer le kernel pour activer ce filtrage. Cochez les options suivantes :</div><div style="margin-bottom: 0in"><tt><y> Enable experimental</tt></div><div style="margin-bottom: 0in"> <br /><tt><y> Enable loadable module support</tt></div><div style="margin-bottom: 0in"> <br /><tt><*> Packet socket</tt></div><div style="margin-bottom: 0in"><tt>[ ] Kernel/User netlink socket</tt></div><div style="margin-bottom: 0in"><tt>[y] Network firewalls</tt></div><div style="margin-bottom: 0in"><tt>[ ] Socket Filtering</tt></div><div style="margin-bottom: 0in"><tt><y> Unix domain sockets</tt></div><div style="margin-bottom: 0in"><tt>[y] TCP/IP networking</tt></div> | ||
<tt>[ ] IP: multicasting</tt> | <tt>[ ] IP: multicasting</tt> | ||
Ligne 108 : | Ligne 110 : | ||
; '''<u>Remarque</u>''' : | ; '''<u>Remarque</u>''' : | ||
: Vérifiez la configuration réseau, assurez-vous que l'adresse de réseau de votre LAN est bien une des adresses réservée (192.168.2.0 par exemple, voir la [lan.php3 rubrique réseau local] pour ça). Pour la configuration de la carte externe, assurez vous aussi de sa bonne configuration pour accéder au net (testez votre connexion en fait), de même si la connexion se fait par modem. Pour tout ce qui suit je suppose que votre connexion au net se fait via une carte ethernet, en fait si vous utilisez un modem, de toute façon c'est identique. Bon avant de vraiment configurer le firewall on va tout d'abord mettre en place le | : Vérifiez la configuration réseau, assurez-vous que l'adresse de réseau de votre LAN est bien une des adresses réservée (192.168.2.0 par exemple, voir la [lan.php3 rubrique réseau local] pour ça). Pour la configuration de la carte externe, assurez vous aussi de sa bonne configuration pour accéder au net (testez votre connexion en fait), de même si la connexion se fait par modem. Pour tout ce qui suit je suppose que votre connexion au net se fait via une carte ethernet, en fait si vous utilisez un modem, de toute façon c'est identique. Bon avant de vraiment configurer le firewall on va tout d'abord mettre en place le « masquerading ». | ||
== Mise en place du filtrage, du masquerading, routage LAN<tt><-></tt>NET et règles de base == | == Mise en place du filtrage, du masquerading, routage LAN<tt><-></tt>NET et règles de base == | ||
<div style="margin-bottom: 0in"><font face="Times New Roman, serif">Assurez-vous d'avoir bien la configuration précédente pour votre kernel (validez les lors de la configuration du kernel).</font></div><div style="margin-bottom: 0in">Compilez le kernel puis les modules. Une fois tout ça réalisé, ajouter dans le fichier <tt>/etc/rc.d/rc.local</tt> (vérifiez le chemin, il peut être différent suivant les distributions) le chargement des modules de masquerade :</div><blockquote><div style="margin-bottom: 0in"><tt>/sbin/depmod -a </tt>''(n'ajoutez cette ligne que si elle n'est pas déjà présente)''</div><div style="margin-bottom: 0in"><tt>/sbin/modprobe | <div style="margin-bottom: 0in"><font face="Times New Roman, serif">Assurez-vous d'avoir bien la configuration précédente pour votre kernel (validez les lors de la configuration du kernel).</font></div><div style="margin-bottom: 0in">Compilez le kernel puis les modules. Une fois tout ça réalisé, ajouter dans le fichier <tt>/etc/rc.d/rc.local</tt> (vérifiez le chemin, il peut être différent suivant les distributions) le chargement des modules de masquerade :</div><blockquote><div style="margin-bottom: 0in"><tt>/sbin/depmod -a </tt>''(n'ajoutez cette ligne que si elle n'est pas déjà présente)''</div><div style="margin-bottom: 0in"><tt>/sbin/modprobe ip_masq_ftp </tt>''(pour ftp)''</div><div style="margin-bottom: 0in"><tt>/sbin/modprobe ip_masq_raudio </tt>''(pour real audio)''</div><div style="margin-bottom: 0in"><tt>/sbin/modprobe ip_masq_irc </tt>''(pour IRC)''</div> </blockquote><div style="margin-bottom: 0in">et tout autre module comme <tt>ip_masq_cuseeme</tt>, <tt>ip_masq_vdolive</tt>, etc. que vous pouvez récupérer sur le net, si vous voulez bien sûr que de tels services soit accessibles par votre réseau local.</div> | ||
<br /> | <br /> | ||
; '''<u>Remarque</u>'' '''''<nowiki>:</nowiki> | ; '''<u>Remarque</u>'' '''''<nowiki>:</nowiki> | ||
: Je vous rappelle quand même que plus vous ouvrirez de services, plus votre sécurité baissera. En effet certains services | : Je vous rappelle quand même que plus vous ouvrirez de services, plus votre sécurité baissera. En effet certains services « supplémentaires » peuvent contenir des bugs encore inconnus mais exploitables plus tard. Si vous voulez une sécurité accrue n'autorisez que le web ainsi que le FTP, surtout si vous êtes sur un réseau d'entreprise, je ne vois pas pourquoi l'IRC par exemple doit être activé, on n'en a pas besoin pour travailler dans une entreprise :). | ||
<div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">Avant de continuer vérifiez bien que votre LAN (réseau local) est bien sur une adresse réservée privé, c'est a dire du type:</div><blockquote><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">'''10.0.0.0 - 10.255.255.255 Classe A'''</div><div style="margin-bottom: 0in">'''172.16.0.0 - 172.31.255.255 Classe B'''</div><div style="margin-bottom: 0in">'''192.168.0.0 - 192.168.255.255 Classe C'''</div> </blockquote><div style="margin-bottom: 0in">Pour plus de simplicité, je considère que votre LAN est sur l'adresse réseau '''192.168.1.0''' et que votre | <div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">Avant de continuer vérifiez bien que votre LAN (réseau local) est bien sur une adresse réservée privé, c'est a dire du type:</div><blockquote><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">'''10.0.0.0 - 10.255.255.255 Classe A'''</div><div style="margin-bottom: 0in">'''172.16.0.0 - 172.31.255.255 Classe B'''</div><div style="margin-bottom: 0in">'''192.168.0.0 - 192.168.255.255 Classe C'''</div> </blockquote><div style="margin-bottom: 0in">Pour plus de simplicité, je considère que votre LAN est sur l'adresse réseau '''192.168.1.0''' et que votre « passerelle » (le firewall Linux) a comme adresse '''192.168.1.1'''</div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">Configurez aussi les autres machines de votre LAN avec bien sûr une adresse IP valide (de 192.168.1.2 jusqu'à 192.168.1.254), l'adresse de passerelle et de DNS, celle du Firewall (192.168.1.1).</div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">Bon maintenant sur le Firewall, on va activer le masquerade avec:</div><div style="margin-bottom: 0in"><tt>'''<nowiki># </nowiki>'''ipchains -P forward DENY</tt></div><div style="margin-bottom: 0in"><tt>'''<nowiki># </nowiki>'''ipchains -A forward -s yyy.yyy.yyy.yyy/x -j MASQ</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">avec '''x''' qui correspond au masque et '''yyy.yyy.yyy.yyy''' l'adresse réseau de votre LAN (ici 192.168.1.0)</div> | ||
<br /> | <br /> <br /> | ||
{| border="BORDER" cellpadding="2" | {| border="BORDER" cellpadding="2" | ||
Ligne 166 : | Ligne 168 : | ||
* La deuxième ligne elle indique de transmettre les paquets réseaux de notre LAN (192.168.1.0 avec masque 255.255.255.0). | * La deuxième ligne elle indique de transmettre les paquets réseaux de notre LAN (192.168.1.0 avec masque 255.255.255.0). | ||
<div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">Donc en fait notre Firewall Linux ne laissera passer au travers de lui que les communications LAN<->Extérieur.</div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">Au lieu de laisser la possibilité à toutes les machines de notre LAN d'avoir accès vers l'extérieur, on aurait pu aussi ne spécifier que certaines machines, par exemple on veut que juste le patron de notre société ainsi que l'administrateur réseau par exemple qui ont des machines avec adresse IP 192.168.1.3 et 192.168.1.10. Pour cela il faut jouer sur le masque, ça nous donne:</div><div style="margin-bottom: 0in"><tt>'''<nowiki># </nowiki>'''ipchains -P forward DENY</tt></div><div style="margin-bottom: 0in"><tt>'''<nowiki># </nowiki>'''ipchains -A forward -s 192.168.1.3/32 -j MASQ</tt></div><div style="margin-bottom: 0in"><tt>'''<nowiki># </nowiki>'''ipchains -A forward -s 192.168.1.10/32 -j MASQ</tt></div><div style="margin-bottom: 0in"> | <div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">Donc en fait notre Firewall Linux ne laissera passer au travers de lui que les communications LAN<->Extérieur.</div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none">Au lieu de laisser la possibilité à toutes les machines de notre LAN d'avoir accès vers l'extérieur, on aurait pu aussi ne spécifier que certaines machines, par exemple on veut que juste le patron de notre société ainsi que l'administrateur réseau par exemple qui ont des machines avec adresse IP 192.168.1.3 et 192.168.1.10. Pour cela il faut jouer sur le masque, ça nous donne:</div><div style="margin-bottom: 0in"><tt>'''<nowiki># </nowiki>'''ipchains -P forward DENY</tt></div><div style="margin-bottom: 0in"><tt>'''<nowiki># </nowiki>'''ipchains -A forward -s 192.168.1.3/32 -j MASQ</tt></div><div style="margin-bottom: 0in"><tt>'''<nowiki># </nowiki>'''ipchains -A forward -s 192.168.1.10/32 -j MASQ</tt></div><div style="margin-bottom: 0in"> <br />Pour rendre ces règles « permanentes » après chaque reboot, ajoutez-les aussi dans un fichier que vous appelez par exemple '''<tt>rc.firewall</tt>''' que vous placez dans <tt>/etc/rc.d</tt>, sinon vous allez devoir les taper à chaque reboot du système. <br /> </div><div style="margin-bottom: 0in">On résume alors ce qui peut se trouver dans un tel fichier:</div><div style="margin-bottom: 0in"> | ||
---- | ---- | ||
<tt><nowiki>#!/bin/bash</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki>#</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki># Firewall.rc</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki>#</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki># Script de démarrage des règles du firewall</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki>#</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki># Tchesmeli serge , Version 0.2</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki>#</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki># Lea : http://www.lea-linux.org</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki>#</nowiki></tt></div><div style="margin-bottom: 0in"><tt>echo "Démarrage FIREWALL :"</tt></div><div style="margin-bottom: 0in"> | <tt><nowiki>#!/bin/bash</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki>#</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki># Firewall.rc</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki>#</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki># Script de démarrage des règles du firewall</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki>#</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki># Tchesmeli serge , Version 0.2</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki>#</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki># Lea : http://www.lea-linux.org</nowiki></tt></div><div style="margin-bottom: 0in"><tt><nowiki>#</nowiki></tt></div><div style="margin-bottom: 0in"><tt>echo "Démarrage FIREWALL :"</tt></div><div style="margin-bottom: 0in"> <div style="margin-bottom: 0in"><tt>echo "- Activation de l'IP forwarding..."</tt></div><tt>echo "1" > /proc/sys/net/ipv4/ip_forward</tt> | ||
<tt><nowiki># D'abord on bloque tout</nowiki></tt> | <tt><nowiki># D'abord on bloque tout</nowiki></tt> | ||
</div><div style="margin-bottom: 0in"><tt>echo -n "- Arrêt total des transmissions réseau..."</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt>if [ -x /sbin/ipchains ]; then</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt> | </div><div style="margin-bottom: 0in"><tt>echo -n "- Arrêt total des transmissions réseau..."</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt>if [ -x /sbin/ipchains ]; then</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt> /sbin/ipchains -P forward DENY</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt> echo "OK"</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt>else</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt> echo "Erreur !"</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt> echo "Votre noyau n'est pas configuré pour\</tt><br /><tt>permettre le filtrage.... veuillez le recompiler."</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt> exit</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt>fi</tt></div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"> <br /><tt><nowiki># On charge les modules de masquerade</nowiki></tt></div><div style="margin-bottom: 0in"><tt>echo -n "- Chargement des modules de masquerade... "</tt></div><div style="margin-bottom: 0in"><tt>/sbin/modprobe ip_masq_ftp</tt></div><div style="margin-bottom: 0in"><tt>/sbin/modprobe ip_masq_raudio</tt></div><div style="margin-bottom: 0in"><tt>/sbin/modprobe ip_masq_irc</tt></div> | ||
<tt>echo "OK"</tt><br /><tt><nowiki># Vous pouvez y inclure ou enlever</nowiki></tt><br /><tt><nowiki># les modules de votre choix</nowiki></tt> | <tt>echo "OK"</tt><br /><tt><nowiki># Vous pouvez y inclure ou enlever</nowiki></tt><br /><tt><nowiki># les modules de votre choix</nowiki></tt> | ||
Ligne 182 : | Ligne 184 : | ||
<tt>echo "OK"</tt><br /><tt><nowiki># A vous de bien fixer les règles suivant votre réseau</nowiki></tt> | <tt>echo "OK"</tt><br /><tt><nowiki># A vous de bien fixer les règles suivant votre réseau</nowiki></tt> | ||
<div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"> | <div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"> </div><div style="margin-bottom: 0in; font-weight: medium; text-decoration: none"><tt>echo "Firewall prêt."</tt><br /> | ||
---- | ---- | ||
Ligne 188 : | Ligne 190 : | ||
<blockquote><tt>source rc.firewall</tt></blockquote> Voilà ! Votre firewall est configuré ! A vous de jouer sur les règles afin d'optimiser la sécurité sur votre réseau local...</div><div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Serge Tchesmeli le 05/06/2000.</div> | <blockquote><tt>source rc.firewall</tt></blockquote> Voilà ! Votre firewall est configuré ! A vous de jouer sur les règles afin d'optimiser la sécurité sur votre réseau local...</div><div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Serge Tchesmeli le 05/06/2000.</div> | ||
Ligne 201 : | Ligne 199 : | ||
* [http://www.fwbuilder.org Firewall builder], un excellent outil pour configurer votre firewall sous Linux. | * [http://www.fwbuilder.org Firewall builder], un excellent outil pour configurer votre firewall sous Linux. | ||
* La logithèque de Léa, [[Logithèque:Oldrub=21|section Sécurité]]. | * La logithèque de Léa, [[Logithèque:Oldrub=21|section Sécurité]]. | ||
<br/> | |||
<br/> | |||
'''<b>[[Reseau-index|@ Retour à la rubrique Réseau et sécurité]]</b>''' | |||
<br/> | |||
= Copyright = | |||
Copyright © 05/06/2000, Serge Tchesmeli | |||
{{LDL}} |
Dernière version du 17 mai 2012 à 14:38
Firewall
Attention : cette documentation est obsolète.
Ce document a été inspiré du Firewall-HOWTO, de l'IPCHAINS-HOWTO et du IP-Masquerade-HOWTO. C'est la synthèse de ces trois documents pour permettre la mise en place des techniques de Firewalling. Je vous conseille quand même de lire ces HOWTO pour plus de compréhension. Je suppose que vous savez configurer un réseau IP, au cas où jeter un coup d'oeil sur la rubrique réseau local. Il se peut que des erreurs se soient glissées dans cette présentation, de plus je ne pourrai être tenu responsable d'une mauvaise configuration de votre système. La sécurité est un sujet vaste, toujours en évolution et je ne prétends pas vous fournir ici une solution exempte de tout danger. Ce document est à prendre comme une présentation de ces techniques.
Attention : le filtrage plus fin et les techniques de proxy ne sont pas encore décrits.
Explications
_ ---- _ ________ +---> PC2
( ) | | |
( INTERNET )<---->|FIREWALL|<---+---> PC3
(_ _) |________| |
---- +---> PC4
Les différents types de Firewall
Vous avez compris les problèmes que cela engendre :
- on travaille directement sur le Firewall donc chaque utilisateur qui va par exemple « naviguer » sur le web vas lancer un nouveau processus « navigateur »,
- on n'a pas accès directement à sa machine avec ses ressources mais à celle du Firewall, et la protection s'arrête juste a une authentification d'utilisateur.
Les Firewalls à filtrage de paquets
Avec Linux ce style de filtrage au niveau de la couche IP est intégré directement dans le noyau, il suffit donc d'avoir un 486 avec 8 Mo de mémoire et d'une distribution Linux avec juste un kernel de base et la couche IP pour faire un tel Firewall.
De plus ils sont totalement transparents pour les utilisateurs, pas d'authentification pour aller vers l'extérieur et pas de paramétrages spécifiques sur les machines des utilisateurs. Un désavantage, c'est qu'il n'y a pas d'authentification possible par utilisateur mais par adresse IP. C'est à dire que si l'on veut en interne interdire à certaine personnes d'aller vers l'extérieur ce n'est possible que si l'on connaît l'adresse de la machine de cet utilisateur, on ne peut pas empêcher que la personne aille sur une autre machine et il faut de plus que les machines aient toujours la même adresse, ce qui peut poser problème lorsqu'on on utilise DHCP.
Les Firewalls Proxy
Proxy d'applications
Proxy « SOCKS »
Pré-installation d'un Firewall filtrant sous Linux
- Version 1.x.x : une copie de ipfwadm (mais bon je vous conseille vivement de passer a une version supérieure de kernel).
- Version 2.0.x : ipwadm est sûrement déjà présent, vérifiez quand même.
- Version 2.2.x : ipchains (sûrement présent aussi).
- Version 2.3.x et 2.4 à venir : le format de firewall a encore changé, il n'est pas encore décrit dans ce document.
- Squid
- TIS Firewall toolkit (FWTK)
- Socks
<y> Enable loadable module support
<*> Packet socket
[ ] IP: multicasting
[y] IP: advanced router
[ ] IP: kernel level autoconfiguration
[y] IP: firewalling
[y] IP: always defragment (required for masquerading)
[y] IP: transparent proxy support
[M] IP: masquerading
--- Protocol-specific masquerading support will be built as modules.
[M] IP: ICMP masquerading
--- Protocol-specific masquerading support will be built as modules.
[Y] IP: masquerading special modules support <- Choisir tout les modules en répondant M
[y] IP: optimize as router not host
< > IP: tunneling
< > IP: GRE tunnels over IP
[y] IP: aliasing support
[y] IP: TCP syncookie support (not enabled per default)
--- (it is safe to leave these untouched)
< > IP: Reverse ARP
[y] IP: Allow large windows (not recommended if <16Mb of memory)
< > The IPv6 protocol (EXPERIMENTAL)
Cochez également toutes les autres options nécessaires (voir la [../kernel/kernel.php3 rubrique noyau]).
- Remarque
- Vérifiez la configuration réseau, assurez-vous que l'adresse de réseau de votre LAN est bien une des adresses réservée (192.168.2.0 par exemple, voir la [lan.php3 rubrique réseau local] pour ça). Pour la configuration de la carte externe, assurez vous aussi de sa bonne configuration pour accéder au net (testez votre connexion en fait), de même si la connexion se fait par modem. Pour tout ce qui suit je suppose que votre connexion au net se fait via une carte ethernet, en fait si vous utilisez un modem, de toute façon c'est identique. Bon avant de vraiment configurer le firewall on va tout d'abord mettre en place le « masquerading ».
Mise en place du filtrage, du masquerading, routage LAN<->NET et règles de base
/sbin/depmod -a (n'ajoutez cette ligne que si elle n'est pas déjà présente)/sbin/modprobe ip_masq_ftp (pour ftp)/sbin/modprobe ip_masq_raudio (pour real audio)/sbin/modprobe ip_masq_irc (pour IRC)
- Remarque :
- Je vous rappelle quand même que plus vous ouvrirez de services, plus votre sécurité baissera. En effet certains services « supplémentaires » peuvent contenir des bugs encore inconnus mais exploitables plus tard. Si vous voulez une sécurité accrue n'autorisez que le web ainsi que le FTP, surtout si vous êtes sur un réseau d'entreprise, je ne vois pas pourquoi l'IRC par exemple doit être activé, on n'en a pas besoin pour travailler dans une entreprise :).
10.0.0.0 - 10.255.255.255 Classe A172.16.0.0 - 172.31.255.255 Classe B192.168.0.0 - 192.168.255.255 Classe C
Masque | Valeur de x | Classe |
---|---|---|
255.0.0.0 | 8 | A |
|
|
|
|
|
|
|
|
|
Si pour vous ce style de notation de masque vous gêne vous pouvez aussi utiliser la notation xxx.xxx.xxx.xxx du masque pour remplacer x.
Pour notre exemple on tape alors:
# ipchains -P forward DENY
- La première ligne indique au noyau de ne transmettre AUCUN paquet, donc on bloque TOUT en fait.
- La deuxième ligne elle indique de transmettre les paquets réseaux de notre LAN (192.168.1.0 avec masque 255.255.255.0).
Pour rendre ces règles « permanentes » après chaque reboot, ajoutez-les aussi dans un fichier que vous appelez par exemple rc.firewall que vous placez dans /etc/rc.d, sinon vous allez devoir les taper à chaque reboot du système.
#!/bin/bash
# D'abord on bloque tout
permettre le filtrage.... veuillez le recompiler."
# On charge les modules de masquerade
echo "OK"
# Vous pouvez y inclure ou enlever
# les modules de votre choix
# Puis on applique les règles
echo "OK"
# A vous de bien fixer les règles suivant votre réseau
On peut alors appeler ce script depuis /etc/rc.d/rc.local en y ajoutant une ligne :
Voilà ! Votre firewall est configuré ! A vous de jouer sur les règles afin d'optimiser la sécurité sur votre réseau local...source rc.firewall
Autres ressources
- Firewall-HOWTO
- IPCHAINS-HOWTO
- IP-Masquerade HOWTO
- IP-Masq. mini-HOWTO
- Firewall builder, un excellent outil pour configurer votre firewall sous Linux.
- La logithèque de Léa, section Sécurité.
@ Retour à la rubrique Réseau et sécurité
Copyright
Copyright © 05/06/2000, Serge Tchesmeli
Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la Licence pour documents libres, Version 1.1 publiée par la La Guilde des Doctorants. Pour plus d'informations consulter la LDL sur le site de La Guilde des Doctorants. |