<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>Hackalicegate</title><revhistory><revision><revnumber>29</revnumber><date>2016-09-18 13:59:22</date><authorinitials>93-50-130-64.ip152.fastwebnet.it</authorinitials></revision><revision><revnumber>28</revnumber><date>2016-01-03 14:28:59</date><authorinitials>adsl-ull-190-135.44-151.wind.it</authorinitials></revision><revision><revnumber>27</revnumber><date>2016-01-03 14:27:04</date><authorinitials>adsl-ull-190-135.44-151.wind.it</authorinitials></revision><revision><revnumber>26</revnumber><date>2012-06-21 07:33:30</date><authorinitials>151.71.247.177</authorinitials></revision><revision><revnumber>25</revnumber><date>2011-02-08 14:31:54</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>24</revnumber><date>2010-12-02 17:10:05</date><authorinitials>93-40-67-23.ip37.fastwebnet.it</authorinitials></revision><revision><revnumber>23</revnumber><date>2010-10-05 22:23:08</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>22</revnumber><date>2010-10-05 07:39:48</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>21</revnumber><date>2010-10-04 23:05:39</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>20</revnumber><date>2010-10-04 21:29:55</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>19</revnumber><date>2010-10-04 21:27:43</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>18</revnumber><date>2010-10-04 21:17:03</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>17</revnumber><date>2010-10-04 20:55:21</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>16</revnumber><date>2010-10-04 10:33:36</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>15</revnumber><date>2010-10-02 16:59:09</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>14</revnumber><date>2010-10-02 14:28:38</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>13</revnumber><date>2010-10-02 13:45:15</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>12</revnumber><date>2010-10-02 13:39:07</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>11</revnumber><date>2010-10-02 10:43:16</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>10</revnumber><date>2010-10-02 10:15:29</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>9</revnumber><date>2010-10-01 22:55:24</date><authorinitials>net-93-71-205-109.cust.dsl.vodafone.it</authorinitials></revision><revision><revnumber>8</revnumber><date>2010-10-01 22:50:11</date><authorinitials>net-93-71-205-109.cust.dsl.vodafone.it</authorinitials></revision><revision><revnumber>7</revnumber><date>2010-10-01 22:38:55</date><authorinitials>net-93-71-205-109.cust.dsl.vodafone.it</authorinitials></revision><revision><revnumber>6</revnumber><date>2010-10-01 22:20:23</date><authorinitials>net-93-71-205-109.cust.dsl.vodafone.it</authorinitials></revision><revision><revnumber>5</revnumber><date>2010-10-01 12:03:29</date><authorinitials>host207-224-dynamic.50-79-r.retail.telecomitalia.it</authorinitials></revision><revision><revnumber>4</revnumber><date>2010-10-01 10:43:07</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>3</revnumber><date>2010-10-01 10:36:35</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>2</revnumber><date>2010-10-01 09:51:42</date><authorinitials>claudyus</authorinitials></revision><revision><revnumber>1</revnumber><date>2010-10-01 09:32:30</date><authorinitials>claudyus</authorinitials></revision></revhistory></articleinfo><section><title>Dare nuova vita al modem Alice Gate.</title><para>Questa guida mostra come dispositivi molto comuni, usati principalmente come oggetti standardlone e con pochissime funzioni possano essere personalizzati ritornando a nuova vita con l'utilizzo di software open-source, dando fra l'altro grandi soddisfazioni. </para><para>In queste pagine spiegherò non solo come sostituire il firmware di default con una completa a potente distribuzione (<ulink url="http://www.nnx.me/Hackalicegate/OpenWrt#">OpenWrt</ulink>) ma esploreremo anche modifiche hardware e configurazioni software impensabili con il firmware originale. </para><para>Written by: Claudyus per ninux.org </para><para>Copyright: CC-BY-SA </para><para>Per contatti <ulink url="http://www.nnx.me/Hackalicegate/giovedi%20nerd#">giovedi nerd</ulink> oppure contatti @ ninux.org  oppure sulla <ulink url="http://ml.ninux.org/mailman/listinfo/wireless">mailinglist wireless</ulink> </para><section><title>Dal rifiuto al riuso</title><para>Come ben sappiamo ogni gestore telefonico ha il suo modem capillarmente diffuso sul territorio nazionale, cambiare contratto telefonico in ultima analisi porta anche al cambiamento del modem che in realtà da lungo tempo ha smesso di essere un semplice de-modulatore e si è trasformato in un potente e versatile computer. </para><para> Nella maggior parte dei casi anche più versatile di un pc.</para><para> Chi di voi ha un pc con access-point 802.11N, 4 prese ethernet, 2 porte voip analogiche e 4 porte USB sul proprio computer? </para><para>Perché buttare tutto questo hardware? </para><para>Perché non riutilizzarlo evitando fra l'altro spreco di materie prime e acquistando <emphasis role="strong">gratis </emphasis>nuove funzionalità? </para><para>Una pratica conosciuta come trashware ma applicata ad un ambito molto più specializzato. </para></section><section><title>Hack Alice Gate Voip 2 Plus Wi-Fi Business</title><para>Come già detto questa guida riguarderà la personalizzazione del modem in oggetto, prima di iniziare, comunque, sarà necessario aprirlo identificare la seriale e conoscere un po' meglio le potenzialità del dispositivo che abbiamo fra le mani. </para><informaltable><tgroup cols="1"><colspec colname="col_0"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para> <inlinemediaobject><imageobject><imagedata depth="15" fileref="http://www.nnx.me//moin_static197/ninuxtheme02/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Porta il tuo modem da hackerare a una delle <ulink url="http://www.nnx.me/Hackalicegate/domenica%20nerd#">domeniche nerd</ulink> <inlinemediaobject><imageobject><imagedata depth="15" fileref="http://www.nnx.me//moin_static197/ninuxtheme02/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> </para></entry></row></tbody></tgroup></informaltable><para>Dal punto di vista hw si possono identificare: </para><itemizedlist><listitem><para>il processore (sotto l'aletta quadrata) </para></listitem><listitem><para>una porta usb </para></listitem><listitem><para>1 slot mini-pci </para></listitem><listitem><para>2 porte voip (in rosso) </para></listitem><listitem><para>1 porta per la connessione alla linea adsl (purtroppo questa funzionalità andrà persa) </para></listitem><listitem><para>4 porte ethernet (in giallo) una serie di leds (in basso) </para></listitem></itemizedlist><para>Nel seguito della guida ci occuperemo di ognuno di questi componenti. </para><para><inlinemediaobject><imageobject><imagedata fileref="http://wiki.openwrt.org/_media/inbox/alice-agpf.jpg"/></imageobject><textobject><phrase>http://wiki.openwrt.org/_media/inbox/alice-agpf.jpg</phrase></textobject></inlinemediaobject> </para><section><title>Cambiare il firmware con una distribuzione linux</title><para>Identificata la seriale come mostrato in foto ci si può connettere tramite un convertitore RS232-&gt;3,3V un dispositivo di certo non comune ma fondamentale per qualsiasi esperienza di hack. </para><para>Se non disponi di questa seriale possiamo anche fermarci qui. <emphasis role="strong">Inoltre dopo l'hack si perderà la funzione di modem ADSL</emphasis> (il driver broadcom per l'utilizzo del modem adsl è proprietario e non tratteremo questo argomento) </para><para>Se siete disposti a perdere la funzionalità di modem adsl e avete la seriale non dovete far altro che proseguire. </para><para>Per installare il nuovo sistema operativo dovete connettere la seriale al modem quindi premere invio non appena appare il count-down del boot... </para><para>Se si vuole eseguire il backup del firmware ti consiglio di leggere la pagina dedicata al modem sul wiki di openwrt. <ulink url="http://wiki.openwrt.org/inbox/alicegate_voip2_plus"/> </para><para>Altrimenti dopo aver scaricato il firmware dall'indirizzo <ulink url="http://downloads.openwrt.org/snapshots/trunk/brcm63xx/openwrt-AGV2+W-jffs2-64k-cfe.bin"/> e installiamolo sul modem usando il comando <emphasis>flashimage</emphasis> </para><para>Il comando flashimage tenterà di scaricare il file selezionato tramite tftp, sarà quindi necessario configurare un tftp server su un qualche pc della rete e connettere il modem alla stessa rete <inlinemediaobject><imageobject><imagedata depth="16" fileref="http://www.nnx.me//moin_static197/ninuxtheme02/img/biggrin.png" width="16"/></imageobject><textobject><phrase>:D</phrase></textobject></inlinemediaobject> </para><para>Se si usa linux tutto è molto semplice, tramite dnsmasq possiamo eseguire un semplice tftp server senza perdersi in complicate configurazioni: </para><screen><![CDATA[cd /tmp
wget http://downloads.openwrt.org/snapshots/trunk/brcm63xx/openwrt-AGV2+W-jffs2-128k-cfe.bin
ifconfig eth0 192.168.1.100
dnsmasq -d --enable-tftp --tftp-root=/tmp]]></screen><para>A questo punto sul modem possiamo scrivere il comando: </para><screen><![CDATA[flashimage openwrt-AGV2+W-jffs2-128k-cfe.bin]]></screen><para>Il quale scaricherà l'immagine e la installerà nella flash di sistema restituendoci un sistema completamente diverso al prossimo riavvio. </para></section><section><title>Il primo avvio</title><para>Una volta installato <ulink url="http://www.nnx.me/Hackalicegate/OpenWrt#">OpenWrt</ulink> il firstboot è diverso da tutti gli altri. Di default si avrà telnet attivo e nessuna password di root, inoltre il wifi disabilitato. </para><para>Per porre rimedio, sempre tramite seriale possiamo impostare un ip noto e quindi entrare nella shell tramite telnet per completare le prime configurazioni. </para><para>Supponendo di disporre di un computer linux impostiamo 192.168.2.1 sulla modem tramite seriale e 192.168.2.6 sul nostro pc. </para><screen><![CDATA[ifconfig br-lan 192.168.2.1  #sul modem
ifconfig eth0 192.168.2.6  #sul pc]]></screen><para>A questo punto entriamo nella shell di sistema tramite telnet: </para><screen><![CDATA[telnet 192.168.2.1]]></screen><para>Tramite <emphasis>passwd</emphasis> impostiamo una password per l'utente root. Quindi tramite <emphasis>vi</emphasis> editiamo il file /etc/config/wireless abilitando il wireless, ovvero impostando a 0 la variabile <emphasis>option disable</emphasis> di default impostata a 1 </para><para>Finite queste configurazioni possiamo riavviare il router alice. Accederemo quindi a una rete non protetta di nome <ulink url="http://www.nnx.me/Hackalicegate/OpenWrt#">OpenWrt</ulink> e riaccenderemo al modem tramite <emphasis>ssh <ulink url="mailto:root@192.168.1.1">root@192.168.1.1</ulink> </emphasis> </para></section></section><section><title>Configurazini avanzate</title><informaltable><tgroup cols="1"><colspec colname="col_0"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para> <inlinemediaobject><imageobject><imagedata depth="15" fileref="http://www.nnx.me//moin_static197/ninuxtheme02/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Porta il tuo modem da hackerare a una delle <ulink url="http://www.nnx.me/Hackalicegate/domenica%20nerd#">domeniche nerd</ulink> <inlinemediaobject><imageobject><imagedata depth="15" fileref="http://www.nnx.me//moin_static197/ninuxtheme02/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> </para></entry></row></tbody></tgroup></informaltable><para>Adesso che abbiamo un completo sistema operativo a bordo non dobbiamo far altro che installare e configurare i servizi che più ci interessano. Tenendo sempre a mente il wiki di <ulink url="http://www.nnx.me/Hackalicegate/OpenWrt#">OpenWrt</ulink> per i dettagli sulle configurazioni proviamo adesso a configurare alcuni servizi </para><section><title>Installare nuovi pacchetti</title><para>E' possibile aggiungere nuove funzionalità installando nuove pacchetti tramite il package manager <emphasis>opkg</emphasis>. Per chi ha familiarità con sistemi linux un semplice <emphasis>opkg help</emphasis> sarà più che chiarificatore. </para><para>Per iniziare scarichiamo la lista di pacchetti e installiamo alcuni pacchetti utili a priori: </para><screen><![CDATA[opkg update
opkg install kmod-usb-ohci block-mount nano]]></screen></section><section><title>Criptare la rete WPA/PSK</title><para>Per criptare la rete wi-fi tramite WPA sarà necessario aggiungere due opzioni al termine del file /etc/config/wireless Le opzioni sono: </para><screen><![CDATA[option encryption psk
option key 'aggiungete_la_vostra_chiave_wpa_preferita_qua']]></screen></section><section><title>Dividere lo switch tra due reti</title><para>I puristi della terminologia informatica mi perdoneranno per questo titolo, che in realtà riguarda la creazione di VirtualLAN (vlan) separate all'interno dello stesso switch. </para><para>Comunemente un router routa i pacchetti della lan su una rete esterna chiamata wan. </para><para>In genere sono necessarie quindi due interfacce fisicamente diverse (due schede di rete) per ruotare i pacchetti da una all'altra. </para><para>In realtà gli switch possono taggare i pacchetti in ingresso/uscita e quindi realizzare all'interno di un unico dispositivo due reti distinte. </para><para>Se vogliamo usare il nostro alice come gateway sarà proprio il caso di dividere una porta (la numero 4, quella vicina la usb) dal resto dello switch. Come ho già scritto <ulink url="http://wiki.openwrt.org/inbox/alicegate_voip2_plus">sul wiki di openwrt</ulink> questa operazione si effettua tramite il tagging delle vlan ovvero modificando l'intero file /etc/config/network così: </para><screen><![CDATA[config interface loopback
        option ifname   lo
        option proto    static
        option ipaddr   127.0.0.1
        option netmask  255.0.0.0
]]><![CDATA[
config 'switch' 'eth1'
   option 'enable'      '1'
   option 'enable_vlan' '1'
   option 'reset'       '1'
]]><![CDATA[
config 'switch_vlan' 'vlan0'
   option 'vlan'       '0'
   option 'device'     'eth1'
   option 'ports'      '0 1 2 5*'
]]><![CDATA[
config 'switch_vlan' 'vlan1'
   option 'vlan'       '1'
   option 'device'     'eth1'
   option 'ports'      '3 5t'
]]><![CDATA[
config interface lan
        option ifname   eth1.0
        option type     bridge
        option proto    static
        option ipaddr   192.168.5.1
        option netmask  255.255.255.0
        option nat      1
]]><![CDATA[
config 'interface' wan
    option 'ifname'  'eth1.1'
    option 'proto'   'dhcp']]></screen></section><section><title>IPV6</title><para>Una rete che si rispetti deve supportare ipv6 oramai. </para><para>Per lo scopo installiamo radvd e aiccu per realizzare un tunnel ipv6 verso sixxs o servizio equivalente: </para><screen><![CDATA[opkg install radvd aiccu]]></screen><para>I servizi vanno configurati usando /etc/config/radvd e /etc/config/aiccu rispettivamente. </para><para>Sul <ulink url="https://www.sixxs.net/wiki/Aiccu/Installing_on_OpenWRT#Kamikaze">wiki di sixxs</ulink> c'è un'ottima descrizione di come configurare il tunnel e la subnet. </para></section><section><title>Hard-disk su USB</title><para>Per poter montare un hdd è necessario oltre ad installare kmod-usb-ohci e block-mount anche i moduli kernel per il filesystem specifico. </para><para>Ovviamente da linuxiano consiglio ext4 con swap </para><screen><![CDATA[opkg install kmod-fs-ext4 swap-utils]]></screen><para>Ma so che molti windoziani (evitato il TM) preferiranno usare fat o ntfs (e mettetelo pure lo swap!) </para><screen><![CDATA[opkg install kmod-fs-vfat kmod-fs-ntfs swap-utils]]></screen><para>La configurazione dei mount point, indovinate un po, va fatta in /etc/config/fstab e non /etc/fstab! Per la sintassi completa vi rimando al <ulink url="http://wiki.openwrt.org/doc/uci">wiki di openwrt</ulink> </para><para>Se dovete partizionare o modificare le partizioni dovrete installare i pacchetti necessari anche a seconda delle fs selezionato: </para><screen><![CDATA[opkg install fdisk mkdosfs]]></screen><para>Abilitate e avviate i servizi con </para><screen><![CDATA[/etc/init.d/fstab enable
/etc/init.d/fstab start]]></screen></section><section><title>UPnP</title><para>UPnP è un protocollo di rete per l'auto configurazione del forwarding delle porte. </para><screen><![CDATA[opkg install miniupnpd]]></screen><para>La configurazione è praticamente nulla e possibile su /etc/config/upnpd </para><para>Abilitate e avviate il servizio con: </para><screen><![CDATA[/etc/init.d/miniupnd enable
/etc/init.d/miniupnd start]]></screen><para>Vedi la pagina wikipedia su UPnP <ulink url="http://it.wikipedia.org/wiki/Universal_Plug_and_Play"/> </para></section><section><title>LEDs</title><para>L'alice gate dispone di moltissimi led che possono essere molto utili per comprendere lo stato attuale del modem. A livello kernel una classe /sys/class/leds ne gestisce il comportamente attraverso dei piccoli moduli kernel chiamati trigger. </para><para>E' possibile installare diversi tipi di trigger inoltre heartbeat e netdev sono inclusi di default nell'immagine di <ulink url="http://www.nnx.me/Hackalicegate/OpenWrt#">OpenWrt</ulink>. </para><para>Per configurare i led si aggiunge una sessione per ogni led all'interno di /etc/config/system </para><screen><![CDATA[config led
        option sysfs <nome del led> #vedi quelli disponibili dentro /sys/class/leds
        option trigger  <netdev o heartbeat>
        option mode     <tx e/o rx e/o link>  # se trigger netdev
        option dev      <device>     #device se trigger netdev]]></screen><para>Per esempio sul mio modem uso: </para><screen><![CDATA[config led
        option sysfs power:red
        option trigger  heartbeat
]]><![CDATA[
config 'led'
        option 'sysfs' 'wifi:green'
        option 'trigger' 'phy0rx'
        option 'name' 'wifi'
]]><![CDATA[
config 'led'
        option 'name' 'lan'
        option 'sysfs' 'internet:green'
        option 'trigger' 'netdev'
        option 'dev' 'eth1.1'
        option 'mode' 'tx rx']]></screen><para>Per approfondire l'argomento <ulink url="http://wiki.openwrt.org/doc/uci/system#leds"/> </para><section><title>Facciamoci due risate</title><para>Giusto per divertimento installiamo e usiamo un trigger molto simpatico </para><screen><![CDATA[opkg install kmod-ledtrig-morse
