Telecom Italia: Oltre la Configurazione del Modem Alice Business

Indipendentemente dall’operatore telefonico scelto per attivare la propria linea ADSL come utenza di tipo Business, è normale aspettarsi che gli apparati ricevuti (anche se in comodato d’uso) siano configurabili sulla base delle proprie esigenze, non è legge che la configurazione di base copra le necessità di tutti. Gli apparati cui mi riferisco sono Modem/Router ADSL, questi spesso dispongono solo di un insieme di funzionalità, non a causa dell’apparato quanto da impostazioni dell’operatore telefonico o del produttore.

In quest’articolo vedremo come adeguare alle nostre esigenze la configurazione predefinita dell’apparato agendo direttamente sul file di configurazione, l’apparato di riferimento è il Modem/Router Alice Business VoIp 2 Plus WiFi[1] (prodotto dalla Pirelli Broadband Solutions http://www.pirellibroadband.com) con firmware[2] versione: AGPF 4.5.0sx.

Desidero fare una premessa. I Modem/Router in questione sono basati su particolari distribuzioni Linux, è possibile modificare il firmware originale o sfruttare delle backdoor[3] per consentire il completo accesso all’apparato (via protocollo SSH o telnet), questa è però un’altra storia.

Una delle cose odiose di questo tipo di apparato è l’impossibilità di configurare una sottorete[4] più estesa di una /24, infatti, la configurazione della rete locale (LAN) consente la sola modifica dell’ultimo ottetto della subnet mask: 255.255.255.[x] (vedi Figura 1).

Supponiamo il caso che l’apparato ADSL debba essere inserito all’interno della sottorete 10.0.0.0/23 (vedi Figura 2) avente la configurazione illustrata di seguito:

  • IP Address: 10.0.0.6
  • Netmask: 255.255.254.0
  • Server DHCP: Disabled
  • Virtual Server:
    • Name: ApplicationOne
    • Internal IP: 10.0.1.4
    • Internal Port: 8080
    • External Port: 8080
    • Protocol: TCP

Figura 1 Modifica indirizzo IP LAN da GUI.

Modifica indirizzo IP LAN da GUI.

Modifica indirizzo IP LAN da GUI.

La modifica della configurazione standard dell’apparato ADSL comporta l’esecuzione in sequenza di una serie di task che in breve riepilogo:

  1. Collegamento dell’apparato ADSL a una workstation tramite il cavo ethernet fornito in dotazione;
  2. Accesso all’interfaccia Web di configurazione disponibile all’indirizzo (predefinito) http://192.168.1.1;
  3. Salvare la configurazione dell’apparato ADSL utilizzando la funzione Backup configurazione del Modem raggiungibile dal menu Strumenti (vedi Figura 2);
  4. Decifrare (operazioni di Decrypt) la configurazione dell’apparato ADSL;
  5. Modificare il file di configurazione secondo le proprie esigenze;
  6. Cifrare (operazioni di Crypt) il file di configurazione appena modificato;
  7. Applicare la nuova configurazione all’apparato ADSL utilizzando la funzione Ripristina Configurazione, raggiungibile dal menu Strumenti.

Figura 2 Esempio schema di rete dove inserire l’apparato ADSL.

Esempio schema di rete dove inserire l’apparato ADSL.

Esempio schema di rete dove inserire l’apparato ADSL.

Del processo indicato nel precedente paragrafo, desidero soffermarmi solo sui punti indicati come 4,5 e 6.

Per motivi di protezione da “occhi indiscreti”, il produttore dell’apparato o meglio l’operatore telefonico ha preferito esportare (come file di testo) la configurazione dell’apparato applicando un algoritmo di cifratura di tipo AES[5] a 128bit.

Come direbbe qualcuno di cui adesso non ricordo il nome: la domanda nasce spontanea. Come faccio a decifrare il file di configurazione? Rispondiamo subito, andiamo al sodo evitando di far una lezione su un argomento vasto come la Crittografia, sappiate solo che per “tirar fuori” in formato umano quanto contenuto sul file di configurazione, occorre avere la sola chiave di cifratura il cui valore è: 65316532656263323039373831383630[6]

Figura 3 Salvataggio & Ripristino configurazione.

Salvataggio & Ripristino configurazione.

Salvataggio & Ripristino configurazione.

Per le operazioni crittografiche sul file di configurazione sarà utilizzato il tool OpenSSL[7] disponibile per qualunque piattaforma, personalmente ho utilizzato il tool su Mac OS X. Di seguito sono illustrati i comandi per le operazioni di Decrypt e Encrypt del file di configurazione dell’apparato ADSL.

Listato 1 Operazioni di Decrypt & Encrypt configurazione apparato ADSL

# Comando per il Decrypt del file di configurazione dell’apparato ADSL
openssl aes-128-cbc -K 65316532656263323039373831383630 -nosalt -iv 0 -d -in /Users/amusarra/Desktop/AGConfig120210.kry -out /Users/amusarra/Desktop/AGConfig120210.xml

# Comando per l’Encrypt del file di configurazione dell’apparato ADSL
openssl aes-128-cbc -K 65316532656263323039373831383630 -nosalt -iv 0 -e -in /Users/amusarra/Desktop/AGConfig120210.xml -out /Users/amusarra/Desktop/AGConfig120210.kry

Con riferimento al Listato 1, il tool openssl prevede un input file (opzione -in) e un output file (opzione –out), nel primo caso (Decrypt) il file di input è la configurazione cifrata dell’apparato ADSL (vedi Step 3), il file di output è invece la configurazione dell’apparato ADSL in forma umana. Il secondo comando openssl esegue l’operazione inversa, in altre parole, genera il nuovo file di configurazione cifrato per l’apparato ADSL contenente la nuova configurazione da applicare (vedi Step 7).

La configurazione dell’apparato ADSL si basa su di un documento XML compliant con DSL Forum TR-069[8], ecco spiegato il motivo dell’estensione .xml del file di output indicato sul primo comando openssl (vedi  Listato 1). Al Listato 2 sono illustrate le sezioni del documento XML di nostro interesse, sono in particolare evidenziati i parametri di configurazione modificati sulla base delle esigenze illustrate in precedenza. Qualora desideriate approfondire il data model legato al documento XML di configurazione, consiglio di consultare il documento TR-069 InternetGatewayDevice:1.4 Root Object definition[9].

Listato 2 Sezioni di configurazione dell’apparato ADSL.

<!-- Configurazione LAN -->
<LANHostConfigManagement><AllowedMACAddresses/><DHCPLeaseTime>21600</DHCPLeaseTime>

<DHCPServerConfigurable>true</DHCPServerConfigurable>

<DHCPServerEnable>false</DHCPServerEnable>

<DNSServers>10.0.0.6</DNSServers>

<DomainName>homenet.telecomitalia.it</DomainName>

<IPInterface id="1">

<Enable>true</Enable>

<IPInterfaceAddressingType>Static</IPInterfaceAddressingType>

<IPInterfaceIPAddress>10.0.0.6</IPInterfaceIPAddress>

<IPInterfaceSubnetMask>255.255.254.0</IPInterfaceSubnetMask>

</IPInterface>

<IPInterfaceNumberOfEntries>1</IPInterfaceNumberOfEntries>

<IPRouters>10.0.0.6</IPRouters>

<MaxAddress>10.0.1.254</MaxAddress>

<MinAddress>10.0.0.1</MinAddress>

<SubnetMask>255.255.254.0</SubnetMask>

</LANHostConfigManagement>

<!-- Configurazione Virtual Server -->
<PortMapping id="1">

<ExternalPort>8080</ExternalPort>

<InternalClient>10.0.1.4</InternalClient>

<InternalPort>8080</InternalPort>

<PortMappingDescription>ApplicationOne</PortMappingDescription>

<PortMappingEnabled>true</PortMappingEnabled>

<PortMappingLeaseDuration>0</PortMappingLeaseDuration>

<PortMappingProtocol>TCP</PortMappingProtocol>

<RemoteHost/>

<X_TELECOMITALIA_IT_HostMACAddress/>

</PortMapping>

<PortMappingNumberOfEntries>1</PortMappingNumberOfEntries>

Al Listato 3 è indicato il data model utilizzato dall’apparato ADSL per la definizione dei Virtual Server. Il data model completo (sottoforma di XSD Schema) è disponibile sul sito del DSL Forum.

Listato 3 Data Model dell’object PortMapping .

<object name="InternetGatewayDevice.WANDevice.{i}.WANConnectionDevice.{i}.WANIPConnection.{i}.PortMapping.{i}." access="readWrite" minEntries="0" maxEntries="unbounded" numEntriesParameter="PortMappingNumberOfEntries" enableParameter="PortMappingEnabled"><description>Port mapping table.</description><uniqueKey>

<parameter ref="RemoteHost"/>

<parameter ref="ExternalPort"/>

<parameter ref="PortMappingProtocol"/>

</uniqueKey>

<parameter name="PortMappingEnabled" access="readWrite">

<description>Enables or disables the port mapping instance.  On creation, an entry is disabled by default.</description>

<syntax>

<boolean/>

</syntax>

</parameter>

<parameter name="PortMappingLeaseDuration" access="readWrite">

<description>Determines the time to live, in seconds, of a port-mapping lease. A value of 0 means the port mapping is static. Static port mappings do not necessarily mean persistence of these mappings across device resets or reboots.</description>

<syntax>

<unsignedInt/>

</syntax>

</parameter>

<parameter name="RemoteHost" access="readWrite">

<description>This parameter is the IP address of the source of inbound packets.  {{empty}} indicates a "wildcard" (this will be a wildcard in most cases).  CPE are required only to support wildcards.

When {{param}} is a wildcard, all traffic sent to the {{param|ExternalPort}} on the WAN interface of the gateway is forwarded to the {{param|InternalClient}} on the {{param|InternalPort}}.

When {{param}} is specified as one external IP address, the NAT will only forward inbound packets from this {{param}} to the {{param|InternalClient}}, all other packets will be dropped.</description>

<syntax>

<string/>

</syntax>

</parameter>

<parameter name="ExternalPort" access="readWrite">

<description>The external port that the NAT gateway would listen on for connection requests to a corresponding {{param|InternalPort}}. Inbound packets to this external port on the WAN interface should be forwarded to {{param|InternalClient}} on the {{param|InternalPort}}.

A value of zero (0) represents a "wildcard".  If this value is a wildcard, connection request on all external ports (that are not otherwise mapped) will be forwarded to {{param|InternalClient}}.  In the wildcard case, the value(s) of {{param|InternalPort}} on {{param|InternalClient}} are ignored.</description>

<syntax>

<unsignedInt/>

</syntax>

</parameter>

<parameter name="InternalPort" access="readWrite">

<description>The port on {{param|InternalClient}} that the gateway should forward connection requests to.  A value of zero (0) is not allowed.</description>

<syntax>

<unsignedInt/>

</syntax>

</parameter>

<parameter name="PortMappingProtocol" access="readWrite">

<description>The protocol of the port mapping.</description>

<syntax>

<string>

<enumeration value="TCP"/>

<enumeration value="UDP"/>

</string>

</syntax>

</parameter>

<parameter name="InternalClient" access="readWrite">

<description>The IP address or DNS host name of an internal client (on the LAN).

Support for an IP address is mandatory, while support for DNS host names is optional.

This value cannot be {{empty}}.

It must be possible to set the {{param}} to the broadcast IP address 255.255.255.255 for UDP mappings. This is to enable multiple NAT clients to use the same well-known port simultaneously.</description>

<syntax>

<string/>

</syntax>

</parameter>

<parameter name="PortMappingDescription" access="readWrite">

<description>User-readable description of this port mapping.</description>

<syntax>

<string>

<size maxLength="256"/>

</string>

</syntax>

</parameter>

</object>

Dopo aver portato a termine le modifiche e crittato il file configurazione, non resta altro che applicare la nuova configurazione all’apparato ADSL così come indicato in precedenza (vedi Step 7). L’apparato ADSL prima di proseguire con l’applicazione della nuova configurazione informa l’utente con un riepilogo di dettaglio dei nuovi parametri. In Figura 4 è mostrato il risultato della nuova configurazione.

Figura 4 Applicazione della nuova configurazione.

Risultato applicazione della nuova configurazione.

Risultato applicazione della nuova configurazione.

Con questo breve articolo abbiamo visto come sia possibile configurare l’apparato ADSL facendo a meno della GUI di configurazione, un processo un po’ macchinoso ma sicuramente funzionante. In linea di principio questo metodo di configurazione funziona con qualunque apparato ADSL compliant DSL Forum TR-069 a meno di qualche estensione particolare che potrebbe cambiare da vendor a vendor. Vi lascio con un’ultima lettura interessante del Broadband Forum sulla tematica del Remote Management Work disponibile all’indirizzo http://www.broadband-forum.org/downloads/BBHome_Remote_Mgmt.pdf .

Esiste anche la versione PDF dell'articolo: TelecomItaliaConfigurazioneModemAliceBusiness


[1] Documentazione Alice Business all’indirizzo http://aiutobusiness.alice.it/informazioni/modemadsl/alice_gatevoip2pluswifi_1.html

[2] Il firmware è un programma, inteso come sequenza di istruzioni, integrato direttamente in un componente elettronico nel senso più vasto del termine (integrati, schede elettroniche, periferiche). Lo scopo del programma è di avviare il componente stesso e consentirgli di interagire con altri componenti tramite l'implementazione di protocolli di comunicazione o interfacce di programmazione. Per maggiori dettagli consultare il sito http://it.wikipedia.org/wiki/Firmware

[3] Le backdoor in informatica sono paragonabili a porte di servizio (cioè le porte del retro) che consentono di superare in parte o in tutto le procedure di sicurezza attivate in un sistema informatico. Per maggiori dettagli consultare il sito http://it.wikipedia.org/wiki/Backdoor

[4] In informatica per sottorete s’intende una porzione di un indirizzamento completo. Per maggiori dettagli consultare il sito http://it.wikipedia.org/wiki/Sottorete o meglio la versione inglese http://en.wikipedia.org/wiki/Subnetwork che fa riferimento alla notazione CIDR.

[5] In crittografia, l'Advanced Encryption Standard (AES), conosciuto anche come Rijndael, di cui più propriamente ne è una specifica implementazione, è un algoritmo di cifratura a blocchi utilizzato come standard dal governo degli Stati Uniti d'America. Per maggiori dettagli consultare il sito http://it.wikipedia.org/wiki/Advanced_Encryption_Standard

[6] La chiave di cifratura al momento è ancora valida, è possibile però che nel tempo possa variare.

[7] OpenSSL is an open source implementation of the SSL and TLS protocols. The core library (written in the C programming language) implements the basic cryptographic functions and provides various utility functions. Wrappers allowing the use of the OpenSSL library in a variety of computer languages are available. Per maggiori dettagli consultare il sito http://en.wikipedia.org/wiki/Openssl

[8] CPE WAN Management Protocol (CWMP) - XML Schemas and Data Model Definitions http://www.broadband-forum.org/cwmp.php

[9] XML Schema all’indirizzo http://www.broadband-forum.org/cwmp/tr-098-1-2-0.xml

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

You may also like...