 <?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://collilieux.info/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel>
        <title>[oui qui] blog:2009</title>
        <description></description>
        <link>http://collilieux.info/</link>
        <lastBuildDate>Tue, 07 Sep 2010 16:02:46 +0200</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>http://collilieux.info/lib/images/favicon.ico</url>
            <title>[oui qui]</title>
            <link>http://collilieux.info/</link>
        </image>
        <item>
            <title>blog:2009:1026filtrer_les_courriels_sur_le_serveur</title>
            <link>http://collilieux.info/blog/2009/1026filtrer_les_courriels_sur_le_serveur</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;filtrage_des_courriels_sur_le_serveur&quot; id=&quot;filtrage_des_courriels_sur_le_serveur&quot;&gt;filtrage des courriels sur le serveur&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Comme beaucoup, je consulte mes courriels stockés sur mon serveur depuis plusieurs endroits, plusieurs machines, que ce soit via un client lourd avec le protocole &lt;acronym title=&quot;Internet Message Access Protocol&quot;&gt;IMAP&lt;/acronym&gt; ou un webmail. Comment retrouver les messages classés par dossier quelle que soit la solution utilisée ?
&lt;/p&gt;

&lt;p&gt;
Auparavant, j&amp;#039;utilisais les filtres de mon client de messagerie, &lt;a href=&quot;http://www.claws-mail.org&quot; class=&quot;urlextern&quot; title=&quot;http://www.claws-mail.org&quot;  rel=&quot;nofollow&quot;&gt;claws-mail&lt;/a&gt; mais il n&amp;#039;était pas évident de copier ces filtres sur les différentes machines. De plus, le webmail &lt;a href=&quot;http://roundcube.net&quot; class=&quot;urlextern&quot; title=&quot;http://roundcube.net&quot;  rel=&quot;nofollow&quot;&gt;roundcube&lt;/a&gt; ne supportait pas de filtrage.
&lt;/p&gt;

&lt;p&gt;
La solution est venue de la version 0.3 de &lt;a href=&quot;http://roundcube.net&quot; class=&quot;urlextern&quot; title=&quot;http://roundcube.net&quot;  rel=&quot;nofollow&quot;&gt;roundcube&lt;/a&gt; et du langage de filtrage &lt;a href=&quot;http://www.ietf.org/rfc/rfc3028.txt&quot; class=&quot;urlextern&quot; title=&quot;http://www.ietf.org/rfc/rfc3028.txt&quot;  rel=&quot;nofollow&quot;&gt;Sieve&lt;/a&gt;. Avec Sieve, les filtres sont intégrés au &lt;a href=&quot;http://en.wikipedia.org/wiki/Mail Delivery Agent&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/Mail Delivery Agent&quot;&gt;MDA&lt;/a&gt; et ainsi triés directement sur le serveur. Un des plugiciels de &lt;a href=&quot;http://roundcube.net&quot; class=&quot;urlextern&quot; title=&quot;http://roundcube.net&quot;  rel=&quot;nofollow&quot;&gt;roundcube&lt;/a&gt; 0.3 permet d&amp;#039;éditer ces filtres via le webmail. Il est aussi possible de modifier le fichier de filtrage « à la main » mais le plugiciel roundcube est bien pratique, le langage est assez complet et forcément un peu long à appréhender.
&lt;/p&gt;

&lt;p&gt;
J&amp;#039;ai donc mis à jour &lt;a href=&quot;http://roundcube.net&quot; class=&quot;urlextern&quot; title=&quot;http://roundcube.net&quot;  rel=&quot;nofollow&quot;&gt;roundcube&lt;/a&gt; et &lt;a href=&quot;http://wiki.dovecot.org/ManageSieve&quot; class=&quot;urlextern&quot; title=&quot;http://wiki.dovecot.org/ManageSieve&quot;  rel=&quot;nofollow&quot;&gt;configuré dovecot&lt;/a&gt; pour qu&amp;#039;il prenne en charge le protocole &lt;a href=&quot;http://tools.ietf.org/id/draft-martin-managesieve-12.txt&quot; class=&quot;urlextern&quot; title=&quot;http://tools.ietf.org/id/draft-martin-managesieve-12.txt&quot;  rel=&quot;nofollow&quot;&gt;manageseive&lt;/a&gt;. Maintenant, la plupart des courriels sont classés directement par le serveur et c&amp;#039;est vraiment pratique.
&lt;/p&gt;

