mirror of
https://gitlab.com/shorewall/code.git
synced 2024-11-27 10:03:41 +01:00
2090 lines
90 KiB
XML
2090 lines
90 KiB
XML
|
<?xml version="1.0" encoding="ISO-8859-15"?>
|
|||
|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
|
|||
|
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
|
|||
|
<article lang="fr">
|
|||
|
<!--$Id$-->
|
|||
|
|
|||
|
<articleinfo>
|
|||
|
<title>FAQ Shorewall</title>
|
|||
|
|
|||
|
<subtitle>Version Fran<61>aise de <foreignphrase lang="en"><ulink
|
|||
|
url="http://www.shorewall.net/FAQ.html">Shorewall
|
|||
|
FAQs</ulink></foreignphrase></subtitle>
|
|||
|
|
|||
|
<authorgroup>
|
|||
|
<corpauthor>Shorewall Community</corpauthor>
|
|||
|
|
|||
|
<author>
|
|||
|
<firstname>Tom</firstname>
|
|||
|
|
|||
|
<surname>Eastep</surname>
|
|||
|
</author>
|
|||
|
|
|||
|
<othercredit role="translator">
|
|||
|
<firstname>Guy</firstname>
|
|||
|
|
|||
|
<surname>Marcenac</surname>
|
|||
|
|
|||
|
<contrib>Adaptation fran<61>aise</contrib>
|
|||
|
</othercredit>
|
|||
|
</authorgroup>
|
|||
|
|
|||
|
<pubdate>2005-12-07</pubdate>
|
|||
|
|
|||
|
<copyright>
|
|||
|
<year>2001-2006</year>
|
|||
|
|
|||
|
<holder>Thomas M. Eastep</holder>
|
|||
|
|
|||
|
<holder>Guy Marcenac</holder>
|
|||
|
</copyright>
|
|||
|
|
|||
|
<legalnotice>
|
|||
|
<para>Permission est accord<72>e de copier, distribuer et/ou modifier ce
|
|||
|
document selon les termes de la Licence de Documentation Libre GNU (GNU
|
|||
|
Free Documentation License), version 1.2 ou toute version ult<6C>rieure
|
|||
|
publi<6C>e par la Free Software Foundation ; sans section Invariables, sans
|
|||
|
premi<6D>re de Couverture, et sans texte de quatri<72>me de couverture. Une
|
|||
|
copie de la pr<70>sente Licence est incluse dans la section intitul<75>e. Une
|
|||
|
traduction fran<61>aise de la licence se trouve dans la section
|
|||
|
<quote><ulink
|
|||
|
url="http://www.idealx.org/dossier/oss/gfdl.fr.html">Licence de
|
|||
|
Documentation Libre GNU</ulink></quote>. Ce paragraphe est une
|
|||
|
traduction fran<61>aise pour aider <20> votre compr<70>hension. Seul le texte
|
|||
|
original en anglais pr<70>sent<6E> ci-dessous fixe les conditions
|
|||
|
d'utilisation de cette documentation.</para>
|
|||
|
|
|||
|
<para>Permission is granted to copy, distribute and/or modify this
|
|||
|
document under the terms of the GNU Free Documentation License, Version
|
|||
|
1.2 or any later version published by the Free Software Foundation; with
|
|||
|
no Invariant Sections, with no Front-Cover, and with no Back-Cover
|
|||
|
Texts. A copy of the license is included in the section entitled <quote>
|
|||
|
<ulink url="GnuCopyright.htm">GNU Free Documentation License</ulink>
|
|||
|
</quote>.</para>
|
|||
|
</legalnotice>
|
|||
|
</articleinfo>
|
|||
|
|
|||
|
<note>
|
|||
|
<para><emphasis role="underline">Notes du traducteur :</emphasis> Si vous
|
|||
|
trouvez des erreurs ou si vous avez des am<61>liorations <20> apporter <20> cette
|
|||
|
documentation vous pouvez <ulink url="mailto:guy@posteurs.com">me
|
|||
|
contacter</ulink>.</para>
|
|||
|
</note>
|
|||
|
|
|||
|
<caution>
|
|||
|
<para><emphasis role="bold">Cet article s'applique <20> Shorewall 3.0 et <20>
|
|||
|
ses versions ult<6C>rieures. Si vous utilisez une version plus ancienne de
|
|||
|
Shorewall, r<>f<EFBFBD>rez-vous <20> la documentation s'appliquant <20> votre
|
|||
|
version.</emphasis></para>
|
|||
|
</caution>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Installation de Shorewall</title>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>O<EFBFBD> puis-je trouver des instructions d'installation et de
|
|||
|
configuration pas <20> pas ?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Allez voir les <ulink
|
|||
|
url="shorewall_quickstart_guide.htm">guides de d<>marrage
|
|||
|
rapide</ulink>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq37">
|
|||
|
<title>(FAQ 37) Je viens d'installer Shorewall sur Debian et le
|
|||
|
r<>pertoire /etc/shorewall est vide!!!</title>
|
|||
|
|
|||
|
<important>
|
|||
|
<para>Apr<EFBFBD>s avoir install<6C> le paquetage .deb, avant de commencer <20>
|
|||
|
configurer Shorewall, vous devriez prendre connaissance de ce conseil
|
|||
|
de Lorenzo Martignoni, le mainteneur Debian de Shorewall:</para>
|
|||
|
|
|||
|
<para><quote>Pour plus d'information quant <20> l'utilisation de
|
|||
|
Shorewall sur un syst<73>me Debian vous devriez aller voir le fichier
|
|||
|
/usr/share/doc/shorewall/README.Debian distribu<62> avec le paquetage
|
|||
|
Debian de Shorewall.</quote></para>
|
|||
|
</important>
|
|||
|
|
|||
|
<para>Si vous vous servez du .deb pour installer, vous vous rendrez
|
|||
|
compte que votre r<>pertoire <filename>/etc/shorewall</filename> est
|
|||
|
vide. Ceci est voulu. Les squelettes des fichiers de configuration se
|
|||
|
trouvent sur votre syst<73>me dans le r<>pertoire <filename
|
|||
|
class="directory">/usr/share/doc/shorewall/default-config</filename>.
|
|||
|
Copiez simplement les fichiers dont vous avez besoin depuis ce
|
|||
|
r<>pertoire dans <filename class="directory">/etc/shorewall</filename>,
|
|||
|
puis modifiez ces copies.</para>
|
|||
|
|
|||
|
<para>Remarquez que vous devez copier
|
|||
|
<filename>/usr/share/doc/shorewall/default-config/shorewall.conf</filename>
|
|||
|
et <filename>/usr/share/doc/shorewall/default-config/modules</filename>
|
|||
|
dans <filename
|
|||
|
class="directory"><filename>/etc/shorewall</filename></filename> m<>me si
|
|||
|
vous ne modifiez pas ces fichiers.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq44">
|
|||
|
<title>(FAQ 44) Je n'arrive pas <20> installer ou mettre <20> jour le RPM -
|
|||
|
J'ai le message d'erreur "error: failed dependencies:iproute is
|
|||
|
needed..."</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: Lisez les <ulink
|
|||
|
url="Install.htm">Instructions d'installation</ulink>!</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq50">
|
|||
|
<title>(FAQ 50) Quand j'installe ou que je mets <20> jour, j'obtiens de
|
|||
|
multiples instances du message suivant "warning: user teastep does not
|
|||
|
exist - using root"</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Vous pouvez sans aucun
|
|||
|
risque ignorer ce message. Il <20>tait d<> <20> une erreur mineure de paquetage
|
|||
|
qui a <20>t<EFBFBD> corrig<69>e depuis. Cela ne change rien dans l'utilisation de
|
|||
|
Shorewall.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Transfert de port (Redirection de Port)</title>
|
|||
|
|
|||
|
<section id="faq1">
|
|||
|
<title>(FAQ 1) Je veux rediriger le port UDP 7777 vers mon PC personnel
|
|||
|
qui a l'adresse 192.1683.1.5. J'ai cherch<63> partout et je ne trouve pas
|
|||
|
comment faire.</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Le premier exemple de la
|
|||
|
<ulink url="Documentation.htm#Rules">documentation du fichier
|
|||
|
rules</ulink> vous indique comment faire du transfert de port avec
|
|||
|
Shorewall. Le format d'une r<>gle de redirection de port vers un syst<73>me
|
|||
|
local se pr<70>sente comme suit:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT
|
|||
|
DNAT net loc:<<emphasis>adresse IP locale</emphasis>>[:<<emphasis>port local</emphasis>>] <<emphasis>protocole</emphasis>> <<emphasis>n<EFBFBD> port</emphasis>></programlisting>
|
|||
|
|
|||
|
<para>Ainsi pour rediriger le port UDP 7777 vers le syst<73>me interne
|
|||
|
192.168.1.5, la r<>gle est:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT
|
|||
|
DNAT net loc:192.168.1.5 udp 7777</programlisting>
|
|||
|
|
|||
|
<para>Si vous voulez rediriger vers un syst<73>me interne les requ<71>tes
|
|||
|
envoy<6F>es <20> une adresse donn<6E>e (<emphasis><IP externe></emphasis>)
|
|||
|
sur votre firewall:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT SOURCE ORIGINAL
|
|||
|
# PORT DEST.
|
|||
|
DNAT net loc:<<emphasis>adresse IP locale</emphasis>>[:<<emphasis>port local</emphasis>>]<<emphasis>protocole</emphasis>> <<emphasis>n<EFBFBD> port</emphasis>> - <<emphasis>IP externe</emphasis>></programlisting>
|
|||
|
|
|||
|
<para>Enfin, si vous avez besoin de rediriger une plage de ports,
|
|||
|
sp<73>cifiez la plage de ports <premier port>:<dernier port>
|
|||
|
dans la colonne DEST PORT.</para>
|
|||
|
|
|||
|
<section id="faq1a">
|
|||
|
<title>(FAQ 1a) D'accord -- j'ai suivi toutes ces instruction, mais
|
|||
|
cela ne marche toujours pas.</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Ceci se produit
|
|||
|
g<>n<EFBFBD>ralement lorsque:</para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>Vous tentez de tester depuis l'int<6E>rieur de votre firewall
|
|||
|
(non, cela ne marchera pas -- allez voir la <xref
|
|||
|
linkend="faq2" />).</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Vous avez un probl<62>me plus <20>l<EFBFBD>mentaire de configuration de
|
|||
|
votre syst<73>me local (celui vers lequel vous tentez de rediriger
|
|||
|
les paquets), une mauvaise passerelle par d<>faut par exemple (elle
|
|||
|
devrait <20>tre configur<75>e avec l'adresse IP de l'interface interne
|
|||
|
de votre firewall).</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Votre FAI bloque le trafic entrant sur ce port
|
|||
|
particulier.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Vous utilisez une version de Mandriva ant<6E>rieure <20> la 10.0
|
|||
|
final et vous avez configur<75> le partage de connexion internet. Si
|
|||
|
c'est le cas, le nom de votre zone locale n'est pas 'loc' mais
|
|||
|
'masq' (dans vos r<>gles changez toutes les instances de 'loc' pour
|
|||
|
'masq'). Vous pouvez envisager de r<>-installer Shorewall avec une
|
|||
|
configuration conforme <20> la documentation de Shorewall. Voir le
|
|||
|
guide <ulink url="two-interface_fr.htm">Firewall <20> deux
|
|||
|
interfaces</ulink> pour plus de d<>tails.</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq1b">
|
|||
|
<title>(FAQ 1b) J'ai malgr<67> tout encore des probl<62>mes avec la
|
|||
|
redirection de port</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> pour aller plus avant
|
|||
|
dans le diagnostic du probl<62>me:</para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>En tant que root, tapez <quote> <command>iptables -t nat
|
|||
|
-Z</command> </quote>. Ceci remet <20> z<>ro les compteurs Netfilter
|
|||
|
de la table nat.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Essayez de vous connecter au port redirig<69> depuis un h<>te
|
|||
|
externe.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>En tant que root, tapez <quote> <command>shorewall show
|
|||
|
nat</command> </quote></para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Rep<EFBFBD>rez la r<>gle DNAT appropri<72>e. Elle sera dans une cha<68>ne
|
|||
|
nomm<6D>e <<emphasis>zone source</emphasis>>_dnat
|
|||
|
(<quote>net_dnat</quote> dans les exemples ci-dessus).</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Est-ce que le d<>compte de paquets dans la premi<6D>re colonne
|
|||
|
est sup<75>rieur <20> z<>ro ? Si cela est le cas, la requ<71>te de connexion
|
|||
|
atteint le firewall et est bien redirig<69>e vers le serveur. Dans ce
|
|||
|
cas, le probl<62>me vient en g<>n<EFBFBD>ral de l'absence de param<61>trage ou
|
|||
|
d'un param<61>trage erron<6F> de la passerelle par d<>faut sur le syst<73>me
|
|||
|
local (celui vers lequel vous essayez de transf<73>rer les paquets --
|
|||
|
sa passerelle par d<>faut devrait <20>tre l'adresse IP de l'interface
|
|||
|
du firewall connect<63>e <20> ce syst<73>me local).</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Si le d<>compte de paquets est <20>gal <20> z<>ro:</para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>La requ<71>te de connexion n'arrive pas jusqu'<27> votre
|
|||
|
serveur (il est possible que votre FAI bloque ce port)</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Vous essayez de vous connecter <20> une adresse IP
|
|||
|
secondaire sur votre firewall et votre r<>gle ne redirige que
|
|||
|
l'adresse IP primaire (dans votre r<>gle DNAT vous devez
|
|||
|
sp<73>cifier l'adresse IP secondaire dans la colonne <quote>ORIG.
|
|||
|
DEST.</quote>)</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Pour d'autres raisons, votre r<>gle DNAT ne correspond
|
|||
|
pas <20> la requ<71>te de connexion. Dans ce cas, pour aller plus
|
|||
|
loin dans le diagnostic, vous pourrez avoir <20> vous servir d'un
|
|||
|
<quote>sniffer</quote> de paquets comme tcpdump ou
|
|||
|
ethereal.</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq1c">
|
|||
|
<title>(FAQ 1c) Je voudrais que lorsque je me connecte depuis internet
|
|||
|
au port 1022 de mon firewall, cette connexion soit redirig<69>e vers le
|
|||
|
port 22 de mon syst<73>me local 192.168.1.3. Comment faire ?</title>
|
|||
|
|
|||
|
<para>Dan le fichier /<filename>etc/shorewall/rules</filename>:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT
|
|||
|
DNAT net loc:192.168.1.3:22 tcp 1022</programlisting>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq1d">
|
|||
|
<title>(FAQ 1d) J'ai un serveur web dans man DMZ et j'utilise le
|
|||
|
transfert de port pour rendre ce serveur accessible depuis internet.
|
|||
|
Cela fonctionne tr<74>s bien sauf lorsque mes utilisateurs locaux
|
|||
|
essayent de se connecter au serveur en utilisant l'adresse IP externe
|
|||
|
du firewall.</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: Supposons que:</para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>L'adresse IP externe est 206.124.146.176 sur <filename
|
|||
|
class="devicefile">eth0</filename>.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>L'adresse IP du serveur est 192.168.2.4</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
|
|||
|
<para>Vous pouvez activer l'acc<63>s au serveur depuis votre r<>seau local
|
|||
|
en utilisant l'adresse IP externe du firewall. Pour cela, vous pouvez
|
|||
|
ajouter cette r<>gle:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S) SOURCE ORIGINAL
|
|||
|
# PORT DEST
|
|||
|
DNAT loc dmz:192.168.2.4 tcp 80 - 206.124.146.176</programlisting>
|
|||
|
|
|||
|
<para>Si votre adresse IP externe est dynamique, vous devez faire
|
|||
|
comme suit:</para>
|
|||
|
|
|||
|
<para>Dans <filename>/etc/shorewall/params</filename>:</para>
|
|||
|
|
|||
|
<programlisting><command>ETH0_IP=`find_interface_address eth0`</command> </programlisting>
|
|||
|
|
|||
|
<para>Pour les utilisateurs de 2.1.0 et des versions
|
|||
|
ult<6C>rieures:</para>
|
|||
|
|
|||
|
<programlisting><command>ETH0_IP=`find_first_interface_address eth0`</command></programlisting>
|
|||
|
|
|||
|
<para>Et votre r<>gle DNAT deviendra:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT SOURCE ORIGINAL
|
|||
|
# PORT DEST.
|
|||
|
DNAT loc dmz:192.168.2.4 tcp 80 - $ETH0_IP</programlisting>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq1e">
|
|||
|
<title>(FAQ 1e) Dans le but de d<>courager les attaques en force brute,
|
|||
|
je voudrais rediriger toutes les connexions internet arrivant sur un
|
|||
|
port non standard (4104) vers le port 22 du firewall/routeur. J'ai
|
|||
|
remarqu<71> que lorsque je param<61>tre une r<>gle REDIRECT sur le firewall,
|
|||
|
il ouvre sur internet les deux ports 4104 et 22 . Est-il possible de
|
|||
|
rediriger seulement le port 4104 vers le port 22 de localhost et que
|
|||
|
toutes les tentatives de connexion depuis internet au port 22 soient
|
|||
|
ignor<6F>es ?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse: </emphasis>avec l'aimable
|
|||
|
autorisation de Ryan: en supposant que l'adresse de l'interface locale
|
|||
|
de votre firewall soit 192.168.1.1, en ajoutant la r<>gle suivante, le
|
|||
|
port 4104 sera en <20>coute sur internet et le port 22 sera en <20>coute sur
|
|||
|
votre LAN.</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
|
|||
|
DNAT net fw:192.168.1.1:22 tcp 4104</programlisting>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq30">
|
|||
|
<title>(FAQ 30) Quand doit-on utiliser des r<>gles DNAT et quand doit-on
|
|||
|
utiliser des r<>gles ACCEPT ?</title>
|
|||
|
|
|||
|
<para>Je vous sugg<67>re de revenir au <ulink
|
|||
|
url="shorewall_quickstart_guide.htm">guides de d<>marrage rapide</ulink>
|
|||
|
adapt<70> <20> votre configuration. Ces guides couvrent ce sujet sous un angle
|
|||
|
didactique. Vous devriez utiliser des r<>gles DNAT pour les connexions
|
|||
|
qui doivent aller dans le sens inverse de celles en provenance de la
|
|||
|
SNAT/Masquerade. Ainsi, si vous utilisez la SNAT ou Masquerade depuis
|
|||
|
votre r<>seau local vers internet, vous aurez besoin d'utiliser des
|
|||
|
r<>gles DNAT pour autoriser les connexions d'internet vers votre r<>seau
|
|||
|
local. Si vous avez besoin d'intercepter des connexions lorsqu'elles
|
|||
|
arrivent sur le firewall et que vous voulez les traiter sur le firewall
|
|||
|
lui-m<>me, vous utiliserez une r<>gle REDIRECT.Dans tous les autres cas,
|
|||
|
vous utiliserez ACCEPT. </para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>(FAQ 38) O<> trouver plus d'information sur la DNAT?</title>
|
|||
|
|
|||
|
<para>Ian Allen a <20>crit cet article au sujet de la <ulink
|
|||
|
url="http://ian.idallen.ca/dnat.txt">DNAT et Linux</ulink>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq48">
|
|||
|
<title>(FAQ 48) Comment configurer un proxy transparent avec
|
|||
|
Shorewall?</title>
|
|||
|
|
|||
|
<para>R<EFBFBD>ponse: Vous pouvez voir <ulink
|
|||
|
url="Shorewall_Squid_Usage.html">Shorewall et Squid</ulink>.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>DNS et Transfert de Port/Traduction d'Adresses R<>seau NAT</title>
|
|||
|
|
|||
|
<section id="faq2">
|
|||
|
<title>(FAQ 2) Je transf<73>re (port forward) toutes les requ<71>tes web
|
|||
|
soumises <20> www.mondomaine.com (IP 130.151.100.69) vers le syst<73>me
|
|||
|
192.168.1.5 de mon r<>seau local. Les clients externes peuvent acc<63>der <20>
|
|||
|
http://www.mondomaine.com mais les clients internes ne le peuvent
|
|||
|
pas.</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> j'ai deux objections <20>
|
|||
|
cette configuration.</para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>Avoir un serveur sur votre r<>seau local accessible depuis
|
|||
|
internet est comme <20>lever des loups <20> cot<6F> de votre poulailler. Si
|
|||
|
le serveur est compromis, il n'y a rien entre ce serveur et vos
|
|||
|
autres syst<73>mes locaux. Pour le prix d'un adaptateur ethernet et
|
|||
|
d'un c<>ble crois<69>, vous pouvez mettre votre serveur en DMZ de telle
|
|||
|
fa<66>on qu'il soit isol<6F> de vos syst<73>mes locaux - en supposant que le
|
|||
|
serveur puisse <20>tre install<6C> <20> cot<6F> de votre firewall, bien entendu
|
|||
|
:-)</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>La meilleure solutions pour l'accessibilit<69> <20> votre serveur
|
|||
|
est d'utiliser les <quote>vues</quote> de <ulink
|
|||
|
url="shorewall_setup_guide.htm#DNS">Bind Version 9</ulink> (ou bien
|
|||
|
d'utiliser un serveur DNS s<>par<61> pour les clients locaux) afin que
|
|||
|
www.mondomaine.com soit r<>solu en 130.141.100.69 pour les clients
|
|||
|
externes et en 192.168.1.5 pour les clients internes. C'est ce que
|
|||
|
je fait ici <20> shorewall.net pour mes syst<73>mes locaux qui utilisent
|
|||
|
la NAT un-<2D>-un (one-to-one NAT).</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
|
|||
|
<para>Supposons que votre interface externe soit eth0, que votre
|
|||
|
interface interne soit eth1 et que eth1 ait l'adresse 192.168.1.254 sur
|
|||
|
le sous-r<>seau 192.168.1.0/24:<warning>
|
|||
|
<para>tout le trafic redirig<69> par cette bidouille sera vu par le
|
|||
|
serveur comme provenant du firewall (192.168.1.254) au lieu de venir
|
|||
|
du client d'origine!</para>
|
|||
|
</warning></para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>Dans <filename>/etc/shorewall/interfaces</filename>:</para>
|
|||
|
|
|||
|
<programlisting>#ZONE INTERFACE BROADCAST OPTIONS
|
|||
|
loc eth1 detect <emphasis role="bold">routeback</emphasis> </programlisting>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Dans <filename>/etc/shorewall/masq</filename>:</para>
|
|||
|
|
|||
|
<programlisting>#INTERFACE SUBNET ADDRESS PROTO PORT(S)
|
|||
|
eth1:192.168.1.5 eth1 192.168.1.254 tcp www</programlisting>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Dans <filename>/etc/shorewall/rules</filename>:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT SOURCE ORIGINAL
|
|||
|
# PORT DEST.
|
|||
|
DNAT loc loc:192.168.1.5 tcp www - 130.151.100.69</programlisting>
|
|||
|
|
|||
|
<para>Bien entendu, cette r<>gle ne fonctionnera que si vous avez une
|
|||
|
adresse IP externe statique. Si vous avez une adresse dynamique vous
|
|||
|
devez inclure ceci dans
|
|||
|
<filename>/etc/shorewall/param</filename>s:</para>
|
|||
|
|
|||
|
<programlisting><command>ETH0_IP=`find_first_interface_address eth0`</command> </programlisting>
|
|||
|
|
|||
|
<para>et votre r<>gle DNAT deviendra:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT SOURCE ORIGINAL
|
|||
|
# PORT DEST.
|
|||
|
DNAT loc loc:192.168.1.5 tcp www - $ETH0_IP</programlisting>
|
|||
|
|
|||
|
<para>Lorsque vous utilisez cette technique, il vous faudra
|
|||
|
configurer votre client DHCP/PPPoE de fa<66>on <20> ce qu'il relance
|
|||
|
shorewall chaque fois qu'il obtient une nouvelle adresse IP.</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
|
|||
|
<section id="faq2a">
|
|||
|
<title>(FAQ 2a) J'ai une zone <quote>Z</quote> avec un sous-r<>seau RFC
|
|||
|
1918 et j'utilise la NAT un-<2D>-un (one-to-one NAT) pour assigner des
|
|||
|
adresses non-RFC1918 aux h<>tes de la zone <quote>Z</quote>. Les h<>tes
|
|||
|
dans la zone <quote>Z</quote> ne peuvent pas communiquer entre eux en
|
|||
|
utilisant leur adresse externe (adresses non-FRC1918) et donc ils ne
|
|||
|
peuvent pas communiquer en utilisant leurs noms DNS.</title>
|
|||
|
|
|||
|
<note>
|
|||
|
<para>Si la colonne ALL INTERFACES dans le fichier
|
|||
|
/etc/shorewall/nat est vide ou contient <quote>Yes</quote>, vous
|
|||
|
verrez aussi dans votre journal des messages comme celui-ci <20> chaque
|
|||
|
fois que vous tenterez d'acc<63>der <20> un h<>te de la zone Z depuis un
|
|||
|
autre h<>te de la zone Z en utilisant son adresse publique:</para>
|
|||
|
|
|||
|
<programlisting>Oct 4 10:26:40 netgw kernel:
|
|||
|
Shorewall:FORWARD:REJECT:IN=eth1 OUT=eth1 SRC=192.168.118.200
|
|||
|
DST=192.168.118.210 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=1342 DF
|
|||
|
PROTO=TCP SPT=1494 DPT=1491 WINDOW=17472 RES=0x00 ACK SYN URGP=0</programlisting>
|
|||
|
</note>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> C'est encore un
|
|||
|
probl<62>me tr<74>s bien r<>solu par l'utilisation des <quote>vues</quote> de
|
|||
|
<ulink url="shorewall_setup_guide.htm#DNS">Bind Version 9</ulink>. Les
|
|||
|
clients internes comme les clients externes peuvent alors acc<63>der aux
|
|||
|
h<>tes <quote>NAT<EFBFBD>s</quote> en utilisant leur nom r<>seau.</para>
|
|||
|
|
|||
|
<para>Une autre bonne fa<66>on d'approcher le probl<62>me est d'abandonner
|
|||
|
la NAT un-<2D>-un au profit du Proxy ARP. De cette fa<66>on, les machines
|
|||
|
dans Z ont des adresses non-RFC1918 et on peut y acc<63>der aussi bien
|
|||
|
depuis l'int<6E>rieur que depuis l'ext<78>rieur en utilisant la m<>me
|
|||
|
adresse.</para>
|
|||
|
|
|||
|
<para>Si vous n'aimez pas ces solutions et que vous pr<70>f<EFBFBD>rez b<>tement
|
|||
|
router tout le trafic de Z vers Z par votre firewall:</para>
|
|||
|
|
|||
|
<orderedlist>
|
|||
|
<listitem>
|
|||
|
<para>Activez l'option routeback sur l'interface vers Z.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Mettez <quote>Yes</quote> dans la colonne ALL INTERFACES du
|
|||
|
fichier nat.</para>
|
|||
|
</listitem>
|
|||
|
</orderedlist>
|
|||
|
|
|||
|
<example>
|
|||
|
<title>Exemple:</title>
|
|||
|
|
|||
|
<literallayout>Zone: dmz Interface: eth2 Ssous-r<>seau: 192.168.2.0/24 Addresse: 192.168.2.254</literallayout>
|
|||
|
|
|||
|
<para>Dans le fichier
|
|||
|
<filename>/etc/shorewall/interfaces</filename>:</para>
|
|||
|
|
|||
|
<programlisting>#ZONE INTERFACE BROADCAST OPTIONS
|
|||
|
dmz eth2 192.168.2.255 <emphasis role="bold">routeback</emphasis> </programlisting>
|
|||
|
|
|||
|
<para>Dans le fichier <filename>/etc/shorewall/na</filename>t,
|
|||
|
assurez-vous d'avoir <quote>Yes</quote> dans la colonne ALL
|
|||
|
INTERFACES.</para>
|
|||
|
|
|||
|
<para>Dans le fichier
|
|||
|
<filename>/etc/shorewall/masq</filename>:</para>
|
|||
|
|
|||
|
<programlisting>#INTERFACE SUBNETS ADDRESS
|
|||
|
eth2 eth2 192.168.2.254</programlisting>
|
|||
|
|
|||
|
<para>Tout comme dans la bidouille pr<70>sent<6E>e dans la FAQ2 ci-dessus,
|
|||
|
le trafic de la dmz vers la dmz semblera provenir du firewall et non
|
|||
|
du v<>ritable h<>te source.</para>
|
|||
|
</example>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq2b">
|
|||
|
<title>(FAQ 2b) J'ai un serveur web dans ma DMZ et je me sers du
|
|||
|
transfert de port pour le rendre accessible sur internet en tant que
|
|||
|
www.mondomaine.com. Cela marche tr<74>s bien sauf pour mes utilisateurs
|
|||
|
locaux lorsqu'ils tentent de se connecter <20>
|
|||
|
www.mondomaine.com.</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: Supposons que:</para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>L'adresse externe IP soit 206.124.146.176 sur <filename
|
|||
|
class="devicefile">eth0</filename> (www.mondomaine.com).</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>L'adresse IP du serveur soit 192.168.2.4</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
|
|||
|
<para>Vous pouvez autoriser les machines du r<>seau local <20> acc<63>der <20>
|
|||
|
votre serveur en utilisant l'adresse IP externe du firewall. Il suffit
|
|||
|
d'ajouter cette r<>gle:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S) SOURCE ORIGINAL
|
|||
|
# PORT DEST
|
|||
|
DNAT loc dmz:192.168.2.4 tcp 80 - 206.124.146.176</programlisting>
|
|||
|
|
|||
|
<para>Si votre adresse IP externe vous est allou<6F>e dynamiquement, vous
|
|||
|
devez faire comme suit:</para>
|
|||
|
|
|||
|
<para>Dans le fichier
|
|||
|
<filename>/etc/shorewall/params</filename>:</para>
|
|||
|
|
|||
|
<programlisting><command>ETH0_IP=`find_first_interface_address eth0`</command> </programlisting>
|
|||
|
|
|||
|
<para>Et votre r<>gle DNAT deviendra:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT SOURCE ORIGINAL
|
|||
|
# PORT DEST.
|
|||
|
DNAT loc dmz:192.168.2.4 tcp 80 - $ETH0_IP</programlisting>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Netmeeting/MSN</title>
|
|||
|
|
|||
|
<section id="faq3">
|
|||
|
<title>(FAQ 3) Je veux utiliser Netmeeting ou la messagerie instantan<61>e
|
|||
|
MSN avec Shorewall. Que faire ?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Il existe un <ulink
|
|||
|
url="http://www.kfki.hu/%7Ekadlec/sw/netfilter/newnat-suite/">module de
|
|||
|
suivi de connexion H.323</ulink> qui est d'un grand secours avec
|
|||
|
Netmeeting. Prenez cependant en compte cet article r<>cent d'un des
|
|||
|
d<>veloppeurs de Netfilter:</para>
|
|||
|
|
|||
|
<blockquote>
|
|||
|
<para><programlisting>> Je sais que PoM -ng va traiter ce probl<62>me, mais en attendant qu'il soit pr<70>t,
|
|||
|
> et que tous les extras y soient port<72>s, existe-t-il un moyen d'utiliser le patch
|
|||
|
> noyau pour le module de suivi de connexion H.323 avec un noyau 2.6 ?
|
|||
|
> j'utilise un noyau 2.6.1 et le noyau 2.4 n'est pas install<6C> sur le syst<73>me, c'est
|
|||
|
> pourquoi je ne peux pas envisager de revenir en 2.4 ... et le module n'a pas
|
|||
|
> encore <20>t<EFBFBD> port<72> en 2.6, dommage.
|
|||
|
> Quelles options ai-je <20> part d'installer une application gatekeeper (qui ne
|
|||
|
> fonctionne pas dans mon r<>seau) ou un proxy (ce que je pr<70>f<EFBFBD>rerais <20>viter) ?
|
|||
|
|
|||
|
Je sugg<67>re <20> tous de configurer un proxy (gatekeeper): le module est vraiment
|
|||
|
nul et ne m<>rite pas d'exister. <20>a a <20>t<EFBFBD> un tr<74>s bon outil de d<>veloppement et
|
|||
|
de deboguage de l'interface newnat.</programlisting></para>
|
|||
|
</blockquote>
|
|||
|
|
|||
|
<para>Vous pouvez aller voir <ulink url="UPnP.html">ici</ulink> une
|
|||
|
solution pour la messagerie instantan<61>e MSN. Vous devez avoir conscience
|
|||
|
que cette solution comporte des risques de s<>curit<69> significatifs. Vous
|
|||
|
pouvez <20>galement v<>rifier aupr<70>s de la liste de diffusion de Netfilter <20>
|
|||
|
<ulink
|
|||
|
url="http://www.netfilter.org">http://www.netfilter.org</ulink>.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Ports ouverts</title>
|
|||
|
|
|||
|
<section id="faq4">
|
|||
|
<title>(FAQ 4) Je viens juste d'utiliser un scanner de port en ligne
|
|||
|
pour v<>rifier le param<61>trage de mon firewall et certains ports
|
|||
|
apparaissent <quote>ferm<EFBFBD>s</quote> (closed) alors que d'autres sont
|
|||
|
<quote>bloqu<EFBFBD>s</quote> (blocked). Pourquoi ?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> La configuration par
|
|||
|
d<>faut de Shorewall invoque l'action <emphasis
|
|||
|
role="bold">Drop</emphasis> avant de mettre en oeuvre une politique
|
|||
|
DROP, et la politique par d<>faut d'internet vers toutes les zones est
|
|||
|
DROP. L'action Drop est d<>finie dans le fichier
|
|||
|
<filename>/usr/share/shorewall/action.Drop</filename> qui invoque
|
|||
|
lui-m<>me l'action <emphasis role="bold">RejectAuth</emphasis> (d<>finie
|
|||
|
dans le fichier
|
|||
|
<filename>/usr/share/shorewall/action.RejectAuth</filename>). Cela est
|
|||
|
n<>cessaire pour <20>viter les probl<62>mes de connexion sortante <20> des
|
|||
|
services qui utilisent le m<>canisme <quote>Auth</quote> pour identifier
|
|||
|
les utilisateurs. C'est le seul service configur<75> par d<>faut pour
|
|||
|
rejeter (REJECT) les paquets.</para>
|
|||
|
|
|||
|
<para>Si vous voyez d'autres ports TCP ferm<72>s autres que le port 113
|
|||
|
(auth) c'est que vous avez ajout<75> des r<>gles REJECT pour ces ports ou
|
|||
|
bien qu'un routeur <20> l'ext<78>rieur de votre firewall r<>pond aux requ<71>tes
|
|||
|
de connexion sur ce port.</para>
|
|||
|
|
|||
|
<section id="faq4a">
|
|||
|
<title>(FAQ 4a) Je viens d'ex<65>cuter un scan UDP de mon firewall avec
|
|||
|
nmap et il trouve des centaines de ports ouverts!!!!</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Respirez <20> fond et
|
|||
|
lisez la section man de nmap au sujet des scans UDP. Si nmap n'a
|
|||
|
<emphasis role="bold">aucun</emphasis> retour de votre firewall, il
|
|||
|
donnera ce port comme <20>tant ouvert. Si vous voulez voir quels sont les
|
|||
|
ports UDP r<>ellement ouverts, modifiez temporairement votre politique
|
|||
|
net->all pour REJECT, relancez Shorewall et refaites le scan UDP
|
|||
|
nmap.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq4b">
|
|||
|
<title>(FAQ 4b) Quoi que je change dans mes r<>gles, Il y a un port que
|
|||
|
je n'arrive pas <20> fermer.</title>
|
|||
|
|
|||
|
<para>J'avais une r<>gle qui autorisait telnet de mon r<>seau local vers
|
|||
|
mon firewall. Je l'ai enlev<65>e et j'ai relanc<6E> Shorewall mais ma
|
|||
|
session telnet fonctionne encore!!!</para>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Les r<>gles traitent de
|
|||
|
l'<27>tablissement de nouvelles connexions. Lorsqu'une connexion est
|
|||
|
<20>tablie par le firewall, elle restera utilisable jusqu'<27> la
|
|||
|
d<>connexion tcp ou jusqu'au time out pour les autres protocoles. Si
|
|||
|
vous fermez votre session telnet et que vous essayez d'<27>tablir un
|
|||
|
nouvelle session, votre firewall bloquera cette tentative.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq4c">
|
|||
|
<title>(FAQ 4c) Comment utiliser Shorewall avec PortSentry?</title>
|
|||
|
|
|||
|
<para><ulink
|
|||
|
url="http://www.shorewall.net/pub/shorewall/contrib/PortsentryHOWTO.txt">Vous
|
|||
|
trouverez ici la description</ulink> d'une bonne int<6E>gration de
|
|||
|
Shorewall et PortSentry.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq51">
|
|||
|
<title>(FAQ 51) Comment <quote>ouvrir un port</quote> avec Shorewall
|
|||
|
?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: <20>a d<>pend
|
|||
|
…</para>
|
|||
|
|
|||
|
<para>Si l'application qui sert ce port tourne sur le m<>me syst<73>me que
|
|||
|
Shorewall, ajoutez cette r<>gle:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
|
|||
|
ACCEPT net $FW <protocole> <num<EFBFBD>ro de port></programlisting>
|
|||
|
|
|||
|
<para>O<EFBFBD> <protocole> est <emphasis>tcp</emphasis> ou
|
|||
|
<emphasis>udp</emphasis> et <num<EFBFBD>ro de port> est le port que vous
|
|||
|
voulez <quote>ouvrir</quote>.</para>
|
|||
|
|
|||
|
<para>Si l'application qui sert ce port tourne sur un autre syst<73>me sur
|
|||
|
votre r<>seau local, voyez la <link linkend="faq1">FAQ 1</link>
|
|||
|
SVP.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Probl<EFBFBD>mes de connexion</title>
|
|||
|
|
|||
|
<section id="faq5">
|
|||
|
<title>(FAQ 5) J'ai install<6C> Shorewall et je ne peux plus
|
|||
|
<quote>pinger</quote> <20> travers le firewall</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Pour une description
|
|||
|
compl<70>te de la gestion du <quote>ping</quote> par Shorewall, voyez
|
|||
|
<ulink url="ping.html">cette page</ulink>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq15">
|
|||
|
<title>(FAQ 15) Mes syst<73>mes locaux ne peuvent rien voir sur
|
|||
|
internet</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Chaque fois que je lis
|
|||
|
<quote>mes syst<73>mes ne peuvent rien voir sur internet</quote>, je me
|
|||
|
demande o<> l'auteur a bien pu acheter des ordinateurs avec des yeux et
|
|||
|
ce que ces ordinateurs peuvent bien <quote>voir</quote> lorsque tout
|
|||
|
fonctionne convenablement. Ceci mis <20> part, les causes habituelles <20> ce
|
|||
|
type de probl<62>mes sont:</para>
|
|||
|
|
|||
|
<orderedlist>
|
|||
|
<listitem>
|
|||
|
<para>L'adresse de la passerelle par d<>faut n'est pas configur<75>e <20>
|
|||
|
l'adresse de l'interface locale du firewall sur chacun des syst<73>mes
|
|||
|
locaux.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>L'entr<74> pour le r<>seau local dans le fichier
|
|||
|
<filename>/etc/shorewall/masq</filename> est erron<6F>e ou
|
|||
|
manquante.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>La configuration du DNS sur les syst<73>mes locaux est mauvaise
|
|||
|
ou bien l'utilisateur fait tourner un serveur DNS sur le firewall et
|
|||
|
il n'a pas autoris<69> le port 53 UDP et TCP de son firewall vers
|
|||
|
internet.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Le forwarding n'est pas activ<69> (ceci est souvent le cas pour
|
|||
|
les utilisateurs Debian). Ex<45>cutez cette commande:</para>
|
|||
|
|
|||
|
<programlisting>cat /proc/sys/net/ipv4/ip_forward</programlisting>
|
|||
|
|
|||
|
<para>Si la valeur est 0 (z<>ro) mettez <emphasis
|
|||
|
role="bold">IP_FORWARDING=On</emphasis> dans le fichier
|
|||
|
<filename>/etc/shorewall/shorewall.conf</filename> et relancez
|
|||
|
Shorewall.</para>
|
|||
|
</listitem>
|
|||
|
</orderedlist>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq29">
|
|||
|
<title>(FAQ 29) FTP ne fonctionne pas</title>
|
|||
|
|
|||
|
<para>Voir la page <ulink url="FTP.html">Shorewall et
|
|||
|
FTP</ulink>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq33">
|
|||
|
<title>(FAQ 33) Depuis mes clients derri<72>re le firewall les connexions
|
|||
|
vers certains sites <20>chouent. Les connexions vers les m<>mes sites, mais
|
|||
|
depuis le firewall fonctionnent. Qu'est-ce qui ne va pas ?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: Tr<54>s probablement, il
|
|||
|
vous faudra mettre CLAMPMSS=Yes dans le fichier <ulink
|
|||
|
url="Documentation.htm#Conf">/etc/shorewall/shorewall.conf</ulink>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq35">
|
|||
|
<title>(FAQ 35) J'ai deux interfaces ethernet vers mon r<>seau local que
|
|||
|
j'ai mont<6E>es en pont (bridge). Quand Shorewall est d<>marr<72>, je n'arrive
|
|||
|
pas <20> faire passer le trafic <20> travers le pont. J'ai d<>fini l'interface
|
|||
|
pont (br0) comme interface locale dans /etc/shorewall/interfaces. Les
|
|||
|
interfaces ethernet <quote>pont<EFBFBD>es</quote> ne sont pas d<>finies pour
|
|||
|
Shorewall. Comment demander <20> Shorewall d'autoriser le trafic <20> travers
|
|||
|
le pont ?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: ajouter l'option
|
|||
|
<firstterm>routeback</firstterm> <20> l'interface <filename
|
|||
|
class="devicefile">br0</filename> dans le fichier <ulink
|
|||
|
url="Documentation.htm#Interfaces">/etc/shorewall/interfaces</ulink>.</para>
|
|||
|
|
|||
|
<para>Pour plus d'information sur ce type de configuration, voir la
|
|||
|
documentation pour <ulink url="SimpleBridge.html">un pont simple avec
|
|||
|
Shorewall</ulink>.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Journalisation</title>
|
|||
|
|
|||
|
<section id="faq6">
|
|||
|
<title>(FAQ 6) O<> sont enregistr<74>s les messages de journalisation et
|
|||
|
comment modifier leur destination ?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> NetFilter utilise
|
|||
|
l'<27>quivalent noyau de syslog (voir <quote>man syslog</quote>) pour
|
|||
|
journaliser les messages. Il utilise toujours le dispositif LOG_KERN
|
|||
|
(voir <quote>man openlog</quote>) et vous devez choisir le niveau de
|
|||
|
journalisation (log level, voir <quote>man syslog</quote>) dans vos
|
|||
|
<ulink url="Documentation.htm#Policy">politiques</ulink> et dans vos
|
|||
|
<ulink url="Documentation.htm#Rules">r<EFBFBD>gles</ulink>. La destination des
|
|||
|
messages journalis<69>s par syslog est contr<74>l<EFBFBD>e avec
|
|||
|
<filename>/etc/syslog.conf</filename> (voir <quote>man
|
|||
|
syslog.conf</quote>). Lorsque vous avez modifi<66>
|
|||
|
<filename>/etc/syslog.conf</filename>, assurez-vous de red<65>marrer
|
|||
|
syslogd (sur un syst<73>me RedHat, <quote>service syslog
|
|||
|
restart</quote>).</para>
|
|||
|
|
|||
|
<para>Par d<>faut, les versions plus anciennes de Shorewall limitaient le
|
|||
|
taux de journalisation des messages gr<67>ce <20> des <ulink
|
|||
|
url="Documentation.htm#Conf">param<61>tres</ulink> du fichier
|
|||
|
<filename>/etc/shorewall/shorewall.conf</filename> -- Si vous voulez
|
|||
|
journaliser tous les messages, positionnez ces param<61>tres comme
|
|||
|
suit:</para>
|
|||
|
|
|||
|
<programlisting>LOGLIMIT=""
|
|||
|
LOGBURST=""</programlisting>
|
|||
|
|
|||
|
<para>On peut <20>galement <ulink url="shorewall_logging.html">param<EFBFBD>trer
|
|||
|
Shorewall pour qu'il enregistre les messages de journalisation dans un
|
|||
|
fichier s<>par<61></ulink>.</para>
|
|||
|
|
|||
|
<section id="faq6a">
|
|||
|
<title>(FAQ 6a) Existe-t-il des analyseur de journal qui fonctionnent
|
|||
|
avec Shorewall?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Voil<69> plusieurs liens
|
|||
|
qui peuvent vous aider:</para>
|
|||
|
|
|||
|
<literallayout>
|
|||
|
<ulink url="http://www.shorewall.net/pub/shorewall/parsefw/">http://www.shorewall.net/pub/shorewall/parsefw/</ulink>
|
|||
|
<ulink url="http://www.fireparse.com">http://www.fireparse.com</ulink>
|
|||
|
<ulink url="http://cert.uni-stuttgart.de/projects/fwlogwatch">http://cert.uni-stuttgart.de/projects/fwlogwatch</ulink>
|
|||
|
<ulink url="http://www.logwatch.org">http://www.logwatch.org</ulink>
|
|||
|
<ulink url="http://gege.org/iptables">http://gege.org/iptables</ulink>
|
|||
|
<ulink url="http://home.regit.org/ulogd-php.html">http://home.regit.org/ulogd-php.html</ulink>
|
|||
|
</literallayout>
|
|||
|
|
|||
|
<para>Personnellement, j'utilise Logwatch. Il m'envoie chaque jour par
|
|||
|
courriel un rapport pour chacun de mes diff<66>rents syst<73>mes. Chaque
|
|||
|
rapport r<>sume l'activit<69> journalis<69>e sur le syst<73>me
|
|||
|
correspondant.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq6b">
|
|||
|
<title>(FAQ 6b) Mes journaux sont inond<6E>s de messages DROP pour des
|
|||
|
requ<71>tes de connections sur le port 10619. Puis-je exclure
|
|||
|
temporairement de la journalisation Shorewall les messages d'erreur
|
|||
|
pour ce port ?</title>
|
|||
|
|
|||
|
<para>Ajoutez temporairement la r<>gle suivante:</para>
|
|||
|
|
|||
|
<programlisting>DROP net fw udp 10619</programlisting>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq6d">
|
|||
|
<title>(FAQ 6d) Pourquoi l'adresse MAC dans les messages de
|
|||
|
journalisation Shorewall est-elle si longue ? Je pensais que l'adresse
|
|||
|
MAC ne faisait que 6 octets.</title>
|
|||
|
|
|||
|
<para>Ce qui est labelis<69> comme adresse MAC dans les messages de
|
|||
|
journalisation Shorewall est en fait l'ent<6E>te de la trame ethernet.
|
|||
|
Elle contient:</para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>l'adresse MAC de destination (6 octets)</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>l'adresse MAC source (6 octets)</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>le type de trame ethernet (2 octets)</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
|
|||
|
<para><example>
|
|||
|
<title>Exemple</title>
|
|||
|
|
|||
|
<para><programlisting>MAC=00:04:4c:dc:e2:28:00:b0:8e:cf:3c:4c:08:00</programlisting>
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>adresse MAC de destination = 00:04:4c:dc:e2:28</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>adresse MAC source = 00:b0:8e:cf:3c:4c</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>type de trame ethernet = 08:00 (IP Version 4)</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist></para>
|
|||
|
</example></para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq16">
|
|||
|
<title>(FAQ 16) Shorewall <20>crit ses messages de journalisation
|
|||
|
directement sur ma console et la rend inutilisable!</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis></para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>Trouvez o<> klogd est d<>marr<72> (ce sera depuis un des fichiers
|
|||
|
du r<>pertoire <filename class="directory">/etc/init.d</filename> --
|
|||
|
sysklogd, klogd, ...). Modifiez ce fichier ou le fichier de
|
|||
|
configuration appropri<72> de telle mani<6E>re que klogd soit d<>marr<72> avec
|
|||
|
<quote>-c <emphasis><n></emphasis> </quote> avec
|
|||
|
<emphasis><n></emphasis> <20>tant un niveau de journalisation
|
|||
|
inf<6E>rieur ou <20>gal <20> 5; ou alors</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Voir la page man de <quote>dmesg</quote> (<quote>man
|
|||
|
dmesg</quote>). Vous devez ajouter une commande <quote>dmesg</quote>
|
|||
|
adapt<70>e dans vos scripts de d<>marrage ou la placer dans le fichier
|
|||
|
<filename>/etc/shorewall/start</filename>.</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
|
|||
|
<tip>
|
|||
|
<para>Sous RedHat et Mandriva, le <ulink
|
|||
|
url="shorewall_logging.html">niveau de journalisation</ulink> maximum
|
|||
|
envoy<6F> <20> la console est sp<73>cifi<66> par la variable LOGLEVEL du fichier
|
|||
|
<filename>/etc/sysconfig/init</filename>. Positionnez
|
|||
|
<quote>LOGLEVEL=5</quote> pour <20>liminer de la console les messages de
|
|||
|
niveau info.</para>
|
|||
|
</tip>
|
|||
|
|
|||
|
<tip>
|
|||
|
<para>Sous Debian, vous pouvez mettre KLOGD=<quote>-c 5</quote> dans
|
|||
|
le fichier <filename>/etc/init.d/klogd</filename> afin d'<27>liminer de
|
|||
|
la console les messages de niveau info (log level 6).</para>
|
|||
|
</tip>
|
|||
|
|
|||
|
<tip>
|
|||
|
<para>Sous SUSE, ajoutez <quote>-c 5</quote> <20> KLOGD_PARAMS dans le
|
|||
|
fichier <filename>/etc/sysconfig/syslog</filename> fin d'<27>liminer de
|
|||
|
la console les messages de niveau info (log level 6).</para>
|
|||
|
</tip>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq17">
|
|||
|
<title>(FAQ 17) Pourquoi ces paquets sont-ils ignor<6F>s/rejet<65>s
|
|||
|
(dropped/rejected)? Comment d<>code-t-on les messages de journalisation
|
|||
|
Shorewall?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Avec Shorewall, les
|
|||
|
paquets ignor<6F>s/rejet<65>s peuvent avoir <20>t<EFBFBD> journalis<69>s en sortie d'un
|
|||
|
certain nombre de cha<68>nes (comme indiqu<71> dans le message):</para>
|
|||
|
|
|||
|
<variablelist>
|
|||
|
<varlistentry>
|
|||
|
<term>man1918 or logdrop</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>L'adresse destination est list<73>e dans le fichier
|
|||
|
<filename>/usr/share/shorewall/rfc1918</filename> avec une cible
|
|||
|
<emphasis role="bold">logdrop</emphasis> -- voir <filename> <ulink
|
|||
|
url="Documentation.htm#rfc1918">/usr/share/shorewall/rfc1918</ulink></filename>.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>rfc1918 or logdrop</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>L'adresse source ou destination est list<73>e dans le fichier
|
|||
|
<filename>/usr/share/shorewall/rfc1918</filename> avec un cible
|
|||
|
<emphasis role="bold">logdrop</emphasis> -- voir <filename> <ulink
|
|||
|
url="Documentation.htm#rfc1918">/usr/share/shorewall/rfc1918</ulink></filename>.</para>
|
|||
|
|
|||
|
<note>
|
|||
|
<para>Si vous voyez des paquets rejet<65>s par la cha<68>ne rfc1918 et
|
|||
|
que ni l'adresse IP source ni l'adresse IP de destination ne
|
|||
|
sont r<>serv<72>es par la RFC 1918, cela provient la plupart du
|
|||
|
temps d'un ancien fichier <filename>rfc1918</filename> dans
|
|||
|
<filename class="directory">/etc/shorewall</filename> (ceci
|
|||
|
arrive le plus fr<66>quemment lorsque vous utilisez une Debian ou
|
|||
|
un de ses d<>riv<69>s). Le fichier <filename>rfc1918</filename>
|
|||
|
incluait aussi bien les <emphasis>bogons</emphasis> que les
|
|||
|
trois plages r<>serv<72>es par la RFC 1918. Il <20>tait install<6C> dans
|
|||
|
le r<>pertoire <filename
|
|||
|
class="directory">/etc/shorewall</filename>. Maintenant le
|
|||
|
fichier ne contient que les trois plages d'adresse de la RFC
|
|||
|
1918 et il est install<6C> dans le r<>pertoire <filename
|
|||
|
class="directory">/usr/share/shorewall</filename>. Retirez le
|
|||
|
fichier rfc1918 p<>rim<69> de votre r<>pertoire <filename
|
|||
|
class="directory">/etc/shorewall</filename>.</para>
|
|||
|
</note>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry id="all2all">
|
|||
|
<term>all2<zone>, <zone>2all or all2all</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Vous avez une <ulink
|
|||
|
url="Documentation.htm#Policy">politique</ulink> qui sp<73>cifie un
|
|||
|
niveau de journalisation et ce paquet a <20>t<EFBFBD> journalis<69> par cette
|
|||
|
politique. Si vous voulez autoriser (ACCEPT) ce trafic, il vous
|
|||
|
faudra une <ulink url="Documentation.htm#Rules">r<EFBFBD>gle</ulink> <20>
|
|||
|
cette fin.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term><zone1>2<zone2></term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ou bien vous avez une <ulink
|
|||
|
url="Documentation.htm#Policy">politique</ulink> pour le trafic de
|
|||
|
la <emphasis role="bold"><zone1></emphasis> vers la
|
|||
|
<emphasis role="bold"><zone2></emphasis> qui sp<73>cifie un
|
|||
|
niveau de journalisation et ce paquet a <20>t<EFBFBD> journalis<69> par cette
|
|||
|
politique ou alors ce paquet correspond <20> une <ulink
|
|||
|
url="Documentation.htm#Rules">r<>gle</ulink> incluant un niveau de
|
|||
|
journalisation.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>@<source>2<dest></term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Vous avez une politique pour le trafic de <<emphasis
|
|||
|
role="bold">source</emphasis>> vers <<emphasis
|
|||
|
role="bold">dest</emphasis>> dans laquelle vous avez sp<73>cifi<66>
|
|||
|
un taux de limitation des connexions TCP (les valeurs dans la
|
|||
|
colonne LIMIT:BURST). Les paquet journalis<69> d<>passait cette limite
|
|||
|
et a <20>t<EFBFBD> ignor<6F> (DROP). Il faut noter que ces messages au journal
|
|||
|
sont eux-m<>me s<>v<EFBFBD>rement limit<69>s afin qu'une inondation SYN
|
|||
|
(syn-flood) ne provoque pas un d<>ni de service (DOS) secondaire
|
|||
|
par un nombre excessif de messages de journalisation. Ces messages
|
|||
|
ont <20>t<EFBFBD> introduits dans Shorewall 2.2.0 Beta 7.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term><interface>_mac</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ce paquet a <20>t<EFBFBD> journalis<69> par l'<ulink
|
|||
|
url="Documentation.htm#Interfaces">option d'interface</ulink>
|
|||
|
<emphasis role="bold">maclist</emphasis> .</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>logpkt</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ce paquet a <20>t<EFBFBD> journalis<69> par l'<ulink
|
|||
|
url="Documentation.htm#Interfaces">option d'interface</ulink>
|
|||
|
<emphasis role="bold">logunclean</emphasis>.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>badpkt</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ce paquet a <20>t<EFBFBD> journalis<69> par l'<ulink
|
|||
|
url="Documentation.htm#Interfaces">option d'interface</ulink>
|
|||
|
<emphasis role="bold">dropunclean</emphasis> tel que sp<73>cifi<66> dans
|
|||
|
le param<61>tre <emphasis role="bold">LOGUNCLEAN</emphasis> du
|
|||
|
fichier <ulink url="Documentation.htm#Conf">
|
|||
|
<filename>/etc/shorewall/shorewall.conf</filename>
|
|||
|
</ulink>.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>blacklst</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ce paquet a <20>t<EFBFBD> journalis<69> parce que l'adresse IP source est
|
|||
|
inscrite dans la liste noire <filename><ulink
|
|||
|
url="Documentation.htm#Blacklist">/etc/shorewall/blacklist</ulink></filename>.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>INPUT or FORWARD</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ce paquet a une adresse IP source qui n'est d<>finie dans
|
|||
|
aucune de vos zones (<quote>shorewall check</quote> et regardez
|
|||
|
les d<>finitions de zones) ou alors la cha<68>ne est FORWARD et
|
|||
|
l'adresse IP de destination ne figure dans aucune de vos zones
|
|||
|
d<>finies. Si la cha<68>ne est FORWARD et les interfaces IN et OUT
|
|||
|
sont identiques, vous avez sans doute besoin de l'option <emphasis
|
|||
|
role="bold">routeback</emphasis> sur cette interface dans le
|
|||
|
fichier <filename><ulink
|
|||
|
url="Documentation.htm#Interfaces">/etc/shorewall/interfaces</ulink></filename>
|
|||
|
ou bien vous avez besoin de l'option <emphasis
|
|||
|
role="bold">routeback</emphasis> pour l'entr<74>e ad<61>quate dans le
|
|||
|
fichier<filename> <ulink
|
|||
|
url="Documentation.htm#Hosts">/etc/shorewall/hosts</ulink>
|
|||
|
</filename>.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>OUTPUT</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ce paquet a une adresse IP destination qui n'est d<>finie
|
|||
|
dans aucune de vos zones (<quote>shorewall check</quote> et
|
|||
|
regardez les d<>finitions de zones).</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>logflags</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ce paquet a <20>t<EFBFBD> journalis<69> parce qu'il a <20>chou<6F> aux
|
|||
|
contr<74>les mis en oeuvre par l'<ulink
|
|||
|
url="Documentation.htm#Interfaces">option d'interface</ulink>
|
|||
|
<emphasis role="bold">tcpflags</emphasis>.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
</variablelist>
|
|||
|
|
|||
|
<example>
|
|||
|
<title>Exemple:</title>
|
|||
|
|
|||
|
<programlisting>Jun 27 15:37:56 gateway kernel:
|
|||
|
Shorewall:<emphasis role="bold">all2all:REJECT</emphasis>:<emphasis
|
|||
|
role="bold">IN=eth2</emphasis>
|
|||
|
<emphasis role="bold">OUT=eth1</emphasis>
|
|||
|
<emphasis role="bold">SRC=192.168.2.2</emphasis>
|
|||
|
<emphasis role="bold">DST=192.168.1.3 </emphasis>LEN=67 TOS=0x00 PREC=0x00 TTL=63 ID=5805 DF <emphasis
|
|||
|
role="bold">PROTO=UDP</emphasis>
|
|||
|
SPT=1803 <emphasis role="bold">DPT=53</emphasis> LEN=47</programlisting>
|
|||
|
|
|||
|
<para>Examinons les partie importantes de ce message:</para>
|
|||
|
|
|||
|
<variablelist>
|
|||
|
<varlistentry>
|
|||
|
<term>all2all:REJECT</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ce paquet a <20>t<EFBFBD> rejet<65> (REJECT) par la cha<68>ne <emphasis
|
|||
|
role="bold">all2all</emphasis> -- le paquet a <20>t<EFBFBD> rejet<65> par la
|
|||
|
politique <quote>all</quote>-><quote>all</quote> REJECT (voir
|
|||
|
<link linkend="all2all">all2all</link> ci-dessus).</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>IN=eth2</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Le paquet est arriv<69> dans le firewall par eth2. Lorsque
|
|||
|
vous voyez <quote>IN=</quote> sans aucun nom d'interface, c'est
|
|||
|
que le paquet provient du firewall lui-m<>me.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>OUT=eth1</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Si il avait <20>t<EFBFBD> autoris<69>, ce paquet aurait <20>t<EFBFBD> transmis <20>
|
|||
|
eth1. Lorsque vous voyez <quote>OUT=</quote> sans aucun nom
|
|||
|
d'interface, c'est que le paquet aurait <20>t<EFBFBD> trait<69> par le
|
|||
|
firewall lui-m<>me.</para>
|
|||
|
|
|||
|
<note>
|
|||
|
<para>Lorsqu'une r<>gle DNAT est journalis<69>e, on n'a jamais de
|
|||
|
OUT= parce que le paquet est journalis<69> avant d'<27>tre rout<75>.
|
|||
|
Par ailleurs, la journalisation DNAT donnera l'adresse IP
|
|||
|
destination et le num<75>ro de port destination
|
|||
|
d'<emphasis>origine</emphasis>.</para>
|
|||
|
</note>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>SRC=192.168.2.2</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ce paquet a <20>t<EFBFBD> envoy<6F> par 192.168.2.2</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>DST=192.168.1.3</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Ce paquet a pour destination 192.168.1.3</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>PROTO=UDP</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Le protocole est UDP</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>DPT=53</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Le port de destination est le port 53 (DNS)</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
</variablelist>
|
|||
|
|
|||
|
<para>Pour plus d'informations concernant les messages de
|
|||
|
journalisation, voir <ulink
|
|||
|
url="http://logi.cc/linux/netfilter-log-format.php3">http://logi.cc/linux/netfilter-log-format.php3</ulink>.</para>
|
|||
|
|
|||
|
<para>Dans ce cas, 192.168.2.2 <20>tait dans la zone <quote>dmz</quote>
|
|||
|
et 192.168.1.3 <20>tait dans la zone <quote>loc</quote>. Il me manquait
|
|||
|
la r<>gle suivante:</para>
|
|||
|
|
|||
|
<programlisting>ACCEPT dmz loc udp 53</programlisting>
|
|||
|
</example>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq21">
|
|||
|
<title>(FAQ 21) Je vois occasionnellement ces <20>tranges messages dans mon
|
|||
|
journal. De quoi s'agit-il?</title>
|
|||
|
|
|||
|
<programlisting>Nov 25 18:58:52 linux kernel:
|
|||
|
Shorewall:net2all:DROP:IN=eth1 OUT=
|
|||
|
MAC=00:60:1d:f0:a6:f9:00:60:1d:f6:35:50:08:00 SRC=206.124.146.179
|
|||
|
DST=192.0.2.3 LEN=56 TOS=0x00 PREC=0x00 TTL=110 ID=18558 PROTO=ICMP
|
|||
|
TYPE=3 CODE=3 [SRC=192.0.2.3 DST=172.16.1.10 LEN=128 TOS=0x00 PREC=0x00
|
|||
|
TTL=47 ID=0 DF PROTO=UDP SPT=53 DPT=2857 LEN=108 ]</programlisting>
|
|||
|
|
|||
|
<para>192.0.2.3 est externe <20> mon firewall... mon r<>seau local est
|
|||
|
172.16.0.0/24</para>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Bien que la plupart des
|
|||
|
gens associent ICMP (Internet Control Message Protocol) <20>
|
|||
|
<quote>ping</quote>, ICMP est une pi<70>ce cl<63> d'internet. ICMP sert <20>
|
|||
|
informer l'exp<78>diteur d'un paquet des probl<62>mes rencontr<74>s. C'est ce qui
|
|||
|
se produit ici. Malheureusement, de nombreuses impl<70>mentations ne
|
|||
|
fonctionnent pas d<>s lors que la traduction d'adresses est impliqu<71>e (y
|
|||
|
compris SNAT, DNAT et Masquerade). C'est ce que vous voyez avec <20>
|
|||
|
travers ces messages. Quand Netfilter renvoie ces messages, la partie
|
|||
|
pr<70>c<EFBFBD>dent le "[" d<>crit le paquet ICMP, et la partie entre "[" et "]"
|
|||
|
d<>crit le paquet pour lequel ICMP r<>pond.</para>
|
|||
|
|
|||
|
<para>Voici mon interpr<70>tation de ce qui se passe -- pour confirmer
|
|||
|
l'analyse, il faudrait avoir un <quote>sniffeur</quote> de paquets <20>
|
|||
|
chacune des extr<74>mit<69>s de la connexion.</para>
|
|||
|
|
|||
|
<para>L'h<>te 172.16.1.10 plac<61> derri<72>re la passerelle NAT
|
|||
|
206.124.146.179 a envoy<6F> une requ<71>te DNS UDP <20> 192.0.2.3 et votre
|
|||
|
serveur DNS a tent<6E> d'envoyer un r<>ponse (l'information en r<>ponse est
|
|||
|
entre les crochets -- remarquez le port source 53 qui indique qu'il
|
|||
|
s'agit d'une r<>ponse DNS). Quand la r<>ponse a <20>t<EFBFBD> envoy<6F>e <20>
|
|||
|
206.124.146.179, le firewall a r<><72>crit l'adresse IP destination <20>
|
|||
|
172.16.1.10 puis a fait suivre le paquet <20> 172.16.1.10 qui n'avait plus
|
|||
|
de connexion UDP sur le port 2857. Ceci provoque la g<>n<EFBFBD>ration d'un
|
|||
|
message ICMP port unreachable (type 3, code 3) en retour vers 192.0.2.3.
|
|||
|
Ce paquet est renvoy<6F> par 206.124.146.179 qui change correctement
|
|||
|
l'adresse source dans le paquet pour 206.124.146.179 mais ne modifie pas
|
|||
|
de la m<>me fa<66>on l'IP destination dans la r<>ponse DNS d'origine. Lorsque
|
|||
|
le paquet ICMP atteint votre firewall (192.0.2.3), celui-ci n'a aucun
|
|||
|
enregistrement lui indiquant qu'il a envoy<6F> une r<>ponse DNS <20>
|
|||
|
172.16.1.10 et par cons<6E>quent ce paquet ICMP semble n'<27>tre associ<63> <20>
|
|||
|
rien de ce qui a <20>t<EFBFBD> envoy<6F>. Le r<>sultat est que ce paquet est
|
|||
|
journalis<69> et ignor<6F> (DROP) par la cha<68>ne all2all. J'ai <20>galement vu des
|
|||
|
cas dans lesquels la source IP dans le paquet ICMP lui-m<>me n'est pas
|
|||
|
r<>-<2D>crite <20> l'adresse externe de la passerelle NAT distante. Dans ce cas
|
|||
|
votre firewall va journaliser et ignorer (DROP) le paquet par la cha<68>ne
|
|||
|
rfc1918 cas son IP source est r<>serv<72>e par la RFC 1918.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Routage</title>
|
|||
|
|
|||
|
<section id="faq32">
|
|||
|
<title>(FAQ 32) J'ai deux connexions internet avec deux FAI diff<66>rents
|
|||
|
sur mon firewall. Comment le configurer avec Shorewall?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: voir cet article sur
|
|||
|
<ulink url="MultiISP.html">Shorewall et le routage</ulink>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq49">
|
|||
|
<title>(FAQ 49) Quand je d<>marre Shorewall, ma table de routage est
|
|||
|
d<>truite. Pourquoi Shorewall fait-il cela?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: Ceci est en g<>n<EFBFBD>ral la
|
|||
|
cons<6E>quence d'une b<>tise dans la configuration du NAT un-<2D>-un
|
|||
|
(one-to-one NAT):</para>
|
|||
|
|
|||
|
<orderedlist>
|
|||
|
<listitem>
|
|||
|
<para>Vous sp<73>cifiez l'adresse IP primaire d'une interface dans la
|
|||
|
colonne EXTERNAL du fichier <filename>/etc/shorewall/nat</filename>
|
|||
|
alors que la documentation et les commentaires dans le fichier vous
|
|||
|
mettent en garde contre une telle configuration.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Vous sp<73>cifiez ADD_IP_ALIASES=Yes et RETAIN_ALIASES=No dans le
|
|||
|
fichier <filename>/etc/shorewall/shorewall.conf</filename>.</para>
|
|||
|
</listitem>
|
|||
|
</orderedlist>
|
|||
|
|
|||
|
<para>Cette combinaison fait d<>truire par Shorewall l'adresse primaire
|
|||
|
de l'interface r<>seau sp<73>cifi<66>e dans la colonne INTERFACE, ce qui a en
|
|||
|
g<>n<EFBFBD>ral pour cons<6E>quence de d<>truire routes les routes sortantes de
|
|||
|
cette interface. La solution est de <emphasis role="bold">ne pas
|
|||
|
sp<73>cifier l'adresse primaire d'une interface dans la colonne
|
|||
|
EXTERNAL</emphasis>.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>D<EFBFBD>marrer et arr<72>ter Shorewall</title>
|
|||
|
|
|||
|
<section id="faq7">
|
|||
|
<title>(FAQ 7) Quand j'arr<72>te Shorewall avec la commande
|
|||
|
<quote>shorewall stop</quote>, je ne peux plus me connecter <20> quoi que
|
|||
|
ce soit. Pourquoi cette commande ne fonctionne-t-elle pas?</title>
|
|||
|
|
|||
|
<para>La commande <quote> <command>stop</command> </quote> est pr<70>vue
|
|||
|
pour mettre votre firewall dans un <20>tat de s<>curit<69> o<> seuls les h<>tes
|
|||
|
list<73>s dans le fichier <filename>/etc/shorewall/routestopped</filename>
|
|||
|
sont activ<69>s. Si vous voulez ouvrir compl<70>tement votre firewall, il vous
|
|||
|
faut utiliser la commande <quote><command>shorewall
|
|||
|
clear</command></quote>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq8">
|
|||
|
<title>(FAQ 8) Quand je tente de lancer Shorewall sur RedHat, je re<72>ois
|
|||
|
des messages d'erreur insmod -- qu'est-ce qui ne va pas?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> La sortie que vous avez
|
|||
|
ressemble <20> ceci:</para>
|
|||
|
|
|||
|
<programlisting>/lib/modules/2.4.17/kernel/net/ipv4/netfilter/ip_tables.o: init_module: Device or resource busy
|
|||
|
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters
|
|||
|
/lib/modules/2.4.17/kernel/net/ipv4/netfilter/ip_tables.o: insmod
|
|||
|
/lib/modules/2.4.17/kernel/net/ipv4/netfilter/ip_tables.o failed
|
|||
|
/lib/modules/2.4.17/kernel/net/ipv4/netfilter/ip_tables.o: insmod ip_tables failed
|
|||
|
iptables v1.2.3: can't initialize iptables table `nat': iptables who? (do you need to insmod?)
|
|||
|
Perhaps iptables or your kernel needs to be upgraded.</programlisting>
|
|||
|
|
|||
|
<para>En g<>n<EFBFBD>ral, ce probl<62>me est corrig<69> par la s<>quence de commandes
|
|||
|
qui suit:</para>
|
|||
|
|
|||
|
<programlisting><command>service ipchains stop
|
|||
|
chkconfig --delete ipchains
|
|||
|
rmmod ipchains</command></programlisting>
|
|||
|
|
|||
|
<para>Par ailleurs, assurez-vous d'avoir v<>rifi<66> dans l'<ulink
|
|||
|
url="errata.htm">errata</ulink> que vous n'avez pas de probl<62>mes li<6C> <20>
|
|||
|
la version d'iptables (v1.2.3) distribu<62>e avec RH7.2.</para>
|
|||
|
|
|||
|
<section id="faq8a">
|
|||
|
<title>(FAQ 8a) Quand je tente de lancer Shorewall sur une RedHat, je
|
|||
|
re<72>ois un message qui me renvoie <20> la FAQ #8</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Ceci se traite en
|
|||
|
g<>n<EFBFBD>ral avec la s<>quence de commandes pr<70>sent<6E>e ci-dessus dans la
|
|||
|
<xref linkend="faq8" />.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq9">
|
|||
|
<title>(FAQ 9) Pourquoi Shorewall ne r<>ussit-il pas <20> d<>tecter
|
|||
|
convenablement mes interfaces au d<>marrage?</title>
|
|||
|
|
|||
|
<para>Je viens d'installer Shorewall et quand je lance la commande
|
|||
|
start, voil<69> ce qui se passe :</para>
|
|||
|
|
|||
|
<programlisting>Processing /etc/shorewall/params ...
|
|||
|
Processing /etc/shorewall/shorewall.conf ...
|
|||
|
Starting Shorewall...
|
|||
|
Loading Modules...
|
|||
|
Initializing...
|
|||
|
Determining Zones...
|
|||
|
Zones: net loc
|
|||
|
Validating interfaces file...
|
|||
|
Validating hosts file...
|
|||
|
Determining Hosts in Zones...
|
|||
|
<emphasis role="bold">Net Zone: eth0:0.0.0.0/0
|
|||
|
</emphasis><emphasis role="bold">Local Zone: eth1:0.0.0.0/0</emphasis>
|
|||
|
Deleting user chains...
|
|||
|
Creating input Chains...
|
|||
|
...</programlisting>
|
|||
|
|
|||
|
<para>Pourquoi est-ce que Shorewall ne d<>tecte-t-il pas correctement mes
|
|||
|
interfaces?</para>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> La sortie ci-dessus est
|
|||
|
parfaitement normale. La zone Net est d<>finie comme <20>tant compos<6F>e de
|
|||
|
toutes les machines connect<63>es <20> eth0 et la zone Local est d<>finie comme
|
|||
|
<20>tant compos<6F>e de toutes celles connect<63>es <20> eth1. Si vous utilisez
|
|||
|
Shorewall 1.4.10 ou une version plus r<>cente, vous pouvez envisager de
|
|||
|
param<61>trer l'<ulink url="Documentation.htm#Interfaces">option
|
|||
|
d'interface</ulink> <emphasis role="bold">detectnet</emphasis> pour
|
|||
|
votre interface locale (eth1 dans l'exemple ce-dessus). Ceci forcera
|
|||
|
Shorewall <20> restreindre la zone locale aux seuls r<>seaux rout<75>s par
|
|||
|
cette interface.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq22">
|
|||
|
<title>(FAQ 22) Je voudrais ex<65>cuter certaines commandes iptables au
|
|||
|
d<>marrage de Shorewall. Dans quel fichier les mettre?</title>
|
|||
|
|
|||
|
<para>Vous pouvez placer ces commandes dans une des <ulink
|
|||
|
url="shorewall_extension_scripts.htm">Scripts d'Extension
|
|||
|
Shorewall</ulink>. Assurez-vous de bien examiner le contenu des cha<68>nes
|
|||
|
que vos commandes vont modifier afin d'<27>tre certain que ces commandes
|
|||
|
feront bien ce qu'elles sont cens<6E>es faire. De nombreuses commandes
|
|||
|
publi<6C>es dans des guides (HOWTOs) ainsi que dans d'autres modes
|
|||
|
op<6F>ratoires font usage de la commande -A qui ajoute les r<>gles en fin de
|
|||
|
cha<68>ne. La plupart des cha<68>nes construites par Shorewall se terminent
|
|||
|
par une r<>gle inconditionnelle DROP, ACCEPT ou REJECT et donc toute
|
|||
|
r<>gle que vous pourriez ajouter apr<70>s serait ignor<6F>e. Consultez
|
|||
|
<quote>man iptables</quote> et prenez connaissance de la commande -I
|
|||
|
(--insert).</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq34">
|
|||
|
<title>(FAQ 34) Comment acc<63>l<EFBFBD>rer le d<>marrage (start/restart)?</title>
|
|||
|
|
|||
|
<para>L'utilisation d'un shell l<>ger tel que <command>ash</command> peut
|
|||
|
diminuer de fa<66>on tr<74>s significative le temps n<>cessaire pour d<>marrer
|
|||
|
(<emphasis role="bold">start</emphasis>/<emphasis
|
|||
|
role="bold">restart</emphasis>) Shorewall. Voyez la variable
|
|||
|
SHOREWALL_SHELL dans le fichier <filename><ulink
|
|||
|
url="Documentation.htm#Conf">shorewall.conf</ulink> </filename>.</para>
|
|||
|
|
|||
|
<para>Utilisez un <20>mulateur de terminal rapide -- en particulier la
|
|||
|
console KDE d<>file beaucoup plus vite que le terminal Gnome. Vous pouvez
|
|||
|
<20>galement utiliser l'option '-q' si vous red<65>marrez <20> distance ou depuis
|
|||
|
un terminal lent (ou rediriger la sortie vers un fichier comme dans
|
|||
|
<command>shorewall restart > /dev/null</command>).</para>
|
|||
|
|
|||
|
<para>Shorewall offre <20>galement une fonction de d<>marrage rapide. Pour
|
|||
|
l'utiliser:</para>
|
|||
|
|
|||
|
<orderedlist>
|
|||
|
<listitem>
|
|||
|
<para>Avec Shorewall dans l'<ulink
|
|||
|
url="starting_and_stopping_shorewall.htm"><3E>tat d<>marr<72></ulink>,
|
|||
|
ex<65>cutez <command>shorewall save</command>. Cela va cr<63>er le script
|
|||
|
<filename>/var/lib/shorewall/restore</filename>.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Utilisez l'option <emphasis role="bold">-f </emphasis>avec la
|
|||
|
commande start (par exemple, <command>shorewall -f start</command>).
|
|||
|
Ceci forcera Shorewall <20> chercher le script
|
|||
|
<filename>/var/lib/shorewall/restore</filename> et <20> l'ex<65>cuter si
|
|||
|
il existe. Ex<45>cuter <filename>/var/lib/shorewall/restore</filename>
|
|||
|
prend beaucoup moins de temps que d'ex<65>cuter un <command>shorewall
|
|||
|
start</command> complet.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Le script <filename>/etc/init.d/shorewall</filename> ex<65>cut<75>
|
|||
|
au d<>marrage du syst<73>me utilise l'option <emphasis
|
|||
|
role="bold">-f</emphasis>.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Le script <filename>/var/lib/shorewall/restore</filename> peut
|
|||
|
<20>tre ex<65>cut<75> <20> tout moment pour restaurer le firewall. Il peut <20>tre
|
|||
|
invoqu<71> directement ou bien indirectement en utilisant la commande
|
|||
|
<command>shorewall restore</command>.</para>
|
|||
|
</listitem>
|
|||
|
</orderedlist>
|
|||
|
|
|||
|
<para>Si vous modifiez votre configuration de Shorewall, vous devez
|
|||
|
ex<65>cuter un <emphasis role="bold">shorewall start</emphasis> (sans
|
|||
|
<emphasis role="bold">-f</emphasis>) ou un <command>shorewall
|
|||
|
restart</command> avant de refaire un <command>shorewall save</command>.
|
|||
|
La commande <command>shorewall save</command> sauvegarde la
|
|||
|
configuration qui tournait au moment o<> elle a <20>t<EFBFBD> ex<65>cut<75>e et non celle
|
|||
|
que repr<70>sentent les fichiers de configuration que vous avez
|
|||
|
modifi<66>s.</para>
|
|||
|
|
|||
|
<para>De m<>me, si vous modifiez votre configuration Shorewall et que
|
|||
|
vous <20>tes satisfait du r<>sultat, vous devez ex<65>cuter une commande
|
|||
|
<command>shorewall save</command>, sans quoi vous reviendriez <20>
|
|||
|
l'ancienne configuration enregistr<74>e dans
|
|||
|
<filename>/var/lib/shorewall/restore</filename> lors du prochain
|
|||
|
d<>marrage de votre syst<73>me.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq43">
|
|||
|
<title>(FAQ 43) Je viens d'installer le RPM Shorewall et Shorewall ne
|
|||
|
d<>marre pas au lancement du syst<73>me (boot).</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: Quand vous installez
|
|||
|
avec la commande "rpm -U", Shorewall n'ex<65>cute pas les outils de votre
|
|||
|
distribution qui configurent le d<>marrage de Shorewall. Vous devrez
|
|||
|
ex<65>cuter cet outils vous-m<>me (insserv, chkconfig, run-level editor,
|
|||
|
…) pour que Shorewall d<>marre aux niveaux d'ex<65>cutions
|
|||
|
(run-level) auxquels vous voulez l'utiliser.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq45">
|
|||
|
<title>(FAQ 45) Pourquoi est-ce que "shorewall start" <20>choue lorsque je
|
|||
|
tente de mettre en place SNAT/Masquerade?</title>
|
|||
|
|
|||
|
<para><command>shorewall start</command> produit la sortie
|
|||
|
suivante:</para>
|
|||
|
|
|||
|
<programlisting>…
|
|||
|
Processing /etc/shorewall/policy...
|
|||
|
Policy ACCEPT for fw to net using chain fw2net
|
|||
|
Policy ACCEPT for loc0 to net using chain loc02net
|
|||
|
Policy ACCEPT for loc1 to net using chain loc12net
|
|||
|
Policy ACCEPT for wlan to net using chain wlan2net
|
|||
|
Masqueraded Networks and Hosts:
|
|||
|
iptables: Invalid argument
|
|||
|
ERROR: Command "/sbin/iptables -t nat -A …" Failed</programlisting>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: Dans 99.999% des cas,
|
|||
|
cette erreur provient d'un probl<62>me de comptabilit<69> des versions
|
|||
|
d'iptables et du noyau.</para>
|
|||
|
|
|||
|
<orderedlist numeration="loweralpha">
|
|||
|
<listitem>
|
|||
|
<para>Votre iptables doit <20>tre compil<69> en utilisant un arbre de
|
|||
|
sources du noyau qui soit compatible au niveau Netfilter avec le
|
|||
|
noyau que vous ex<65>cutez sur votre syst<73>me.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Si vous recompilez iptables avec les param<61>tres par d<>faut
|
|||
|
puis que vous l'installez, il sera install<6C> dans
|
|||
|
<filename>/usr/local/sbin/iptables</filename>. Comme on peut le voir
|
|||
|
ci-dessus, votre variable IPTABLES est configur<75>e <20>
|
|||
|
<filename>/sbin/iptables</filename> dans votre fichier
|
|||
|
<filename>shorewall.conf</filename>.</para>
|
|||
|
</listitem>
|
|||
|
</orderedlist>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Au sujet de Shorewall</title>
|
|||
|
|
|||
|
<section id="faq10">
|
|||
|
<title>(FAQ 10) Sur quelles distributions tourne-t-il?</title>
|
|||
|
|
|||
|
<para>Shorewall fonctionnera sur n'importe quelle distribution GNU/Linux
|
|||
|
distribution r<>unissant les <ulink
|
|||
|
url="shorewall_prerequisites.htm">pr<70>-requis Shorewall</ulink> indiqu<71>s
|
|||
|
dans ce document.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq11">
|
|||
|
<title>(FAQ 11) Quelles sont ses caract<63>ristiques?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> voir la <ulink
|
|||
|
url="shorewall_features.htm">liste des caract<63>ristiques de
|
|||
|
Shorewall</ulink>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq12">
|
|||
|
<title>(FAQ 12) Existe-t-il une interface graphique?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Oui. Webmin offre le
|
|||
|
support de Shorewall <20> partir de la version 1.060. Voir <ulink
|
|||
|
url="http://www.webmin.com">http://www.webmin.com</ulink></para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq13">
|
|||
|
<title>(FAQ 13) Pourquoi l'avez-vous appel<65>
|
|||
|
<quote>Shorewall</quote>?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Shorewall est le
|
|||
|
r<>sultat de la concat<61>nation de <quote>
|
|||
|
<emphasis>Shore</emphasis>line</quote> (<ulink
|
|||
|
url="http://www.cityofshoreline.com">la ville o<> je vis</ulink>) et de
|
|||
|
<quote>Fire<emphasis>wall</emphasis> </quote>. En fait le nom complet du
|
|||
|
produit est <quote>Shoreline Firewall</quote> mais on utilise plus
|
|||
|
commun<75>ment <quote>Shorewall</quote>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq23">
|
|||
|
<title>(FAQ 23) Pourquoi utilisez-vous des polices de caract<63>res aussi
|
|||
|
affreuses sur votre site web?</title>
|
|||
|
|
|||
|
<para>Le site web de Shorewall est presque enti<74>rement neutre en ce qui
|
|||
|
concerne les polices (<28> l'exception de quelques pages il ne sp<73>cifie
|
|||
|
explicitement aucune police). Les polices que vous voyez sont largement
|
|||
|
celles configur<75>es par d<>faut dans votre navigateur. Si vous ne les
|
|||
|
aimez pas reconfigurez votre navigateur.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq25">
|
|||
|
<title>(FAQ 25) Comment savoir quelle version de Shorewall
|
|||
|
j'utilise?</title>
|
|||
|
|
|||
|
<para>A l'invite du syst<73>me, tapez:</para>
|
|||
|
|
|||
|
<programlisting><command>/sbin/shorewall version</command> </programlisting>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq31">
|
|||
|
<title>(FAQ 31) Est-ce que Shorewall fournit une protection
|
|||
|
contre....</title>
|
|||
|
|
|||
|
<variablelist>
|
|||
|
<varlistentry>
|
|||
|
<term>IP Spoofing: envoyer des paquets par l'interface WAN en se
|
|||
|
servant d'adresses IP du r<>seau local comme adresse source?</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>R<EFBFBD>ponse: Oui.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>Tear Drop: Envoyer des paquets contenant des fragments qui se
|
|||
|
recouvrent ?</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>R<EFBFBD>ponse: Ceci est de la responsabilit<69> de la pile IP, ce
|
|||
|
n'est pas celle d'un firewall bas<61> sur Netfilter car le
|
|||
|
r<>-assemblage des fragments est fait avant que le filtre de
|
|||
|
paquets ne voie chaque paquet.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>Smurf and Fraggle: Envoyer des paquets qui utilisent comme
|
|||
|
adresse source l'adresse de diffusion (broadcast) du WAN ou du
|
|||
|
LAN?</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>R<EFBFBD>ponse: On peut configurer Shorewall pour le faire avec sa
|
|||
|
fonction de <ulink url="blacklisting_support.htm">liste noire
|
|||
|
(blacklist)</ulink>. A partir de la version 2.0.0, Shorewall
|
|||
|
filtre ces paquets avec l'option d'interface
|
|||
|
<firstterm>nosmurfs</firstterm> dans le fichier <ulink
|
|||
|
url="Documentation.htm#Interfaces">/etc/shorewall/interfaces</ulink>.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>Land Attack: Envoyer des paquets utilisant la m<>me adresse
|
|||
|
comme source et comme destination?</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>R<EFBFBD>ponse: Oui lorsque l'<ulink
|
|||
|
url="Documentation.htm#Interfaces">option d'interface
|
|||
|
routefilter</ulink> est s<>lectionn<6E>e.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry>
|
|||
|
<term>DOS: D<>ni de Service SYN Dos - ICMP Dos - protection DOS par
|
|||
|
h<>te</term>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>R<EFBFBD>ponse: Shorewall offre la possibilit<69> de limiter les
|
|||
|
paquets SYN les paquets ICMP. Netfilter tel qu'il est inclus dans
|
|||
|
les noyaux Linux standard ne supporte pas la mise en oeuvre de
|
|||
|
limitations par h<>te distant sauf en utilisant une r<>gle explicite
|
|||
|
qui sp<73>cifie l'adresse IP de l'h<>te. Cette forme de limitation est
|
|||
|
support<72>e par Shorewall.</para>
|
|||
|
</listitem>
|
|||
|
</varlistentry>
|
|||
|
</variablelist>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq36">
|
|||
|
<title>(FAQ 36) Est-ce que Shorewall tourne sur le noyau Linux
|
|||
|
2.6?</title>
|
|||
|
|
|||
|
<para>Shorewall fonctionne avec les noyaux 2.6 avec les deux
|
|||
|
restrictions suivantes:</para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>Dans les noyaux 2.6 Netfilter/iptables n'offre pas un support
|
|||
|
complet d'IPSEC -- il existe des patch pour le noyau et pour
|
|||
|
iptables. Vous trouverez des d<>tails <20> la page <ulink
|
|||
|
url="IPSEC-2.6.html">Shorewall IPSEC-2.6</ulink>.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Les noyaux 2.6 n'offrent pas le support des options logunclean
|
|||
|
et dropunclean du fichier
|
|||
|
<filename>/etc/shorewall/interfaces</filename>. Le support de ces
|
|||
|
options a <20>galement <20>t<EFBFBD> retir<69> de Shorewall dans la version
|
|||
|
2.0.0.</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>RFC 1918</title>
|
|||
|
|
|||
|
<section id="faq14">
|
|||
|
<title>(FAQ 14) Je suis connect<63> avec un modem c<>ble qui a son propre
|
|||
|
serveur web interne utilis<69> pour le param<61>trage et la supervision. Mais
|
|||
|
bien entendu, si j'active le blocage des adresse de la RFC 1918 sur mon
|
|||
|
interface internet eth0, le serveur web du modem est bloqu<71> lui
|
|||
|
aussi.</title>
|
|||
|
|
|||
|
<para>Est-il possible de rajouter une r<>gle avant la r<>gle de blocage
|
|||
|
rfc1918 de fa<66>on <20> autoriser tout le trafic en provenance et <20>
|
|||
|
destination de 192.168.100.1, adresse de mon modem, tout en continuant <20>
|
|||
|
filtrer les autres adresses rfc1918?</para>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Si vous utilisez une
|
|||
|
version de Shorewall ant<6E>rieure <20> la 1.3.1, cr<63>ez un fichier
|
|||
|
<filename>/etc/shorewall/start</filename> et mettez-y la commande
|
|||
|
suivante:</para>
|
|||
|
|
|||
|
<programlisting><command>run_iptables -I rfc1918 -s 192.168.100.1 -j ACCEPT</command> </programlisting>
|
|||
|
|
|||
|
<para>Si vous utilisez la version 1.3.1 ou une version plus r<>cente,
|
|||
|
ajoutez ce qui suit dans le fichier <ulink
|
|||
|
url="Documentation.htm#rfc1918">/etc/shorewall/rfc1918</ulink>
|
|||
|
(Remarque: Si vous utilisez 2.0.0 ou une version ult<6C>rieure, il est
|
|||
|
possible que ayez <20> pr<70>alablement <20> copier le fichier
|
|||
|
<filename>/usr/share/shorewall/rfc1918</filename> vers
|
|||
|
<filename>/etc/shorewall/rfc1918</filename>):</para>
|
|||
|
|
|||
|
<para>Assurez-vous d'ajouter l'entr<74>e AU-DESSUS de l'entr<74>e pour
|
|||
|
192.168.0.0/16.</para>
|
|||
|
|
|||
|
<programlisting>#SUBNET TARGET
|
|||
|
192.168.100.1 RETURN</programlisting>
|
|||
|
|
|||
|
<note>
|
|||
|
<para>Si vous ajoutez une seconde adresse IP <20> l'interface externe de
|
|||
|
votre firewall qui corresponde <20> l'adresse du modem, vous devez
|
|||
|
ajouter une entr<74>e pour cette adresse dans le fichier
|
|||
|
<filename>/etc/shorewall/rfc1918</filename>. Par exemple, si vous
|
|||
|
configurez l'adresse 192.168.100.2 sur votre firewall, vous devrez
|
|||
|
ajouter les deux entr<74>es suivantes dans le fichier
|
|||
|
<filename>/etc/shorewall/rfc1918</filename>:</para>
|
|||
|
|
|||
|
<programlisting>#SUBNET TARGET
|
|||
|
192.168.100.1 RETURN
|
|||
|
192.168.100.2 RETURN</programlisting>
|
|||
|
</note>
|
|||
|
|
|||
|
<section id="faq14a">
|
|||
|
<title>(FAQ 14a) Bien qu'il assigne des adresses IP publiques, le
|
|||
|
serveur DHCP de mon FAI a une adresse de la RFC 1918. Si j'active le
|
|||
|
filtrage RFC 1918 sur mon interface externe, mon client DHCP ne peut
|
|||
|
plus renouveler son bail.</title>
|
|||
|
|
|||
|
<para>La solution est la m<>me que dans la <xref linkend="faq14" />
|
|||
|
pr<70>sent<6E>e au-dessus. Substituez-y simplement l'adresse du serveur DHCP
|
|||
|
de votre FAI.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq14b">
|
|||
|
<title>(FAQ 14b) Je me connecte <20> internet par PPPoE. Quand j'essaye
|
|||
|
de me connecter au serveur web incorpor<6F> <20> mon modem DSL, la connexion
|
|||
|
est refus<75>e.</title>
|
|||
|
|
|||
|
<para>Dans mon journal je peux voir ce qui suit:</para>
|
|||
|
|
|||
|
<programlisting>Mar 1 18:20:07 Mail kernel: Shorewall:OUTPUT:REJECT:IN= OUT=eth0 SRC=192.168.1.2 DST=192.168.1.1 LEN=60
|
|||
|
TOS=0x00 PREC=0x00 TTL=64 ID=26774 DF PROTO=TCP SPT=32797 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 </programlisting>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: Le fait que le message
|
|||
|
soit journalis<69> par la cha<68>ne OUTPUT signifie que l'adresse de
|
|||
|
destination n'appartient <20> aucune des zones d<>finies (voir la <link
|
|||
|
linkend="faq17">FAQ 17</link>). Vous devez:</para>
|
|||
|
|
|||
|
<orderedlist>
|
|||
|
<listitem>
|
|||
|
<para>Ajouter une zone pour votre modem dans le fichier
|
|||
|
<filename>/etc/shorewall/zones</filename>:</para>
|
|||
|
|
|||
|
<programlisting>#ZONE TYPE OPTIONS
|
|||
|
modem ipv4</programlisting>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Dans le fichier
|
|||
|
<filename>/etc/shorewall/interfaces</filename>, associer cette
|
|||
|
zone avec l'interface <20> laquelle votre modem est connect<63> (eth0
|
|||
|
dans l'exemple):</para>
|
|||
|
|
|||
|
<programlisting>#ZONE INTERFACE BROADCAST OPTIONS
|
|||
|
modem eth0 detect</programlisting>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Autoriser le trafic web vers le modem dans le fichier
|
|||
|
<filename>/etc/shorewall/rules</filename>:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO DEST PORT(S)
|
|||
|
ACCEPT fw modem tcp 80
|
|||
|
ACCEPT loc modem tcp 80</programlisting>
|
|||
|
</listitem>
|
|||
|
</orderedlist>
|
|||
|
|
|||
|
<para>Notez qu'un grand nombre de ces modems cable/DSL n'a pas de
|
|||
|
passerelle par d<>faut ou alors que leur passerelle par d<>faut est
|
|||
|
fix<69>e <20> une adresse IP diff<66>rente de l'adresse que vous avez attribu<62>e
|
|||
|
<20> votre interface externe. Dans un cas comme dans l'autre, vous pouvez
|
|||
|
avoir des difficult<6C>s <20> naviguer sur votre modem depuis votre r<>seau
|
|||
|
local, m<>me si toutes les routes sont correctement <20>tablies sur votre
|
|||
|
firewall. Pour r<>soudre ce probl<62>me, on <quote>masquerade</quote> le
|
|||
|
trafic depuis r<>seau local vers le modem.</para>
|
|||
|
|
|||
|
<para><filename>/etc/shorewall/masq</filename>:</para>
|
|||
|
|
|||
|
<programlisting>#INTERFACE SUBNET ADDRESS
|
|||
|
eth0 eth1 # eth1 = interface to local network</programlisting>
|
|||
|
|
|||
|
<para>A titre d'exemple lorsque le modem cable/ADSL est
|
|||
|
<quote>pont<EFBFBD></quote> (bridge), vous pouvez aller voir <ulink
|
|||
|
url="myfiles.htm">ma configuration</ulink>. Dans ce cas, je
|
|||
|
<quote>masquerade</quote> en utilisant l'adresse IP de mon interface
|
|||
|
locale!</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Adresses Alias IP/Interfaces virtuelles</title>
|
|||
|
|
|||
|
<section id="faq18">
|
|||
|
<title>(FAQ 18) Existe-t-il un moyen d'utiliser des adresses IP alias<61>es
|
|||
|
avec Shorewall, et de maintenir des jeux de r<>gles s<>par<61>s pour ces
|
|||
|
diff<66>rentes adresses IP?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Oui. Voyez <ulink
|
|||
|
url="Shorewall_and_Aliased_Interfaces.html">Shorewall et les interfaces
|
|||
|
alias<61>es</ulink>.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Divers</title>
|
|||
|
|
|||
|
<section id="faq19">
|
|||
|
<title>(FAQ 19) J'ai ajout<75> des entr<74>es au fichier
|
|||
|
/etc/shorewall/tcrules mais elles semblent n'avoir aucun effet.
|
|||
|
Pourquoi?</title>
|
|||
|
|
|||
|
<para>Vous n'avez probablement pas mis TC_ENABLED=Yes dans le fichier
|
|||
|
<filename>/etc/shorewall/shorewall.conf</filename> et de ce fait le
|
|||
|
contenu du fichier tcrules est tout simplement ignor<6F>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq20">
|
|||
|
<title>(FAQ 20) Je viens d'installer un serveur. Dois-je modifier
|
|||
|
Shorewall pour autoriser les acc<63>s internet <20> mon serveur?</title>
|
|||
|
|
|||
|
<para>Oui. Consultez le <ulink
|
|||
|
url="shorewall_quickstart_guide.htm">guides de d<>marrage rapide</ulink>
|
|||
|
que vous avez utilis<69> pour votre configuration initiale afin d'avoir des
|
|||
|
informations n<>cessaires <20> l'<27>criture des r<>gles pour votre
|
|||
|
serveur.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq24">
|
|||
|
<title>(FAQ 24) Comment puis-je autoriser des connexions internet au
|
|||
|
port ssh, par exemple, mais seulement depuis certaines adresses IP
|
|||
|
sp<73>cifiques?</title>
|
|||
|
|
|||
|
<para>Dans la colonne SOURCE de la r<>gle, faites suivre
|
|||
|
<quote>net</quote> de <quote>:</quote> puis d'une liste s<>par<61>e par des
|
|||
|
virgules d'adresses de machines ou de sous-r<>seaux</para>
|
|||
|
|
|||
|
<programlisting>net:<ip1>,<ip2>,...</programlisting>
|
|||
|
|
|||
|
<example>
|
|||
|
<title>Exemple:</title>
|
|||
|
|
|||
|
<programlisting>ACCEPT net:192.0.2.16/28,192.0.2.44 fw tcp 22</programlisting>
|
|||
|
</example>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq26">
|
|||
|
<title>(FAQ 26) Quand j'essaye d'utiliser nmap avec n'importe laquelle
|
|||
|
des options SYN depuis le firewall lui-m<>me ou depuis n'importe quelle
|
|||
|
machine derri<72>re le firewall, j'obtiens une erreur <quote>operation not
|
|||
|
permitted</quote>. Comment utiliser nmap avec Shorewall?"</title>
|
|||
|
|
|||
|
<para>Retirez temporairement les r<>gles rejNotSyn, dropNotSyn and
|
|||
|
dropInvalid du fichier <filename>/etc/shorewall/rules</filename> et
|
|||
|
relancez Shorewall.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq27">
|
|||
|
<title>(FAQ 27) Je compile un nouveau noyau (kernel) pour mon firewall.
|
|||
|
A quoi devrais-je faire attention?</title>
|
|||
|
|
|||
|
<para>Commencez par regarder la page de <ulink
|
|||
|
url="kernel.htm">configuration du noyau pour Shorewall</ulink>. Vous
|
|||
|
souhaiterez sans doute vous assurer que vous avez bien s<>lectionn<6E>
|
|||
|
<quote> <emphasis role="bold">NAT of local connections (READ
|
|||
|
HELP)</emphasis> </quote> dans le menu de configuration de Netfilter.
|
|||
|
Sans cela, les r<>gles DNAT ayant votre firewall comme zone source ne
|
|||
|
fonctionneraient pas avec votre nouveau noyau.</para>
|
|||
|
|
|||
|
<section id="faq27a">
|
|||
|
<title>(FAQ 27a) Je viens de compiler (ou j'ai t<>l<EFBFBD>charg<72> ou r<>cup<75>r<EFBFBD>
|
|||
|
par n'importe quel autre moyen) et d'installer un nouveau noyau et
|
|||
|
Shorewall ne d<>marre plus. Je sais que les options de mon noyau sont
|
|||
|
correctes.</title>
|
|||
|
|
|||
|
<para>Les derni<6E>res lignes de la <ulink url="troubleshoot.htm">trace
|
|||
|
de d<>marrage</ulink> sont les suivantes:</para>
|
|||
|
|
|||
|
<programlisting>+ run_iptables2 -t nat -A eth0_masq -s 192.168.2.0/24 -d 0.0.0.0/0 -j
|
|||
|
MASQUERADE
|
|||
|
+ '[' 'x-t nat -A eth0_masq -s 192.168.2.0/24 -d 0.0.0.0/0 -j
|
|||
|
MASQUERADE' = 'x-t nat -A eth0_masq -s 192.168.2.0/24 -d 0.0.0.
|
|||
|
0/0 -j MASQUERADE' ']'
|
|||
|
+ run_iptables -t nat -A eth0_masq -s 192.168.2.0/24 -d 0.0.0.0/0 -j
|
|||
|
MASQUERADE
|
|||
|
+ iptables -t nat -A eth0_masq -s 192.168.2.0/24 -d 0.0.0.0/0 -j
|
|||
|
MASQUERADE
|
|||
|
iptables: Invalid argument
|
|||
|
+ '[' -z '' ']'
|
|||
|
+ stop_firewall
|
|||
|
+ set +x</programlisting>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> votre noyau contient
|
|||
|
des ent<6E>tes incompatibles avec celles utilis<69>es pour compiler votre
|
|||
|
programme <command>iptables</command>. Vous devez recompiler
|
|||
|
<command>iptables</command> en utilisant l'arbre de sources de votre
|
|||
|
nouveau noyau.</para>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq28">
|
|||
|
<title>(FAQ 28) Comment utiliser Shorewall en pont filtrant (Bridging
|
|||
|
Firewall)?</title>
|
|||
|
|
|||
|
<para>Le support Shorewall pour les ponts filtrant existe — <ulink
|
|||
|
url="bridge.html">voir ici pour les d<>tails</ulink>.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq39">
|
|||
|
<title>(FAQ 39) Comment bloquer les connexion <20> un domaine
|
|||
|
particulier?</title>
|
|||
|
|
|||
|
<para>J'ai essay<61> de bloquer Adsense de Google. Adsense est un
|
|||
|
Javascript que les gens ajoutent <20> leur pages web. J'ai ajout<75> la r<>gle
|
|||
|
suivante:</para>
|
|||
|
|
|||
|
<programlisting>#ACTION SOURCE DEST PROTO
|
|||
|
REJECT fw net:pagead2.googlesyndication.com all</programlisting>
|
|||
|
|
|||
|
<para>Cependant, ceci bloque parfois les acc<63>s <20> "google.com". Pourquoi?
|
|||
|
Avec dig, je trouve les adresses IP suivantes pour le domaine
|
|||
|
googlesyndication.com:<programlisting>216.239.37.99
|
|||
|
216.239.39.99</programlisting>Et celles-ci pour google.com:<programlisting>216.239.37.99
|
|||
|
216.239.39.99
|
|||
|
216.239.57.99</programlisting>Je suppose donc que ce n'est pas le domaine qui
|
|||
|
est bloqu<71> mais plut<75>t ses adresses IP. Comment bloquer r<>ellement un
|
|||
|
nom de domaine?</para>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse:</emphasis> Les filtres de paquets
|
|||
|
basent leurs d<>cisions sur le contenu des diff<66>rents ent<6E>tes de
|
|||
|
protocole qui se trouvent au d<>but de chaque paquet. Les filtres de
|
|||
|
paquet <20> suivi d'<27>tats (dont Netfilter est un exemple) utilisent une
|
|||
|
combinaison du contenu de l'ent<6E>te et de l'<27>tat de la connexion cr<63><72>
|
|||
|
lors du traitement de paquets pr<70>c<EFBFBD>dents. Netfilter (et l'usage qui en
|
|||
|
est fait par Shorewall) prend <20>galement en compte l'interface r<>seau sur
|
|||
|
laquelle chaque paquet est entr<74> ou sur laquelle le paquet va quitter le
|
|||
|
routeur/firewall.</para>
|
|||
|
|
|||
|
<para>Lorsque vous sp<73>cifiez un <ulink
|
|||
|
url="configuration_file_basics.htm#dnsnames">nom de domaine dans une
|
|||
|
r<>gle Shorewall</ulink>, le programme iptables r<>sout ce nom en une ou
|
|||
|
plusieurs adresses IP et les v<>ritables r<>gles qui seront cr<63><72>es sont
|
|||
|
exprim<69>es avec ces adresses IP. C'est pourquoi la r<>gle que vous avez
|
|||
|
entr<74>e est <20>quivalente <20>:</para>
|
|||
|
|
|||
|
<para><programlisting>#ACTION SOURCE DEST PROTO
|
|||
|
REJECT fw net:216.239.37.99 all
|
|||
|
REJECT fw net:216.239.39.99 all</programlisting>Sachant que
|
|||
|
l'h<>bergement multiple bas<61> sur le nom d'h<>te est une pratique courante
|
|||
|
(par exemple, lists.shorewall.net et www1.shorewall.net sont h<>berg<72>s
|
|||
|
tous les deux sur le m<>me syst<73>me avec un seule adresse IP), il n'est
|
|||
|
pas possible de filtrer les connexions vers un nom particulier au seul
|
|||
|
examen des ent<6E>tes de protocole. Alors que certains protocoles tels que
|
|||
|
<ulink url="FTP.html">FTP</ulink> n<>cessitent que le firewall examine et
|
|||
|
<20>ventuellement modifie les donn<6E>es (payload) du paquet, analyser les
|
|||
|
donn<6E>es de paquets individuellement ne fonctionne pas toujours car le
|
|||
|
flux de donn<6E>es de niveau applicatif peut <20>tre fractionn<6E> de mani<6E>re
|
|||
|
arbitraire entre les paquets. Ceci est une des faiblesses de l'extension
|
|||
|
'string match' de Netfilter que l'on trouve dans le Patch-O-Matic. Le
|
|||
|
seul moyen s<>r pour filtrer sur le contenu des paquets est d'utiliser un
|
|||
|
proxy pour les connexions concern<72>es -- dans le cas de HTTP, on pourra
|
|||
|
utiliser une application telle que <ulink
|
|||
|
url="Shorewall_Squid_Usage.html">Squid</ulink>. Lorsqu'on utilise un
|
|||
|
proxy, celui-ci r<>-assemble des messages complets de niveau applicatif
|
|||
|
qui peuvent alors <20>tre analys<79>s de mani<6E>re pr<70>cise.</para>
|
|||
|
</section>
|
|||
|
|
|||
|
<section id="faq42">
|
|||
|
<title>(FAQ 42) Comment connaitre quelles sont les fonctions support<72>es
|
|||
|
par mon noyau et ma version d'iptables?</title>
|
|||
|
|
|||
|
<para><emphasis role="bold">R<EFBFBD>ponse</emphasis>: En tant que root,
|
|||
|
utilisez la commande <command>shorewall show
|
|||
|
capabilities</command>.</para>
|
|||
|
|
|||
|
<programlisting>gateway:~# shorewall show capabilities
|
|||
|
Loading /usr/share/shorewall/functions...
|
|||
|
Processing /etc/shorewall/params ...
|
|||
|
Processing /etc/shorewall/shorewall.conf...
|
|||
|
Loading Modules...
|
|||
|
Shorewall has detected the following iptables/netfilter capabilities:
|
|||
|
NAT: Available
|
|||
|
Packet Mangling: Available
|
|||
|
Multi-port Match: Available
|
|||
|
Extended Multi-port Match: Available
|
|||
|
Connection Tracking Match: Available
|
|||
|
Packet Type Match: Available
|
|||
|
Policy Match: Available
|
|||
|
Physdev Match: Available
|
|||
|
IP range Match: Available
|
|||
|
Recent Match: Available
|
|||
|
Owner Match: Available
|
|||
|
Ipset Match: Available
|
|||
|
ROUTE Target: Available
|
|||
|
Extended MARK Target: Available
|
|||
|
CONNMARK Target: Available
|
|||
|
Connmark Match: Available
|
|||
|
Raw Table: Available
|
|||
|
gateway:~#</programlisting>
|
|||
|
</section>
|
|||
|
</section>
|
|||
|
</article>
|