echo morse > /sys/class/leds/service\:red/trigger
echo "Welcome to OpenWrt" > /sys/class/leds/service\:red/message]]></screen></section></section><section><title>Stampante USB</title><para>Se preferite avere un server di stampa alle funzionalità del HDD potete provare il piccolissimo server p910nd, ottimo per l'uso domestico. </para><screen><![CDATA[opkg install kmod-usb-printer p910nd]]></screen><para>Quindi connettete la vostra stampante usb e scoprite in <emphasis>dmesg</emphasis> come viene chiamato il device corrispondente; in genere usblp0.  Infine editate /etc/config/p910nd come segue: </para><screen><![CDATA[config p910nd
        option device        /dev/lp0
        option port          0
        option bidirectional 0
        option enabled       1]]></screen><para>quindi abilitate e avviate il servizio con: </para><screen><![CDATA[/etc/init.d/p910nd enable
/etc/init.d/p910nd start]]></screen><para>La stampante può essere configurata sotto linux come stampante i rete usando il protocollo <emphasis role="strong">AppSocket/HPJetDirect</emphasis> </para></section></section><section><title>Mod Hardware</title><para>Questo capitolo è stato aggiornato e spostato sul mio sito personale: </para><para><ulink url="http://www.mignanti.eu/articoli/alicegate"/> &lt;- link non funzionante </para><section><title>VOIP - non supportato</title><para>Questo succoso capitolo deve essere ancora scritto. Per concludere l'hack probabilmente sarà necessario un nuovo modem perchè quello in foto ha già trovato una destinazione migliore :D</para><para>Per non lasciarvi proprio con l'amaro in bocca posso però dirvi che il driver per la gestione del chip voip è già pacchettizzato dentro <ulink url="http://www.nnx.me/Hackalicegate/OpenWrt#">OpenWrt</ulink> e fa parte della libreria zapata. La connessione SPI con il SOC rimane oggetto di studio come anche l'interfacciamento del bus PCM. Insomma molte domande a cui dare ancora risposta per un completo supporto. </para></section><section><title>ADSL2+ - non supportato</title><para>Un tentativo di reverse-engineering è in corso su <ulink url="http://bcm63xx.sipsolutions.net/"/> . Ad oggi lo stato del progetto è il seguente: <emphasis>Specs for the bcm6348 are in progress, while bcm6338/6345/6358 are in queue. Bcm6368 seems to use a different architecture. </emphasis> </para></section></section></section></article>