&lt;p&gt;
Le script Sieve créé sur le serveur ressemble à :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
$ head -n 15 .dovecot.sieve
require [&amp;quot;fileinto&amp;quot;];
# rule:[openstreetmap]
if anyof (header :contains &amp;quot;List-Id&amp;quot; &amp;quot;.openstreetmap.org&amp;quot;)
{
        fileinto &amp;quot;osm&amp;quot;;
        stop;
}
# rule:[gulliver]
elsif anyof (header :contains &amp;quot;List-Id&amp;quot; &amp;quot;gulliver.listes.linux-france.org&amp;quot;)
{
        fileinto &amp;quot;Gulliver&amp;quot;;
        stop;
}
[...]
&lt;/pre&gt;

&lt;p&gt;
Pour l&amp;#039;installation, j&amp;#039;ai juste lu les docs des différents composants. Par contre, il me semble que le paquet &lt;a href=&quot;http://packages.debian.org/lenny/dovecot-common&quot; class=&quot;urlextern&quot; title=&quot;http://packages.debian.org/lenny/dovecot-common&quot;  rel=&quot;nofollow&quot;&gt;dovecot&lt;/a&gt; de DEBIAN Lenny ne supporte pas les filtres Sieve, il faut utiliser &lt;a href=&quot;http://packages.debian.org/lenny-backports/dovecot-common&quot; class=&quot;urlextern&quot; title=&quot;http://packages.debian.org/lenny-backports/dovecot-common&quot;  rel=&quot;nofollow&quot;&gt;le paquet venant de  backports&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
 — &lt;em&gt;Le 26/10/2009 – Sylvain Collilieux – Ce texte est sous licence &lt;a href=&quot;http://artlibre.org/licence/lal/&quot; class=&quot;urlextern&quot; title=&quot;http://artlibre.org/licence/lal/&quot;  rel=&quot;nofollow&quot;&gt;Art Libre&lt;/a&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://collilieux.info/tag/libre?do=showtag&amp;amp;tag=tag%3Alibre&quot; class=&quot;wikilink1&quot; title=&quot;tag:libre&quot; rel=&quot;tag&quot;&gt;libre&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
        <category>libre</category>
            <pubDate>Mon, 26 Oct 2009 23:08:31 +0200</pubDate>
        </item>
        <item>
            <title>blog:2009:1101bannissement_d_adresses_ip</title>
            <link>http://collilieux.info/blog/2009/1101bannissement_d_adresses_ip</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;bannissement_d_adresses_ip&quot; id=&quot;bannissement_d_adresses_ip&quot;&gt;bannissement d&amp;#039;adresses IP&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Qui n&amp;#039;a pas vu des tentatives de connexion &lt;acronym title=&quot;Secure Shell&quot;&gt;SSH&lt;/acronym&gt; massives sur son serveur ? Il ne se passe pas un jour sans que ce genre de « désagrément » n&amp;#039;arrive. Ce sont des &lt;a href=&quot;http://en.wikipedia.org/wiki/attaques par force brute&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/attaques par force brute&quot;&gt;attaques par force brute&lt;/a&gt;, un abruti tente de se connecter avec différents utilisateurs (par exemple &lt;code&gt;root&lt;/code&gt;) et différents mots de passe pour obtenir un shell sur la machine. C&amp;#039;est un peu comme les pourriels, il suffit qu&amp;#039;une connexion sur plusieurs dizaines de milliers réussisse pour que la campagne soit « rentable », ça ne coûte pas grand chose.
&lt;/p&gt;

