<?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/"
	>

<channel>
	<title>VoIP and Hacking &#124; Consulenza Documentazione</title>
	<atom:link href="http://www.voipandhack.it/feed" rel="self" type="application/rss+xml" />
	<link>http://www.voipandhack.it</link>
	<description></description>
	<pubDate>Sat, 12 May 2012 17:01:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sicurezza Wireless</title>
		<link>http://www.voipandhack.it/archives/societa/sicurezza-wireless</link>
		<comments>http://www.voipandhack.it/archives/societa/sicurezza-wireless#comments</comments>
		<pubDate>Sat, 12 May 2012 16:42:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Sicurezza]]></category>

		<category><![CDATA[Società]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[ssid]]></category>

		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1980</guid>
		<description><![CDATA[






Altro che Social Engineering! Qui basta un (dis)onesto Social Manoval!
Ecco la foto di un giornalista intervistato da una televisione americana.
Probabilmente si trova in una sala stampa, e quelle credenziali per l&#8217;accesso a due distinte reti wireless, così stupidamente appiccicate al muro e così in bella vista, dovrebbero servire a giornalisti e fotografi (i due distinti [...]]]></description>
			<content:encoded><![CDATA[<table border="0" align="left">
<tbody>
<tr>
<td><a rel="attachment wp-att-1981" href="http://www.voipandhack.it/archives/societa/sicurezza-wireless/attachment/tv_pirla"><img class="alignleft size-full wp-image-1981" title="tv_pirla" src="http://www.voipandhack.it/wp-content/uploads/2012/05/tv_pirla.jpg" alt="tv_pirla" width="293" height="300" /></a></td>
</tr>
</tbody>
</table>
<p>Altro che Social Engineering! Qui basta un (dis)onesto Social Manoval!</p>
<p>Ecco la foto di un giornalista intervistato da una televisione americana.<br />
Probabilmente si trova in una sala stampa, e quelle credenziali per l&#8217;accesso a due distinte reti wireless, così stupidamente appiccicate al muro e così in bella vista, dovrebbero servire a giornalisti e fotografi (i due distinti SSID suggeriscono in tal senso), per connettersi via Internet alle rispettive redazioni e inviare loro, rapidamente, notizie e immagini.<br />
Anche la scelta delle password non sembra delle migliori, ma sorvoliamo pure!</p>
<p>Se non vi è mai capitato di imbattervi in qualcosa di simile in un ufficio italiano, vi invito a dare un occhiata alla massa di postit giallini che in genere decorano i monitor dei pc nei vari uffici di stato, regioni, province (tanto non scompariranno mai), comuni, usl, banche, assicurazioni, sindacati, poste, in cui avrete prima o poi il piacere di trascorrere un po&#8217; del vostro tempo.<br />
Per non parlare poi degli uffici delle aziende private e degli studi professionali.</p>
<p>Un falso addetto alla manutenzione di qualcosa o alle pulizie potrebbe facilmente fare incetta di credenziali oltre a installare rapidamente backdoors sui vari computers in rete.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking | Consulenza Documentazione"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Sicurezza Wireless"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/societa/sicurezza-wireless"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2012-05-12 18:05:01"/>
<input type="hidden" name="postContent_0" value="&lt;table border=&quot;0&quot; align=&quot;left&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a rel=&quot;attachment wp-att-1981&quot; href=&quot;http://www.voipandhack.it/archives/societa/sicurezza-wireless/attachment/tv_pirla&quot;&gt;&lt;img class=&quot;alignleft size-full wp-image-1981&quot; title=&quot;tv_pirla&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/05/tv_pirla.jpg&quot; alt=&quot;tv_pirla&quot; width=&quot;293&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Altro che Social Engineering! Qui basta un (dis)onesto Social Manoval!&lt;/p&gt;
&lt;p&gt;Ecco la foto di un giornalista intervistato da una televisione americana.&lt;br /&gt;
Probabilmente si trova in una sala stampa, e quelle credenziali per l&amp;#8217;accesso a due distinte reti wireless, così stupidamente appiccicate al muro e così in bella vista, dovrebbero servire a giornalisti e fotografi (i due distinti SSID suggeriscono in tal senso), per connettersi via Internet alle rispettive redazioni e inviare loro, rapidamente, notizie e immagini.&lt;br /&gt;
Anche la scelta delle password non sembra delle migliori, ma sorvoliamo pure!&lt;/p&gt;
&lt;p&gt;Se non vi è mai capitato di imbattervi in qualcosa di simile in un ufficio italiano, vi invito a dare un occhiata alla massa di postit giallini che in genere decorano i monitor dei pc nei vari uffici di stato, regioni, province (tanto non scompariranno mai), comuni, usl, banche, assicurazioni, sindacati, poste, in cui avrete prima o poi il piacere di trascorrere un po&amp;#8217; del vostro tempo.&lt;br /&gt;
Per non parlare poi degli uffici delle aziende private e degli studi professionali.&lt;/p&gt;
&lt;p&gt;Un falso addetto alla manutenzione di qualcosa o alle pulizie potrebbe facilmente fare incetta di credenziali oltre a installare rapidamente backdoors sui vari computers in rete.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/societa/sicurezza-wireless/feed</wfw:commentRss>
		</item>
		<item>
		<title>Asterisk su Amazon Cloud EC2 - seconda parte</title>
		<link>http://www.voipandhack.it/archives/linux/asterisk-su-amazon-cloud-ec2-seconda-parte</link>
		<comments>http://www.voipandhack.it/archives/linux/asterisk-su-amazon-cloud-ec2-seconda-parte#comments</comments>
		<pubDate>Mon, 23 Apr 2012 12:21:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Asterisk]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Networking]]></category>

		<category><![CDATA[Telefonia]]></category>

		<category><![CDATA[VoIP]]></category>

		<category><![CDATA[amazon]]></category>

		<category><![CDATA[asterisk pbx]]></category>

		<category><![CDATA[cloud]]></category>

		<category><![CDATA[sip]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1953</guid>
		<description><![CDATA[Ora che abbiamo realizzato un cloud server Amazon EC2 e vi ci siamo collegati, vale la pena di guardarsi un po&#8217; intorno, e farsi almeno una vaga idea di dove si sia capitati. Così, ad esempio, è come si presenta /proc/cpuinfo:

[ec2-user@ip-10-48-111-136 ~]$ cat /proc/cpuinfo
processor        : 0
vendor_id        : GenuineIntel
cpu family       : 6
model            : 23
model [...]]]></description>
			<content:encoded><![CDATA[<p>Ora che abbiamo realizzato un cloud server Amazon EC2 e vi ci siamo collegati, vale la pena di guardarsi un po&#8217; intorno, e farsi almeno una vaga idea di dove si sia capitati. <span id="more-1953"></span>Così, ad esempio, è come si presenta /proc/cpuinfo:<br />
<code><br />
[ec2-user@ip-10-48-111-136 ~]$ cat /proc/cpuinfo<br />
processor        : 0<br />
vendor_id        : GenuineIntel<br />
cpu family       : 6<br />
model            : 23<br />
model name       : Intel(R) Xeon(R) CPU E5430  @ 2.66GHz<br />
stepping         : 10<br />
microcode        : 0xa07<br />
cpu MHz          : 2666.760<br />
cache size       : 6144 KB<br />
fpu              : yes<br />
fpu_exception    : yes<br />
cpuid level      : 13<br />
wp               : yes<br />
flags            : fpu tsc msr pae cx8 cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht pbe syscall nx lm constant_tsc up arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority<br />
bogomips         : 5333.52<br />
clflush size     : 64<br />
cache_alignment  : 64<br />
address sizes    : 38 bits physical, 48 bits virtual<br />
power management :<br />
</code><br />
Un risultato decisamente differente da quello riscontrato sul cloud italiano di dnshosting, in cui è chiaro che ci troviamo di fronte ad una virtualizzazione basata su QEMU (mentre quella di Amazon risulta basata su Xen):<br />
<code><br />
# cat /proc/cpuinfo<br />
processor        : 0<br />
vendor_id        : GenuineIntel<br />
cpu family       : 6<br />
model            : 6<br />
model name       : QEMU Virtual CPU version 0.9.1<br />
stepping         : 3<br />
cpu MHz          : 2327.498<br />
cache size       : 32 KB<br />
fpu              : yes<br />
fpu_exception    : yes<br />
cpuid level      : 4<br />
wp               : yes<br />
flags            : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm up rep_good pni ssse3 cx16 hypervisor<br />
bogomips         : 4654.99<br />
clflush size     : 64<br />
cache_alignment  : 64<br />
address sizes    : 40 bits physical, 48 bits virtual<br />
power management:<br />
</code><br />
A giudicare dal gestore dei pacchetti (rpm) yum e ai repository di riferimento, ci troviamo di fronte ad un Linux di derivazione Red Hat, se non addirittura Fedora, la qual cosa non mi riempie sinceramente di entusiasmo.</p>
<p>Un prerequisito piuttosto importante è che la frequenza nel Kernel Timer della AMI prescelta sia impostato a 1000HZ, e così non resta che sincerarsene:<br />
<code><br />
$ sudo cat /boot/config-`uname -r` | grep HZ<br />
...<br />
CONFIG_HZ_1000=y<br />
CONFIG_HZ=1000<br />
</code><br />
I comandi riportati di seguito dettagliano passo per passo la parte relativa alla installazione di Asterisk IP PBX sulla nostra micro istanza di un Amazon AWS EC2 Cloud Server.</p>
<p>Occorre accedere via SSH alla micro istanza, ed aggiornare il Server:<br />
<code><br />
$ sudo yum update</code></p>
<p><code> </code></p>
<p><code>Loaded plugins: fastestmirror, priorities, security, update-motd<br />
Loading mirror speeds from cached hostfile<br />
* amzn-main: packages.eu-west-1.amazonaws.com<br />
* amzn-updates: packages.eu-west-1.amazonaws.com<br />
Setting up Update Process<br />
No Packages marked for Update<br />
</code><br />
Quindi navigare fino alla directory /usr/src, e qui scaricare i sorgenti di Asterisk (addirittura la prima Release Candidate 10.4.0), usando wget:<br />
<code><br />
$ cd /usr/src<br />
$ sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-10.4.0-rc1.tar.gz<br />
--2012-04-21 21:15:47--  http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-10.4.0-rc1.tar.gz<br />
Resolving downloads.asterisk.org... 76.164.171.233, 2001:470:e0d4::e9<br />
Connecting to downloads.asterisk.org|76.164.171.233|:80... connected.<br />
HTTP request sent, awaiting response... 200 OK<br />
Length: 25018992 (24M) [application/x-gzip]<br />
Saving to: “asterisk-10.4.0-rc1.tar.gz”</code></p>
<p><code>100%[=============================================================================&gt;] 25,018,992  1.12M/s   in 17s</code></p>
<p><code> </code></p>
<p><code>2012-04-21 21:16:03 (1.44 MB/s) - “asterisk-10.4.0-rc1.tar.gz” saved [25018992/25018992]<br />
</code><br />
Da notare la notevole rapidità con cui è avvenuto il download:</p>
<p>Occorre ora installare i necessari packages per la compilazione di Asterisk:<br />
<code><br />
$ sudo yum groupinstall ‘Development Tools’<br />
$ sudo yum install -y ncurses-devel libtermcap-devel zlib-devel libtool sqlite-devel.x86_64<br />
</code><br />
Scompattare ed estrarre i files dal tarball di Asterisk:<br />
<code><br />
$ sudo tar xvzf asterisk-10.4.0-rc1.tar.gz<br />
</code><br />
Installare Asterisk:<br />
<code><br />
$ sudo ln -s asterisk-10.4.0-rc1 asterisk<br />
$ cd asterisk<br />
$ sudo ./configure –disable-xmldoc<br />
$ sudo make menuconfig<br />
$ sudo make<br />
$ sudo make install<br />
$ sudo make samples<br />
$ sudo make config<br />
We could not install init scripts for your distribution.<br />
$ echo $?<br />
0<br />
</code><br />
Ora che abbiamo il nostro Amazon AWS configurato come micro istanza ed Asterisk installato sopra, possiamo dedicarci a configurare un service provider.</p>
<p>Per questo test, anche per fare qualche esperimento sulla connettività, la latenza, ed altri possibili problematiche derivanti da siffatta interazione, ho optato per mantenere lo stesso account Messagenet utilizzato in precedenza per l&#8217;esperimento di Asterisk Cloud su Dnshosting, in modo da poterne utilizzare il numero geografico per le chiamate inbound.</p>
<p>Di conseguenza ci dovremo connettere al nostro cloud server Asterisk via SSH ed editare il file sip.conf per crearvi, tra l&#8217;altro, le voci relative al provider voip (Messagenet) da utilizzare, e ad un softphone per il mio Android, ad esempio così:<br />
<code><br />
[general]<br />
port=5060<br />
localnet = 10.226.234.0 / 255.255.254.X<br />
externip = 54.247.165.170<br />
nat=yes<br />
disallow= all<br />
allow=alaw<br />
allow=ulaw<br />
context=ael-default<br />
register =&gt; XXXXXX:YYYYYY@sip.messagenet.it:5061/0437xxxxxxx</code></p>
<p><code>[messagenet]<br />
type=peer<br />
host=sip.messagenet.it<br />
fromuser=XXXXXX<br />
defaultuser=XXXXXX<br />
secret=YYYYYY<br />
realm=sip.messagenet.it<br />
qualify=no<br />
insecure=port,invite<br />
port=5061<br />
disallow=all<br />
allow=alaw<br />
allow=ulaw</code></p>
<p><code> </code></p>
<p><code>[3cxandroid]<br />
type=friend<br />
callerid=-mySmart&lt;201&gt;<br />
secret=quellochetipare<br />
language=it<br />
host=dynamic<br />
dtmfmode=rfc2833<br />
disallow=all<br />
allow=alaw<br />
allow=ulaw<br />
</code><br />
e poi anche il file extensions.ael, ad esempio così:<br />
<code><br />
context ael-default {<br />
_0437xxxxxxx =&gt; {<br />
Wait(1);<br />
Answer;<br />
Set(TIMEOUT(digit)=5);<br />
Set(TIMEOUT(response)=10);<br />
Dial(SIP/3cxandroid,30,tTr);<br />
Hangup();<br />
};<br />
};<br />
</code><br />
Dopodiché, una volta lanciato Asterisk, il nostro centralino virtuale su Amazon EC2 risulterà pronto a ricevere chiamate, e a trasferirle via internet verso il client SIP del mio smartphone Android.<br />
<code><br />
*CLI&gt;   == Using SIP RTP CoS mark 5<br />
-- Executing [0437xxxxxxx@ael-default:1] Wait(&#8221;SIP/messagenet-00000000&#8243;, &#8220;1&#8243;) in new stack<br />
&#8211; Executing [0437xxxxxxx@ael-default:2] Answer(&#8221;SIP/messagenet-00000000&#8243;, &#8220;&#8221;) in new stack<br />
&#8211; Executing [0437xxxxxxx@ael-default:3] Set(&#8221;SIP/messagenet-00000000&#8243;, &#8220;TIMEOUT(digit)=5&#8243;) in new stack<br />
&#8211; Digit timeout set to 5.000<br />
&#8211; Executing [0437xxxxxxx@ael-default:4] Set(&#8221;SIP/messagenet-00000000&#8243;, &#8220;TIMEOUT(response)=10&#8243;) in new stack<br />
&#8211; Response timeout set to 10.000<br />
&#8211; Executing [0437xxxxxxx@ael-default:5] Dial(&#8221;SIP/messagenet-00000000&#8243;, &#8220;SIP/3cxandroid,30,tTr&#8221;) in new stack<br />
&#8211; Called SIP/3cxandroid<br />
&#8211; SIP/3cxandroid-00000003 is ringing<br />
&#8211; SIP/3cxandroid-00000003 answered SIP/messagenet-00000002<br />
== Spawn extension (ael-default, 0437xxxxxxx, 6) exited non-zero on &#8216;SIP/messagenet-00000000&#8242;<br />
</code></p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking | Consulenza Documentazione"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Asterisk su Amazon Cloud EC2 - seconda parte"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/linux/asterisk-su-amazon-cloud-ec2-seconda-parte"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2012-04-23 14:04:06"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Ora che abbiamo realizzato un cloud server Amazon EC2 e vi ci siamo collegati, vale la pena di guardarsi un po&amp;#8217; intorno, e farsi almeno una vaga idea di dove si sia capitati. &lt;span id=&quot;more-1953&quot;&gt;&lt;/span&gt;Così, ad esempio, è come si presenta /proc/cpuinfo:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
[ec2-user@ip-10-48-111-136 ~]$ cat /proc/cpuinfo&lt;br /&gt;
processor        : 0&lt;br /&gt;
vendor_id        : GenuineIntel&lt;br /&gt;
cpu family       : 6&lt;br /&gt;
model            : 23&lt;br /&gt;
model name       : Intel(R) Xeon(R) CPU E5430  @ 2.66GHz&lt;br /&gt;
stepping         : 10&lt;br /&gt;
microcode        : 0xa07&lt;br /&gt;
cpu MHz          : 2666.760&lt;br /&gt;
cache size       : 6144 KB&lt;br /&gt;
fpu              : yes&lt;br /&gt;
fpu_exception    : yes&lt;br /&gt;
cpuid level      : 13&lt;br /&gt;
wp               : yes&lt;br /&gt;
flags            : fpu tsc msr pae cx8 cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht pbe syscall nx lm constant_tsc up arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority&lt;br /&gt;
bogomips         : 5333.52&lt;br /&gt;
clflush size     : 64&lt;br /&gt;
cache_alignment  : 64&lt;br /&gt;
address sizes    : 38 bits physical, 48 bits virtual&lt;br /&gt;
power management :&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Un risultato decisamente differente da quello riscontrato sul cloud italiano di dnshosting, in cui è chiaro che ci troviamo di fronte ad una virtualizzazione basata su QEMU (mentre quella di Amazon risulta basata su Xen):&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# cat /proc/cpuinfo&lt;br /&gt;
processor        : 0&lt;br /&gt;
vendor_id        : GenuineIntel&lt;br /&gt;
cpu family       : 6&lt;br /&gt;
model            : 6&lt;br /&gt;
model name       : QEMU Virtual CPU version 0.9.1&lt;br /&gt;
stepping         : 3&lt;br /&gt;
cpu MHz          : 2327.498&lt;br /&gt;
cache size       : 32 KB&lt;br /&gt;
fpu              : yes&lt;br /&gt;
fpu_exception    : yes&lt;br /&gt;
cpuid level      : 4&lt;br /&gt;
wp               : yes&lt;br /&gt;
flags            : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm up rep_good pni ssse3 cx16 hypervisor&lt;br /&gt;
bogomips         : 4654.99&lt;br /&gt;
clflush size     : 64&lt;br /&gt;
cache_alignment  : 64&lt;br /&gt;
address sizes    : 40 bits physical, 48 bits virtual&lt;br /&gt;
power management:&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
A giudicare dal gestore dei pacchetti (rpm) yum e ai repository di riferimento, ci troviamo di fronte ad un Linux di derivazione Red Hat, se non addirittura Fedora, la qual cosa non mi riempie sinceramente di entusiasmo.&lt;/p&gt;
&lt;p&gt;Un prerequisito piuttosto importante è che la frequenza nel Kernel Timer della AMI prescelta sia impostato a 1000HZ, e così non resta che sincerarsene:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$ sudo cat /boot/config-`uname -r` | grep HZ&lt;br /&gt;
...&lt;br /&gt;
CONFIG_HZ_1000=y&lt;br /&gt;
CONFIG_HZ=1000&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
I comandi riportati di seguito dettagliano passo per passo la parte relativa alla installazione di Asterisk IP PBX sulla nostra micro istanza di un Amazon AWS EC2 Cloud Server.&lt;/p&gt;
&lt;p&gt;Occorre accedere via SSH alla micro istanza, ed aggiornare il Server:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$ sudo yum update&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Loaded plugins: fastestmirror, priorities, security, update-motd&lt;br /&gt;
Loading mirror speeds from cached hostfile&lt;br /&gt;
* amzn-main: packages.eu-west-1.amazonaws.com&lt;br /&gt;
* amzn-updates: packages.eu-west-1.amazonaws.com&lt;br /&gt;
Setting up Update Process&lt;br /&gt;
No Packages marked for Update&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Quindi navigare fino alla directory /usr/src, e qui scaricare i sorgenti di Asterisk (addirittura la prima Release Candidate 10.4.0), usando wget:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$ cd /usr/src&lt;br /&gt;
$ sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-10.4.0-rc1.tar.gz&lt;br /&gt;
--2012-04-21 21:15:47--  http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-10.4.0-rc1.tar.gz&lt;br /&gt;
Resolving downloads.asterisk.org... 76.164.171.233, 2001:470:e0d4::e9&lt;br /&gt;
Connecting to downloads.asterisk.org|76.164.171.233|:80... connected.&lt;br /&gt;
HTTP request sent, awaiting response... 200 OK&lt;br /&gt;
Length: 25018992 (24M) [application/x-gzip]&lt;br /&gt;
Saving to: “asterisk-10.4.0-rc1.tar.gz”&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;100%[=============================================================================&amp;gt;] 25,018,992  1.12M/s   in 17s&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;2012-04-21 21:16:03 (1.44 MB/s) - “asterisk-10.4.0-rc1.tar.gz” saved [25018992/25018992]&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Da notare la notevole rapidità con cui è avvenuto il download:&lt;/p&gt;
&lt;p&gt;Occorre ora installare i necessari packages per la compilazione di Asterisk:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$ sudo yum groupinstall ‘Development Tools’&lt;br /&gt;
$ sudo yum install -y ncurses-devel libtermcap-devel zlib-devel libtool sqlite-devel.x86_64&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Scompattare ed estrarre i files dal tarball di Asterisk:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$ sudo tar xvzf asterisk-10.4.0-rc1.tar.gz&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Installare Asterisk:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$ sudo ln -s asterisk-10.4.0-rc1 asterisk&lt;br /&gt;
$ cd asterisk&lt;br /&gt;
$ sudo ./configure –disable-xmldoc&lt;br /&gt;
$ sudo make menuconfig&lt;br /&gt;
$ sudo make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo make samples&lt;br /&gt;
$ sudo make config&lt;br /&gt;
We could not install init scripts for your distribution.&lt;br /&gt;
$ echo $?&lt;br /&gt;
0&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Ora che abbiamo il nostro Amazon AWS configurato come micro istanza ed Asterisk installato sopra, possiamo dedicarci a configurare un service provider.&lt;/p&gt;
&lt;p&gt;Per questo test, anche per fare qualche esperimento sulla connettività, la latenza, ed altri possibili problematiche derivanti da siffatta interazione, ho optato per mantenere lo stesso account Messagenet utilizzato in precedenza per l&amp;#8217;esperimento di Asterisk Cloud su Dnshosting, in modo da poterne utilizzare il numero geografico per le chiamate inbound.&lt;/p&gt;
&lt;p&gt;Di conseguenza ci dovremo connettere al nostro cloud server Asterisk via SSH ed editare il file sip.conf per crearvi, tra l&amp;#8217;altro, le voci relative al provider voip (Messagenet) da utilizzare, e ad un softphone per il mio Android, ad esempio così:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
[general]&lt;br /&gt;
port=5060&lt;br /&gt;
localnet = 10.226.234.0 / 255.255.254.X&lt;br /&gt;
externip = 54.247.165.170&lt;br /&gt;
nat=yes&lt;br /&gt;
disallow= all&lt;br /&gt;
allow=alaw&lt;br /&gt;
allow=ulaw&lt;br /&gt;
context=ael-default&lt;br /&gt;
register =&amp;gt; XXXXXX:YYYYYY@sip.messagenet.it:5061/0437xxxxxxx&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[messagenet]&lt;br /&gt;
type=peer&lt;br /&gt;
host=sip.messagenet.it&lt;br /&gt;
fromuser=XXXXXX&lt;br /&gt;
defaultuser=XXXXXX&lt;br /&gt;
secret=YYYYYY&lt;br /&gt;
realm=sip.messagenet.it&lt;br /&gt;
qualify=no&lt;br /&gt;
insecure=port,invite&lt;br /&gt;
port=5061&lt;br /&gt;
disallow=all&lt;br /&gt;
allow=alaw&lt;br /&gt;
allow=ulaw&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[3cxandroid]&lt;br /&gt;
type=friend&lt;br /&gt;
callerid=-mySmart&amp;lt;201&amp;gt;&lt;br /&gt;
secret=quellochetipare&lt;br /&gt;
language=it&lt;br /&gt;
host=dynamic&lt;br /&gt;
dtmfmode=rfc2833&lt;br /&gt;
disallow=all&lt;br /&gt;
allow=alaw&lt;br /&gt;
allow=ulaw&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
e poi anche il file extensions.ael, ad esempio così:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
context ael-default {&lt;br /&gt;
_0437xxxxxxx =&amp;gt; {&lt;br /&gt;
Wait(1);&lt;br /&gt;
Answer;&lt;br /&gt;
Set(TIMEOUT(digit)=5);&lt;br /&gt;
Set(TIMEOUT(response)=10);&lt;br /&gt;
Dial(SIP/3cxandroid,30,tTr);&lt;br /&gt;
Hangup();&lt;br /&gt;
};&lt;br /&gt;
};&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Dopodiché, una volta lanciato Asterisk, il nostro centralino virtuale su Amazon EC2 risulterà pronto a ricevere chiamate, e a trasferirle via internet verso il client SIP del mio smartphone Android.&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
*CLI&amp;gt;   == Using SIP RTP CoS mark 5&lt;br /&gt;
-- Executing [0437xxxxxxx@ael-default:1] Wait(&amp;#8221;SIP/messagenet-00000000&amp;#8243;, &amp;#8220;1&amp;#8243;) in new stack&lt;br /&gt;
&amp;#8211; Executing [0437xxxxxxx@ael-default:2] Answer(&amp;#8221;SIP/messagenet-00000000&amp;#8243;, &amp;#8220;&amp;#8221;) in new stack&lt;br /&gt;
&amp;#8211; Executing [0437xxxxxxx@ael-default:3] Set(&amp;#8221;SIP/messagenet-00000000&amp;#8243;, &amp;#8220;TIMEOUT(digit)=5&amp;#8243;) in new stack&lt;br /&gt;
&amp;#8211; Digit timeout set to 5.000&lt;br /&gt;
&amp;#8211; Executing [0437xxxxxxx@ael-default:4] Set(&amp;#8221;SIP/messagenet-00000000&amp;#8243;, &amp;#8220;TIMEOUT(response)=10&amp;#8243;) in new stack&lt;br /&gt;
&amp;#8211; Response timeout set to 10.000&lt;br /&gt;
&amp;#8211; Executing [0437xxxxxxx@ael-default:5] Dial(&amp;#8221;SIP/messagenet-00000000&amp;#8243;, &amp;#8220;SIP/3cxandroid,30,tTr&amp;#8221;) in new stack&lt;br /&gt;
&amp;#8211; Called SIP/3cxandroid&lt;br /&gt;
&amp;#8211; SIP/3cxandroid-00000003 is ringing&lt;br /&gt;
&amp;#8211; SIP/3cxandroid-00000003 answered SIP/messagenet-00000002&lt;br /&gt;
== Spawn extension (ael-default, 0437xxxxxxx, 6) exited non-zero on &amp;#8216;SIP/messagenet-00000000&amp;#8242;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/linux/asterisk-su-amazon-cloud-ec2-seconda-parte/feed</wfw:commentRss>
		</item>
		<item>
		<title>Asterisk su Amazon Cloud EC2 - prima parte</title>
		<link>http://www.voipandhack.it/archives/linux/asterisk-su-amazon-cloud-ec2-prima-parte</link>
		<comments>http://www.voipandhack.it/archives/linux/asterisk-su-amazon-cloud-ec2-prima-parte#comments</comments>
		<pubDate>Sat, 21 Apr 2012 18:26:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Asterisk]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Networking]]></category>

		<category><![CDATA[Telefonia]]></category>

		<category><![CDATA[VoIP]]></category>

		<category><![CDATA[amazon]]></category>

		<category><![CDATA[asterisk pbx]]></category>

		<category><![CDATA[aws]]></category>

		<category><![CDATA[cloud]]></category>

		<category><![CDATA[ec2]]></category>

		<category><![CDATA[internet]]></category>

		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1912</guid>
		<description><![CDATA[Dopo aver sperimentato una soluzione Asterisk in the cloud, che definirei &#8220;de noartri&#8221;, su dnshosting, ho voluto provare ad installare Asterisk IP PBX su di un Amazon EC2 Web Service Cloud, in puro stile yankee.
Dato che Amazon, molto gentilmente peraltro, mette a disposizione gratuitamente una cosidetta &#8220;micro instance&#8221; AWS (Amazon Web Service) per la durata [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo aver sperimentato una soluzione Asterisk in the cloud, che definirei &#8220;de noartri&#8221;, su dnshosting, ho voluto provare ad installare Asterisk IP PBX su di un Amazon EC2 Web Service Cloud, in puro stile yankee.</p>
<p>Dato che Amazon, molto gentilmente peraltro, mette a disposizione gratuitamente una cosidetta &#8220;micro instance&#8221; AWS (Amazon Web Service) per la durata di un intero anno, tale mi è senbrata una buona occasione per effettuare un test, puntando nello specifico l&#8217;attenzione su quel particolare tipo di AWS che prende il nome di EC2, o Amazon Elastic Compute Cloud, ovvero la versione Amazon per un server in the cloud.<span id="more-1912"></span></p>
<p>Occorre, cosa ampiamente prevedibile del resto, iscriversi a qualche servizio.<br />
Se non si possiede già un account AWS, bisognerà ottenerne uno. L&#8217;account AWS darà accesso alla totalità dei servizi possibili, ma vi verrà addebitato esclusivamente il consumo delle risorse effettivamente utilizzate. Una micro istanza sarà sempre disponibile gratuitamente per l&#8217;arco di un anno, con dei limiti di esercizio ben stabiliti oltre i quali l&#8217;utilizzo della micro istanza comporta un costo.</p>
<p>I termini di servizio entro i quali l&#8217;uso di una micro-istanza sono gratuiti (per un anno) sono i seguenti:</p>
<p><img title="Caratteristiche di una istanza Amazon free" src="http://www.voipandhack.it/wp-content/uploads/2012/04/amazon_free_levels1.png" alt="Caratteristiche di una istanza Amazon free" width="566" height="256" /></p>
<p>Per creare un account AWS, occorre visitare <a href="http://aws.amazon.com">http://aws.amazon.com</a> e fare click su &#8220;Sign Up Now&#8221;, dopodiché occorre seguire le istruzioni che appariranno sullo schermo.</p>
<p>E&#8217; opportuno precisare a questo punto che, per poter proseguire con l&#8217; impostazione dell&#8217;account, purtroppo si rende necessario fornire un numero di carta di credito valido. L&#8217;adozione di questa misura è dettata dal possibile sforamento dei limiti di traffico imposti ad una micro-istanza &#8220;free&#8221;.<br />
I costi d&#8217;esercizio proposti da Amazon, in ogni caso, sembrano decisamente economici, sopratutto se del cloud computing si fa un uso intelligente, che è poi il motivo per cui diviene così allettante.<br />
Al contrario dell&#8217;hosting tradizionale, chi ne usufruisce può veramente essere in grado di pagare esclusivamente per ciò che consuma.<br />
Consiglio di usare, per questo tipo di test ed altri simili, una postepay visa electron con solo qualche spicciolo accreditato.</p>
<p><img class="aligncenter size-full wp-image-1946" title="introduzione degli estremi di una creditcard valida" src="http://www.voipandhack.it/wp-content/uploads/2012/04/introd_cc_amazonmc21.png" alt="introduzione degli estremi di una creditcard valida" width="572" height="587" /></p>
<p>Ci verrà richiesta una identificazione tramite chiamata telefonica, che avverrà puntualmente da parte di Amazon sul numero che avremo indicato:</p>
<p><img class="aligncenter size-full wp-image-1947" title="identity_by_tel1" src="http://www.voipandhack.it/wp-content/uploads/2012/04/identity_by_tel1.png" alt="identity_by_tel1" width="567" height="350" /></p>
<p>Ci verrà poi notificato per email quando il nostro account è attivo e disponibile.</p>
<p><img class="aligncenter size-full wp-image-1948" title="confirmation_by_email1" src="http://www.voipandhack.it/wp-content/uploads/2012/04/confirmation_by_email1.png" alt="confirmation_by_email1" width="816" height="245" /></p>
<p>in questo modo:</p>
<p><img class="aligncenter size-full wp-image-1917" title="email_confirm" src="http://www.voipandhack.it/wp-content/uploads/2012/04/email_confirm.png" alt="email_confirm" width="778" height="334" /></p>
<p style="text-align: left;">Nel creare una istanza, ho scelto il datacenter geograficamente più vicino per poter usufruire (teoricamente) della migliore connessione possibile.<br />
<img class="aligncenter size-full wp-image-1918" title="getting_started" src="http://www.voipandhack.it/wp-content/uploads/2012/04/getting_started.png" alt="getting_started" width="928" height="347" /></p>
<p>Si presenta a questo punto la necessità di trovare la AMI (Amazon Machine Image) che possa fare al caso nostro.</p>
<p>Una Amazon Machine Image (AMI) contiene tutte le informazioni necessarie ad avviare istanze del nostro software. Per esempio, una AMI può contenere, tipicamente, tutto il software necessario a implementare un completo web server. È possibile lanciare una o più istanze Amazon EC2 a partire da una AMI, e tutte le istanze saranno esattamente identiche.</p>
<p>Amazon Elastic Compute Cloud (Amazon EC2) dà la possibilità di scegliere in maniera flessibile tra un vasto numero di differenti tipi di istanze per venire incontro alle più varie esigenze. Ciascuna istanza fornisce un prevedibile quantità di risorse computazionali dedicate ed il loro consumo viene monetizzato su base oraria.</p>
<p>Per la precisione, di seguito vi sono i vari tipi di istanza disponibili</p>
<p>Standard Instances, adatte ad ogni tipo di applicazione, suddivise a loro volta in.</p>
<p><strong>Small Instance – default*</strong><br />
1.7 GB memory<br />
1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit)<br />
160 GB instance storage<br />
32-bit or 64-bit platform<br />
I/O Performance: Moderate</p>
<p><strong>Medium Instance</strong><br />
3.75 GB memory<br />
2 EC2 Compute Unit (1 virtual core with 2 EC2 Compute Unit)<br />
410 GB instance storage<br />
32-bit or 64-bit platform<br />
I/O Performance: Moderate</p>
<p><strong>Large Instance</strong><br />
7.5 GB memory<br />
4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)<br />
850 GB instance storage<br />
64-bit platform<br />
I/O Performance: High<br />
API name: m1.large</p>
<p><strong>Extra Large Instance</strong><br />
15 GB memory<br />
8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each)<br />
1,690 GB instance storage<br />
64-bit platform<br />
I/O Performance: High</p>
<p>e poi le <strong>Micro Instances</strong></p>
<p>Le Micro instances (t1.micro) forniscono una moderata ma consistente quantità di risorse CPU, i cui termini di servizio ci sono già noti.</p>
<p>Un&#8217;ampia selezione di AMIs è resa disponibile direttamente da parte di Amazon e della community sorta intorno a Amazon EC2.</p>
<p>Si può utilizzare la AWS Management Console (all&#8217;indirizzo http://console.aws.amazon.com) per andare alla ricerca di AMIs in possesso di criteri specifii e quindi avviare istanze di tali AMIs. Per esempio, ricercare le AMIs che ha fornito direttamente Amazon, le AMIs fornite dalla comunità sorta intorno a EC2, o le AMIs che fanno uso di uno specifico sistema operativo.</p>
<p>Per trovare una AMI adatta:</p>
<ol>
<li>Aprire la console Amazon EC2 all&#8217;indirizzo <a href="https://console.aws.amazon.com/ec2">https://console.aws.amazon.com/ec2</a>/.</li>
<li>Nel pannello &#8220;Navigation&#8221;, cliccare AMIs.</li>
</ol>
<p>Nella sezione &#8220;Amazon Machine Images&#8221;, nella lista &#8220;Viewing&#8221;, che mostra tutte le piattaforme (All Platforms,) potremmo fare click su Linux.<br />
In questo esempio, faremo click su Amazon Images per limitare la visualizzazione solo alle AMIs fornite direttamente da Amazon Web Services</p>
<p><img class="aligncenter size-full wp-image-1919" title="ami_scelta" src="http://www.voipandhack.it/wp-content/uploads/2012/04/ami_scelta.png" alt="ami_scelta" width="705" height="506" /></p>
<p>Selezioniamo una AMI (in questo caso amzn-ami-pv-2012.03.1.x86_64-ebs) e poi facciamo click su Launch (il pulsante in alto a sinistra).</p>
<p>Abbiamo appena avviato la fase di lancio di una istanza Amazon EC2 usando la AMI selezionata in precedenza. Il lancio di una istanza implica le seguenti operazioni:</p>
<ul>
<li>Configurare l&#8217;istanza.</li>
<li>Creare a coppia di chiavi.</li>
<li>Creare un security group.</li>
<li>Avviare effettivamente l&#8217;istanza.</li>
</ul>
<p>Dopo aver selezionato una AMI, e aver cliccato su Launch Instance come indicato in precedenza, apparirà la pagina &#8220;Create a New Instance&#8221;, nominiamola per esempio &#8220;Asterisk Cloud Server&#8221;.</p>
<p>Accettiamo gli altri valori di defaults su questa pagina, e poi facciamo click su Continue.<br />
Accettiamo pure i valori di defaults presentati nelle successive due pagine, e facciamo click su Continue per ciascuna di esse.<br />
Quando il wizard mostrerà la pagina &#8220;Create Key Pair&#8221;, seguite i passi illustrati di seguito.</p>
<p>Le istanze Amazon EC2 create a partire da una Public AMI usano una coppia di chiavi pubblica/privata, piuttosto che una password, per autenticarsi. La chiave pubblica è embedded nella nostra istanza. Faremo invece uso della private key per accreditarci in modo sicuro senza dover utilizzare una password. Una volta create le proprie AMIs, si possono adottare altri meccanismi per accedere in modo sicuro alle nuove istanze.</p>
<p>Non avendo ancora mai utilizzato Amazon EC2 e non avendo creato finora alcuna coppia di chiavi, quando il wizard mostra la pagina Create Key Pair, il button Create a new Key Pair verrà selezionato di default.</p>
<p>Nella pagina &#8220;Create Key Pair&#8221;, nella fattispecie nel box &#8220;Enter a name for your key pair&#8221;, introducete qualcosa tipo &#8220;voiphack_test_key&#8221;. Questo sarà il nome del file relativo alla chiave privata associata alla coppia (con una estensione .pem).</p>
<p><img class="aligncenter size-full wp-image-1920" title="create_keypair1" src="http://www.voipandhack.it/wp-content/uploads/2012/04/create_keypair1.png" alt="create_keypair1" width="883" height="592" /></p>
<p>Fate Click su &#8220;Create &amp; Download your Key Pair&#8221;.</p>
<p>Vi verrà ora richiesto di salvare la chiave privata della coppia di chiavi sul vostro sistema.</p>
<p>Salvate la chiave privata in un posto sicuro del vostro sistema ad esempio ~/.ssh, registrandone la locazione.</p>
<p>Il wizard mostrerà poi la pagina &#8220;Configure Firewall&#8221;, dove andrà creato e configurato un security group.</p>
<p>Un security group ci permette di aprire specifiche porte sulla nostra micro intanza, agendo proprio come un firewall.<br />
In altri termini un security group definisce le regole firewall delle nostre istanze. Tali regole specificano quale traffico di rete in ingresso debba venire inoltrato alla nostra istanza (per esempio accettando il traffico ssh sulla porta 22). Il rimanente traffico viene ignorato. Sarà possibile modificare le regole di un group in qualsiasi momento. Le nuove regole vengono automaticamente imposte a tutte le istanze in esecuzione.</p>
<p>Per rendere possibili connessioni SIP ed SSH, è necessario aprire le porte TCP 22, UDP 5060 ed ancora UDP nel range 10000-20000, range, che essendo molto ampio, potremmo ragionevolmente ridurre a un decimo (dovremo eventualmente poi ricordarci di andare a modificare di conseguenza il file rtp.conf del server), il che implica comunque, ancora, l&#8217;apertura di 1000 porte per dialogo vocale basato su RTP.</p>
<p>Nel box &#8220;Group Name&#8221;, introduciamo qualcosa, tipo my_group.</p>
<p>Nel box &#8220;Description&#8221;, introduciamo una descrizione per il security group appena creato.</p>
<p>Nel box &#8220;Create a New Rule&#8221; (Inbound Rules), fare click su SSH, quindi fare click su Add Rule.<br />
Lo stesso vale per SIP e UDP nel range 10000-11000, come stabilito in precedenza.</p>
<p><img class="aligncenter size-full wp-image-1924" title="config_firewall" src="http://www.voipandhack.it/wp-content/uploads/2012/04/config_firewall.png" alt="config_firewall" width="883" height="591" /></p>
<p>Una volta che l&#8217; istanza è diventata operativa e andata in esecuzione le viene assegnato un indirizzo IP statico interno (nel caso particolare 10.48.206.47).</p>
<p>Ma perché il nostro cloud server diventi realmente utile gli dovremo attribuire un indirizzo tramite il quale essere raggiungibile dall&#8217;esterno. Amazon lo chiama Elastic IP ed è anch&#8217;esso gratuito e va associato ad una istanza in esecuzione.</p>
<p>Clicchiamo a sinistra su Elastic IP, allochiamo un nuovo IP (in questo caso 54.247.165.170), ed associamolo alla istanza.</p>
<p><img class="aligncenter size-full wp-image-1921" title="alloc_assoc" src="http://www.voipandhack.it/wp-content/uploads/2012/04/alloc_assoc.png" alt="alloc_assoc" width="731" height="482" /></p>
<p>l&#8217;indirizzo IP ottenuto ed associato è ora risolvibile nel nome di ec2-54-247-165-170.eu-west-1.compute.amazonaws.com</p>
<p>Dato che il Security Group precedentemente associato con la nostra micro instanza lo permette, ora dovremmo essere in grado di connetterci all&#8217;istanza in esecuzione. La connessione prevista all&#8217; istanza deve avvenire via SSH usando la coppia di chiavi Key Pair creata in precedenza</p>
<p>Nell&#8217; esempio, mi sto connettendo alla istanza attraverso una abituale linux box. La coppia di chiavi si chiama voiphack_test_key.pem e si trova nella directory .ssh della mia home directory, in compagnia del file known_hosts.</p>
<p>Al prompt, digito:</p>
<p><code># ssh -i .ssh/voiphack_test_key.pem ec2-user@54.247.165.170<br />
Last login: Sat Apr 21 15:56:46 2012 from adsl-ull-142-196.49-151.net24.it</code></p>
<p><code>__|  __|_  )<br />
_|  (     /   Amazon Linux AMI<br />
___|\___|___|</code></p>
<p><code>https://aws.amazon.com/amazon-linux-ami/2012.03-release-notes/<br />
[ec2-user@ip-10-48-206-47 ~]$</code></p>
<p>54.247.165.170 rappresenta l&#8217; IP address associato con la micro istanza ed ec2-user l&#8217;utente (di default) con cui ci dovremo loggare.  Un modo alternativo veloce per collegarsi alla propria istanza consiste nel selezionarla, e con il tasto destro selezionare &#8220;Connect&#8221;.</p>
<p><img class="aligncenter size-full wp-image-1922" title="ssh_java" src="http://www.voipandhack.it/wp-content/uploads/2012/04/ssh_java.png" alt="ssh_java" width="633" height="543" /></p>
<p>Oltre alla possibilità di utilizzare un client stand-alone, per il quale viene suggerito il comando che abbiamo già utilizzato, vi è la possibilitàa di utilizzare un client ssh java senza dover uscire dall&#8217;ambiente del browser.</p>
<p><img class="aligncenter size-full wp-image-1923" title="java_term" src="http://www.voipandhack.it/wp-content/uploads/2012/04/java_term.png" alt="java_term" width="581" height="416" /></p>
<p>Assicuratevi che le permissioni relative al file &lt;Key Pair&gt;.pem file siano impostate a 400.  In caso contrario la connessione verrebbe negata.</p>
<p>Giunti fin qui possiamo dire di aver creato con successo una micro istanza Amazon AWS, di averle assegnato un indirizzo IP Statico, di aver aperto le necessarie porte nel firewall, e di essere infine connessi alla nostra istanza utilizzando SSH.</p>
<p>Nel successivo post la seconda parte dell&#8217;articolo, dove verrà trattata la parte relativa alla installazione di Asterisk IP PBX sulla nostra micro istanza.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking | Consulenza Documentazione"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Asterisk su Amazon Cloud EC2 - prima parte"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/linux/asterisk-su-amazon-cloud-ec2-prima-parte"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2012-04-21 20:04:41"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Dopo aver sperimentato una soluzione Asterisk in the cloud, che definirei &amp;#8220;de noartri&amp;#8221;, su dnshosting, ho voluto provare ad installare Asterisk IP PBX su di un Amazon EC2 Web Service Cloud, in puro stile yankee.&lt;/p&gt;
&lt;p&gt;Dato che Amazon, molto gentilmente peraltro, mette a disposizione gratuitamente una cosidetta &amp;#8220;micro instance&amp;#8221; AWS (Amazon Web Service) per la durata di un intero anno, tale mi è senbrata una buona occasione per effettuare un test, puntando nello specifico l&amp;#8217;attenzione su quel particolare tipo di AWS che prende il nome di EC2, o Amazon Elastic Compute Cloud, ovvero la versione Amazon per un server in the cloud.&lt;span id=&quot;more-1912&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Occorre, cosa ampiamente prevedibile del resto, iscriversi a qualche servizio.&lt;br /&gt;
Se non si possiede già un account AWS, bisognerà ottenerne uno. L&amp;#8217;account AWS darà accesso alla totalità dei servizi possibili, ma vi verrà addebitato esclusivamente il consumo delle risorse effettivamente utilizzate. Una micro istanza sarà sempre disponibile gratuitamente per l&amp;#8217;arco di un anno, con dei limiti di esercizio ben stabiliti oltre i quali l&amp;#8217;utilizzo della micro istanza comporta un costo.&lt;/p&gt;
&lt;p&gt;I termini di servizio entro i quali l&amp;#8217;uso di una micro-istanza sono gratuiti (per un anno) sono i seguenti:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Caratteristiche di una istanza Amazon free&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/amazon_free_levels1.png&quot; alt=&quot;Caratteristiche di una istanza Amazon free&quot; width=&quot;566&quot; height=&quot;256&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Per creare un account AWS, occorre visitare &lt;a href=&quot;http://aws.amazon.com&quot;&gt;http://aws.amazon.com&lt;/a&gt; e fare click su &amp;#8220;Sign Up Now&amp;#8221;, dopodiché occorre seguire le istruzioni che appariranno sullo schermo.&lt;/p&gt;
&lt;p&gt;E&amp;#8217; opportuno precisare a questo punto che, per poter proseguire con l&amp;#8217; impostazione dell&amp;#8217;account, purtroppo si rende necessario fornire un numero di carta di credito valido. L&amp;#8217;adozione di questa misura è dettata dal possibile sforamento dei limiti di traffico imposti ad una micro-istanza &amp;#8220;free&amp;#8221;.&lt;br /&gt;
I costi d&amp;#8217;esercizio proposti da Amazon, in ogni caso, sembrano decisamente economici, sopratutto se del cloud computing si fa un uso intelligente, che è poi il motivo per cui diviene così allettante.&lt;br /&gt;
Al contrario dell&amp;#8217;hosting tradizionale, chi ne usufruisce può veramente essere in grado di pagare esclusivamente per ciò che consuma.&lt;br /&gt;
Consiglio di usare, per questo tipo di test ed altri simili, una postepay visa electron con solo qualche spicciolo accreditato.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1946&quot; title=&quot;introduzione degli estremi di una creditcard valida&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/introd_cc_amazonmc21.png&quot; alt=&quot;introduzione degli estremi di una creditcard valida&quot; width=&quot;572&quot; height=&quot;587&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ci verrà richiesta una identificazione tramite chiamata telefonica, che avverrà puntualmente da parte di Amazon sul numero che avremo indicato:&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1947&quot; title=&quot;identity_by_tel1&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/identity_by_tel1.png&quot; alt=&quot;identity_by_tel1&quot; width=&quot;567&quot; height=&quot;350&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ci verrà poi notificato per email quando il nostro account è attivo e disponibile.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1948&quot; title=&quot;confirmation_by_email1&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/confirmation_by_email1.png&quot; alt=&quot;confirmation_by_email1&quot; width=&quot;816&quot; height=&quot;245&quot; /&gt;&lt;/p&gt;
&lt;p&gt;in questo modo:&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1917&quot; title=&quot;email_confirm&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/email_confirm.png&quot; alt=&quot;email_confirm&quot; width=&quot;778&quot; height=&quot;334&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;Nel creare una istanza, ho scelto il datacenter geograficamente più vicino per poter usufruire (teoricamente) della migliore connessione possibile.&lt;br /&gt;
&lt;img class=&quot;aligncenter size-full wp-image-1918&quot; title=&quot;getting_started&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/getting_started.png&quot; alt=&quot;getting_started&quot; width=&quot;928&quot; height=&quot;347&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Si presenta a questo punto la necessità di trovare la AMI (Amazon Machine Image) che possa fare al caso nostro.&lt;/p&gt;
&lt;p&gt;Una Amazon Machine Image (AMI) contiene tutte le informazioni necessarie ad avviare istanze del nostro software. Per esempio, una AMI può contenere, tipicamente, tutto il software necessario a implementare un completo web server. È possibile lanciare una o più istanze Amazon EC2 a partire da una AMI, e tutte le istanze saranno esattamente identiche.&lt;/p&gt;
&lt;p&gt;Amazon Elastic Compute Cloud (Amazon EC2) dà la possibilità di scegliere in maniera flessibile tra un vasto numero di differenti tipi di istanze per venire incontro alle più varie esigenze. Ciascuna istanza fornisce un prevedibile quantità di risorse computazionali dedicate ed il loro consumo viene monetizzato su base oraria.&lt;/p&gt;
&lt;p&gt;Per la precisione, di seguito vi sono i vari tipi di istanza disponibili&lt;/p&gt;
&lt;p&gt;Standard Instances, adatte ad ogni tipo di applicazione, suddivise a loro volta in.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Small Instance – default*&lt;/strong&gt;&lt;br /&gt;
1.7 GB memory&lt;br /&gt;
1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit)&lt;br /&gt;
160 GB instance storage&lt;br /&gt;
32-bit or 64-bit platform&lt;br /&gt;
I/O Performance: Moderate&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Medium Instance&lt;/strong&gt;&lt;br /&gt;
3.75 GB memory&lt;br /&gt;
2 EC2 Compute Unit (1 virtual core with 2 EC2 Compute Unit)&lt;br /&gt;
410 GB instance storage&lt;br /&gt;
32-bit or 64-bit platform&lt;br /&gt;
I/O Performance: Moderate&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Large Instance&lt;/strong&gt;&lt;br /&gt;
7.5 GB memory&lt;br /&gt;
4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)&lt;br /&gt;
850 GB instance storage&lt;br /&gt;
64-bit platform&lt;br /&gt;
I/O Performance: High&lt;br /&gt;
API name: m1.large&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Extra Large Instance&lt;/strong&gt;&lt;br /&gt;
15 GB memory&lt;br /&gt;
8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each)&lt;br /&gt;
1,690 GB instance storage&lt;br /&gt;
64-bit platform&lt;br /&gt;
I/O Performance: High&lt;/p&gt;
&lt;p&gt;e poi le &lt;strong&gt;Micro Instances&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le Micro instances (t1.micro) forniscono una moderata ma consistente quantità di risorse CPU, i cui termini di servizio ci sono già noti.&lt;/p&gt;
&lt;p&gt;Un&amp;#8217;ampia selezione di AMIs è resa disponibile direttamente da parte di Amazon e della community sorta intorno a Amazon EC2.&lt;/p&gt;
&lt;p&gt;Si può utilizzare la AWS Management Console (all&amp;#8217;indirizzo http://console.aws.amazon.com) per andare alla ricerca di AMIs in possesso di criteri specifii e quindi avviare istanze di tali AMIs. Per esempio, ricercare le AMIs che ha fornito direttamente Amazon, le AMIs fornite dalla comunità sorta intorno a EC2, o le AMIs che fanno uso di uno specifico sistema operativo.&lt;/p&gt;
&lt;p&gt;Per trovare una AMI adatta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Aprire la console Amazon EC2 all&amp;#8217;indirizzo &lt;a href=&quot;https://console.aws.amazon.com/ec2&quot;&gt;https://console.aws.amazon.com/ec2&lt;/a&gt;/.&lt;/li&gt;
&lt;li&gt;Nel pannello &amp;#8220;Navigation&amp;#8221;, cliccare AMIs.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Nella sezione &amp;#8220;Amazon Machine Images&amp;#8221;, nella lista &amp;#8220;Viewing&amp;#8221;, che mostra tutte le piattaforme (All Platforms,) potremmo fare click su Linux.&lt;br /&gt;
In questo esempio, faremo click su Amazon Images per limitare la visualizzazione solo alle AMIs fornite direttamente da Amazon Web Services&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1919&quot; title=&quot;ami_scelta&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/ami_scelta.png&quot; alt=&quot;ami_scelta&quot; width=&quot;705&quot; height=&quot;506&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Selezioniamo una AMI (in questo caso amzn-ami-pv-2012.03.1.x86_64-ebs) e poi facciamo click su Launch (il pulsante in alto a sinistra).&lt;/p&gt;
&lt;p&gt;Abbiamo appena avviato la fase di lancio di una istanza Amazon EC2 usando la AMI selezionata in precedenza. Il lancio di una istanza implica le seguenti operazioni:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configurare l&amp;#8217;istanza.&lt;/li&gt;
&lt;li&gt;Creare a coppia di chiavi.&lt;/li&gt;
&lt;li&gt;Creare un security group.&lt;/li&gt;
&lt;li&gt;Avviare effettivamente l&amp;#8217;istanza.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dopo aver selezionato una AMI, e aver cliccato su Launch Instance come indicato in precedenza, apparirà la pagina &amp;#8220;Create a New Instance&amp;#8221;, nominiamola per esempio &amp;#8220;Asterisk Cloud Server&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Accettiamo gli altri valori di defaults su questa pagina, e poi facciamo click su Continue.&lt;br /&gt;
Accettiamo pure i valori di defaults presentati nelle successive due pagine, e facciamo click su Continue per ciascuna di esse.&lt;br /&gt;
Quando il wizard mostrerà la pagina &amp;#8220;Create Key Pair&amp;#8221;, seguite i passi illustrati di seguito.&lt;/p&gt;
&lt;p&gt;Le istanze Amazon EC2 create a partire da una Public AMI usano una coppia di chiavi pubblica/privata, piuttosto che una password, per autenticarsi. La chiave pubblica è embedded nella nostra istanza. Faremo invece uso della private key per accreditarci in modo sicuro senza dover utilizzare una password. Una volta create le proprie AMIs, si possono adottare altri meccanismi per accedere in modo sicuro alle nuove istanze.&lt;/p&gt;
&lt;p&gt;Non avendo ancora mai utilizzato Amazon EC2 e non avendo creato finora alcuna coppia di chiavi, quando il wizard mostra la pagina Create Key Pair, il button Create a new Key Pair verrà selezionato di default.&lt;/p&gt;
&lt;p&gt;Nella pagina &amp;#8220;Create Key Pair&amp;#8221;, nella fattispecie nel box &amp;#8220;Enter a name for your key pair&amp;#8221;, introducete qualcosa tipo &amp;#8220;voiphack_test_key&amp;#8221;. Questo sarà il nome del file relativo alla chiave privata associata alla coppia (con una estensione .pem).&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1920&quot; title=&quot;create_keypair1&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/create_keypair1.png&quot; alt=&quot;create_keypair1&quot; width=&quot;883&quot; height=&quot;592&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Fate Click su &amp;#8220;Create &amp;amp; Download your Key Pair&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Vi verrà ora richiesto di salvare la chiave privata della coppia di chiavi sul vostro sistema.&lt;/p&gt;
&lt;p&gt;Salvate la chiave privata in un posto sicuro del vostro sistema ad esempio ~/.ssh, registrandone la locazione.&lt;/p&gt;
&lt;p&gt;Il wizard mostrerà poi la pagina &amp;#8220;Configure Firewall&amp;#8221;, dove andrà creato e configurato un security group.&lt;/p&gt;
&lt;p&gt;Un security group ci permette di aprire specifiche porte sulla nostra micro intanza, agendo proprio come un firewall.&lt;br /&gt;
In altri termini un security group definisce le regole firewall delle nostre istanze. Tali regole specificano quale traffico di rete in ingresso debba venire inoltrato alla nostra istanza (per esempio accettando il traffico ssh sulla porta 22). Il rimanente traffico viene ignorato. Sarà possibile modificare le regole di un group in qualsiasi momento. Le nuove regole vengono automaticamente imposte a tutte le istanze in esecuzione.&lt;/p&gt;
&lt;p&gt;Per rendere possibili connessioni SIP ed SSH, è necessario aprire le porte TCP 22, UDP 5060 ed ancora UDP nel range 10000-20000, range, che essendo molto ampio, potremmo ragionevolmente ridurre a un decimo (dovremo eventualmente poi ricordarci di andare a modificare di conseguenza il file rtp.conf del server), il che implica comunque, ancora, l&amp;#8217;apertura di 1000 porte per dialogo vocale basato su RTP.&lt;/p&gt;
&lt;p&gt;Nel box &amp;#8220;Group Name&amp;#8221;, introduciamo qualcosa, tipo my_group.&lt;/p&gt;
&lt;p&gt;Nel box &amp;#8220;Description&amp;#8221;, introduciamo una descrizione per il security group appena creato.&lt;/p&gt;
&lt;p&gt;Nel box &amp;#8220;Create a New Rule&amp;#8221; (Inbound Rules), fare click su SSH, quindi fare click su Add Rule.&lt;br /&gt;
Lo stesso vale per SIP e UDP nel range 10000-11000, come stabilito in precedenza.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1924&quot; title=&quot;config_firewall&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/config_firewall.png&quot; alt=&quot;config_firewall&quot; width=&quot;883&quot; height=&quot;591&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Una volta che l&amp;#8217; istanza è diventata operativa e andata in esecuzione le viene assegnato un indirizzo IP statico interno (nel caso particolare 10.48.206.47).&lt;/p&gt;
&lt;p&gt;Ma perché il nostro cloud server diventi realmente utile gli dovremo attribuire un indirizzo tramite il quale essere raggiungibile dall&amp;#8217;esterno. Amazon lo chiama Elastic IP ed è anch&amp;#8217;esso gratuito e va associato ad una istanza in esecuzione.&lt;/p&gt;
&lt;p&gt;Clicchiamo a sinistra su Elastic IP, allochiamo un nuovo IP (in questo caso 54.247.165.170), ed associamolo alla istanza.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1921&quot; title=&quot;alloc_assoc&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/alloc_assoc.png&quot; alt=&quot;alloc_assoc&quot; width=&quot;731&quot; height=&quot;482&quot; /&gt;&lt;/p&gt;
&lt;p&gt;l&amp;#8217;indirizzo IP ottenuto ed associato è ora risolvibile nel nome di ec2-54-247-165-170.eu-west-1.compute.amazonaws.com&lt;/p&gt;
&lt;p&gt;Dato che il Security Group precedentemente associato con la nostra micro instanza lo permette, ora dovremmo essere in grado di connetterci all&amp;#8217;istanza in esecuzione. La connessione prevista all&amp;#8217; istanza deve avvenire via SSH usando la coppia di chiavi Key Pair creata in precedenza&lt;/p&gt;
&lt;p&gt;Nell&amp;#8217; esempio, mi sto connettendo alla istanza attraverso una abituale linux box. La coppia di chiavi si chiama voiphack_test_key.pem e si trova nella directory .ssh della mia home directory, in compagnia del file known_hosts.&lt;/p&gt;
&lt;p&gt;Al prompt, digito:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# ssh -i .ssh/voiphack_test_key.pem ec2-user@54.247.165.170&lt;br /&gt;
Last login: Sat Apr 21 15:56:46 2012 from adsl-ull-142-196.49-151.net24.it&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;__|  __|_  )&lt;br /&gt;
_|  (     /   Amazon Linux AMI&lt;br /&gt;
___|\___|___|&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;https://aws.amazon.com/amazon-linux-ami/2012.03-release-notes/&lt;br /&gt;
[ec2-user@ip-10-48-206-47 ~]$&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;54.247.165.170 rappresenta l&amp;#8217; IP address associato con la micro istanza ed ec2-user l&amp;#8217;utente (di default) con cui ci dovremo loggare.  Un modo alternativo veloce per collegarsi alla propria istanza consiste nel selezionarla, e con il tasto destro selezionare &amp;#8220;Connect&amp;#8221;.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1922&quot; title=&quot;ssh_java&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/ssh_java.png&quot; alt=&quot;ssh_java&quot; width=&quot;633&quot; height=&quot;543&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Oltre alla possibilità di utilizzare un client stand-alone, per il quale viene suggerito il comando che abbiamo già utilizzato, vi è la possibilitàa di utilizzare un client ssh java senza dover uscire dall&amp;#8217;ambiente del browser.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1923&quot; title=&quot;java_term&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2012/04/java_term.png&quot; alt=&quot;java_term&quot; width=&quot;581&quot; height=&quot;416&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Assicuratevi che le permissioni relative al file &amp;lt;Key Pair&amp;gt;.pem file siano impostate a 400.  In caso contrario la connessione verrebbe negata.&lt;/p&gt;
&lt;p&gt;Giunti fin qui possiamo dire di aver creato con successo una micro istanza Amazon AWS, di averle assegnato un indirizzo IP Statico, di aver aperto le necessarie porte nel firewall, e di essere infine connessi alla nostra istanza utilizzando SSH.&lt;/p&gt;
&lt;p&gt;Nel successivo post la seconda parte dell&amp;#8217;articolo, dove verrà trattata la parte relativa alla installazione di Asterisk IP PBX sulla nostra micro istanza.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/linux/asterisk-su-amazon-cloud-ec2-prima-parte/feed</wfw:commentRss>
		</item>
		<item>
		<title>SSH forwarding in netcat mode</title>
		<link>http://www.voipandhack.it/archives/linux/ssh-forwarding-in-netcat-mode</link>
		<comments>http://www.voipandhack.it/archives/linux/ssh-forwarding-in-netcat-mode#comments</comments>
		<pubDate>Fri, 13 Apr 2012 20:58:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Networking]]></category>

		<category><![CDATA[iptables]]></category>

		<category><![CDATA[netcat]]></category>

		<category><![CDATA[port forwarding]]></category>

		<category><![CDATA[proxycommand]]></category>

		<category><![CDATA[ssh]]></category>

		<category><![CDATA[tcp-ip]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1910</guid>
		<description><![CDATA[Una situazione piuttosto comune consiste nella necessità di accedere a più hosts che si trovino dietro a qualche tipo di firewall (magari sotto NAT, motivo per cui gli hosts avrebbero tutti indirizzi IP privati). Avendo un accesso SSH al firewall, da quest&#8217;ultimo sarebbe possibile stabilire altre sessioni ssh verso gli hosts interni. Se indubbiamente questo [...]]]></description>
			<content:encoded><![CDATA[<p>Una situazione piuttosto comune consiste nella necessità di accedere a più hosts che si trovino dietro a qualche tipo di firewall (magari sotto NAT, motivo per cui gli hosts avrebbero tutti indirizzi IP privati). Avendo un accesso SSH al firewall, da quest&#8217;ultimo sarebbe possibile stabilire altre sessioni ssh verso gli hosts interni. Se indubbiamente questo approccio funziona, non è certo quello ideale.<span id="more-1910"></span><br />
Per rappresentare uno scenario di questo tipo, supponiamo che gli hosts interni facciano parte della rete 192.168.0.0/24, e per semplicità i loro nomi siano correlati ai rispettivi indirizzi, tipo interno1 per 192.168.0.1, interno2 per 192.168.0.2, ecc&#8230;<br />
Chiameremo invece client la postazione locale dalla quale ci connetteremo.</p>
<p>La prima soluzione alternativa adottabile sfrutta l&#8217; SSH Port Forwarding, che abbiamo già incontrato in precedenza:</p>
<p>da client:<br />
<code><br />
user@client ~ $ ssh -L1111:192.168.0.1:22 user@firewall<br />
</code><br />
aperta un&#8217;altra shell su client:<br />
<code><br />
user@client ~ $ ssh -p 1111 user@localhost<br />
Last login: ...<br />
user@interno1 ~ $<br />
</code><br />
ed il problema è risolto. Ma cosa comporta questo metodo nel caso in cui gli hosts cui si vuole accedere siano numerosi? Diventa necessario aprire un equivalente numero di sessioni sul firewall, ciascuna per il forwarding verso una differente porta locale, oltre a dover ricordare precisamente le relazioni tra host target e porta locale:<br />
<code><br />
user@client ~ $ ssh -L1111:192.168.0.1:22 user@firewall<br />
user@client ~ $ ssh -L1112:192.168.0.2:22 user@firewall<br />
user@client ~ $ ssh -L1113:192.168.0.3:22 user@firewall<br />
</code><br />
Aumentando il numero di hosts cui accedere ovviamente le cose si complicano.</p>
<p>Ma vi è pure un altro inconveniente, che si presenta quando vi sia la necessità di connettersi ad un firewall differente, riutilizzando ad esempio ancora la porta 1111 per il forwarding verso qualche host interno:<br />
<code><br />
client:~$ ssh -L1111:172.16.0.17:22 anotheruser@anotherfirewall<br />
client:~$ ssh -p 1111 root@localhost<br />
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @<br />
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!<br />
..................<br />
Host key verification failed.<br />
</code><br />
Una seconda soluzione si basa su una particolare configurazione DNAT, impostando il forwarding, tramite iptables, direttamente sul firewall, in modo che connessioni a porte differenti siano inoltrate a hosts interni differenti.</p>
<p>Assumendo che sul firewall, l&#8217;interfaccia su Internet sia 85.113.155.115:<br />
<code><br />
firewall:~# iptables -t nat -A PREROUTING -p tcp -d 85.113.155.115 --dport 1111 -j DNAT --to-destination 192.168.0.1:22<br />
firewall:~# iptables -t nat -A PREROUTING -p tcp -d 85.113.155.115 --dport 1112 -j DNAT --to-destination 192.168.0.2:22<br />
firewall:~# iptables -t nat -A PREROUTING -p tcp -d 85.113.155.115 --dport 1113 -j DNAT --to-destination 192.168.0.3:22<br />
</code><br />
Il vantaggio in questo caso consiste nel fatto che le associazioni divengono permanenti e non necessitano più di essere impostate sul client locale.<br />
Essendo le associazioni permanenti diviene inoltre possibile definire e dare un nome a ciasuna connessione nel proprio file di configurazione ssh (ad es. ~/.ssh/config):<br />
<code><br />
# cat ~/.ssh/config<br />
Host interno1<br />
HostName 85.113.155.115<br />
Port 1111<br />
User someuser</code><br />
<code><br />
Host interno2<br />
HostName 85.113.155.115<br />
Port 1112<br />
User someuser<br />
...<br />
</code><br />
in tal modo si può utilizzare ad esempio:<br />
<code><br />
# ssh interno1<br />
</code><br />
ed accedere direttamente all&#8217;host interno 192.168.0.1.</p>
<p>Tuttavia, per adottare questo metodo occorre disporre di un accesso in qualità di utente root al firewall per modificarne la configurazione, cosa che potrebbe anche non essere permessa. Questo metodo significa anche l&#8217;apertura di un certo numero di porte esterne sul firewall, operazione in generale non desiderabile.<br />
<strong><br />
Terza soluzione tramite ProxyCommand</strong></p>
<p>Tra le molte opzioni di SSH ve ne è una chiamata ProxyCommand, particolarmente adatta al nostro scopo. Consiste essenzialmente nello specificare un comando che SSH utilizzerà come un canale di trasporto per connettersi all&#8217;host di destinazione. Anziché utilizzare TCP, dove l&#8217; I/O avviene tramite un network socket, scrittura e lettura avverranno rispettivamente tramite standard input e standard output del comando specificato. Tale comando dovrà infine convertire i propri stdin ed stdout in una reale connessione di rete ad un host terminale. In altre parole, un comando che si comporti da un lato come cat ma sia in grado di connettersi ad un network socket e trasportare dati in entrambe le direzioni. Come è facile indovinare, questo comando è netcat.</p>
<p>Ecco come l&#8217;opzione ProxyCommand potrebbe essere implementata:<br />
<code><br />
# cat ~/.ssh/config<br />
Host interno1<br />
User root<br />
ProxyCommand ssh user@85.113.155.115 'nc 192.168.0.1 22'<br />
</code><br />
Impartendo &#8220;ssh interno1&#8243;, viene eseguito ProxyCommand, ed in tal modo viene stabilita una connessione con la macchina firewall, e da quest&#8217;ultima viene lanciato un netcat relativo all&#8217; host interno1. Sul firewall, stdin ed stdout di netcat sono connessi al processo genitore sshd, che a sua volta si trova connesso via TCP al comando ssh del client. Ciò che si ottiene è effettivamente una connessione bidirezionale tra stdin/stdout del client ssh locale e la porta TCP 22 dell&#8217; host con indirizzo 192.168.0.1 (interno1). Possiamo verificarlo lanciando il comando stand-alone:<br />
<code><br />
# ssh user@85.113.155.115 'nc 192.168.0.1 22'<br />
</code><br />
La risposta arriverà direttamente dal daemon SSH di 192.168.0.1.</p>
<p>Una recente introduzione implementa il &#8216;netcat mode&#8217; direttamente in SSH (dalla versione 5.4): &#8220;ssh -W host:port [user@]hostname&#8221;.<br />
Questo permette, ad esempio, l&#8217;utilizzo diretto di ssh come ProxyCommand per l&#8217;instradamento di connessioni attraverso servers intermedi.</p>
<p>Si potrebbe pertanto usare qualcosa di simile<br />
<code><br />
# cat ~/.ssh/config<br />
Host interno1<br />
User root<br />
ProxyCommand ssh -W 192.168.0.1:22 user@85.113.155.115<br />
</code></p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking | Consulenza Documentazione"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="SSH forwarding in netcat mode"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/linux/ssh-forwarding-in-netcat-mode"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2012-04-13 22:04:54"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Una situazione piuttosto comune consiste nella necessità di accedere a più hosts che si trovino dietro a qualche tipo di firewall (magari sotto NAT, motivo per cui gli hosts avrebbero tutti indirizzi IP privati). Avendo un accesso SSH al firewall, da quest&amp;#8217;ultimo sarebbe possibile stabilire altre sessioni ssh verso gli hosts interni. Se indubbiamente questo approccio funziona, non è certo quello ideale.&lt;span id=&quot;more-1910&quot;&gt;&lt;/span&gt;&lt;br /&gt;
Per rappresentare uno scenario di questo tipo, supponiamo che gli hosts interni facciano parte della rete 192.168.0.0/24, e per semplicità i loro nomi siano correlati ai rispettivi indirizzi, tipo interno1 per 192.168.0.1, interno2 per 192.168.0.2, ecc&amp;#8230;&lt;br /&gt;
Chiameremo invece client la postazione locale dalla quale ci connetteremo.&lt;/p&gt;
&lt;p&gt;La prima soluzione alternativa adottabile sfrutta l&amp;#8217; SSH Port Forwarding, che abbiamo già incontrato in precedenza:&lt;/p&gt;
&lt;p&gt;da client:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
user@client ~ $ ssh -L1111:192.168.0.1:22 user@firewall&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
aperta un&amp;#8217;altra shell su client:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
user@client ~ $ ssh -p 1111 user@localhost&lt;br /&gt;
Last login: ...&lt;br /&gt;
user@interno1 ~ $&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
ed il problema è risolto. Ma cosa comporta questo metodo nel caso in cui gli hosts cui si vuole accedere siano numerosi? Diventa necessario aprire un equivalente numero di sessioni sul firewall, ciascuna per il forwarding verso una differente porta locale, oltre a dover ricordare precisamente le relazioni tra host target e porta locale:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
user@client ~ $ ssh -L1111:192.168.0.1:22 user@firewall&lt;br /&gt;
user@client ~ $ ssh -L1112:192.168.0.2:22 user@firewall&lt;br /&gt;
user@client ~ $ ssh -L1113:192.168.0.3:22 user@firewall&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Aumentando il numero di hosts cui accedere ovviamente le cose si complicano.&lt;/p&gt;
&lt;p&gt;Ma vi è pure un altro inconveniente, che si presenta quando vi sia la necessità di connettersi ad un firewall differente, riutilizzando ad esempio ancora la porta 1111 per il forwarding verso qualche host interno:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
client:~$ ssh -L1111:172.16.0.17:22 anotheruser@anotherfirewall&lt;br /&gt;
client:~$ ssh -p 1111 root@localhost&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
..................&lt;br /&gt;
Host key verification failed.&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Una seconda soluzione si basa su una particolare configurazione DNAT, impostando il forwarding, tramite iptables, direttamente sul firewall, in modo che connessioni a porte differenti siano inoltrate a hosts interni differenti.&lt;/p&gt;
&lt;p&gt;Assumendo che sul firewall, l&amp;#8217;interfaccia su Internet sia 85.113.155.115:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
firewall:~# iptables -t nat -A PREROUTING -p tcp -d 85.113.155.115 --dport 1111 -j DNAT --to-destination 192.168.0.1:22&lt;br /&gt;
firewall:~# iptables -t nat -A PREROUTING -p tcp -d 85.113.155.115 --dport 1112 -j DNAT --to-destination 192.168.0.2:22&lt;br /&gt;
firewall:~# iptables -t nat -A PREROUTING -p tcp -d 85.113.155.115 --dport 1113 -j DNAT --to-destination 192.168.0.3:22&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Il vantaggio in questo caso consiste nel fatto che le associazioni divengono permanenti e non necessitano più di essere impostate sul client locale.&lt;br /&gt;
Essendo le associazioni permanenti diviene inoltre possibile definire e dare un nome a ciasuna connessione nel proprio file di configurazione ssh (ad es. ~/.ssh/config):&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# cat ~/.ssh/config&lt;br /&gt;
Host interno1&lt;br /&gt;
HostName 85.113.155.115&lt;br /&gt;
Port 1111&lt;br /&gt;
User someuser&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
Host interno2&lt;br /&gt;
HostName 85.113.155.115&lt;br /&gt;
Port 1112&lt;br /&gt;
User someuser&lt;br /&gt;
...&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
in tal modo si può utilizzare ad esempio:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ssh interno1&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
ed accedere direttamente all&amp;#8217;host interno 192.168.0.1.&lt;/p&gt;
&lt;p&gt;Tuttavia, per adottare questo metodo occorre disporre di un accesso in qualità di utente root al firewall per modificarne la configurazione, cosa che potrebbe anche non essere permessa. Questo metodo significa anche l&amp;#8217;apertura di un certo numero di porte esterne sul firewall, operazione in generale non desiderabile.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Terza soluzione tramite ProxyCommand&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tra le molte opzioni di SSH ve ne è una chiamata ProxyCommand, particolarmente adatta al nostro scopo. Consiste essenzialmente nello specificare un comando che SSH utilizzerà come un canale di trasporto per connettersi all&amp;#8217;host di destinazione. Anziché utilizzare TCP, dove l&amp;#8217; I/O avviene tramite un network socket, scrittura e lettura avverranno rispettivamente tramite standard input e standard output del comando specificato. Tale comando dovrà infine convertire i propri stdin ed stdout in una reale connessione di rete ad un host terminale. In altre parole, un comando che si comporti da un lato come cat ma sia in grado di connettersi ad un network socket e trasportare dati in entrambe le direzioni. Come è facile indovinare, questo comando è netcat.&lt;/p&gt;
&lt;p&gt;Ecco come l&amp;#8217;opzione ProxyCommand potrebbe essere implementata:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# cat ~/.ssh/config&lt;br /&gt;
Host interno1&lt;br /&gt;
User root&lt;br /&gt;
ProxyCommand ssh user@85.113.155.115 'nc 192.168.0.1 22'&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Impartendo &amp;#8220;ssh interno1&amp;#8243;, viene eseguito ProxyCommand, ed in tal modo viene stabilita una connessione con la macchina firewall, e da quest&amp;#8217;ultima viene lanciato un netcat relativo all&amp;#8217; host interno1. Sul firewall, stdin ed stdout di netcat sono connessi al processo genitore sshd, che a sua volta si trova connesso via TCP al comando ssh del client. Ciò che si ottiene è effettivamente una connessione bidirezionale tra stdin/stdout del client ssh locale e la porta TCP 22 dell&amp;#8217; host con indirizzo 192.168.0.1 (interno1). Possiamo verificarlo lanciando il comando stand-alone:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ssh user@85.113.155.115 'nc 192.168.0.1 22'&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
La risposta arriverà direttamente dal daemon SSH di 192.168.0.1.&lt;/p&gt;
&lt;p&gt;Una recente introduzione implementa il &amp;#8216;netcat mode&amp;#8217; direttamente in SSH (dalla versione 5.4): &amp;#8220;ssh -W host:port [user@]hostname&amp;#8221;.&lt;br /&gt;
Questo permette, ad esempio, l&amp;#8217;utilizzo diretto di ssh come ProxyCommand per l&amp;#8217;instradamento di connessioni attraverso servers intermedi.&lt;/p&gt;
&lt;p&gt;Si potrebbe pertanto usare qualcosa di simile&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# cat ~/.ssh/config&lt;br /&gt;
Host interno1&lt;br /&gt;
User root&lt;br /&gt;
ProxyCommand ssh -W 192.168.0.1:22 user@85.113.155.115&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/linux/ssh-forwarding-in-netcat-mode/feed</wfw:commentRss>
		</item>
		<item>
		<title>Estendere iptables con ipset</title>
		<link>http://www.voipandhack.it/archives/linux/estendere-iptables-con-ipset</link>
		<comments>http://www.voipandhack.it/archives/linux/estendere-iptables-con-ipset#comments</comments>
		<pubDate>Mon, 02 Apr 2012 10:35:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Networking]]></category>

		<category><![CDATA[Sicurezza]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[firewall]]></category>

		<category><![CDATA[internet]]></category>

		<category><![CDATA[ipset]]></category>

		<category><![CDATA[iptables]]></category>

		<category><![CDATA[tcp-ip]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1908</guid>
		<description><![CDATA[﻿iptables, che fa parte del più ampio framework netfilter, è notoriamente il tool in user-space destinato alla definizione delle regole di firewall del kernel Linux.
ipset è una estensione per iptables che permette la creazione di regole firewall applicabili contemporaneamente ad interi insiemi di indirizzi. A differenza di quanto avviene nelle normali catene  iptables, che [...]]]></description>
			<content:encoded><![CDATA[<p>﻿iptables, che fa parte del più ampio framework netfilter, è notoriamente il tool in user-space destinato alla definizione delle regole di firewall del kernel Linux.</p>
<p>ipset è una estensione per iptables che permette la creazione di regole firewall applicabili contemporaneamente ad interi insiemi di indirizzi. A differenza di quanto avviene nelle normali catene  iptables, che sono memorizzate e traversate linearmente, i sets sono memorizzati in strutture dati indicizzate, caratteristica che ne rende la consultazione molto efficiente, anche in presenza di sets voluminosi. <span id="more-1908"></span></p>
<p>Oltre che in situazioni dove è facile immaginarne l&#8217;utilità, come il blocco di lunghe liste di &#8220;bad&#8221; hosts senza doversi preoccupare dell&#8217;eccessivo impiego di risorse di sistema o della congestione di quelle di rete, ipset offre anche un nuovo approccio a determinati aspetti inerenti la progettazione di un firewall, semplificandone la configurazione. </p>
<p>ipset è un package presente in molte distribuzioni, ma solo come raccolta di tools, per cui ho preferito ignorarlo ed installare (sotto Linux Mint) i packages  xtables-addons-common ed xtables-addons-source.<br />
E successivamente impartire<br />
<code><br />
# module-assistant auto-install xtables-addons-source<br />
</code><br />
per ottenere un ipset funzionale. </p>
<p>Prima di proseguire è doveroso spendere un po&#8217; di tempo a rinfrescare alcuni concetti fondamentali di iptables.</p>
<p>In sintesi, la configuratione di un firewall iptables consiste di un set di &#8220;chains&#8221; built-in  (raggruppate in quattro &#8220;tables&#8221;) che contengono ciascuna una lista di regole o &#8220;rules&#8221;. </p>
<p>Per ciascun pacchetto, in ciascuna fase del suo trattamento, il kernel consulta la chain appropriata per determinarne il destino.<br />
Le chains vengono consultate in rigoroso ordine, basato sulla direzione del pacchetto (remoto->locale, remoto->remoto oppure locale->remoto) e la sua fase corrente di trattamento o processing (prima o dopo il &#8220;routing&#8221;). </p>
<p>Il pacchetto viene confrontato con ciascuna delle regole della chain, nell&#8217; ordine, fino a che non viene trovata una corrispondenza. Una volta che ciò avviene, viene intrapresa la azione specificata nel target della regola.<br />
Se viene invece raggiunta la fine della chain senza trovare una corrispondenza, viene intrapresa la azione target di default per la catena, o policy. </p>
<p>Una chain non è altro che una lista ordinata di regole, ed una regola non è altro che una combinazione corrispondenza/target.<br />
Un semplice esempio di corrispondenza è &#8220;TCP destination port 25&#8243;.<br />
Un semplice esempio di target può essere &#8220;scarta il pacchetto&#8221; (DROP).<br />
I targets possono anche redirigere ad altre chains definite dall&#8217;utente, cosa che fornisce un meccanismo per raggruppare e suddividere le regole seguendo una logica.<br />
Ciascun comando iptables destinato a definire una regola, corto o lungo che sia, è composto di tre parti fondamentali che specificano la table/chain, la corrispondenza (match) ed il target  </p>
<p>Per creare una completa configurazione firewall, occorre di fatto mandare in esecuzione una serie di comandi iptables, in uno specifico ordine. </p>
<p><strong>ipset</strong><br />
ipset è una &#8220;match extension&#8221;, cioè una estensione basata sulla definizione di corrispondenze, per iptables.<br />
Per poterla usare è prima necessario creare e popolare dei &#8220;sets&#8221; univocamente chiamati utilizzando il tool a linea di comando ipset, e successivamente fare riferimento a tali sets in una o più regole iptables. </p>
<p>Un set può essere semplicemente una lista di indirizzi archiviata per un efficiente ritrovamento.<br />
Prendiamo come riferimento i seguenti normali comandi iptables destinati a bloccare il traffico in ingresso proveniente da 201.121.12.1 e 202.121.12.2:<br />
<code><br />
# iptables -A INPUT -s 201.121.12.1 -j DROP<br />
# iptables -A INPUT -s 202.121.12.2 -j DROP<br />
</code><br />
La sintassi che specifica la corrispondenza (-s 201.121.12.1) significa &#8220;i pacchetti il cui indirizzo di origine è 201.121.12.1&#8243;. Per bloccare sia 201.121.12.1 che 202.121.12.2, devono venire definite due distinte regole iptables con due distinte specificazioni di corrispondenza (una per 201.121.12.1 ed una per 202.121.12.2). </p>
<p>In alternativa, i seguenti comandi ipset/iptables servono ad ottenere lo stesso risultato:<br />
<code><br />
# ipset -N myset iphash<br />
# ipset -A myset 201.121.12.1<br />
# ipset -A myset 202.121.12.2<br />
# iptables -A INPUT -m set --set myset src -j DROP<br />
</code><br />
I comandi ipset appena visti creano un nuovo set (myset, del tipo iphash) con due indirizzi (201.121.12.1 e 202.121.12.2).<br />
Il successivo comando iptables fa quindi riferimento al set specificando la corrispondenza con -m set &#8211;set myset src, che significa &#8220;i pacchetti il cui source header è compreso nel set di nome myset&#8221;.<br />
Il flag src significa che la corrispondenza deve avvenire su &#8220;source&#8221;. Analogamente il flag dst avrebbe spostato la corrispondenza su &#8220;destination&#8221;, mentre il flag src,dst avrebbe riguardato sia source che destination. </p>
<p>Nella seconda versione è richiesto un solo comando iptables, indipententemente da quanti indirizzi IP siano presenti nel set.<br />
Anche se fossero migliaia, sarebbe necessaria sempre una singola regola iptables, mentre l&#8217;approccio tradizionale, senza il vantaggio offerto da ipset, richiederebbe migliaia di regole. </p>
<p><strong>Tipi di set</strong><br />
Ciascun set è di uno specifico tipo, che definisce che genere di valore possa esservi memorizzato (indirizzi IP, networks, porte ecc.) così come debba essere ricercata la corrispondenza (ovvero, quale  parte del pacchetto debba essere controllata e come debba essere confrontata coi valori presenti nel set).<br />
Oltre ai tipi più comuni, che controllano gli indirizzi IP, ne sono disponibili addizionali che si riferiscono alla porta, sia all&#8217;indirizzo IP che alla porta contemporaneamente, oppure contemporaneamente al MAC address e all&#8217;indirizzo IP, ecc. </p>
<p>Ciascun tipo di set ha le proprie regole per tipo, range e distribuzione dei valori che può contenere.<br />
Differenti tipi di set usano anche differenti tipi di indici e risultano ottimizzati per differenti scenari. La scelta del migliore / più efficiente tipo di set dipende dalla situazione.</p>
<p>I tipi più flessibili di set sono iphash, che archivia liste di indirizzi IP arbitrari, e nethash, che archivia liste di networks eterogenee (IP/mask) di varie dimensioni. Si faccia comunque riferimento all man page di ipset per un elenco completo ed una descrizione di tutti i tipi di set (attualmente 11). </p>
<p>È anche disponibile il tipo speciale setlist, che consente di raggruppare insieme differenti sets in un set unico.<br />
È vantaggioso se si desidera, ad esempio,avere un singolo set che contenga sia singoli indirizzi IP che networks. </p>
<p><strong>Altri vantaggi di ipset</strong><br />
Oltre ad un guadagno in termini di performances, ipset consente anche configurazioni più semplici in molti scenari.<br />
Se si volesse ad esempio definire una condizione di filtraggio che corrisponda a qualsiasi pacchetto  che non provenga da 201.121.12.1 oppure 202.121.12.2, perché continui a venire processato in mychain, la sintassi seguente non funzionerebbe:<br />
<code><br />
# iptables -A INPUT -s ! 201.121.12.1 -g mychain<br />
# iptables -A INPUT -s ! 202.121.12.2 -g mychain<br />
</code><br />
Se un pacchetto provenisse da 201.121.12.1, non sarebbe interessato dalla prima regola (perché l&#8217;indirizzo sorgente è proprio 201.121.12.1), ma verrebbe catturato dalla seconda regola (perché l&#8217;indirizzo sorgente non è 202.121.12.2).<br />
Se un pacchetto provenisse da 202.121.12.2, corrisponderebbe alla prima regola (perché l&#8217;indirizzo sorgente non è 201.121.12.1). Le regole si annullano a vicenda (qualsiasi pacchetto troverebbe corrispondenza in una delle due). </p>
<p>Sebbene esistano altri modi di costruire correttamente la regola che avevamo in realtà desiderato, e senza fare uso di ipset, nessuno è altrettanto intuitivo e semplice:<br />
<code><br />
# ipset -N myset iphash<br />
# ipset -A myset 201.121.12.1<br />
# ipset -A myset 202.121.12.2<br />
# iptables -A INPUT -m set ! --set myset src -g mychain<br />
</code><br />
Qui, se un pacchetto provenisse da 201.121.12.1, non sarebbe interessato dalla regola (perché invece l&#8217;indirizzo sorgente 201.121.12.1 appartiene al set myset). Lo stesso avverrebbe, per lo stesso motivo, ad un pacchetto che provenisse da 202.121.12.2. </p>
<p>Sebbene si tratti di un esempio banale quello appena visto evidenzia il fondamentale beneficio derivante dall&#8217; aver implementato una condizione completa in una singola regola. </p>
<p>Un altro vantaggio offerto da ipset dipende dal fatto che i sets possono essere manipolati in maniera  indipendente dalle regole iptables attive. L&#8217;aggiunta e la rimozione di voci è una attività semplice e l&#8217;ordine irrilevante.<br />
In iptables, al contrario, oltre al fatto che una regola è un oggetto significativamente più complesso, l&#8217; ordine delle regole è di fondamentale importanza, pertanto la modifica sul posto di una o più regole è una operazione più impegnativa e soggetta ad errori. </p>
<p><strong>Esclusione di specifiche Routed Networks dal NAT - il modo corretto</strong><br />
Il NAT sul traffico uscente (SNAT oppure IP masquerade) consente agli hosts appartenenti ad una LAN privata di accedere ad Internet.<br />
Una appropriata regola iptables NAT intercetta i pacchetti destinati ad Internet originati dalla LAN privata e sostituisce l&#8217;indirizzo sorgente con l&#8217;indirizzo (esterno) del gateway stesso (facendo apparire il gateway come host originante e nascondendo il reale host originante privato).<br />
Il NAT automaticamente traccia le connessioni attive pertanto inoltra i pacchetti di ritorno all&#8217;host interno corretto (cambiando l&#8217;indirizzo di destinazione da quello del gateway all&#8217;indirizzo dell&#8217; originale host interno). </p>
<p>Qui di seguito c&#8217;è l&#8217; esempio di una semplice regola NAT outbound che realizza quanto detto, e dove 192.168.10.0/24 rappresenta la LAN interna:<br />
<code><br />
# iptables -t nat -A POSTROUTING \<br />
         -s 192.168.10.0/24 -j MASQUERADE<br />
</code><br />
Questa regola si applica a tutti i pacchetti in uscita dalla LAN e consiste nel mascherarli (cioè applicarvi il processo di &#8220;NAT&#8221;). Ciò potrebbe essere sufficiente se l&#8217;unica rotta possibile fosse verso Internet.<br />
Se tuttavia vi fossero rotte verso altre networks private, come avviene in VPN o links fisici WAN, probabilmente non risulterebbe desiderabile avere quel traffico mascherato. </p>
<p>Un modo semplice di superare questa limitazione (parzialmente) consiste nel basare la regola NAT sulle interfacce fisiche anziché su indirizzi di rete:<br />
<code><br />
# iptables -t nat -A POSTROUTING \<br />
         -o eth0 -j MASQUERADE<br />
</code><br />
Questa regola assume che eth0 sia la interfaccia esterna e si applica a tutti i pacchetti in uscita tramite essa.<br />
Contrariamente alla regola precedente, i pacchetti destinati ad altre networks che utilizzano delle rotte in uscita attraverso differenti interfacce (ad esempio i collegamenti OpenVPN), non saranno interessati da questa regola. </p>
<p>Sebbene tuttavia molte connessioni di rete possano avere rotte tramite interfaccie separate non è altrettanto vero che tutte lo possano fare. Ad esempio Openswan, che non fa uso di interfaccie virtuali come altre VPN  user-space (come OpenVPN). </p>
<p>In ogni caso progettare delle regole di firewall che si basino sulla interfaccia fisica può introdurre limiti e dipendenze nella topologia di rete, motivo che consiglia di evitare tale approccio, quando non strettamente necessario. </p>
<p>Ecco dunque un altro grande campo di applicazione per ipset. </p>
<p>Supponiamo che oltre a fare l&#8217; Internet gateway per la locale LAN privata (10.0.0.0/24), la nostra linux box abbia delle rotte dirette verso altre quattro network private (10.10.30.0/24, 10.10.40.0/24, 192.168.4.0/23 e 172.22.0.0/22). </p>
<p>Basta utilizzare I seguenti comandi:<br />
<code><br />
# ipset -N routed_nets nethash<br />
# ipset -A routed_nets 10.10.30.0/24<br />
# ipset -A routed_nets 10.10.40.0/24<br />
# ipset -A routed_nets 192.168.4.0/23<br />
# ipset -A routed_nets 172.22.0.0/22<br />
# iptables -t nat -A POSTROUTING \<br />
         -s 10.0.0.0/24 \<br />
         -m set ! --set routed_nets dst \<br />
         -j MASQUERADE<br />
</code><br />
Questa unica regola maschererà tutto il traffico che attraversa il box ed è originato dalla LAN interna (10.0.0.0/24) ad eccezione di quei pacchetti destinati alle reti elencate nel set routed_nets, preservando quindi il normale routing IP verso tali reti. </p>
<p>Poiché tale configurazione si basa solamente su indirizzi di rete non dovrete più preoccuparvi dei tipi di connessione in questione (tipo di VPNs, numero di hops ecc), e nemmeno dovrete più preoccuparvi di interfacce fisiche e topologie. </p>
<p><strong>Limitare l&#8217;accesso restringendolo solo a certi hosts pubblici da parte di certi PC della rete locale</strong><br />
Supponiamo che il megadirettoregalattico sia molto infastidito dall&#8221;idea che certi impiegati, Filini, Fantozzi e Fracchia possano passare il tempo a trastullarsi con Internet invece di lavorare e vi chieda di limitare l&#8217;accesso da parte dei loro PCs a uno specifico set di siti cui è necessario collegarsi per lavoro.<br />
Per limitare i tre PCs (192.168.0.5 è quello di Filini, 192.168.0.6 quello di Fantozzi e 192.168.0.7 quello di Fracchia) ad accedere solamente a renatobrunetta.it, avvenire.it e inps.it, si possono utilizzare i seguenti comandi:<br />
<code><br />
# ipset -N limited_hosts iphash<br />
# ipset -A limited_hosts 192.168.0.5<br />
# ipset -A limited_hosts 192.168.0.6<br />
# ipset -A limited_hosts 192.168.0.7<br />
# ipset -N allowed_sites iphash<br />
# ipset -A allowed_sites renatobrunetta.it<br />
# ipset -A allowed_sites avvenire.it<br />
# ipset -A allowed_sites inps.it<br />
# iptables -I FORWARD \<br />
         -m set --set limited_hosts src \<br />
         -m set ! --set allowed_sites dst \<br />
         -j DROP<br />
</code><br />
Questo esempio effettua un confronto con due sets in una singola regola. Se il l&#8217;indirizzo sorgente è compreso in limited_hosts e la destinazione non è compresa in allowed_sites, il pacchetto viene semplicemente scartato (a limited_hosts è permesso comunicare solamente con allowed_sites). </p>
<p>Si noti che dato che questa regola si trova nella chain FORWARD, non riguarda le comunicazioni da e verso il firewall stesso nè il traffico interno. </p>
<p><strong>Bloccare l&#8217;accesso a un certo insieme di siti tranne che da certi PCs (scenario inverso</strong>)<br />
Supponiamo che il solito megadirettoregalattico voglia bloccare l&#8217;accesso ad un certo insieme di siti da parte di tutti gli hosts della LAN fatta eccezione per il suo PC e quello della sua segretaria.<br />
Per variare, in questo esempio, decidiamo inoltre di individuare i PCs del capo e della sua segretaria tramite MAC address anziché indirizzo IP. Supponiamo che i MACs  siano 11:11:11:11:11:11 e 22:22:22:22:22:22, e che i siti da bloccare per tutti gli impiegati siano supersex.com, badboy.com e gazzetta.it.<br />
Anziche utilizzare un secondo ipset per comprendervi gli indirizzi MAC, utilizzeremo comandi multipli iptables con il target MARK allo scopo appunto di marcare i pacchetti, per processarli in successive regole della stessa chain:<br />
<code><br />
# ipset -N blocked_sites iphash<br />
# ipset -A blocked_sites supersex.com<br />
# ipset -A blocked_sites badboy.com<br />
# ipset -A blocked_sites gazzetta.it<br />
# iptables -I FORWARD -m mark --mark 0x187 -j DROP<br />
# iptables -I FORWARD \<br />
         -m mark --mark 0x187 \<br />
         -m mac --mac-source 11:11:11:11:11:11 \<br />
         -j MARK --set-mark 0x0<br />
# iptables -I FORWARD \<br />
         -m mark --mark 0x187 \<br />
         -m mac --mac-source 22:22:22:22:22:22 \<br />
         -j MARK --set-mark 0x0<br />
# iptables -I FORWARD \<br />
         -m set --set blocked_sites dst \<br />
         -j MARK --set-mark 0x187<br />
</code><br />
Come si può facilmente osservare, per non avere usato ipset per svolgere tutto il lavoro di controllo, come invece avvenuto nell&#8217;esempio precedente, i comandi sono un po&#8217; più involuti e complessi.<br />
Dato che si tratta di comandi iptables multipli, occorre intanto supporre che il loro ordine sia di vitale importanza. </p>
<p>Si noti che queste regole vengono aggiunte col l&#8217;opzione -I (insert) invece di -A (append).<br />
Quando di una regola viene effettuato l&#8217;insert, viene aggiunta in testa alla chain, sopravanzando tutte le regole eventualmente esistenti. </p>
<p>Poiché tutte le regole vengono inserite, l&#8217; effettivo ordine in cui verranno esaminate viene invertito. </p>
<p>L&#8217;ultimo comando iptables diventa pertanto il primo nella chain di FORWARD. La regola riguarda tutti i pacchetti con destinazione compresa nel set blocked_sites, e marca tali pacchetti con 0&#215;187 (un numero esadecimale preso arbitrariamente). </p>
<p>Le successive due regole riguardano solamente i pacchetti provenienti dai due hosts esclusi dal filtraggio, e che sono anch&#8217;essi già marcati con il valore 0&#215;187.  Queste due regole rimarcano I pacchetti con 0&#215;0, cancellando in tal modo il precedente 0&#215;187. </p>
<p>Infine l&#8217;ultima regola iptables (rappresentata dal primo comando iptables presente) scarta tutti i pacchetti col marchio 0&#215;187 mark.<br />
Questo corrisponde a tutti i pacchetti con destinazioni comprese nel set blocked_sites ad eccezione dei pacchetti provenienti dai due MACs, dato che il valore marcato in tali pacchetti viene ripulito prima che sia raggiunta la regola che effettua il DROP.</p>
<p>Per inciso: nella maggior parte dei casi pratici questa soluzione non è valida per bloccare l&#8217;accesso a quei  Web sites che dovrebbero essere i candidati ideali a finire nel set blocked_sites (tipo Facebook, MySpace e compagnia cantante), dato che essi possono avere indirizzi IP multipli, e questi ultimi variare di frequente.</p>
<p>Una limitazione generale di iptables/ipset è che gli hostnames dovrebbero venire specificati solamente se risovono in un singolo indirizzo IP.<br />
Inoltre il lookup di un hostname avviene solamente quando il comando viene eseguito, per cui se l&#8217;indirizzo IP address cambiasse, la regola firewall ignorerebbe il cambiamento e continuerebbe a fare riferimento all&#8217;originale IP. </p>
<p><strong>Ban automatico di Hosts che tentano di accedere a servizi non validi</strong><br />
ipset  aggiunge a iptables anche una &#8220;target extension&#8221; che fornisce un meccanismo in grado di aggiungere e rimuovere dinamicamente da un set voci basate su una qualsiasi regola iptables.<br />
Invece di aggiungere voci manualmente col comando ipset, si può fare in modo che iptables li aggiunga al volo al posto nostro. </p>
<p>Per esempio, se un host remoto tentasse di connettersi alla porta 25, senza che vi sia in ascolto alcun server SMTP, sarebbe probabilmente una buona idea impedire a quell&#8217;host l&#8217; opportunità di tentare qualcosa d&#8217;altro proattivamente, usando le seguenti regole:<br />
<code><br />
# ipset -N banned_hosts iphash<br />
# iptables -A INPUT \<br />
           -p tcp --dport 25 \<br />
           -j SET --add-set banned_hosts src<br />
# iptables -A INPUT \<br />
           -m set --set banned_hosts src \<br />
           -j DROP<br />
</code><br />
Se un pacchetto arrivasse sulla porta 25, diciamo con indirizzo sorgente 94.10.18.1, tale indirizzo verrebbe aggiunto istantaneamente al set banned_hosts, come se venisse impartito il comando:<br />
<code><br />
# ipset -A banned_hosts 94.10.18.1<br />
</code><br />
Tutto il traffico proveniente da 94.10.18.1  verrebbe da quel momento bloccato dalla regola col target DROP. </p>
<p><strong>Azzeramento della configurazione corrente</strong><br />
Volendo azzerare la corrente configurazione ipset ed iptables (set, regole, voci) e tornare ad uno stato di firewall completamente open (utile in testa ad uno script che imposti da zero un firewall), si possono mandare in esecuzione i seguenti comandi:<br />
<code><br />
# iptables -P INPUT ACCEPT<br />
# iptables -P OUTPUT ACCEPT<br />
# iptables -P FORWARD ACCEPT<br />
# iptables -t filter -F<br />
# iptables -t raw -F<br />
# iptables -t nat -F<br />
# iptables -t mangle -F<br />
# ipset -F<br />
# ipset -X<br />
</code><br />
Sets che siano &#8220;in uso&#8221;, cioè referenziati da una o più regole iptables, non possono essere distrutti (con ipset -X). Pertanto, per ottenere un reset completo, occorre un flush preventivo delle chains iptables (come mostrato qui sopra). </p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking | Consulenza Documentazione"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Estendere iptables con ipset"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/linux/estendere-iptables-con-ipset"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2012-04-02 12:04:01"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;﻿iptables, che fa parte del più ampio framework netfilter, è notoriamente il tool in user-space destinato alla definizione delle regole di firewall del kernel Linux.&lt;/p&gt;
&lt;p&gt;ipset è una estensione per iptables che permette la creazione di regole firewall applicabili contemporaneamente ad interi insiemi di indirizzi. A differenza di quanto avviene nelle normali catene  iptables, che sono memorizzate e traversate linearmente, i sets sono memorizzati in strutture dati indicizzate, caratteristica che ne rende la consultazione molto efficiente, anche in presenza di sets voluminosi. &lt;span id=&quot;more-1908&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Oltre che in situazioni dove è facile immaginarne l&amp;#8217;utilità, come il blocco di lunghe liste di &amp;#8220;bad&amp;#8221; hosts senza doversi preoccupare dell&amp;#8217;eccessivo impiego di risorse di sistema o della congestione di quelle di rete, ipset offre anche un nuovo approccio a determinati aspetti inerenti la progettazione di un firewall, semplificandone la configurazione. &lt;/p&gt;
&lt;p&gt;ipset è un package presente in molte distribuzioni, ma solo come raccolta di tools, per cui ho preferito ignorarlo ed installare (sotto Linux Mint) i packages  xtables-addons-common ed xtables-addons-source.&lt;br /&gt;
E successivamente impartire&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# module-assistant auto-install xtables-addons-source&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
per ottenere un ipset funzionale. &lt;/p&gt;
&lt;p&gt;Prima di proseguire è doveroso spendere un po&amp;#8217; di tempo a rinfrescare alcuni concetti fondamentali di iptables.&lt;/p&gt;
&lt;p&gt;In sintesi, la configuratione di un firewall iptables consiste di un set di &amp;#8220;chains&amp;#8221; built-in  (raggruppate in quattro &amp;#8220;tables&amp;#8221;) che contengono ciascuna una lista di regole o &amp;#8220;rules&amp;#8221;. &lt;/p&gt;
&lt;p&gt;Per ciascun pacchetto, in ciascuna fase del suo trattamento, il kernel consulta la chain appropriata per determinarne il destino.&lt;br /&gt;
Le chains vengono consultate in rigoroso ordine, basato sulla direzione del pacchetto (remoto-&gt;locale, remoto-&gt;remoto oppure locale-&gt;remoto) e la sua fase corrente di trattamento o processing (prima o dopo il &amp;#8220;routing&amp;#8221;). &lt;/p&gt;
&lt;p&gt;Il pacchetto viene confrontato con ciascuna delle regole della chain, nell&amp;#8217; ordine, fino a che non viene trovata una corrispondenza. Una volta che ciò avviene, viene intrapresa la azione specificata nel target della regola.&lt;br /&gt;
Se viene invece raggiunta la fine della chain senza trovare una corrispondenza, viene intrapresa la azione target di default per la catena, o policy. &lt;/p&gt;
&lt;p&gt;Una chain non è altro che una lista ordinata di regole, ed una regola non è altro che una combinazione corrispondenza/target.&lt;br /&gt;
Un semplice esempio di corrispondenza è &amp;#8220;TCP destination port 25&amp;#8243;.&lt;br /&gt;
Un semplice esempio di target può essere &amp;#8220;scarta il pacchetto&amp;#8221; (DROP).&lt;br /&gt;
I targets possono anche redirigere ad altre chains definite dall&amp;#8217;utente, cosa che fornisce un meccanismo per raggruppare e suddividere le regole seguendo una logica.&lt;br /&gt;
Ciascun comando iptables destinato a definire una regola, corto o lungo che sia, è composto di tre parti fondamentali che specificano la table/chain, la corrispondenza (match) ed il target  &lt;/p&gt;
&lt;p&gt;Per creare una completa configurazione firewall, occorre di fatto mandare in esecuzione una serie di comandi iptables, in uno specifico ordine. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ipset&lt;/strong&gt;&lt;br /&gt;
ipset è una &amp;#8220;match extension&amp;#8221;, cioè una estensione basata sulla definizione di corrispondenze, per iptables.&lt;br /&gt;
Per poterla usare è prima necessario creare e popolare dei &amp;#8220;sets&amp;#8221; univocamente chiamati utilizzando il tool a linea di comando ipset, e successivamente fare riferimento a tali sets in una o più regole iptables. &lt;/p&gt;
&lt;p&gt;Un set può essere semplicemente una lista di indirizzi archiviata per un efficiente ritrovamento.&lt;br /&gt;
Prendiamo come riferimento i seguenti normali comandi iptables destinati a bloccare il traffico in ingresso proveniente da 201.121.12.1 e 202.121.12.2:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# iptables -A INPUT -s 201.121.12.1 -j DROP&lt;br /&gt;
# iptables -A INPUT -s 202.121.12.2 -j DROP&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
La sintassi che specifica la corrispondenza (-s 201.121.12.1) significa &amp;#8220;i pacchetti il cui indirizzo di origine è 201.121.12.1&amp;#8243;. Per bloccare sia 201.121.12.1 che 202.121.12.2, devono venire definite due distinte regole iptables con due distinte specificazioni di corrispondenza (una per 201.121.12.1 ed una per 202.121.12.2). &lt;/p&gt;
&lt;p&gt;In alternativa, i seguenti comandi ipset/iptables servono ad ottenere lo stesso risultato:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ipset -N myset iphash&lt;br /&gt;
# ipset -A myset 201.121.12.1&lt;br /&gt;
# ipset -A myset 202.121.12.2&lt;br /&gt;
# iptables -A INPUT -m set --set myset src -j DROP&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
I comandi ipset appena visti creano un nuovo set (myset, del tipo iphash) con due indirizzi (201.121.12.1 e 202.121.12.2).&lt;br /&gt;
Il successivo comando iptables fa quindi riferimento al set specificando la corrispondenza con -m set &amp;#8211;set myset src, che significa &amp;#8220;i pacchetti il cui source header è compreso nel set di nome myset&amp;#8221;.&lt;br /&gt;
Il flag src significa che la corrispondenza deve avvenire su &amp;#8220;source&amp;#8221;. Analogamente il flag dst avrebbe spostato la corrispondenza su &amp;#8220;destination&amp;#8221;, mentre il flag src,dst avrebbe riguardato sia source che destination. &lt;/p&gt;
&lt;p&gt;Nella seconda versione è richiesto un solo comando iptables, indipententemente da quanti indirizzi IP siano presenti nel set.&lt;br /&gt;
Anche se fossero migliaia, sarebbe necessaria sempre una singola regola iptables, mentre l&amp;#8217;approccio tradizionale, senza il vantaggio offerto da ipset, richiederebbe migliaia di regole. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tipi di set&lt;/strong&gt;&lt;br /&gt;
Ciascun set è di uno specifico tipo, che definisce che genere di valore possa esservi memorizzato (indirizzi IP, networks, porte ecc.) così come debba essere ricercata la corrispondenza (ovvero, quale  parte del pacchetto debba essere controllata e come debba essere confrontata coi valori presenti nel set).&lt;br /&gt;
Oltre ai tipi più comuni, che controllano gli indirizzi IP, ne sono disponibili addizionali che si riferiscono alla porta, sia all&amp;#8217;indirizzo IP che alla porta contemporaneamente, oppure contemporaneamente al MAC address e all&amp;#8217;indirizzo IP, ecc. &lt;/p&gt;
&lt;p&gt;Ciascun tipo di set ha le proprie regole per tipo, range e distribuzione dei valori che può contenere.&lt;br /&gt;
Differenti tipi di set usano anche differenti tipi di indici e risultano ottimizzati per differenti scenari. La scelta del migliore / più efficiente tipo di set dipende dalla situazione.&lt;/p&gt;
&lt;p&gt;I tipi più flessibili di set sono iphash, che archivia liste di indirizzi IP arbitrari, e nethash, che archivia liste di networks eterogenee (IP/mask) di varie dimensioni. Si faccia comunque riferimento all man page di ipset per un elenco completo ed una descrizione di tutti i tipi di set (attualmente 11). &lt;/p&gt;
&lt;p&gt;È anche disponibile il tipo speciale setlist, che consente di raggruppare insieme differenti sets in un set unico.&lt;br /&gt;
È vantaggioso se si desidera, ad esempio,avere un singolo set che contenga sia singoli indirizzi IP che networks. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Altri vantaggi di ipset&lt;/strong&gt;&lt;br /&gt;
Oltre ad un guadagno in termini di performances, ipset consente anche configurazioni più semplici in molti scenari.&lt;br /&gt;
Se si volesse ad esempio definire una condizione di filtraggio che corrisponda a qualsiasi pacchetto  che non provenga da 201.121.12.1 oppure 202.121.12.2, perché continui a venire processato in mychain, la sintassi seguente non funzionerebbe:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# iptables -A INPUT -s ! 201.121.12.1 -g mychain&lt;br /&gt;
# iptables -A INPUT -s ! 202.121.12.2 -g mychain&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Se un pacchetto provenisse da 201.121.12.1, non sarebbe interessato dalla prima regola (perché l&amp;#8217;indirizzo sorgente è proprio 201.121.12.1), ma verrebbe catturato dalla seconda regola (perché l&amp;#8217;indirizzo sorgente non è 202.121.12.2).&lt;br /&gt;
Se un pacchetto provenisse da 202.121.12.2, corrisponderebbe alla prima regola (perché l&amp;#8217;indirizzo sorgente non è 201.121.12.1). Le regole si annullano a vicenda (qualsiasi pacchetto troverebbe corrispondenza in una delle due). &lt;/p&gt;
&lt;p&gt;Sebbene esistano altri modi di costruire correttamente la regola che avevamo in realtà desiderato, e senza fare uso di ipset, nessuno è altrettanto intuitivo e semplice:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ipset -N myset iphash&lt;br /&gt;
# ipset -A myset 201.121.12.1&lt;br /&gt;
# ipset -A myset 202.121.12.2&lt;br /&gt;
# iptables -A INPUT -m set ! --set myset src -g mychain&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Qui, se un pacchetto provenisse da 201.121.12.1, non sarebbe interessato dalla regola (perché invece l&amp;#8217;indirizzo sorgente 201.121.12.1 appartiene al set myset). Lo stesso avverrebbe, per lo stesso motivo, ad un pacchetto che provenisse da 202.121.12.2. &lt;/p&gt;
&lt;p&gt;Sebbene si tratti di un esempio banale quello appena visto evidenzia il fondamentale beneficio derivante dall&amp;#8217; aver implementato una condizione completa in una singola regola. &lt;/p&gt;
&lt;p&gt;Un altro vantaggio offerto da ipset dipende dal fatto che i sets possono essere manipolati in maniera  indipendente dalle regole iptables attive. L&amp;#8217;aggiunta e la rimozione di voci è una attività semplice e l&amp;#8217;ordine irrilevante.&lt;br /&gt;
In iptables, al contrario, oltre al fatto che una regola è un oggetto significativamente più complesso, l&amp;#8217; ordine delle regole è di fondamentale importanza, pertanto la modifica sul posto di una o più regole è una operazione più impegnativa e soggetta ad errori. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Esclusione di specifiche Routed Networks dal NAT - il modo corretto&lt;/strong&gt;&lt;br /&gt;
Il NAT sul traffico uscente (SNAT oppure IP masquerade) consente agli hosts appartenenti ad una LAN privata di accedere ad Internet.&lt;br /&gt;
Una appropriata regola iptables NAT intercetta i pacchetti destinati ad Internet originati dalla LAN privata e sostituisce l&amp;#8217;indirizzo sorgente con l&amp;#8217;indirizzo (esterno) del gateway stesso (facendo apparire il gateway come host originante e nascondendo il reale host originante privato).&lt;br /&gt;
Il NAT automaticamente traccia le connessioni attive pertanto inoltra i pacchetti di ritorno all&amp;#8217;host interno corretto (cambiando l&amp;#8217;indirizzo di destinazione da quello del gateway all&amp;#8217;indirizzo dell&amp;#8217; originale host interno). &lt;/p&gt;
&lt;p&gt;Qui di seguito c&amp;#8217;è l&amp;#8217; esempio di una semplice regola NAT outbound che realizza quanto detto, e dove 192.168.10.0/24 rappresenta la LAN interna:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# iptables -t nat -A POSTROUTING \&lt;br /&gt;
         -s 192.168.10.0/24 -j MASQUERADE&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Questa regola si applica a tutti i pacchetti in uscita dalla LAN e consiste nel mascherarli (cioè applicarvi il processo di &amp;#8220;NAT&amp;#8221;). Ciò potrebbe essere sufficiente se l&amp;#8217;unica rotta possibile fosse verso Internet.&lt;br /&gt;
Se tuttavia vi fossero rotte verso altre networks private, come avviene in VPN o links fisici WAN, probabilmente non risulterebbe desiderabile avere quel traffico mascherato. &lt;/p&gt;
&lt;p&gt;Un modo semplice di superare questa limitazione (parzialmente) consiste nel basare la regola NAT sulle interfacce fisiche anziché su indirizzi di rete:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# iptables -t nat -A POSTROUTING \&lt;br /&gt;
         -o eth0 -j MASQUERADE&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Questa regola assume che eth0 sia la interfaccia esterna e si applica a tutti i pacchetti in uscita tramite essa.&lt;br /&gt;
Contrariamente alla regola precedente, i pacchetti destinati ad altre networks che utilizzano delle rotte in uscita attraverso differenti interfacce (ad esempio i collegamenti OpenVPN), non saranno interessati da questa regola. &lt;/p&gt;
&lt;p&gt;Sebbene tuttavia molte connessioni di rete possano avere rotte tramite interfaccie separate non è altrettanto vero che tutte lo possano fare. Ad esempio Openswan, che non fa uso di interfaccie virtuali come altre VPN  user-space (come OpenVPN). &lt;/p&gt;
&lt;p&gt;In ogni caso progettare delle regole di firewall che si basino sulla interfaccia fisica può introdurre limiti e dipendenze nella topologia di rete, motivo che consiglia di evitare tale approccio, quando non strettamente necessario. &lt;/p&gt;
&lt;p&gt;Ecco dunque un altro grande campo di applicazione per ipset. &lt;/p&gt;
&lt;p&gt;Supponiamo che oltre a fare l&amp;#8217; Internet gateway per la locale LAN privata (10.0.0.0/24), la nostra linux box abbia delle rotte dirette verso altre quattro network private (10.10.30.0/24, 10.10.40.0/24, 192.168.4.0/23 e 172.22.0.0/22). &lt;/p&gt;
&lt;p&gt;Basta utilizzare I seguenti comandi:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ipset -N routed_nets nethash&lt;br /&gt;
# ipset -A routed_nets 10.10.30.0/24&lt;br /&gt;
# ipset -A routed_nets 10.10.40.0/24&lt;br /&gt;
# ipset -A routed_nets 192.168.4.0/23&lt;br /&gt;
# ipset -A routed_nets 172.22.0.0/22&lt;br /&gt;
# iptables -t nat -A POSTROUTING \&lt;br /&gt;
         -s 10.0.0.0/24 \&lt;br /&gt;
         -m set ! --set routed_nets dst \&lt;br /&gt;
         -j MASQUERADE&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Questa unica regola maschererà tutto il traffico che attraversa il box ed è originato dalla LAN interna (10.0.0.0/24) ad eccezione di quei pacchetti destinati alle reti elencate nel set routed_nets, preservando quindi il normale routing IP verso tali reti. &lt;/p&gt;
&lt;p&gt;Poiché tale configurazione si basa solamente su indirizzi di rete non dovrete più preoccuparvi dei tipi di connessione in questione (tipo di VPNs, numero di hops ecc), e nemmeno dovrete più preoccuparvi di interfacce fisiche e topologie. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Limitare l&amp;#8217;accesso restringendolo solo a certi hosts pubblici da parte di certi PC della rete locale&lt;/strong&gt;&lt;br /&gt;
Supponiamo che il megadirettoregalattico sia molto infastidito dall&amp;#8221;idea che certi impiegati, Filini, Fantozzi e Fracchia possano passare il tempo a trastullarsi con Internet invece di lavorare e vi chieda di limitare l&amp;#8217;accesso da parte dei loro PCs a uno specifico set di siti cui è necessario collegarsi per lavoro.&lt;br /&gt;
Per limitare i tre PCs (192.168.0.5 è quello di Filini, 192.168.0.6 quello di Fantozzi e 192.168.0.7 quello di Fracchia) ad accedere solamente a renatobrunetta.it, avvenire.it e inps.it, si possono utilizzare i seguenti comandi:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ipset -N limited_hosts iphash&lt;br /&gt;
# ipset -A limited_hosts 192.168.0.5&lt;br /&gt;
# ipset -A limited_hosts 192.168.0.6&lt;br /&gt;
# ipset -A limited_hosts 192.168.0.7&lt;br /&gt;
# ipset -N allowed_sites iphash&lt;br /&gt;
# ipset -A allowed_sites renatobrunetta.it&lt;br /&gt;
# ipset -A allowed_sites avvenire.it&lt;br /&gt;
# ipset -A allowed_sites inps.it&lt;br /&gt;
# iptables -I FORWARD \&lt;br /&gt;
         -m set --set limited_hosts src \&lt;br /&gt;
         -m set ! --set allowed_sites dst \&lt;br /&gt;
         -j DROP&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Questo esempio effettua un confronto con due sets in una singola regola. Se il l&amp;#8217;indirizzo sorgente è compreso in limited_hosts e la destinazione non è compresa in allowed_sites, il pacchetto viene semplicemente scartato (a limited_hosts è permesso comunicare solamente con allowed_sites). &lt;/p&gt;
&lt;p&gt;Si noti che dato che questa regola si trova nella chain FORWARD, non riguarda le comunicazioni da e verso il firewall stesso nè il traffico interno. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bloccare l&amp;#8217;accesso a un certo insieme di siti tranne che da certi PCs (scenario inverso&lt;/strong&gt;)&lt;br /&gt;
Supponiamo che il solito megadirettoregalattico voglia bloccare l&amp;#8217;accesso ad un certo insieme di siti da parte di tutti gli hosts della LAN fatta eccezione per il suo PC e quello della sua segretaria.&lt;br /&gt;
Per variare, in questo esempio, decidiamo inoltre di individuare i PCs del capo e della sua segretaria tramite MAC address anziché indirizzo IP. Supponiamo che i MACs  siano 11:11:11:11:11:11 e 22:22:22:22:22:22, e che i siti da bloccare per tutti gli impiegati siano supersex.com, badboy.com e gazzetta.it.&lt;br /&gt;
Anziche utilizzare un secondo ipset per comprendervi gli indirizzi MAC, utilizzeremo comandi multipli iptables con il target MARK allo scopo appunto di marcare i pacchetti, per processarli in successive regole della stessa chain:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ipset -N blocked_sites iphash&lt;br /&gt;
# ipset -A blocked_sites supersex.com&lt;br /&gt;
# ipset -A blocked_sites badboy.com&lt;br /&gt;
# ipset -A blocked_sites gazzetta.it&lt;br /&gt;
# iptables -I FORWARD -m mark --mark 0x187 -j DROP&lt;br /&gt;
# iptables -I FORWARD \&lt;br /&gt;
         -m mark --mark 0x187 \&lt;br /&gt;
         -m mac --mac-source 11:11:11:11:11:11 \&lt;br /&gt;
         -j MARK --set-mark 0x0&lt;br /&gt;
# iptables -I FORWARD \&lt;br /&gt;
         -m mark --mark 0x187 \&lt;br /&gt;
         -m mac --mac-source 22:22:22:22:22:22 \&lt;br /&gt;
         -j MARK --set-mark 0x0&lt;br /&gt;
# iptables -I FORWARD \&lt;br /&gt;
         -m set --set blocked_sites dst \&lt;br /&gt;
         -j MARK --set-mark 0x187&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Come si può facilmente osservare, per non avere usato ipset per svolgere tutto il lavoro di controllo, come invece avvenuto nell&amp;#8217;esempio precedente, i comandi sono un po&amp;#8217; più involuti e complessi.&lt;br /&gt;
Dato che si tratta di comandi iptables multipli, occorre intanto supporre che il loro ordine sia di vitale importanza. &lt;/p&gt;
&lt;p&gt;Si noti che queste regole vengono aggiunte col l&amp;#8217;opzione -I (insert) invece di -A (append).&lt;br /&gt;
Quando di una regola viene effettuato l&amp;#8217;insert, viene aggiunta in testa alla chain, sopravanzando tutte le regole eventualmente esistenti. &lt;/p&gt;
&lt;p&gt;Poiché tutte le regole vengono inserite, l&amp;#8217; effettivo ordine in cui verranno esaminate viene invertito. &lt;/p&gt;
&lt;p&gt;L&amp;#8217;ultimo comando iptables diventa pertanto il primo nella chain di FORWARD. La regola riguarda tutti i pacchetti con destinazione compresa nel set blocked_sites, e marca tali pacchetti con 0&amp;#215;187 (un numero esadecimale preso arbitrariamente). &lt;/p&gt;
&lt;p&gt;Le successive due regole riguardano solamente i pacchetti provenienti dai due hosts esclusi dal filtraggio, e che sono anch&amp;#8217;essi già marcati con il valore 0&amp;#215;187.  Queste due regole rimarcano I pacchetti con 0&amp;#215;0, cancellando in tal modo il precedente 0&amp;#215;187. &lt;/p&gt;
&lt;p&gt;Infine l&amp;#8217;ultima regola iptables (rappresentata dal primo comando iptables presente) scarta tutti i pacchetti col marchio 0&amp;#215;187 mark.&lt;br /&gt;
Questo corrisponde a tutti i pacchetti con destinazioni comprese nel set blocked_sites ad eccezione dei pacchetti provenienti dai due MACs, dato che il valore marcato in tali pacchetti viene ripulito prima che sia raggiunta la regola che effettua il DROP.&lt;/p&gt;
&lt;p&gt;Per inciso: nella maggior parte dei casi pratici questa soluzione non è valida per bloccare l&amp;#8217;accesso a quei  Web sites che dovrebbero essere i candidati ideali a finire nel set blocked_sites (tipo Facebook, MySpace e compagnia cantante), dato che essi possono avere indirizzi IP multipli, e questi ultimi variare di frequente.&lt;/p&gt;
&lt;p&gt;Una limitazione generale di iptables/ipset è che gli hostnames dovrebbero venire specificati solamente se risovono in un singolo indirizzo IP.&lt;br /&gt;
Inoltre il lookup di un hostname avviene solamente quando il comando viene eseguito, per cui se l&amp;#8217;indirizzo IP address cambiasse, la regola firewall ignorerebbe il cambiamento e continuerebbe a fare riferimento all&amp;#8217;originale IP. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ban automatico di Hosts che tentano di accedere a servizi non validi&lt;/strong&gt;&lt;br /&gt;
ipset  aggiunge a iptables anche una &amp;#8220;target extension&amp;#8221; che fornisce un meccanismo in grado di aggiungere e rimuovere dinamicamente da un set voci basate su una qualsiasi regola iptables.&lt;br /&gt;
Invece di aggiungere voci manualmente col comando ipset, si può fare in modo che iptables li aggiunga al volo al posto nostro. &lt;/p&gt;
&lt;p&gt;Per esempio, se un host remoto tentasse di connettersi alla porta 25, senza che vi sia in ascolto alcun server SMTP, sarebbe probabilmente una buona idea impedire a quell&amp;#8217;host l&amp;#8217; opportunità di tentare qualcosa d&amp;#8217;altro proattivamente, usando le seguenti regole:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ipset -N banned_hosts iphash&lt;br /&gt;
# iptables -A INPUT \&lt;br /&gt;
           -p tcp --dport 25 \&lt;br /&gt;
           -j SET --add-set banned_hosts src&lt;br /&gt;
# iptables -A INPUT \&lt;br /&gt;
           -m set --set banned_hosts src \&lt;br /&gt;
           -j DROP&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Se un pacchetto arrivasse sulla porta 25, diciamo con indirizzo sorgente 94.10.18.1, tale indirizzo verrebbe aggiunto istantaneamente al set banned_hosts, come se venisse impartito il comando:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ipset -A banned_hosts 94.10.18.1&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Tutto il traffico proveniente da 94.10.18.1  verrebbe da quel momento bloccato dalla regola col target DROP. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Azzeramento della configurazione corrente&lt;/strong&gt;&lt;br /&gt;
Volendo azzerare la corrente configurazione ipset ed iptables (set, regole, voci) e tornare ad uno stato di firewall completamente open (utile in testa ad uno script che imposti da zero un firewall), si possono mandare in esecuzione i seguenti comandi:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# iptables -P INPUT ACCEPT&lt;br /&gt;
# iptables -P OUTPUT ACCEPT&lt;br /&gt;
# iptables -P FORWARD ACCEPT&lt;br /&gt;
# iptables -t filter -F&lt;br /&gt;
# iptables -t raw -F&lt;br /&gt;
# iptables -t nat -F&lt;br /&gt;
# iptables -t mangle -F&lt;br /&gt;
# ipset -F&lt;br /&gt;
# ipset -X&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Sets che siano &amp;#8220;in uso&amp;#8221;, cioè referenziati da una o più regole iptables, non possono essere distrutti (con ipset -X). Pertanto, per ottenere un reset completo, occorre un flush preventivo delle chains iptables (come mostrato qui sopra). &lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/linux/estendere-iptables-con-ipset/feed</wfw:commentRss>
		</item>
		<item>
		<title>Asterisk Cloud Server</title>
		<link>http://www.voipandhack.it/archives/linux/asterisk-cloud-server</link>
		<comments>http://www.voipandhack.it/archives/linux/asterisk-cloud-server#comments</comments>
		<pubDate>Thu, 22 Mar 2012 23:02:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Asterisk]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Telefonia]]></category>

		<category><![CDATA[VoIP]]></category>

		<category><![CDATA[cloud]]></category>

		<category><![CDATA[debian]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[pbx]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[sip]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1905</guid>
		<description><![CDATA[UN]]></description>
			<content:encoded><![CDATA[<p>Stavolta solo una piccola esperienza personale:<br />
tempo addietro la mia compagna aveva deciso, in base alla contrazione degli affari indotta dalla crisi economica, di chiudere il proprio negozio di oggettistica orientale, trasferendo la propria attività online, puro e-commerce.</p>
<p>Non starò qui a raccontare le mie peripezie da novello designer, architetto e gestore di un sito di questo tipo (il che non è esattamente uno scherzetto), dirò solamente che dal punto di vista della piattaforma scelta per l&#8217;hosting, fatto un iniziale tentativo con un OScommerce preinstallato (e già notoriamente vulnerabile) su hosting linux condiviso (già defacciato dal solito turco prima ancora che vi accedessi una sola volta),  ho optato alla fine per una soluzione &#8220;in the cloud&#8221;, della quale mi ritengo tuttora soddisfatto.<span id="more-1905"></span><br />
Ciò si risolve in pratica nel disporre, anziché di un server fisico, di una &#8220;istanza&#8221; Debian Linux server, soluzione decisamente più economica e sopratutto scalabile (perfino nel senso di effettuare dei downsize) rispetto a quella tradizionale basata su server dedicato, e col medesimo SO.</p>
<p>Per quanto il nostro cloud server faccia girare anche altri servizi, tipicamente quelli postali con Dovecot e Exim, il suo ruolo principale è quello di servire le pagine dinamiche del sito <a href="http://www.ilmandala.it">www.ilmandala.it</a>, realizzato grazie ad un software open source di alto livello come Prestashop.<br />
Ovviamente parte importante  del backend è costituita da un onnipresente database mysql.</p>
<p>La navigabilità e la reattività del sito sono finora sempre risultate ottime, soprattutto se si considera che sono riferite ad una disponibilità di risorse attualmente molto bassa: 1 GB RAM e 1 CPU.</p>
<p>La cosa mi ha stimolato ad andare oltre, fino a trasportare  sul medesimo cloud server anche il PBX Asterisk aziendale e sistemare così il lato telefonia.<br />
Non descriverò l&#8217;operazione, essendo assolutamente analoga a quanto accade su server fisico, anche se devo confessare di avere passato parecchio tempo in fase di make menuselect a deselezionare le opzioni non necessarie, fino ad ottenere un puro SIP server e nient&#8217;altro.</p>
<p>Dato che il PBX si occupa solo dell&#8217;inbound (tra l&#8217;altro così non vi è alcun rischio che possa venire utilizzato in maniera fraudolenta), è bastato prendere una linea VoIP ed un numero geografico tramite Messagenet.</p>
<p>È subito evidente il vantaggio, a fronte di un canone irrisorio, di poter applicare il tipico routing intelligente di Asterisk alle chiamate in ingresso, senza tuttavia alcuna necessità di installare fisicamente e gestire un server Asterisk dedicato.</p>
<p>Al momento il PBX si comporta egregiamente, senza sembrare disturbato da contemporanee richieste web.<br />
Dato che mi voglio proprio rovinare, penso che effettuerò l&#8217;upgrade per un ulteriore GB di RAM.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking | Consulenza Documentazione"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Asterisk Cloud Server"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/linux/asterisk-cloud-server"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2012-03-23 01:03:40"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Stavolta solo una piccola esperienza personale:&lt;br /&gt;
tempo addietro la mia compagna aveva deciso, in base alla contrazione degli affari indotta dalla crisi economica, di chiudere il proprio negozio di oggettistica orientale, trasferendo la propria attività online, puro e-commerce.&lt;/p&gt;
&lt;p&gt;Non starò qui a raccontare le mie peripezie da novello designer, architetto e gestore di un sito di questo tipo (il che non è esattamente uno scherzetto), dirò solamente che dal punto di vista della piattaforma scelta per l&amp;#8217;hosting, fatto un iniziale tentativo con un OScommerce preinstallato (e già notoriamente vulnerabile) su hosting linux condiviso (già defacciato dal solito turco prima ancora che vi accedessi una sola volta),  ho optato alla fine per una soluzione &amp;#8220;in the cloud&amp;#8221;, della quale mi ritengo tuttora soddisfatto.&lt;span id=&quot;more-1905&quot;&gt;&lt;/span&gt;&lt;br /&gt;
Ciò si risolve in pratica nel disporre, anziché di un server fisico, di una &amp;#8220;istanza&amp;#8221; Debian Linux server, soluzione decisamente più economica e sopratutto scalabile (perfino nel senso di effettuare dei downsize) rispetto a quella tradizionale basata su server dedicato, e col medesimo SO.&lt;/p&gt;
&lt;p&gt;Per quanto il nostro cloud server faccia girare anche altri servizi, tipicamente quelli postali con Dovecot e Exim, il suo ruolo principale è quello di servire le pagine dinamiche del sito &lt;a href=&quot;http://www.ilmandala.it&quot;&gt;www.ilmandala.it&lt;/a&gt;, realizzato grazie ad un software open source di alto livello come Prestashop.&lt;br /&gt;
Ovviamente parte importante  del backend è costituita da un onnipresente database mysql.&lt;/p&gt;
&lt;p&gt;La navigabilità e la reattività del sito sono finora sempre risultate ottime, soprattutto se si considera che sono riferite ad una disponibilità di risorse attualmente molto bassa: 1 GB RAM e 1 CPU.&lt;/p&gt;
&lt;p&gt;La cosa mi ha stimolato ad andare oltre, fino a trasportare  sul medesimo cloud server anche il PBX Asterisk aziendale e sistemare così il lato telefonia.&lt;br /&gt;
Non descriverò l&amp;#8217;operazione, essendo assolutamente analoga a quanto accade su server fisico, anche se devo confessare di avere passato parecchio tempo in fase di make menuselect a deselezionare le opzioni non necessarie, fino ad ottenere un puro SIP server e nient&amp;#8217;altro.&lt;/p&gt;
&lt;p&gt;Dato che il PBX si occupa solo dell&amp;#8217;inbound (tra l&amp;#8217;altro così non vi è alcun rischio che possa venire utilizzato in maniera fraudolenta), è bastato prendere una linea VoIP ed un numero geografico tramite Messagenet.&lt;/p&gt;
&lt;p&gt;È subito evidente il vantaggio, a fronte di un canone irrisorio, di poter applicare il tipico routing intelligente di Asterisk alle chiamate in ingresso, senza tuttavia alcuna necessità di installare fisicamente e gestire un server Asterisk dedicato.&lt;/p&gt;
&lt;p&gt;Al momento il PBX si comporta egregiamente, senza sembrare disturbato da contemporanee richieste web.&lt;br /&gt;
Dato che mi voglio proprio rovinare, penso che effettuerò l&amp;#8217;upgrade per un ulteriore GB di RAM.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/linux/asterisk-cloud-server/feed</wfw:commentRss>
		</item>
		<item>
		<title>Attacchi del tipo DNS Amplification</title>
		<link>http://www.voipandhack.it/archives/sicurezza/attacchi-del-tipo-dns-amplification</link>
		<comments>http://www.voipandhack.it/archives/sicurezza/attacchi-del-tipo-dns-amplification#comments</comments>
		<pubDate>Fri, 16 Mar 2012 13:23:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Networking]]></category>

		<category><![CDATA[Politica]]></category>

		<category><![CDATA[Sicurezza]]></category>

		<category><![CDATA[Anonymous]]></category>

		<category><![CDATA[botnets]]></category>

		<category><![CDATA[DDOS]]></category>

		<category><![CDATA[DoS]]></category>

		<category><![CDATA[internet]]></category>

		<category><![CDATA[tcpdump]]></category>

		<category><![CDATA[UDP]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1898</guid>
		<description><![CDATA[Negli ultimi giorni c&#8217;è stato un notevole chiacchiericcio nei media circa una presunta minaccia di Anonymous al sistema DNS, da attuarsi mettendo a disposizione degli script-kiddies che fanno da supporters al movimento un tool che applica una tecnica detta &#8220;DNS amplification&#8221;, con cui attaccare siti istituzionali e, secondo i soliti terroristi della (distorta) informazione, portare [...]]]></description>
			<content:encoded><![CDATA[<p>Negli ultimi giorni c&#8217;è stato un notevole chiacchiericcio nei media circa una presunta minaccia di Anonymous al sistema DNS, da attuarsi mettendo a disposizione degli script-kiddies che fanno da supporters al movimento un tool che applica una tecnica detta &#8220;DNS amplification&#8221;, con cui attaccare siti istituzionali e, secondo i soliti terroristi della (distorta) informazione, portare un colpo mortale allo stesso DNS, considerato il cuore dell&#8217;intera Internet (obiettivo evidentemente assurdo dal punto di vista politico).<span id="more-1898"></span></p>
<p>In realtà gli attacchi basati sulla DNS amplification non sono una novità, tuttavia non sono mai stati comunemente utilizzati.</p>
<p>Cercherò di spiegare di cosa si tratti.</p>
<p>La categoria degli attacchi Denial of service (DoS) è molto vasta, ma è rivolta ad ottenere sempre lo stesso risultato: il servizio bersagliato diviene indisponibile ai propri utenti.</p>
<p>Una forma comune di DoS consiste nell&#8217;indurre un esaurimento delle capacità della rete nella quale il bersaglio risiede.<br />
Questo tipo di attacco implica l&#8217;invio ad un server di una quantità di traffico (o di richieste) maggiore di quanto sia in grado di gestire abitualmente.<br />
Ciò comporta per l&#8217;attaccante la capacità di generare una grossa massa di traffico, effetto ottenibile utilizzando molti sistemi, tipicamente aggregati in una botnet.</p>
<p>La tecnica detta &#8220;DNS Amplification&#8221; utilizza il DNS, in particolare i DNS servers mal configurati, per avviare efficaci attacchi di tipo &#8220;denial of service&#8221; (DoS) consentendo all&#8217;attaccante di utilizzare una quantità minima di banda e mascherare contemporaneamente l&#8217;indirizzo IP originante dell&#8217;attacco nei pacchetti UDP emessi. In tal modo diventa possibile indurre un server DNS a inviare le proprie risposte ad uno specifico indirizzo (il reale obiettivo dell&#8217;attacco).<br />
La componente amplificativa dell&#8217; attacco risiede nella disponibilità del server DNS ad eseguire per conto dell&#8217;attaccante una richiesta che comporti una risposta più ampia della richiesta stessa.</p>
<p>Per comprendere il principio della &#8220;DNS amplification&#8221; è necessario comprendere prima i due concetti che consentono a tale tipo di attacco di avere luogo. Il primo è noto come &#8220;reflection&#8221;:<br />
A differenza del più comunemente usato Transmission Control Protocol (TCP), i protocolli UDP (User Datagram Protocol) e ICMP (Internet Control Message Protocol) non attuano alcuna connessione, motivo per cui sono comunemente definiti &#8220;connectionless&#8221;.<br />
I pacchetti IP che incapsulano TCP o UDP contengono un indirizzo sorgente ed uno di destinazione, me nel caso di UDP il destinatario del pacchetto non ha modo di accertare che l&#8217;indirizzo di origine non sia stato falsificato, pratica comunemente conosciuta come spoofing. Un computer che riceva un pacchetto UDP con un indirizzo IP &#8220;spoofed&#8221; invierà una risposta proprio a quell&#8217;indirizzo IP, e non al mittente reale.<br />
La &#8220;reflection&#8221; pùò anche consentire all&#8217;attaccante di far credere che il traffico generato provenga da molte differenti origini, rendendo difficoltoso attuare un filtro dei dati in ingresso.</p>
<p>Il secondo concetto è quello di &#8220;amplification&#8221;, cioè di moltiplicazione del traffico originariamente inviato.<br />
Ogni computer implicato nell&#8217;attacco replica alla vittima, inondandola di traffico.<br />
Mentre la reflection nasconde il sorgente iniziale dell&#8217;attacco DoS, la amplification incrementa la quantità di traffico ricevuto dalla vittima decine, centinaia o migliaia di volte.</p>
<p>Uno degli attacchi basati su amplificazione più datati e conosciuti è noto come &#8220;smurf&#8221;. In un attacco smurf, l&#8217;attaccante invia un ping ICMP all&#8217;indirizzo IP broadcast, simulando che a inviarlo sia l&#8217;indirizzo IP della vittima (spoofing).<br />
L&#8217;invio di un singolo pacchetto viene replicato da tutti i nodi di una rete amplificando il traffico totale ricevuto dalla vittima.</p>
<p>Gli attacchi smurf tuttavia non costituiscono più una seria minaccia dal momento che gli attuali routers sono configurati per non lasciar passare pacchetti broadcast alle altre reti, limitando di fatto il campo di applicazione di un attacco smurf alla subnet locale.</p>
<p>Una categoria più recente di attacchi DoS sfrutta invece l&#8217;infrastruttura DNS per amplificare la quantità di traffico che un singolo nodo può inviare.<br />
Una richiesta DNS per un record di tipo A per uno specifico ampio dominio, tipico esempio google.com, restituisce molti più dati di quelli necessari per la semplice richiesta.<br />
Le richieste DNS utilizzano poi comunemente messaggi basati su UDP, uno strumento ideale per attacchi basati sia sulla reflection che sulla amplification.</p>
<p>Un altro fattore chiave risiede nella disponibilità di servers DNS configurati per effettuare richieste di tipo ricorsivo. Tali servers sono comunemente detti &#8220;open resolvers&#8221;.</p>
<p>Effettuando una tipica richiesta per un record DNS di tipo A, in certi casi capita che la risposta risulti più piccola della interrogazione, ma è molto semplice ottenere una risposta voluminosa facendo richiesta di informazioni addizionali.</p>
<p>Se invece di una query per un record A ne venisse fatta una di tipo ANY, il server restiturebbe anche i valori relativi ai records MX ed NS, ottenendo, nel caso in cui, ad esempio, il dominio in questione sia google.com, un fattore di amplificazione 4x.</p>
<p>Per incrementare ancora l&#8217; amplificazione, un eventuale attaccante può sfruttare gli ampi record forniti dalle DNS Security Extensions (DNSSEC) per le zone definite.<br />
DNSSEC restituisce i dati relativi ad una firma digitale (cryptographic signature) oltre ai normali dati del record DNS richiesto per consentire al destinatario di verificare l&#8217;autenticità dei dati ottenuti. Ciò fa aumentare significativamente la quantità di traffico restituito da un DNS server.</p>
<p>Effettuando una richiesta ANY di 78 bytes (ethernet) relativa al dominio usa.gov tramite il server 198.153.192.1 (di nortondns.com) e specificando la richiesta di records DNSSEC, ho ottenuto in risposta 3 frames ethernet di 1514+1514+1018=4046 bytes, con un fattore di amplificazione di oltre 50x.</p>
<p>Questa la richiesta effettuata:<br />
<code><br />
# dig @198.153.192.1 ANY +dnssec usa.gov</code></p>
<p>e la relativa risposta:</p>
<p><code>; &lt;&lt;&gt;&gt; DiG 9.7.3 &lt;&lt;&gt;&gt; @198.153.192.1 ANY +dnssec usa.gov<br />
; (1 server found)<br />
;; global options: +cmd<br />
;; Got answer:<br />
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 63509<br />
;; flags: qr rd ra; QUERY: 1, ANSWER: 29, AUTHORITY: 0, ADDITIONAL: 5</code></p>
<p><code>;; OPT PSEUDOSECTION:<br />
; EDNS: version: 0, flags: do; udp: 4096<br />
;; QUESTION SECTION:<br />
;usa.gov.            IN    ANY</code></p>
<p><code>;; ANSWER SECTION:<br />
usa.gov.        300    IN    SOA    dns.gsa.gov. hostmaster.gsa.gov. 1203130000 86400 600 1296000 10800<br />
usa.gov.        300    IN    RRSIG    NSEC3PARAM 7 2 300 20120412123801 20120313113801 61638 usa.gov. hqAvKJVia4C96oKETI9vHns+mM58Sh/YhA+Jrslfjdfc/qYnoA4cztPr uNv9lAPxPhaiUMjP+vxPCj6aDmaxKVWjTX7ELgMOsV7u3kRMOVxmV4Og kk4w+NgPoN46/3bEZfDofremw3FNId+soFSsKLp4FGwMJXM2+oD4EXsY vbI=<br />
usa.gov.        300    IN    RRSIG    DNSKEY 7 2 300 20120412123801 20120313113801 53313 usa.gov. bvMBZsLxqyNDblOMnsLyWNrm4Pfn9xhp0HNYbTWR9s1DVc0DcqG1mN0R OG4biFFG7nxjuPuLOYXREOfwbaChuzRRK5DERprT4ejhvOepR+wT518e +/7dS5F+35rrl4ymBhU6c4MN3J17K+oUqE9YwjvSG8YpKjhKMoOe1ami 2dab9amJbmYuzMBHCPwDDllomSFqXH2J7NMnwQbDtdjXJXk0arSZ2YEO KeFbGbQf0a7Pz4usPgipfcv7N8Ekh1r2r5rVzKTvpKz4YTg31iRWVkOQ LWhFuUCAm/RJF5PxrWHkwgLfxMuK2jZj/xptKtPnzQyEYmDHF9fcdO+6 tzCGTw==<br />
usa.gov.        300    IN    RRSIG    DNSKEY 7 2 300 20120412123801 20120313113801 61638 usa.gov. PJga6q4tjRifPCR/rkGCpoMYinDUcvDWB4RwYAMFHauunqHcwGl4MYES jzuVV8CqcuG+ILl9+lwTGMafABD/W67GuQv+/pRKvpkb+0hw5ByMOzSC wR17oWHCXW0VYYcxjeZNW1X2CMW3mSx53W079DMzHdAPioJavBM6zT5b dro=<br />
usa.gov.        300    IN    RRSIG    SOA 7 2 300 20120412123801 20120313113801 61638 usa.gov. ruGzimcqC+8YUj9wNvEjh5dX9/TI0sZRK8bIC+CfKtnZJs5FzKDuZgdK x9YunDQ/WKaxkkkYU9XCdma41cEwUN/Ymc6QLCts0jYphfUAYM+RAU7e 4Agi6seJfsxtpGsHvZ4MaCahFOsiKpsd1Kp+8vZeSlxDvZVm7Yq23bsx m3w=<br />
usa.gov.        3600    IN    RRSIG    MX 7 2 3600 20120412123801 20120313113801 61638 usa.gov. rfL4qho8S73nC/t+fGHfhPm69jbKdRNexJAamVdgXIzGVc1+UDvDfaBD qnMP7df4YpyysqLDoITmpFsPe48w4EQnuQRJWjSqCGKFUWmHqrvQLPIX uyJSClCy2TghllWtXmc0299ny/OCY2odfT46GDLnMMWUb8LeSQml43QC 2mY=<br />
usa.gov.        3600    IN    RRSIG    A 7 2 3600 20120412123801 20120313113801 61638 usa.gov. O55BJ3n4GGZoIe/eETN9omyGnL2GrIHgBLhUSFDcFEo3xvyQvLCv45Ec XYwGeUMZJoIgnNI4njOoflaXS3E8U4oqMCqDs9xz+NMQvC8xYDU20puY +Jktb9yj/s0XL4gz9mC3sqSgmOJkhyPQm0QDsB2phAPwFAmXKBwyX3KJ Vs0=<br />
usa.gov.        300    IN    RRSIG    NS 7 2 300 20120412123801 20120313113801 61638 usa.gov. U9hfCzMLAaoc8QfpTBKhdkopOqGKjps4aW4NTX+HzKDwLsL3qLRLURpm QuO18T4mDcAkIGU9Vr3wsJC85f0P91Dus++J2t4x0+zqTceYSUcIAax6 OhuT0vre7czspqZh6+ZiQov/sNXfGWx+Vfch9jpx0E0gK+XXI4P40M5o sQc=<br />
usa.gov.        300    IN    NSEC3PARAM 1 0 12 AABBCCDD<br />
usa.gov.        300    IN    RRSIG    NSEC3PARAM 7 2 300 20120412123801 20120313113801 61638 usa.gov. hqAvKJVia4C96oKETI9vHns+mM58Sh/YhA+Jrslfjdfc/qYnoA4cztPr uNv9lAPxPhaiUMjP+vxPCj6aDmaxKVWjTX7ELgMOsV7u3kRMOVxmV4Og kk4w+NgPoN46/3bEZfDofremw3FNId+soFSsKLp4FGwMJXM2+oD4EXsY vbI=<br />
usa.gov.        300    IN    DNSKEY    256 3 7 AwEAAb7LoWNLiPwBhNFUBf+1r841RFpc+1Zj7tpLz99bY/53amEiHkrH vpd48XX/J2aXsqCBhxBi3t0wvtWfHGolVD64UYn/JxVfkx1r5xv6nETV MTDEW3OMAfA+m+gWwxACJc3TPsyFtN5ExCBjbb0tLJCiXdHj8D5pC2gD KcQZ+J/H<br />
usa.gov.        300    IN    DNSKEY    257 3 7 AwEAAZD19uIi0nuONBNkQDrFL9NZuYb8iiaEGWBmj7EJ7Dse1kz5kdK6 DVxan1J5WMN7YDr/3eNSerogcJP8IFOqMxNdwKHMRMp3mavVVMR1ddnv t4hy1j3Pd+y6DELdZxNixOZgI7vKj67RMlyjWjzz96i64dghKM89/9S2 5VMi2BlUVJ9f74TOTiYxJpAqz9DuRzGKr1c29HQNpnPu4syXQy367XNk syzndaN+vFZYxw6ukv707by7XI2UyXO1AtNTFHiDpz1uFnnf26EBG2Nq 4DfS6dAlUKqTdb+QvTbSGeMgpFotz5ZJLQjl+XFWarNenX6LowMl4mzv VjtUzKWHXRU=<br />
usa.gov.        300    IN    DNSKEY    257 3 7 AwEAAaJXTYjFMibSsZMzzgi+qGYLUHDMj+5v6YDfG/maMOyT0rC51bkw ZRie6XHkjAEW9CWZe3m87FHXJ3PmG8O+LfO0bz1yRftOtS1OvdyX+Jeb jVUR4eOVitNZL8cz1zAj7Fv2wFU3BjlqhFyB2q17sEkKFfbt16LwL6hR 6/CbFDtg00VykZ3nNYkZy2r8GsbTlrXkAEur5mX+Ls+cTksaUlzPQhFc 8ST5nRc6/ebSGg+gwVjWZLrmncbrdNq887HZdy5NDT7bxn0ArRi41f4/ P6Y9dI8DXVcxMPa2y6P2UzwNYY60UHqp3GLoV7x4hobduf74ffCVgzuJ QGP6e9PqTtU=<br />
usa.gov.        300    IN    DNSKEY    256 3 7 AwEAAXY7OaGoaM+8pyyRWniow6SrKpMD2F/yweKz0CNAV18dn2mGOOmM eGNOzhkg+MTkHtZxKQ1LzZtveg8wO3mTn3g23Sr/1I8uIfABSDTGuHgb wTxKQpaC+eHcc01Ucn9EGkzS/kt8g0HwwDQ4YZgoxjBGS/dEqE/JX0h4 31PyV/0J<br />
usa.gov.        300    IN    RRSIG    DNSKEY 7 2 300 20120412123801 20120313113801 53313 usa.gov. bvMBZsLxqyNDblOMnsLyWNrm4Pfn9xhp0HNYbTWR9s1DVc0DcqG1mN0R OG4biFFG7nxjuPuLOYXREOfwbaChuzRRK5DERprT4ejhvOepR+wT518e +/7dS5F+35rrl4ymBhU6c4MN3J17K+oUqE9YwjvSG8YpKjhKMoOe1ami 2dab9amJbmYuzMBHCPwDDllomSFqXH2J7NMnwQbDtdjXJXk0arSZ2YEO KeFbGbQf0a7Pz4usPgipfcv7N8Ekh1r2r5rVzKTvpKz4YTg31iRWVkOQ LWhFuUCAm/RJF5PxrWHkwgLfxMuK2jZj/xptKtPnzQyEYmDHF9fcdO+6 tzCGTw==<br />
usa.gov.        300    IN    RRSIG    DNSKEY 7 2 300 20120412123801 20120313113801 61638 usa.gov. PJga6q4tjRifPCR/rkGCpoMYinDUcvDWB4RwYAMFHauunqHcwGl4MYES jzuVV8CqcuG+ILl9+lwTGMafABD/W67GuQv+/pRKvpkb+0hw5ByMOzSC wR17oWHCXW0VYYcxjeZNW1X2CMW3mSx53W079DMzHdAPioJavBM6zT5b dro=<br />
usa.gov.        3600    IN    MX    20 mx20.usa.gov.<br />
usa.gov.        3600    IN    MX    10 mx10.usa.gov.<br />
usa.gov.        3600    IN    RRSIG    MX 7 2 3600 20120412123801 20120313113801 61638 usa.gov. rfL4qho8S73nC/t+fGHfhPm69jbKdRNexJAamVdgXIzGVc1+UDvDfaBD qnMP7df4YpyysqLDoITmpFsPe48w4EQnuQRJWjSqCGKFUWmHqrvQLPIX uyJSClCy2TghllWtXmc0299ny/OCY2odfT46GDLnMMWUb8LeSQml43QC 2mY=<br />
usa.gov.        3600    IN    A    173.252.148.104<br />
usa.gov.        3600    IN    A    216.128.241.47<br />
usa.gov.        3600    IN    RRSIG    A 7 2 3600 20120412123801 20120313113801 61638 usa.gov. O55BJ3n4GGZoIe/eETN9omyGnL2GrIHgBLhUSFDcFEo3xvyQvLCv45Ec XYwGeUMZJoIgnNI4njOoflaXS3E8U4oqMCqDs9xz+NMQvC8xYDU20puY +Jktb9yj/s0XL4gz9mC3sqSgmOJkhyPQm0QDsB2phAPwFAmXKBwyX3KJ Vs0=<br />
usa.gov.        300    IN    NS    dns3.gsa.gov.<br />
usa.gov.        300    IN    NS    dns5.gsa.gov.<br />
usa.gov.        300    IN    NS    dns2.gsa.gov.<br />
usa.gov.        300    IN    NS    dns6.gsa.gov.<br />
usa.gov.        300    IN    NS    dns.gsa.gov.<br />
usa.gov.        300    IN    NS    dns4.gsa.gov.<br />
usa.gov.        300    IN    RRSIG    NS 7 2 300 20120412123801 20120313113801 61638 usa.gov. U9hfCzMLAaoc8QfpTBKhdkopOqGKjps4aW4NTX+HzKDwLsL3qLRLURpm QuO18T4mDcAkIGU9Vr3wsJC85f0P91Dus++J2t4x0+zqTceYSUcIAax6 OhuT0vre7czspqZh6+ZiQov/sNXfGWx+Vfch9jpx0E0gK+XXI4P40M5o sQc=</p>
<p>;; ADDITIONAL SECTION:<br />
mx10.usa.gov.        600    IN    A    159.142.1.200<br />
mx20.usa.gov.        600    IN    A    159.142.1.251<br />
mx10.usa.gov.        600    IN    RRSIG    A 7 3 600 20120412123801 20120313113801 61638 usa.gov. l318JIl/Kmq6I+rjqe4ukCT74D4W5TBR3yCxIR9qdf1/5UU7bfokwQcU Rh8Jg/i7uh+nDOGZZ+84jkyG17+VuPuK50SdAaZU1HFRWNsafNGIWVsT nypVqs94s+ARoBtMNBw65M0Fh6Qegaf2+4EVk0K3oazVdYT4lpcWLFZk LDI=<br />
mx20.usa.gov.        600    IN    RRSIG    A 7 3 600 20120412123801 20120313113801 61638 usa.gov. ucvSzpzUWBbBbDkpdh/PUVLdzFgenQQQrt1LH+uA7KmmOYCGf52ktVvS SjlUy1ghULmh/zlWOwUC5VRUIUDqqo9diWlTYXuRpfs6fIezY1hWaM1k WVnxYpBHxME9Tf1T7YuBo/kRHm1klnAH0O1euGre8/eZAyGqmpxKT2be MJ0=</p>
<p></code></p>
<p><code>;; Query time: 156 msec<br />
;; SERVER: 198.153.192.1#53(198.153.192.1)<br />
;; WHEN: Fri Mar 16 00:15:01 2012<br />
;; MSG SIZE  rcvd: 3936<br />
</code><br />
Questa invece la cattura (tramite tcpdump) della risposta frammentata:<br />
<code><br />
# tcpdump -i eth0 -v 'udp port 53 or (ip[6:2] &amp; 0&#215;2000 == 0&#215;2000 or ip[6:2] &amp; 0&#215;1fff !=0&#215;0000)&#8217;<br />
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes<br />
00:15:01.051922 IP (tos 0&#215;0, ttl 64, id 61723, offset 0, flags [none], proto UDP (17), length 64)<br />
silversurfer.49904 &gt; 198.153.192.1.domain: 63509+ [1au] ANY? usa.gov. (36)<br />
00:15:01.206712 IP (tos 0&#215;0, ttl 54, id 10190, offset 0, flags [+], proto UDP (17), length 1500)<br />
198.153.192.1.domain &gt; silversurfer.49904: 63509 29/0/5 usa.gov. SOA dns.gsa.gov. hostmaster.gsa.gov. 1203130000 86400 600 1296000 10800, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. Type51, usa.gov. RRSIG[|domain]<br />
00:15:01.207146 IP (tos 0&#215;0, ttl 54, id 10190, offset 1480, flags [+], proto UDP (17), length 1500)<br />
198.153.192.1 &gt; silversurfer: udp<br />
00:15:01.207152 IP (tos 0&#215;0, ttl 54, id 10190, offset 2960, flags [none], proto UDP (17), length 1004)<br />
198.153.192.1 &gt; silversurfer: udp<br />
</code><br />
Un singolo computer collegato ad Internet tramite una buona ADSL potrebbe ragionevolmente generare 512 Kbps di traffico, certo non abbastanza per causare un DoS. Moltiplicando tale valore per 50, e utilizzando una piccola<br />
botnet composta da 1000 nodi, sarebbe facilmente possibile generare 25 Gbps di traffico, abbastanza per saturare pressoché qualsiasi connessione Internet.</p>
<p>Per concludere, un attacco di tipo &#8220;DNS amplification&#8221; può rivelarsi enormemente efficace, tuttavia necessita di due condizioni senza le quali non è praticabile:</p>
<p>1) Sebbene gli indirizzi IP dei pacchetti UDP possano essere alterati (spoofed), ciò non è necessariamente sempre possibile. Se è vero cioè che UDP non può assicurare la reale origine di un pacchetto, un ISP potrebbe sempre filtrare i pacchetti in uscita dalla propria rete per assicurare che l&#8217;indirizzo IP sorgente risieda effettivamente all&#8217;interno di essa.<br />
Il documento redatto dalla Internet Engineering Task Force (IETF) &#8220;Best Current Practice 38&#8243; (BCP38) suggerisce proprio questo tipo di filtraggio. Se molte networks lo hanno implementato, molte altre non lo hanno semplicemente fatto, adducendo come motivo il sovraccarico cui sarebbero di conseguenza sottoposti i propri apparati.</p>
<p>2) Il secondo prerequisito necessario affinché una DNS amplification possa essere attuata risiede nella cooperazione da parte di uno o più DNS servers. Già nel 2006, Dan Kaminsky aveva evidenziato la presenza di oltre 580000 open resolvers attivi in Internet. Qualsiasi buon amministratore di un server DNS dovrebbe configurarlo in modo che non possa effettuare queries ricorsive o almeno consentirle esclusivamente ad uno specifico range di indirizzi IP.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking | Consulenza Documentazione"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Attacchi del tipo DNS Amplification"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/sicurezza/attacchi-del-tipo-dns-amplification"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2012-03-16 15:03:27"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Negli ultimi giorni c&amp;#8217;è stato un notevole chiacchiericcio nei media circa una presunta minaccia di Anonymous al sistema DNS, da attuarsi mettendo a disposizione degli script-kiddies che fanno da supporters al movimento un tool che applica una tecnica detta &amp;#8220;DNS amplification&amp;#8221;, con cui attaccare siti istituzionali e, secondo i soliti terroristi della (distorta) informazione, portare un colpo mortale allo stesso DNS, considerato il cuore dell&amp;#8217;intera Internet (obiettivo evidentemente assurdo dal punto di vista politico).&lt;span id=&quot;more-1898&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In realtà gli attacchi basati sulla DNS amplification non sono una novità, tuttavia non sono mai stati comunemente utilizzati.&lt;/p&gt;
&lt;p&gt;Cercherò di spiegare di cosa si tratti.&lt;/p&gt;
&lt;p&gt;La categoria degli attacchi Denial of service (DoS) è molto vasta, ma è rivolta ad ottenere sempre lo stesso risultato: il servizio bersagliato diviene indisponibile ai propri utenti.&lt;/p&gt;
&lt;p&gt;Una forma comune di DoS consiste nell&amp;#8217;indurre un esaurimento delle capacità della rete nella quale il bersaglio risiede.&lt;br /&gt;
Questo tipo di attacco implica l&amp;#8217;invio ad un server di una quantità di traffico (o di richieste) maggiore di quanto sia in grado di gestire abitualmente.&lt;br /&gt;
Ciò comporta per l&amp;#8217;attaccante la capacità di generare una grossa massa di traffico, effetto ottenibile utilizzando molti sistemi, tipicamente aggregati in una botnet.&lt;/p&gt;
&lt;p&gt;La tecnica detta &amp;#8220;DNS Amplification&amp;#8221; utilizza il DNS, in particolare i DNS servers mal configurati, per avviare efficaci attacchi di tipo &amp;#8220;denial of service&amp;#8221; (DoS) consentendo all&amp;#8217;attaccante di utilizzare una quantità minima di banda e mascherare contemporaneamente l&amp;#8217;indirizzo IP originante dell&amp;#8217;attacco nei pacchetti UDP emessi. In tal modo diventa possibile indurre un server DNS a inviare le proprie risposte ad uno specifico indirizzo (il reale obiettivo dell&amp;#8217;attacco).&lt;br /&gt;
La componente amplificativa dell&amp;#8217; attacco risiede nella disponibilità del server DNS ad eseguire per conto dell&amp;#8217;attaccante una richiesta che comporti una risposta più ampia della richiesta stessa.&lt;/p&gt;
&lt;p&gt;Per comprendere il principio della &amp;#8220;DNS amplification&amp;#8221; è necessario comprendere prima i due concetti che consentono a tale tipo di attacco di avere luogo. Il primo è noto come &amp;#8220;reflection&amp;#8221;:&lt;br /&gt;
A differenza del più comunemente usato Transmission Control Protocol (TCP), i protocolli UDP (User Datagram Protocol) e ICMP (Internet Control Message Protocol) non attuano alcuna connessione, motivo per cui sono comunemente definiti &amp;#8220;connectionless&amp;#8221;.&lt;br /&gt;
I pacchetti IP che incapsulano TCP o UDP contengono un indirizzo sorgente ed uno di destinazione, me nel caso di UDP il destinatario del pacchetto non ha modo di accertare che l&amp;#8217;indirizzo di origine non sia stato falsificato, pratica comunemente conosciuta come spoofing. Un computer che riceva un pacchetto UDP con un indirizzo IP &amp;#8220;spoofed&amp;#8221; invierà una risposta proprio a quell&amp;#8217;indirizzo IP, e non al mittente reale.&lt;br /&gt;
La &amp;#8220;reflection&amp;#8221; pùò anche consentire all&amp;#8217;attaccante di far credere che il traffico generato provenga da molte differenti origini, rendendo difficoltoso attuare un filtro dei dati in ingresso.&lt;/p&gt;
&lt;p&gt;Il secondo concetto è quello di &amp;#8220;amplification&amp;#8221;, cioè di moltiplicazione del traffico originariamente inviato.&lt;br /&gt;
Ogni computer implicato nell&amp;#8217;attacco replica alla vittima, inondandola di traffico.&lt;br /&gt;
Mentre la reflection nasconde il sorgente iniziale dell&amp;#8217;attacco DoS, la amplification incrementa la quantità di traffico ricevuto dalla vittima decine, centinaia o migliaia di volte.&lt;/p&gt;
&lt;p&gt;Uno degli attacchi basati su amplificazione più datati e conosciuti è noto come &amp;#8220;smurf&amp;#8221;. In un attacco smurf, l&amp;#8217;attaccante invia un ping ICMP all&amp;#8217;indirizzo IP broadcast, simulando che a inviarlo sia l&amp;#8217;indirizzo IP della vittima (spoofing).&lt;br /&gt;
L&amp;#8217;invio di un singolo pacchetto viene replicato da tutti i nodi di una rete amplificando il traffico totale ricevuto dalla vittima.&lt;/p&gt;
&lt;p&gt;Gli attacchi smurf tuttavia non costituiscono più una seria minaccia dal momento che gli attuali routers sono configurati per non lasciar passare pacchetti broadcast alle altre reti, limitando di fatto il campo di applicazione di un attacco smurf alla subnet locale.&lt;/p&gt;
&lt;p&gt;Una categoria più recente di attacchi DoS sfrutta invece l&amp;#8217;infrastruttura DNS per amplificare la quantità di traffico che un singolo nodo può inviare.&lt;br /&gt;
Una richiesta DNS per un record di tipo A per uno specifico ampio dominio, tipico esempio google.com, restituisce molti più dati di quelli necessari per la semplice richiesta.&lt;br /&gt;
Le richieste DNS utilizzano poi comunemente messaggi basati su UDP, uno strumento ideale per attacchi basati sia sulla reflection che sulla amplification.&lt;/p&gt;
&lt;p&gt;Un altro fattore chiave risiede nella disponibilità di servers DNS configurati per effettuare richieste di tipo ricorsivo. Tali servers sono comunemente detti &amp;#8220;open resolvers&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Effettuando una tipica richiesta per un record DNS di tipo A, in certi casi capita che la risposta risulti più piccola della interrogazione, ma è molto semplice ottenere una risposta voluminosa facendo richiesta di informazioni addizionali.&lt;/p&gt;
&lt;p&gt;Se invece di una query per un record A ne venisse fatta una di tipo ANY, il server restiturebbe anche i valori relativi ai records MX ed NS, ottenendo, nel caso in cui, ad esempio, il dominio in questione sia google.com, un fattore di amplificazione 4x.&lt;/p&gt;
&lt;p&gt;Per incrementare ancora l&amp;#8217; amplificazione, un eventuale attaccante può sfruttare gli ampi record forniti dalle DNS Security Extensions (DNSSEC) per le zone definite.&lt;br /&gt;
DNSSEC restituisce i dati relativi ad una firma digitale (cryptographic signature) oltre ai normali dati del record DNS richiesto per consentire al destinatario di verificare l&amp;#8217;autenticità dei dati ottenuti. Ciò fa aumentare significativamente la quantità di traffico restituito da un DNS server.&lt;/p&gt;
&lt;p&gt;Effettuando una richiesta ANY di 78 bytes (ethernet) relativa al dominio usa.gov tramite il server 198.153.192.1 (di nortondns.com) e specificando la richiesta di records DNSSEC, ho ottenuto in risposta 3 frames ethernet di 1514+1514+1018=4046 bytes, con un fattore di amplificazione di oltre 50x.&lt;/p&gt;
&lt;p&gt;Questa la richiesta effettuata:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# dig @198.153.192.1 ANY +dnssec usa.gov&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;e la relativa risposta:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.7.3 &amp;lt;&amp;lt;&amp;gt;&amp;gt; @198.153.192.1 ANY +dnssec usa.gov&lt;br /&gt;
; (1 server found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 63509&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 29, AUTHORITY: 0, ADDITIONAL: 5&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags: do; udp: 4096&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;usa.gov.            IN    ANY&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;;; ANSWER SECTION:&lt;br /&gt;
usa.gov.        300    IN    SOA    dns.gsa.gov. hostmaster.gsa.gov. 1203130000 86400 600 1296000 10800&lt;br /&gt;
usa.gov.        300    IN    RRSIG    NSEC3PARAM 7 2 300 20120412123801 20120313113801 61638 usa.gov. hqAvKJVia4C96oKETI9vHns+mM58Sh/YhA+Jrslfjdfc/qYnoA4cztPr uNv9lAPxPhaiUMjP+vxPCj6aDmaxKVWjTX7ELgMOsV7u3kRMOVxmV4Og kk4w+NgPoN46/3bEZfDofremw3FNId+soFSsKLp4FGwMJXM2+oD4EXsY vbI=&lt;br /&gt;
usa.gov.        300    IN    RRSIG    DNSKEY 7 2 300 20120412123801 20120313113801 53313 usa.gov. bvMBZsLxqyNDblOMnsLyWNrm4Pfn9xhp0HNYbTWR9s1DVc0DcqG1mN0R OG4biFFG7nxjuPuLOYXREOfwbaChuzRRK5DERprT4ejhvOepR+wT518e +/7dS5F+35rrl4ymBhU6c4MN3J17K+oUqE9YwjvSG8YpKjhKMoOe1ami 2dab9amJbmYuzMBHCPwDDllomSFqXH2J7NMnwQbDtdjXJXk0arSZ2YEO KeFbGbQf0a7Pz4usPgipfcv7N8Ekh1r2r5rVzKTvpKz4YTg31iRWVkOQ LWhFuUCAm/RJF5PxrWHkwgLfxMuK2jZj/xptKtPnzQyEYmDHF9fcdO+6 tzCGTw==&lt;br /&gt;
usa.gov.        300    IN    RRSIG    DNSKEY 7 2 300 20120412123801 20120313113801 61638 usa.gov. PJga6q4tjRifPCR/rkGCpoMYinDUcvDWB4RwYAMFHauunqHcwGl4MYES jzuVV8CqcuG+ILl9+lwTGMafABD/W67GuQv+/pRKvpkb+0hw5ByMOzSC wR17oWHCXW0VYYcxjeZNW1X2CMW3mSx53W079DMzHdAPioJavBM6zT5b dro=&lt;br /&gt;
usa.gov.        300    IN    RRSIG    SOA 7 2 300 20120412123801 20120313113801 61638 usa.gov. ruGzimcqC+8YUj9wNvEjh5dX9/TI0sZRK8bIC+CfKtnZJs5FzKDuZgdK x9YunDQ/WKaxkkkYU9XCdma41cEwUN/Ymc6QLCts0jYphfUAYM+RAU7e 4Agi6seJfsxtpGsHvZ4MaCahFOsiKpsd1Kp+8vZeSlxDvZVm7Yq23bsx m3w=&lt;br /&gt;
usa.gov.        3600    IN    RRSIG    MX 7 2 3600 20120412123801 20120313113801 61638 usa.gov. rfL4qho8S73nC/t+fGHfhPm69jbKdRNexJAamVdgXIzGVc1+UDvDfaBD qnMP7df4YpyysqLDoITmpFsPe48w4EQnuQRJWjSqCGKFUWmHqrvQLPIX uyJSClCy2TghllWtXmc0299ny/OCY2odfT46GDLnMMWUb8LeSQml43QC 2mY=&lt;br /&gt;
usa.gov.        3600    IN    RRSIG    A 7 2 3600 20120412123801 20120313113801 61638 usa.gov. O55BJ3n4GGZoIe/eETN9omyGnL2GrIHgBLhUSFDcFEo3xvyQvLCv45Ec XYwGeUMZJoIgnNI4njOoflaXS3E8U4oqMCqDs9xz+NMQvC8xYDU20puY +Jktb9yj/s0XL4gz9mC3sqSgmOJkhyPQm0QDsB2phAPwFAmXKBwyX3KJ Vs0=&lt;br /&gt;
usa.gov.        300    IN    RRSIG    NS 7 2 300 20120412123801 20120313113801 61638 usa.gov. U9hfCzMLAaoc8QfpTBKhdkopOqGKjps4aW4NTX+HzKDwLsL3qLRLURpm QuO18T4mDcAkIGU9Vr3wsJC85f0P91Dus++J2t4x0+zqTceYSUcIAax6 OhuT0vre7czspqZh6+ZiQov/sNXfGWx+Vfch9jpx0E0gK+XXI4P40M5o sQc=&lt;br /&gt;
usa.gov.        300    IN    NSEC3PARAM 1 0 12 AABBCCDD&lt;br /&gt;
usa.gov.        300    IN    RRSIG    NSEC3PARAM 7 2 300 20120412123801 20120313113801 61638 usa.gov. hqAvKJVia4C96oKETI9vHns+mM58Sh/YhA+Jrslfjdfc/qYnoA4cztPr uNv9lAPxPhaiUMjP+vxPCj6aDmaxKVWjTX7ELgMOsV7u3kRMOVxmV4Og kk4w+NgPoN46/3bEZfDofremw3FNId+soFSsKLp4FGwMJXM2+oD4EXsY vbI=&lt;br /&gt;
usa.gov.        300    IN    DNSKEY    256 3 7 AwEAAb7LoWNLiPwBhNFUBf+1r841RFpc+1Zj7tpLz99bY/53amEiHkrH vpd48XX/J2aXsqCBhxBi3t0wvtWfHGolVD64UYn/JxVfkx1r5xv6nETV MTDEW3OMAfA+m+gWwxACJc3TPsyFtN5ExCBjbb0tLJCiXdHj8D5pC2gD KcQZ+J/H&lt;br /&gt;
usa.gov.        300    IN    DNSKEY    257 3 7 AwEAAZD19uIi0nuONBNkQDrFL9NZuYb8iiaEGWBmj7EJ7Dse1kz5kdK6 DVxan1J5WMN7YDr/3eNSerogcJP8IFOqMxNdwKHMRMp3mavVVMR1ddnv t4hy1j3Pd+y6DELdZxNixOZgI7vKj67RMlyjWjzz96i64dghKM89/9S2 5VMi2BlUVJ9f74TOTiYxJpAqz9DuRzGKr1c29HQNpnPu4syXQy367XNk syzndaN+vFZYxw6ukv707by7XI2UyXO1AtNTFHiDpz1uFnnf26EBG2Nq 4DfS6dAlUKqTdb+QvTbSGeMgpFotz5ZJLQjl+XFWarNenX6LowMl4mzv VjtUzKWHXRU=&lt;br /&gt;
usa.gov.        300    IN    DNSKEY    257 3 7 AwEAAaJXTYjFMibSsZMzzgi+qGYLUHDMj+5v6YDfG/maMOyT0rC51bkw ZRie6XHkjAEW9CWZe3m87FHXJ3PmG8O+LfO0bz1yRftOtS1OvdyX+Jeb jVUR4eOVitNZL8cz1zAj7Fv2wFU3BjlqhFyB2q17sEkKFfbt16LwL6hR 6/CbFDtg00VykZ3nNYkZy2r8GsbTlrXkAEur5mX+Ls+cTksaUlzPQhFc 8ST5nRc6/ebSGg+gwVjWZLrmncbrdNq887HZdy5NDT7bxn0ArRi41f4/ P6Y9dI8DXVcxMPa2y6P2UzwNYY60UHqp3GLoV7x4hobduf74ffCVgzuJ QGP6e9PqTtU=&lt;br /&gt;
usa.gov.        300    IN    DNSKEY    256 3 7 AwEAAXY7OaGoaM+8pyyRWniow6SrKpMD2F/yweKz0CNAV18dn2mGOOmM eGNOzhkg+MTkHtZxKQ1LzZtveg8wO3mTn3g23Sr/1I8uIfABSDTGuHgb wTxKQpaC+eHcc01Ucn9EGkzS/kt8g0HwwDQ4YZgoxjBGS/dEqE/JX0h4 31PyV/0J&lt;br /&gt;
usa.gov.        300    IN    RRSIG    DNSKEY 7 2 300 20120412123801 20120313113801 53313 usa.gov. bvMBZsLxqyNDblOMnsLyWNrm4Pfn9xhp0HNYbTWR9s1DVc0DcqG1mN0R OG4biFFG7nxjuPuLOYXREOfwbaChuzRRK5DERprT4ejhvOepR+wT518e +/7dS5F+35rrl4ymBhU6c4MN3J17K+oUqE9YwjvSG8YpKjhKMoOe1ami 2dab9amJbmYuzMBHCPwDDllomSFqXH2J7NMnwQbDtdjXJXk0arSZ2YEO KeFbGbQf0a7Pz4usPgipfcv7N8Ekh1r2r5rVzKTvpKz4YTg31iRWVkOQ LWhFuUCAm/RJF5PxrWHkwgLfxMuK2jZj/xptKtPnzQyEYmDHF9fcdO+6 tzCGTw==&lt;br /&gt;
usa.gov.        300    IN    RRSIG    DNSKEY 7 2 300 20120412123801 20120313113801 61638 usa.gov. PJga6q4tjRifPCR/rkGCpoMYinDUcvDWB4RwYAMFHauunqHcwGl4MYES jzuVV8CqcuG+ILl9+lwTGMafABD/W67GuQv+/pRKvpkb+0hw5ByMOzSC wR17oWHCXW0VYYcxjeZNW1X2CMW3mSx53W079DMzHdAPioJavBM6zT5b dro=&lt;br /&gt;
usa.gov.        3600    IN    MX    20 mx20.usa.gov.&lt;br /&gt;
usa.gov.        3600    IN    MX    10 mx10.usa.gov.&lt;br /&gt;
usa.gov.        3600    IN    RRSIG    MX 7 2 3600 20120412123801 20120313113801 61638 usa.gov. rfL4qho8S73nC/t+fGHfhPm69jbKdRNexJAamVdgXIzGVc1+UDvDfaBD qnMP7df4YpyysqLDoITmpFsPe48w4EQnuQRJWjSqCGKFUWmHqrvQLPIX uyJSClCy2TghllWtXmc0299ny/OCY2odfT46GDLnMMWUb8LeSQml43QC 2mY=&lt;br /&gt;
usa.gov.        3600    IN    A    173.252.148.104&lt;br /&gt;
usa.gov.        3600    IN    A    216.128.241.47&lt;br /&gt;
usa.gov.        3600    IN    RRSIG    A 7 2 3600 20120412123801 20120313113801 61638 usa.gov. O55BJ3n4GGZoIe/eETN9omyGnL2GrIHgBLhUSFDcFEo3xvyQvLCv45Ec XYwGeUMZJoIgnNI4njOoflaXS3E8U4oqMCqDs9xz+NMQvC8xYDU20puY +Jktb9yj/s0XL4gz9mC3sqSgmOJkhyPQm0QDsB2phAPwFAmXKBwyX3KJ Vs0=&lt;br /&gt;
usa.gov.        300    IN    NS    dns3.gsa.gov.&lt;br /&gt;
usa.gov.        300    IN    NS    dns5.gsa.gov.&lt;br /&gt;
usa.gov.        300    IN    NS    dns2.gsa.gov.&lt;br /&gt;
usa.gov.        300    IN    NS    dns6.gsa.gov.&lt;br /&gt;
usa.gov.        300    IN    NS    dns.gsa.gov.&lt;br /&gt;
usa.gov.        300    IN    NS    dns4.gsa.gov.&lt;br /&gt;
usa.gov.        300    IN    RRSIG    NS 7 2 300 20120412123801 20120313113801 61638 usa.gov. U9hfCzMLAaoc8QfpTBKhdkopOqGKjps4aW4NTX+HzKDwLsL3qLRLURpm QuO18T4mDcAkIGU9Vr3wsJC85f0P91Dus++J2t4x0+zqTceYSUcIAax6 OhuT0vre7czspqZh6+ZiQov/sNXfGWx+Vfch9jpx0E0gK+XXI4P40M5o sQc=&lt;/p&gt;
&lt;p&gt;;; ADDITIONAL SECTION:&lt;br /&gt;
mx10.usa.gov.        600    IN    A    159.142.1.200&lt;br /&gt;
mx20.usa.gov.        600    IN    A    159.142.1.251&lt;br /&gt;
mx10.usa.gov.        600    IN    RRSIG    A 7 3 600 20120412123801 20120313113801 61638 usa.gov. l318JIl/Kmq6I+rjqe4ukCT74D4W5TBR3yCxIR9qdf1/5UU7bfokwQcU Rh8Jg/i7uh+nDOGZZ+84jkyG17+VuPuK50SdAaZU1HFRWNsafNGIWVsT nypVqs94s+ARoBtMNBw65M0Fh6Qegaf2+4EVk0K3oazVdYT4lpcWLFZk LDI=&lt;br /&gt;
mx20.usa.gov.        600    IN    RRSIG    A 7 3 600 20120412123801 20120313113801 61638 usa.gov. ucvSzpzUWBbBbDkpdh/PUVLdzFgenQQQrt1LH+uA7KmmOYCGf52ktVvS SjlUy1ghULmh/zlWOwUC5VRUIUDqqo9diWlTYXuRpfs6fIezY1hWaM1k WVnxYpBHxME9Tf1T7YuBo/kRHm1klnAH0O1euGre8/eZAyGqmpxKT2be MJ0=&lt;/p&gt;
&lt;p&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;;; Query time: 156 msec&lt;br /&gt;
;; SERVER: 198.153.192.1#53(198.153.192.1)&lt;br /&gt;
;; WHEN: Fri Mar 16 00:15:01 2012&lt;br /&gt;
;; MSG SIZE  rcvd: 3936&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Questa invece la cattura (tramite tcpdump) della risposta frammentata:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# tcpdump -i eth0 -v 'udp port 53 or (ip[6:2] &amp;amp; 0&amp;#215;2000 == 0&amp;#215;2000 or ip[6:2] &amp;amp; 0&amp;#215;1fff !=0&amp;#215;0000)&amp;#8217;&lt;br /&gt;
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes&lt;br /&gt;
00:15:01.051922 IP (tos 0&amp;#215;0, ttl 64, id 61723, offset 0, flags [none], proto UDP (17), length 64)&lt;br /&gt;
silversurfer.49904 &amp;gt; 198.153.192.1.domain: 63509+ [1au] ANY? usa.gov. (36)&lt;br /&gt;
00:15:01.206712 IP (tos 0&amp;#215;0, ttl 54, id 10190, offset 0, flags [+], proto UDP (17), length 1500)&lt;br /&gt;
198.153.192.1.domain &amp;gt; silversurfer.49904: 63509 29/0/5 usa.gov. SOA dns.gsa.gov. hostmaster.gsa.gov. 1203130000 86400 600 1296000 10800, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. RRSIG, usa.gov. Type51, usa.gov. RRSIG[|domain]&lt;br /&gt;
00:15:01.207146 IP (tos 0&amp;#215;0, ttl 54, id 10190, offset 1480, flags [+], proto UDP (17), length 1500)&lt;br /&gt;
198.153.192.1 &amp;gt; silversurfer: udp&lt;br /&gt;
00:15:01.207152 IP (tos 0&amp;#215;0, ttl 54, id 10190, offset 2960, flags [none], proto UDP (17), length 1004)&lt;br /&gt;
198.153.192.1 &amp;gt; silversurfer: udp&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Un singolo computer collegato ad Internet tramite una buona ADSL potrebbe ragionevolmente generare 512 Kbps di traffico, certo non abbastanza per causare un DoS. Moltiplicando tale valore per 50, e utilizzando una piccola&lt;br /&gt;
botnet composta da 1000 nodi, sarebbe facilmente possibile generare 25 Gbps di traffico, abbastanza per saturare pressoché qualsiasi connessione Internet.&lt;/p&gt;
&lt;p&gt;Per concludere, un attacco di tipo &amp;#8220;DNS amplification&amp;#8221; può rivelarsi enormemente efficace, tuttavia necessita di due condizioni senza le quali non è praticabile:&lt;/p&gt;
&lt;p&gt;1) Sebbene gli indirizzi IP dei pacchetti UDP possano essere alterati (spoofed), ciò non è necessariamente sempre possibile. Se è vero cioè che UDP non può assicurare la reale origine di un pacchetto, un ISP potrebbe sempre filtrare i pacchetti in uscita dalla propria rete per assicurare che l&amp;#8217;indirizzo IP sorgente risieda effettivamente all&amp;#8217;interno di essa.&lt;br /&gt;
Il documento redatto dalla Internet Engineering Task Force (IETF) &amp;#8220;Best Current Practice 38&amp;#8243; (BCP38) suggerisce proprio questo tipo di filtraggio. Se molte networks lo hanno implementato, molte altre non lo hanno semplicemente fatto, adducendo come motivo il sovraccarico cui sarebbero di conseguenza sottoposti i propri apparati.&lt;/p&gt;
&lt;p&gt;2) Il secondo prerequisito necessario affinché una DNS amplification possa essere attuata risiede nella cooperazione da parte di uno o più DNS servers. Già nel 2006, Dan Kaminsky aveva evidenziato la presenza di oltre 580000 open resolvers attivi in Internet. Qualsiasi buon amministratore di un server DNS dovrebbe configurarlo in modo che non possa effettuare queries ricorsive o almeno consentirle esclusivamente ad uno specifico range di indirizzi IP.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/sicurezza/attacchi-del-tipo-dns-amplification/feed</wfw:commentRss>
		</item>
		<item>
		<title>Analisi di un attacco Anonymous</title>
		<link>http://www.voipandhack.it/archives/societa/analisi-di-un-attacco-anonymous</link>
		<comments>http://www.voipandhack.it/archives/societa/analisi-di-un-attacco-anonymous#comments</comments>
		<pubDate>Thu, 08 Mar 2012 23:04:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Sicurezza]]></category>

		<category><![CDATA[Società]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[Anonymous]]></category>

		<category><![CDATA[attacco DDOS]]></category>

		<category><![CDATA[DDOS]]></category>

		<category><![CDATA[injection]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[vaticano]]></category>

		<category><![CDATA[vulnerabilità]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1894</guid>
		<description><![CDATA[Giusto in concomitanza con l&#8217;attacco Anonymous al sito vaticano è stato rilasciato da Imperva, una delle imprese di security che è al servizio dello stesso Vaticano, un report relativo al precedente attacco subito, quello lanciato durante lo svolgimento, durato 25 giorni, delle Giornate della Gioventù svoltesi in Spagna nel 2011.
In quella occasione Anonymous pensò di [...]]]></description>
			<content:encoded><![CDATA[<p>Giusto in concomitanza con l&#8217;attacco Anonymous al sito vaticano è stato rilasciato da Imperva, una delle imprese di security che è al servizio dello stesso Vaticano, un report relativo al precedente attacco subito, quello lanciato durante lo svolgimento, durato 25 giorni, delle Giornate della Gioventù svoltesi in Spagna nel 2011.<br />
In quella occasione Anonymous pensò di colpire il sito organizzatore della giornata, (a quanto pare perfino rivenditore di oggettistica e paccotiglia a tema).<span id="more-1894"></span></p>
<p>L&#8217;attacco ha seguito uno schema composto da tre distinte fasi: arruolamento e comunicazione, analisi tramite riconoscimento delle caratteristiche tecniche dell&#8217;obbiettivo con contemporanei attacchi al livello applicativo, e da ultimo, un attacco di tipo DDoS (distributed denial of service).</p>
<p>Come canali di arruolamento sono stati utilizzati i Social media, in particolar modo Twitter, Facebook e YouTube, usati prevalentemente per indicare un obiettivo e giustificare ideologicamente un attacco, e contemporaneamente arruolare volontari disposti a participare alla campagna militare. Tutto questo durante la prima fase, quella definita di &#8220;Arruolamento e comunicazione&#8221;.</p>
<p>Gli hackers più sofisticati e tecnicamente capaci costituiscono solo una piccola parte degli attivisti e sono principalmente coinvolti nella fase di riconoscimento e nella fase di attacco al livello applicativo, incentrati sulla ricerca di specifichè vulnerabilità applicative o in attacchi di tipo SQL injection, allo scopo di introdursi a qualche titolo nel sistema bersaglio.</p>
<p>La truppa in attesa viene scatenata solo durante la terza fase, sintomo che i precedenti attacchi sono semplicemente andati a vuoto.</p>
<p>Anonymous ha sviluppato alcuni tools software, specificamente il software Low Orbit Ion Cannon (LOIC) ed anche un tool che consente di partecipare ad un attacco DDoS a partire dal browser di uno smatphone, sfrutta il venerabile Slowloris, nato ai tempi della rivolta in Iran del 2009. Il gruppo fa invece affidamento su tools pubblicamente disponibili e largamente utilizzati (in modo assolutamente legale) nel penetration testing per rilevare e sfruttare le vulnerabilità delle (proprie) applicazioni web, durante le fasi di riconoscimeto ed attacco a livello applicativo.</p>
<p>Analizzando a posteriori l&#8217;attacco di ieri, se ne deduce comunque che si sia trattato di un mezzo fallimento, e che tutto si sia ridotto ad una probabile autoesclusione del cluster vaticano (212.77.1.244, 212.77.1.246, 212.77.1.247 e 212.77.1.243) dalla rete, dopo un attacco DDOS, che molto probabilmente esporrà molti a possibili rappresaglie giudiziarie).</p>
<p>Piuttosto cattiva, ma meritevole di considerazione, la definizione data di Anonymous da qualcuno del team: &#8220;Anonymous è un manipolo di geni circondati da una massa di idioti&#8221;.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking | Consulenza Documentazione"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Analisi di un attacco Anonymous"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/societa/analisi-di-un-attacco-anonymous"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2012-03-09 01:03:31"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Giusto in concomitanza con l&amp;#8217;attacco Anonymous al sito vaticano è stato rilasciato da Imperva, una delle imprese di security che è al servizio dello stesso Vaticano, un report relativo al precedente attacco subito, quello lanciato durante lo svolgimento, durato 25 giorni, delle Giornate della Gioventù svoltesi in Spagna nel 2011.&lt;br /&gt;
In quella occasione Anonymous pensò di colpire il sito organizzatore della giornata, (a quanto pare perfino rivenditore di oggettistica e paccotiglia a tema).&lt;span id=&quot;more-1894&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;L&amp;#8217;attacco ha seguito uno schema composto da tre distinte fasi: arruolamento e comunicazione, analisi tramite riconoscimento delle caratteristiche tecniche dell&amp;#8217;obbiettivo con contemporanei attacchi al livello applicativo, e da ultimo, un attacco di tipo DDoS (distributed denial of service).&lt;/p&gt;
&lt;p&gt;Come canali di arruolamento sono stati utilizzati i Social media, in particolar modo Twitter, Facebook e YouTube, usati prevalentemente per indicare un obiettivo e giustificare ideologicamente un attacco, e contemporaneamente arruolare volontari disposti a participare alla campagna militare. Tutto questo durante la prima fase, quella definita di &amp;#8220;Arruolamento e comunicazione&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Gli hackers più sofisticati e tecnicamente capaci costituiscono solo una piccola parte degli attivisti e sono principalmente coinvolti nella fase di riconoscimento e nella fase di attacco al livello applicativo, incentrati sulla ricerca di specifichè vulnerabilità applicative o in attacchi di tipo SQL injection, allo scopo di introdursi a qualche titolo nel sistema bersaglio.&lt;/p&gt;
&lt;p&gt;La truppa in attesa viene scatenata solo durante la terza fase, sintomo che i precedenti attacchi sono semplicemente andati a vuoto.&lt;/p&gt;
&lt;p&gt;Anonymous ha sviluppato alcuni tools software, specificamente il software Low Orbit Ion Cannon (LOIC) ed anche un tool che consente di partecipare ad un attacco DDoS a partire dal browser di uno smatphone, sfrutta il venerabile Slowloris, nato ai tempi della rivolta in Iran del 2009. Il gruppo fa invece affidamento su tools pubblicamente disponibili e largamente utilizzati (in modo assolutamente legale) nel penetration testing per rilevare e sfruttare le vulnerabilità delle (proprie) applicazioni web, durante le fasi di riconoscimeto ed attacco a livello applicativo.&lt;/p&gt;
&lt;p&gt;Analizzando a posteriori l&amp;#8217;attacco di ieri, se ne deduce comunque che si sia trattato di un mezzo fallimento, e che tutto si sia ridotto ad una probabile autoesclusione del cluster vaticano (212.77.1.244, 212.77.1.246, 212.77.1.247 e 212.77.1.243) dalla rete, dopo un attacco DDOS, che molto probabilmente esporrà molti a possibili rappresaglie giudiziarie).&lt;/p&gt;
&lt;p&gt;Piuttosto cattiva, ma meritevole di considerazione, la definizione data di Anonymous da qualcuno del team: &amp;#8220;Anonymous è un manipolo di geni circondati da una massa di idioti&amp;#8221;.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/societa/analisi-di-un-attacco-anonymous/feed</wfw:commentRss>
		</item>
		<item>
		<title>I rischi dell&#8217; hacktivismo di massa</title>
		<link>http://www.voipandhack.it/archives/societa/i-rischi-dell-hactivismo-di-massa</link>
		<comments>http://www.voipandhack.it/archives/societa/i-rischi-dell-hactivismo-di-massa#comments</comments>
		<pubDate>Wed, 07 Mar 2012 12:28:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Politica]]></category>

		<category><![CDATA[Società]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[Anonymous]]></category>

		<category><![CDATA[botnets]]></category>

		<category><![CDATA[DDOS]]></category>

		<category><![CDATA[hacktivism]]></category>

		<category><![CDATA[malware]]></category>

		<category><![CDATA[slowloris]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1883</guid>
		<description><![CDATA[Una piccola (amara) riflessione personale sul pericolo che la democratizzazione delle ultime azioni di Anonymous sia facilmente sfruttabile per farla ritorcere soprattutto contro i fiancheggiatori del movimento, in pratica gli script kiddies impiegati come manovalanza negli attacchi DDOS che ultimamente sono stati lanciati contro siti istituzionali.
Ciò dipende dal fatto che il tool messo a disposizione, [...]]]></description>
			<content:encoded><![CDATA[<p>Una piccola (amara) riflessione personale sul pericolo che la democratizzazione delle ultime azioni di Anonymous sia facilmente sfruttabile per farla ritorcere soprattutto contro i fiancheggiatori del movimento, in pratica gli script kiddies impiegati come manovalanza negli attacchi DDOS che ultimamente sono stati lanciati contro siti istituzionali.<span id="more-1883"></span><br />
Ciò dipende dal fatto che il tool messo a disposizione, il buon vecchio Slowloris, di cui avevo <a href="http://http://www.voipandhack.it/archives/sicurezza/slowloris-un-dos-evoluto-contro-i-webservers">già parlato nel 2009</a>, è stato malignamente sostituito con una versione alterata.<br />
Si è rivelato cioè una sorta di boomerang in quanto infetto da una nuova variante del trojan Zeus (probabilmente il crimeware di maggior successo della storia), la cui esecuzione porta inesorabilmente all&#8217;infezione del computer del malcapitato hacktivista della domenica impegnato nell&#8217;attacco DDoS.</p>
<p>Per meglio mascherare la realtà, una volta preso il controllo del sistema, il malware prova a scaricare l&#8217;autentico slowloris, proprio come lo script-kiddie si sarebbe aspettato.</p>
<p>Gli attacchi DDoS si sono svolti come pianificato, ma nel frattempo il trojan Zeus faceva incetta delle credenziali di accesso e, se presenti, dei dati finanziari della ignara hacktivittima (del resto è specializzato proprio in questo).</p>
<p>Dulcis in fundo, l&#8217;arruolamento forzato e inconsapevole in una botnet criminale.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking | Consulenza Documentazione"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="I rischi dell&amp;#8217; hacktivismo di massa"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/societa/i-rischi-dell-hactivismo-di-massa"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2012-03-07 14:03:30"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Una piccola (amara) riflessione personale sul pericolo che la democratizzazione delle ultime azioni di Anonymous sia facilmente sfruttabile per farla ritorcere soprattutto contro i fiancheggiatori del movimento, in pratica gli script kiddies impiegati come manovalanza negli attacchi DDOS che ultimamente sono stati lanciati contro siti istituzionali.&lt;span id=&quot;more-1883&quot;&gt;&lt;/span&gt;&lt;br /&gt;
Ciò dipende dal fatto che il tool messo a disposizione, il buon vecchio Slowloris, di cui avevo &lt;a href=&quot;http://http://www.voipandhack.it/archives/sicurezza/slowloris-un-dos-evoluto-contro-i-webservers&quot;&gt;già parlato nel 2009&lt;/a&gt;, è stato malignamente sostituito con una versione alterata.&lt;br /&gt;
Si è rivelato cioè una sorta di boomerang in quanto infetto da una nuova variante del trojan Zeus (probabilmente il crimeware di maggior successo della storia), la cui esecuzione porta inesorabilmente all&amp;#8217;infezione del computer del malcapitato hacktivista della domenica impegnato nell&amp;#8217;attacco DDoS.&lt;/p&gt;
&lt;p&gt;Per meglio mascherare la realtà, una volta preso il controllo del sistema, il malware prova a scaricare l&amp;#8217;autentico slowloris, proprio come lo script-kiddie si sarebbe aspettato.&lt;/p&gt;
&lt;p&gt;Gli attacchi DDoS si sono svolti come pianificato, ma nel frattempo il trojan Zeus faceva incetta delle credenziali di accesso e, se presenti, dei dati finanziari della ignara hacktivittima (del resto è specializzato proprio in questo).&lt;/p&gt;
&lt;p&gt;Dulcis in fundo, l&amp;#8217;arruolamento forzato e inconsapevole in una botnet criminale.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/societa/i-rischi-dell-hactivismo-di-massa/feed</wfw:commentRss>
		</item>
		<item>
		<title>War GPS Spoofing</title>
		<link>http://www.voipandhack.it/archives/sicurezza/war-gps-spoofing</link>
		<comments>http://www.voipandhack.it/archives/sicurezza/war-gps-spoofing#comments</comments>
		<pubDate>Fri, 23 Dec 2011 20:47:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Politica]]></category>

		<category><![CDATA[Sicurezza]]></category>

		<category><![CDATA[cyberwar]]></category>

		<category><![CDATA[gps]]></category>

		<category><![CDATA[spoofing]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1881</guid>
		<description><![CDATA[Gli scenziati iraniani affermano di essere stati in grado di indurre un drone USA ad atterrare dove desideravano tramite un hack GPS. La Televisione di stato sta trionfamente diffondendo le immagini dell&#8217;apparecchio catturato. Le immagini trasmesse ritraggono un drone intatto con nessun segno di danneggiamento. Gli Iraniani affermano di aver utilizzato un software che ha [...]]]></description>
			<content:encoded><![CDATA[<p>Gli scenziati iraniani affermano di essere stati in grado di indurre un drone USA ad atterrare dove desideravano tramite un hack GPS.<span id="more-1881"></span> La Televisione di stato sta trionfamente diffondendo le immagini dell&#8217;apparecchio catturato. Le immagini trasmesse ritraggono un drone intatto con nessun segno di danneggiamento. Gli Iraniani affermano di aver utilizzato un software che ha falsificato le coordinate GPS, e con questo trucco indotto il drone RQ-170 Sentinel ad atterrare di propria iniziativa senza doverne prendere il controllo.<br />
L&#8217;Iran avrebbe sviluppato un tipo di attacco mirato attack dopo un reverse-engineering effettuato su droni USA precedentemante catturati o abbattuti, ed avvantaggiandosi di una vulnerabilità inerente il sistema di navigazione GPS. </p>
<p>Gizmodo riporta che i militari erano a conoscenza dei rischi potenziali legati allo spoofing GPS con la conseguenza per un drone di venire costretto ad atterrere in maniera analoga a quanto successo sin dal 2003 e non avevano mai affrontato il problema.</p>
<p>Tuttavia, certi attacchi basati su GPS spoofing sono molto difficili da mettere in pratica, e gli analisti diffidano fortemente delle tesi iraniane, classificandola propaganda. Le autorità iranian avrebbero dovuto conoscere la localizzazione del drone entro una manciata di metri e colpirlo con un segnale GPS più forte delle trasmissioni satellitari. Nessuno di questi segnal è criptato cosicchè il segnale più forte l&#8217;avrebbe vinta, ma a questo punto sarebbe necessario introdurre gradualmente degli errori per guidare il velivolo al punto di atterraggio scelto.<br />
Gli USA controbattono infatti che il drone è andato perso durante una missione nell&#8217;Ovest dell&#8217;Afghanistan e portato in Iran in seguito ad una operazione spionistica.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking | Consulenza Documentazione"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="War GPS Spoofing"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/sicurezza/war-gps-spoofing"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2011-12-23 22:12:09"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Gli scenziati iraniani affermano di essere stati in grado di indurre un drone USA ad atterrare dove desideravano tramite un hack GPS.&lt;span id=&quot;more-1881&quot;&gt;&lt;/span&gt; La Televisione di stato sta trionfamente diffondendo le immagini dell&amp;#8217;apparecchio catturato. Le immagini trasmesse ritraggono un drone intatto con nessun segno di danneggiamento. Gli Iraniani affermano di aver utilizzato un software che ha falsificato le coordinate GPS, e con questo trucco indotto il drone RQ-170 Sentinel ad atterrare di propria iniziativa senza doverne prendere il controllo.&lt;br /&gt;
L&amp;#8217;Iran avrebbe sviluppato un tipo di attacco mirato attack dopo un reverse-engineering effettuato su droni USA precedentemante catturati o abbattuti, ed avvantaggiandosi di una vulnerabilità inerente il sistema di navigazione GPS. &lt;/p&gt;
&lt;p&gt;Gizmodo riporta che i militari erano a conoscenza dei rischi potenziali legati allo spoofing GPS con la conseguenza per un drone di venire costretto ad atterrere in maniera analoga a quanto successo sin dal 2003 e non avevano mai affrontato il problema.&lt;/p&gt;
&lt;p&gt;Tuttavia, certi attacchi basati su GPS spoofing sono molto difficili da mettere in pratica, e gli analisti diffidano fortemente delle tesi iraniane, classificandola propaganda. Le autorità iranian avrebbero dovuto conoscere la localizzazione del drone entro una manciata di metri e colpirlo con un segnale GPS più forte delle trasmissioni satellitari. Nessuno di questi segnal è criptato cosicchè il segnale più forte l&amp;#8217;avrebbe vinta, ma a questo punto sarebbe necessario introdurre gradualmente degli errori per guidare il velivolo al punto di atterraggio scelto.&lt;br /&gt;
Gli USA controbattono infatti che il drone è andato perso durante una missione nell&amp;#8217;Ovest dell&amp;#8217;Afghanistan e portato in Iran in seguito ad una operazione spionistica.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/sicurezza/war-gps-spoofing/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

