<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sinkro.net &#187; iptables</title>
	<atom:link href="http://www.sinkro.net/tag/iptables/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sinkro.net</link>
	<description>Software e dintorni. ... soprattutto dintorni ;-)</description>
	<lastBuildDate>Mon, 26 Sep 2011 01:42:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Uno script iptables per bloccare determinati IP</title>
		<link>http://www.sinkro.net/2008/12/29/uno-script-iptables-per-bloccare-determinati-ip/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=uno-script-iptables-per-bloccare-determinati-ip</link>
		<comments>http://www.sinkro.net/2008/12/29/uno-script-iptables-per-bloccare-determinati-ip/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 10:27:37 +0000</pubDate>
		<dc:creator>Massimiliano</dc:creator>
				<category><![CDATA[Codice]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.sinkro.net/?p=239</guid>
		<description><![CDATA[Nonostante gli unici commenti in questo blog siano stati di spam, ho deciso di eliminarli ugualmente. Gli ip di provenienza degli spammer non erano, nel mio caso, più di quattro o cinque, così ho deciso di utilizzare la tecnica delle blacklist. Malgrado assolva al proprio compito, non è sicuramente la tecnica migliore da utilizzare, visto [...]


Altri articoli di interesse:<ol><li><a href='http://www.sinkro.net/2008/12/19/uno-script-bash-per-portare-il-dock-da-3d-a-2d-e-viceversa/' rel='bookmark' title='Uno script bash per portare il dock da 3D a 2D e viceversa.'>Uno script bash per portare il dock da 3D a 2D e viceversa.</a> <small>Possiamo creare uno script per modificare lâ€™aspetto del Dock, da...</small></li>
<li><a href='http://www.sinkro.net/2008/12/16/un-semplice-script-bash-per-mostrare-i-file-nascosti-nel-finder/' rel='bookmark' title='Un semplice script bash per mostrare i file nascosti nel finder'>Un semplice script bash per mostrare i file nascosti nel finder</a> <small>Ho scritto un semplice script per mostrare e nascondere i...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a class="tt-flickr tt-flickr-Small" title="Il nano sconcio" href="http://www.flickr.com/photos/masssi/3000779632/"><img class="alignright" src="http://farm4.static.flickr.com/3139/3000779632_55577d6872_m.jpg" alt="Il nano sconcio" width="160" height="240" /></a> Nonostante gli unici commenti in questo blog siano stati di spam, ho deciso di eliminarli ugualmente.</p>
<p>Gli ip di provenienza degli spammer non erano, nel mio caso, più di quattro o cinque, così ho deciso di utilizzare la tecnica delle blacklist.</p>
<p>Malgrado assolva al proprio compito, non è sicuramente la tecnica migliore da utilizzare, visto che rischia di bloccare persone che con lo spam nulla hanno a che fare.<br />
Ad esempio si rischia di bloccare ip dinamici, ip di proxy ecc. ecc.</p>
<p>Ad ogni modo se si vuole bloccare un insieme limitato di ip credo sia una tecnica che possa tornare utile.</p>
<p>Si può procedere in diversi modi, ad esempio utilizzando l'.htaccess, negando, o ridirezionando le connessioni al webserver da certi ip, come descritto <a href="http://codex.wordpress.org/Combating_Comment_Spam/Denying_Access" target="_blank">qui</a>, oppure più radicalmente, utilizzando <a href="http://it.wikipedia.org/wiki/Netfilter" target="_blank">iptables</a>.</p>
<p>Nel mio caso ho preferito utilizzare iptables.</p>
<p>Il funzionamento è molto semplice, leggo dalla mia blacklist,<br />
<code>/etc/blacklister/blacklist.dat</code><br />
e imposto per ogni ip due regole di iptables, la prima per loggare il tentativo di accesso, la seconda per bloccare.</p>
<p>Semplice ed efficace.</p>
<div class="syntax_hilite">
<div id="c-6">
<div class="c"><span style="color: #339933;">#!/bin/bash</span></p>
<p><span style="color: #339933;"># Blacklister</span><br />
<span style="color: #339933;"># ===============</span><br />
<span style="color: #339933;">#</span><br />
<span style="color: #339933;"># ATTENZIONE!</span><br />
<span style="color: #339933;"># Questo script non e' pensato per essere</span><br />
<span style="color: #339933;"># usato su un firewall, ma solo su un webserver.</span><br />
<span style="color: #339933;">#</span><br />
<span style="color: #339933;"># A cosa serve</span><br />
<span style="color: #339933;"># ------------</span><br />
<span style="color: #339933;"># Si prefigge di limitare lo spam in ingresso</span><br />
<span style="color: #339933;"># bloccando le connessioni degli</span><br />
<span style="color: #339933;"># IP acquisiti come spammer.</span><br />
<span style="color: #339933;">#</span><br />
<span style="color: #339933;"># Cosa fa</span><br />
<span style="color: #339933;"># -------</span><br />
<span style="color: #339933;"># Legge il file blacklist.dat contenente un elenco di ip da</span><br />
<span style="color: #339933;"># bloccare uno per riga, e, tramite **iptables** logga</span><br />
<span style="color: #339933;"># come SPAM i tentativi di accesso e li blocca.</span></p>
<p>LOCALFILE=/etc/blacklister/blacklist.<span style="color: #202020;">dat</span></p>
<p>IFACE=eth0</p>
<p><span style="color: #339933;"># IpTables</span><br />
IPT=<span style="color: #ff0000;">"/sbin/iptables"</span></p>
<p><span style="color: #339933;"># Chain</span><br />
CHAIN=INPUT</p>
<p>start_firewall<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#123;</span><br />
<span style="color: #339933;"># Blacklist</span><br />
blacklist=$<span style="color: #66cc66;">&#40;</span>cat $LOCALFILE<span style="color: #66cc66;">&#41;</span></p>
<p><span style="color: #339933;"># Solo per debug</span><br />
<span style="color: #339933;"># set -x</span></p>
<p><span style="color: #339933;"># Carico i moduli necessari</span><br />
/sbin/modprobe ip_conntrack<br />
/sbin/modprobe ip_conntrack_ftp</p>
<p><span style="color: #339933;"># Azzero le iptable prima di cominciare</span><br />
stop_firewall</p>
<p>echo -n <span style="color: #ff0000;">"Starting firewall:"</span><br />
block_spam<br />
echo <span style="color: #ff0000;">" done."</span><br />
<span style="color: #66cc66;">&#125;</span></p>
<p>block_spam<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#123;</span><br />
<span style="color: #339933;"># Per ogni IP LOG e DROP</span><br />
<span style="color: #b1b100;">for</span> ip in $blacklist<br />
<span style="color: #b1b100;">do</span><br />
$IPT -A $CHAIN -i $IFACE -s $ip -j LOG --log-prefix <span style="color: #ff0000;">"SPAM "</span><br />
$IPT -A $CHAIN -i $IFACE -s $ip -j DROP<br />
done</p>
<p><span style="color: #66cc66;">&#125;</span></p>
<p>stop_firewall<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#123;</span><br />
echo -n <span style="color: #ff0000;">"Stopping firewall:"</span></p>
<p>$IPT --flush<br />
$IPT -t nat --flush<br />
$IPT -t mangle --flush</p>
<p>$IPT --policy INPUT ACCEPT<br />
$IPT --policy OUTPUT ACCEPT</p>
<p>echo <span style="color: #ff0000;">" done."</span><br />
<span style="color: #66cc66;">&#125;</span></p>
<p><span style="color: #b1b100;">case</span> $<span style="color: #cc66cc;">1</span> in<br />
start<span style="color: #66cc66;">&#41;</span><br />
start_firewall<br />
;;<br />
stop<span style="color: #66cc66;">&#41;</span><br />
stop_firewall<br />
;;<br />
restart<span style="color: #66cc66;">&#41;</span><br />
start_firewall<br />
;;<br />
*<span style="color: #66cc66;">&#41;</span><br />
echo <span style="color: #ff0000;">"Usage: $0 {start|stop|restart}"</span><br />
exit <span style="color: #cc66cc;">1</span><br />
;;<br />
esac</div>
</div>
</div>
<p></p>


<p>Altri articoli di interesse:<ol><li><a href='http://www.sinkro.net/2008/12/19/uno-script-bash-per-portare-il-dock-da-3d-a-2d-e-viceversa/' rel='bookmark' title='Uno script bash per portare il dock da 3D a 2D e viceversa.'>Uno script bash per portare il dock da 3D a 2D e viceversa.</a> <small>Possiamo creare uno script per modificare lâ€™aspetto del Dock, da...</small></li>
<li><a href='http://www.sinkro.net/2008/12/16/un-semplice-script-bash-per-mostrare-i-file-nascosti-nel-finder/' rel='bookmark' title='Un semplice script bash per mostrare i file nascosti nel finder'>Un semplice script bash per mostrare i file nascosti nel finder</a> <small>Ho scritto un semplice script per mostrare e nascondere i...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.sinkro.net/2008/12/29/uno-script-iptables-per-bloccare-determinati-ip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