&lt;p&gt;
Pour parer ces attaques, une technique consiste à bloquer une adresse IP temporairement après n connexions infructueuses. C&amp;#039;est ce que fait &lt;a href=&quot;http://www.fail2ban.org/wiki/index.php/Main_Page&quot; class=&quot;urlextern&quot; title=&quot;http://www.fail2ban.org/wiki/index.php/Main_Page&quot;  rel=&quot;nofollow&quot;&gt;fail2ban&lt;/a&gt;. Pour cela, il consulte les logs et après 6 « erreurs de mot de passe » bannit l&amp;#039;adresse IP pendant 30 minutes avec &lt;a href=&quot;http://www.netfilter.org/&quot; class=&quot;urlextern&quot; title=&quot;http://www.netfilter.org/&quot;  rel=&quot;nofollow&quot;&gt;iptables&lt;/a&gt; (ou en modifiant le fichier &lt;code&gt;/etc/hosts.deny&lt;/code&gt;). Depuis quelques temps, ces 30 minutes ne suffisent plus, les attaquants essaient pendant des heures. Une solution pourrait être d&amp;#039;augmenter ce délai mais quelques uns persistent pendant 24h ! J&amp;#039;ai donc choisi une solution plus … radicale.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.fail2ban.org/wiki/index.php/Main_Page&quot; class=&quot;urlextern&quot; title=&quot;http://www.fail2ban.org/wiki/index.php/Main_Page&quot;  rel=&quot;nofollow&quot;&gt;fail2ban&lt;/a&gt; peut avertir l&amp;#039;administrateur par courriel. Lorsque que je remarque que la même adresse IP revient souvent (elle apparaît dans le titre du message), je la bannis pour une durée indéterminée. Pour cela, j&amp;#039;ai mis en place quelques scripts pour ma faciliter la tâche.
&lt;/p&gt;

&lt;p&gt;
Tout d&amp;#039;abord, j&amp;#039;ai créé un script d&amp;#039;init qui prépare le pare-feu.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;init.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;parefeu 
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
iptables &lt;span class=&quot;re5&quot;&gt;--append&lt;/span&gt; INPUT &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt; state &lt;span class=&quot;re5&quot;&gt;--state&lt;/span&gt; ESTABLISHED,RELATED &lt;span class=&quot;re5&quot;&gt;-j&lt;/span&gt; ACCEPT
iptables &lt;span class=&quot;re5&quot;&gt;--append&lt;/span&gt; INPUT &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; lo &lt;span class=&quot;re5&quot;&gt;-j&lt;/span&gt; ACCEPT
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; update-rc.d &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; parefeu defaults &lt;span class=&quot;nu0&quot;&gt;90&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Le script crée une règle qui autorise les connexions déjà établies, pour éviter de repasser par toutes les règles pour tous les paquets, c&amp;#039;est assez classique pour un pare-feu. La seconde règle autorise tous les flux sur l&amp;#039;interface &lt;a href=&quot;http://www.linux-france.org/prj/jargonf/L/loopback.html&quot; class=&quot;urlextern&quot; title=&quot;http://www.linux-france.org/prj/jargonf/L/loopback.html&quot;  rel=&quot;nofollow&quot;&gt;loopback&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
La commande &lt;code&gt;update-rc.d&lt;/code&gt; crée le lien nécessaire à l&amp;#039;exécution du script au démarrage.
&lt;/p&gt;

