Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > a412ceb851151854794ced2a242192bb > files > 1899

howto-html-fr-20080722-1mdv2010.0.noarch.rpm

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>3. 
Utilisation
  </title>
<link rel="stylesheet" href="style.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<link rel="start" href="index.html" title="
HOWTO IPv6 Linux (fr)
 ">
<link rel="up" href="ch16.html" title="Chapitre 16. 
Mettre en place le pare-feu
 ">
<link rel="prev" href="ch16s02.html" title="2. 
Préparation
  ">
<link rel="next" href="ch17.html" title="Chapitre 17. 
La sécurité
 ">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">3. 
Utilisation
  </th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="ch16s02.html">Précédent</a> </td>
<th width="60%" align="center">Chapitre 16. 
Mettre en place le pare-feu
 </th>
<td width="20%" align="right"> <a accesskey="n" href="ch17.html">Suivant</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" lang="fr">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id2545732"></a>3. 
Utilisation
  </h2></div></div></div>
<div class="sect2" lang="fr">
<div class="titlepage"><div><div><h3 class="title">
<a name="id2545737"></a>3.1. 
Vérifier le support
   </h3></div></div></div>
<p>
Chargez le module, s'il est compilé
   </p>
<pre class="programlisting">
# modprobe ip6_tables 

   </pre>
<p>
Vérifiez si le noyau courant prend en charge iptables
   </p>
<pre class="programlisting">
# [ ! -f /proc/net/ip6_tables_names ] &amp;&amp; echo "Current kernel doesn't support
¬ 'ip6tables' firewalling (IPv6)!" 

   </pre>
</div>
<div class="sect2" lang="fr">
<div class="titlepage"><div><div><h3 class="title">
<a name="id2545770"></a>3.2. 
Apprendre à utiliser ip6tables
   </h3></div></div></div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2545777"></a>3.2.1. 
Lister toutes les entrées netfilter IPv6
    </h4></div></div></div>
<div class="itemizedlist"><ul type="disc"><li><p>
de façon abrégée
     </p></li></ul></div>
<pre class="programlisting">
# ip6tables -L 

    </pre>
<div class="itemizedlist"><ul type="disc"><li><p>
de façon détaillée
     </p></li></ul></div>
<pre class="programlisting">
# ip6tables -n -v --line-numbers -L 

    </pre>
</div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2545819"></a>3.2.2. 
Lister un filtre spécifique
    </h4></div></div></div>
<pre class="programlisting">
# ip6tables -n -v --line-numbers -L INPUT 

    </pre>
</div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2545835"></a>3.2.3. 
Insérer une règle de journal au filtre entrant, avec des options
    </h4></div></div></div>
<pre class="programlisting">
# ip6tables --table filter --append INPUT  -j LOG --log-prefix "INPUT:"
¬ --log-level 7 

    </pre>
</div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2545852"></a>3.2.4. 
Insérer une règle de destruction (<span class="emphasis"><em>drop rule</em></span>) au filtre entrant
    </h4></div></div></div>
<pre class="programlisting">
# ip6tables --table filter --append INPUT  -j DROP 

    </pre>
</div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2545871"></a>3.2.5. 
Détruire une règle par son numéro
    </h4></div></div></div>
<pre class="programlisting">
# ip6tables --table filter --delete INPUT 1 

    </pre>
</div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2545887"></a>3.2.6. 
Autoriser ICMPv6
    </h4></div></div></div>
<p>
Avec les plus anciens noyaux (noyau non patché 2.4.5 et iptables-1.2.2), aucun type ne peut être spécifié
    </p>
<div class="itemizedlist"><ul type="disc"><li><p>
Accepter le trafic ICMPv6 entrant dans les tunnels
     </p></li></ul></div>
<pre class="programlisting">
# ip6tables -A INPUT -i sit+ -p icmpv6 -j ACCEPT 

    </pre>
<div class="itemizedlist"><ul type="disc"><li><p>
Autoriser le trafic ICMPv6 sortant des tunnels
     </p></li></ul></div>
<pre class="programlisting">
# ip6tables -A OUTPUT -o sit+ -p icmpv6 -j ACCEPT 

    </pre>
<p>
Les nouveaux noyaux permettent de spécifier les types ICMPv6:
    </p>
<pre class="programlisting">
# ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT

    </pre>
</div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2545952"></a>3.2.7. 
La limitation du débit
    </h4></div></div></div>
<p>
Il peut arriver (l'auteur l'a déjà vu) qu'un engorgement ICMPv6 se produise, c'est pourquoi vous devriez utiliser la limitation de débit, puisqu'elle est disponible, et ce, au moins pour le jeu de règles ICMPv6. De plus, des règles de journalisation devraient aussi être mises en place pour garder trace d'attaques DoS, grâce à syslog et au stockage des fichiers de log. Un exemple de limitation du débit ICMPv6 ressemble à ceci:
    </p>