&lt;p&gt;
Pour bannir une adresse IP, j&amp;#039;ai créé quelques fonctions en BASH.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; bannissement
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;CHAIN&lt;/span&gt;=&lt;span class=&quot;st_h&quot;&gt;'bannissement'&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IPTABLES&lt;/span&gt;=&lt;span class=&quot;st_h&quot;&gt;'sudo /sbin/iptables'&lt;/span&gt; 
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# au lancement, création de la chaine de bannissement qui ne fait rien (RETURN)&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; start_ban &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# la chaine bannissement ne fera qu'envoyer le paquet vers la chaine qui supprimera la paquet&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--new-chain&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$CHAIN&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--append&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$CHAIN&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-j&lt;/span&gt; RETURN
	&lt;span class=&quot;co0&quot;&gt;# création de la chaine de suppression et log&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--new-chain&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${CHAIN}&lt;/span&gt;&lt;span class=&quot;re5&quot;&gt;-drop&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--append&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${CHAIN}&lt;/span&gt;&lt;span class=&quot;re5&quot;&gt;-drop&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--jump&lt;/span&gt; LOG &lt;span class=&quot;re5&quot;&gt;--log-prefix&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'bannissement: '&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--append&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${CHAIN}&lt;/span&gt;&lt;span class=&quot;re5&quot;&gt;-drop&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--jump&lt;/span&gt; DROP
	&lt;span class=&quot;co0&quot;&gt;# insertion de la chain de bannissement en second après celle qui accepte les connexions déjà établies&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--insert&lt;/span&gt; INPUT 2 &lt;span class=&quot;re5&quot;&gt;--protocol&lt;/span&gt; TCP &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt; state &lt;span class=&quot;re5&quot;&gt;--state&lt;/span&gt; new &lt;span class=&quot;re5&quot;&gt;--jump&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$CHAIN&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# affichage des règles&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--list&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--numeric&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# suppression des bannissement&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; stop_ban &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# vidage + suppression des 2 chaines créées pour l'occassion&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--flush&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$CHAIN&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--flush&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${CHAIN}&lt;/span&gt;&lt;span class=&quot;re5&quot;&gt;-drop&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--delete-chain&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$CHAIN&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--delete-chain&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${CHAIN}&lt;/span&gt;&lt;span class=&quot;re5&quot;&gt;-drop&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# affichage du résultat&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--list&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--numeric&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# ajout d'un bannissement&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; add_ban &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# précaution en cas de manque d'argument&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; $&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Il faut spécifier une adresse !&amp;quot;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# insert de l'adresse à bannir&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# l'action est de renvoyer le paquet à la chaine bannissement-drop qui supprimera et loguera le paquet&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--insert&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$CHAIN&lt;/span&gt; 1 &lt;span class=&quot;re5&quot;&gt;--source&lt;/span&gt; $1 &lt;span class=&quot;re5&quot;&gt;--jump&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${CHAIN}&lt;/span&gt;&lt;span class=&quot;re5&quot;&gt;-drop&lt;/span&gt; 
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--insert&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$CHAIN&lt;/span&gt; 1 &lt;span class=&quot;re5&quot;&gt;--source&lt;/span&gt; $1 &lt;span class=&quot;re5&quot;&gt;--match&lt;/span&gt; comment &lt;span class=&quot;re5&quot;&gt;--comment&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$CHAIN&lt;/span&gt;&amp;quot;&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--list&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--numeric&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# suppression d'un bannissement&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; del_ban &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# précaution en cas de manque d'argument&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; $&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Il faut spécifier une adresse !&amp;quot;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# suppression de l'adresse à bannir&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--delete&lt;/span&gt; bannissement &lt;span class=&quot;re5&quot;&gt;--src&lt;/span&gt; $1 &lt;span class=&quot;re5&quot;&gt;--jump&lt;/span&gt; bannissement-drop
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--delete&lt;/span&gt; bannissement &lt;span class=&quot;re5&quot;&gt;--src&lt;/span&gt; $1 &lt;span class=&quot;re5&quot;&gt;--match&lt;/span&gt; comment &lt;span class=&quot;re5&quot;&gt;--comment&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$CHAIN&lt;/span&gt;&amp;quot;&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;$IPTABLES&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--list&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--numeric&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
La fonction &lt;code&gt;start_ban&lt;/code&gt; et &lt;code&gt;stop_ban&lt;/code&gt; permettent respectivement de préparer &lt;code&gt;iptables&lt;/code&gt; pour les bannissements et de les arrêter en supprimant la chaîne précédemment créée. &lt;code&gt;start_ban&lt;/code&gt; crée une chaîne spécifique appelée ici « bannissement ». L&amp;#039;action par défaut de cet chaîne est de retourner au processus de traitement des paquets. Cette chaîne est ajoutée à &lt;code&gt;INPUT&lt;/code&gt; pour traiter les paquet entrants. &lt;code&gt;add_ban&lt;/code&gt; bannît l&amp;#039;adresse IP. Le bannissement consiste à insérer une ligne au début de la chaîne (avant celle qui contient RETURN). Pour permettre de supprimer le paquet et de la tracer, on renvoie les paquets qui arrivent là à la chaîne &lt;code&gt;bannissement-drop&lt;/code&gt; qui effectue deux actions sur tous les paquets qui la traverse : la cible &lt;code&gt;LOG&lt;/code&gt; permet de garder une trace dans via syslog, la cible &lt;code&gt;DROP&lt;/code&gt; supprime le paquet.
&lt;/p&gt;