<pre class="programlisting">
# ip6tables -A INPUT --protocol icmpv6 --icmpv6-type echo-request
¬ -j ACCEPT --match limit --limit 30/minute

    </pre>
</div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2545982"></a>3.2.8. 
Permettre le trafic entrant SSH
    </h4></div></div></div>
<p>
Ici l'exemple montré est un jeu de règles permettant les connexions entrantes SSH par une adresse IPv6 donnée
    </p>
<div class="itemizedlist"><ul type="disc"><li><p>
Autoriser le trafic entrant SSH provenant de 3ffe:ffff:100::1/128 
     </p></li></ul></div>
<pre class="programlisting">
# ip6tables -A INPUT -i sit+ -p tcp -s 3ffe:ffff:100::1/128 --sport 512:65535
¬ --dport 22 -j ACCEPT 

    </pre>
<div class="itemizedlist"><ul type="disc"><li><p>
Autoriser les paquets réponse (pour le moment, la traque du trafic IPv6 n'est pas au coeur de l'implémentation de netfilter) 
     </p></li></ul></div>
<pre class="programlisting">
# ip6tables -A OUTPUT -o sit+ -p tcp -d 3ffe:ffff:100::1/128 --dport 512:65535
¬ --sport 22 ! --syn j ACCEPT 

    </pre>
</div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2546040"></a>3.2.9. 
Rendre disponible le trafic tunnelé IPv6-in-IPv4
    </h4></div></div></div>
<p>
Pour accepter les paquets tunnelés IPv6-in-IPv4, vous devez insérer des règles dans votre installation de pare-feu IPv4 relatives à de tels paquets, pour exemple 
    </p>
<div class="itemizedlist"><ul type="disc"><li><p>
Accepter le trafic entrant IPv6-in-IPv4 sur l'interface ppp0 
     </p></li></ul></div>
<pre class="programlisting">
# iptables -A INPUT -i ppp0 -p ipv6 -j ACCEPT 

    </pre>
<div class="itemizedlist"><ul type="disc"><li><p>
Permettre au trafic IPv6-in-IPv4 de sortir par l'interface ppp0 
     </p></li></ul></div>
<pre class="programlisting">
# iptables -A OUTPUT -o ppp0 -p ipv6 -j ACCEPT 

    </pre>
<p>
Si vous avez seulement un tunnel statique, vous pouvez aussi spécifier l'adresse IPv4, comme ici
    </p>
<div class="itemizedlist"><ul type="disc"><li><p>
Accepter le trafic entrant IPv6-in-IPv4 sur l'interface ppp0 et provenant de l'extrémité du tunnel 1.2.3.4 
     </p></li></ul></div>
<pre class="programlisting">
# iptables -A INPUT -i ppp0 -p ipv6 -s 1.2.3.4 -j ACCEPT 

    </pre>
<div class="itemizedlist"><ul type="disc"><li><p>
Autoriser le trafic sortant IPv6-in-IPv4 vers l'interface ppp0 pour l'extrémité du tunnel 1.2.3.4
     </p></li></ul></div>
<pre class="programlisting">
# iptables -A OUTPUT -o ppp0 -p ipv6 -d 1.2.3.4 -j ACCEPT 

    </pre>
</div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2546144"></a>3.2.10. 
Protection contre les requêtes de connexion entrante TCP 
    </h4></div></div></div>
<p>
TRÈS RECOMMANDÉ! Pour des questions de sécurité, vous devriez vraiment insérer une règle qui bloque les requêtes de connexion TCP entrante. Ajouter l'option "-i", si d'autres noms d'interface sont utilisés! 
    </p>
<div class="itemizedlist"><ul type="disc"><li><p>
Bloquer les requêtes de connexion entrante TCP vers cet hôte
     </p></li></ul></div>
<pre class="programlisting">
# ip6tables -I INPUT -i sit+ -p tcp --syn -j DROP 

    </pre>
<div class="itemizedlist"><ul type="disc"><li><p>
Bloquer les requêtes de connexion entrante TCP allant vers les hôtes placés derrière ce routeur
     </p></li></ul></div>
<pre class="programlisting">
# ip6tables -I FORWARD -i sit+ -p tcp --syn -j DROP 

    </pre>
<p>
Peut-être ces règles doivent-elles être placées sous d'autres, mais ça, c'est votre travail. La meilleure façon de faire est de créer un script et d'exécuter les règles d'une manière spécifique.
    </p>
</div>
<div class="sect3" lang="fr">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2546213"></a>3.2.11. 
Protection contre les requêtes de connexion entrante UDP
    </h4></div></div></div>