&lt;p&gt;
La ligne &lt;code&gt;$IPTABLES –insert $CHAIN 1 –source $1 –match comment –comment “$CHAIN”
&lt;/code&gt; permet de compter les paquets pour le &lt;a href=&quot;http://collectd.org/wiki/index.php/Plugin:IPTables&quot; class=&quot;urlextern&quot; title=&quot;http://collectd.org/wiki/index.php/Plugin:IPTables&quot;  rel=&quot;nofollow&quot;&gt;plugiciel iptables&lt;/a&gt; de &lt;a href=&quot;http://collectd.org&quot; class=&quot;urlextern&quot; title=&quot;http://collectd.org&quot;  rel=&quot;nofollow&quot;&gt;collectd&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
On charge le script et ses fonctions avec la commande &lt;code&gt;source bannissement&lt;/code&gt;. On initialise les bannissements avec &lt;code&gt;start_ban&lt;/code&gt;, on les arrête avec &lt;code&gt;stop_ban&lt;/code&gt;. Pour bannir une adresse : &lt;code&gt;add_ban 10.1.1.1&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Il existe d&amp;#039;autres possibilités, peut-être plus efficaces. Par exemple, ajouter une ligne dans le fichier &lt;code&gt;/etc/hosts.deny&lt;/code&gt; pour l&amp;#039;adresse IP concernée. Si vous trouvez mieux, n&amp;#039;hésitez pas à commenter.
&lt;/p&gt;

&lt;p&gt;
 — &lt;em&gt;Le 02/11/2009 – Sylvain Collilieux – Ce texte est sous licence &lt;a href=&quot;http://artlibre.org/licence/lal/&quot; class=&quot;urlextern&quot; title=&quot;http://artlibre.org/licence/lal/&quot;  rel=&quot;nofollow&quot;&gt;Art Libre&lt;/a&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://collilieux.info/tag/libre_securite?do=showtag&amp;amp;tag=tag%3Alibre_securite&quot; class=&quot;wikilink1&quot; title=&quot;tag:libre_securite&quot; rel=&quot;tag&quot;&gt;libre,sécurité&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
        <category>libre,sécurité</category>
            <pubDate>Wed, 06 Jan 2010 23:07:48 +0200</pubDate>
        </item>
        <item>
            <title>blog:2009:1109passage_en_ipv6</title>
            <link>http://collilieux.info/blog/2009/1109passage_en_ipv6</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;passage_en_ipv6&quot; id=&quot;passage_en_ipv6&quot;&gt;passage en IPv6&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;a href=&quot;http://iwi.lebardegandi.net/post/2009/11/09/Votre-serveur-en-IPV6&quot; class=&quot;urlextern&quot; title=&quot;http://iwi.lebardegandi.net/post/2009/11/09/Votre-serveur-en-IPV6&quot;  rel=&quot;nofollow&quot;&gt;gandi&lt;/a&gt; propose une expérimentation IPv6. Je me suis inscrit et dorénavant :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
$ host collilieux.net
collilieux.net has address 92.243.17.207
collilieux.net has IPv6 address 2001:4b98:43::5cf3:11cf:207
collilieux.net mail is handled by 10 moe.collilieux.net.
&lt;/pre&gt;

&lt;p&gt;
Je suis curieux de voir le nombre de hits en IPv6 dans les prochains jours mais j&amp;#039;ai une petite idée …
&lt;/p&gt;

&lt;p&gt;
Il reste à adapter les règles de sécurité.
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://collilieux.info/tag/hebergement?do=showtag&amp;amp;tag=tag%3Ahebergement&quot; class=&quot;wikilink1&quot; title=&quot;tag:hebergement&quot; rel=&quot;tag&quot;&gt;hébergement&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
        <category>hébergement</category>
            <pubDate>Mon, 09 Nov 2009 22:15:59 +0200</pubDate>
        </item>
    </channel>
</rss>