<p>
TRÈS RECOMMANDÉ AUSSI! Comme il a été dit dans la section concernant la mise en place d'un pare-feu, il est possible de contrôler les ports des sessions sortantes UDP/TCP. Si tous vos systèmes IPv6 locaux utilisent les ports locaux, par exemple de 32768 à 60999, vous êtes aussi capables de filtrer les connexions UDP (jusqu'à ce que la traque des connexions fonctionnent) comme suit: 
    </p>
<div class="itemizedlist"><ul type="disc"><li><p>
Bloquer les paquets entrants UDP qui ne peuvent être des réponses de requêtes sortantes de cet hôte 
     </p></li></ul></div>
<pre class="programlisting">
# ip6tables -I INPUT -i sit+ -p udp ! --dport 32768:60999 -j DROP 

    </pre>
<div class="itemizedlist"><ul type="disc"><li><p>
Bloquer les paquets entrants UDP qui ne peuvent être des réponses de requêtes d'hôtes placés derrière ce routeur, et transitant à travers lui
     </p></li></ul></div>
<pre class="programlisting">
# ip6tables -I FORWARD -i sit+ -p udp ! --dport 32768:60999 -j DROP 

    </pre>
</div>
</div>
<div class="sect2" lang="fr">
<div class="titlepage"><div><div><h3 class="title">
<a name="id2546281"></a>3.3. 
Un exemple plus conséquent
   </h3></div></div></div>
<p>
Les lignes qui suivent montrent en exemple une installation plus sophistiquée. Bonne création de jeux de règles netfilter6...
   </p>
<pre class="programlisting">
# ip6tables -n -v -L 
Chain INPUT (policy DROP 0 packets, 0 bytes) 
 pkts bytes target     prot opt in     out     source               destination
    0     0 extIN      all      sit+   *       ::/0                 ::/0 
    4   384 intIN      all      eth0   *       ::/0                 ::/0 
    0     0 ACCEPT     all      *      *       ::1/128              ::1/128 
    0     0 ACCEPT     all      lo     *       ::/0                 ::/0 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `INPUT-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain FORWARD (policy DROP 0 packets, 0 bytes) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 int2ext    all      eth0   sit+    ::/0                 ::/0 
    0     0 ext2int    all      sit+   eth0    ::/0                 ::/0 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `FORWARD-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain OUTPUT (policy DROP 0 packets, 0 bytes) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 extOUT     all      *      sit+    ::/0                 ::/0 
    4   384 intOUT     all      *      eth0    ::/0                 ::/0 
    0     0 ACCEPT     all      *      *       ::1/128              ::1/128 
    0     0 ACCEPT     all      *      lo      ::/0                 ::/0 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `OUTPUT-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain ext2int (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0 
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0       
¬        tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `ext2int-default:' 
    0     0 DROP       tcp      *      *       ::/0                 ::/0 
    0     0 DROP       udp      *      *       ::/0                 ::/0 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain extIN (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     tcp      *      *       3ffe:400:100::1/128  ::/0       
¬        tcp spts:512:65535 dpt:22 
    0     0 ACCEPT     tcp      *      *       3ffe:400:100::2/128  ::/0       
¬        tcp spts:512:65535 dpt:22 
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0 
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0       
¬        tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 
    0     0 ACCEPT     udp      *      *       ::/0                 ::/0       
¬        udp spts:1:65535 dpts:1024:65535 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `extIN-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain extOUT (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     tcp      *      *       ::/0                
¬ 3ffe:ffff:100::1/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 
    0     0 ACCEPT     tcp      *      *       ::/0                
¬ 3ffe:ffff:100::2/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0 
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0       
¬        tcp spts:1024:65535 dpts:1:65535 
    0     0 ACCEPT     udp      *      *       ::/0                 ::/0       
¬        udp spts:1024:65535 dpts:1:65535 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `extOUT-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain int2ext (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0 
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0       
¬        tcp spts:1024:65535 dpts:1:65535 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `int2ext:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `int2ext-default:' 
    0     0 DROP       tcp      *      *       ::/0                 ::/0 
    0     0 DROP       udp      *      *       ::/0                 ::/0 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain intIN (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     all      *      *       ::/0                
¬ fe80::/ffc0:: 
    4   384 ACCEPT     all      *      *       ::/0                 ff02::/16 
 
Chain intOUT (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     all      *      *       ::/0                
¬ fe80::/ffc0:: 
    4   384 ACCEPT     all      *      *       ::/0                 ff02::/16 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `intOUT-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 

   </pre>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="ch16s02.html">Précédent</a> </td>
<td width="20%" align="center"><a accesskey="u" href="ch16.html">Niveau supérieur</a></td>
<td width="40%" align="right"> <a accesskey="n" href="ch17.html">Suivant</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">2. 
Préparation
   </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td>
<td width="40%" align="right" valign="top"> Chapitre 17. 
La sécurité
 </td>
</tr>
</table>
</div>
</body>
</html>