Musarra's
Blog
The
ideal
solution
for
a
problem
Blog:
http://musarra.wordpress.com
Company
Portal:
http://www.romcad.it
Mail:
antonio.musarra@romcad.it
Una
delle
cose
odiose
di
questo
tipo
di
apparato
è
l’impossibilità
di
configurare
una
sottorete4
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).
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.
17/02/10
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:
o Name:
ApplicationOne
o Internal
IP:
10.0.1.4
o Internal
Port:
8080
o External
Port:
8080
o Protocol:
TCP
17/02/10 2
Del
processo
indicato
nel
precedente
paragrafo,
desidero
soffermarmi
solo
sui
punti
indicati
come
4,5
e
6.
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
è:
653165326562633230393738313836306
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.
17/02/10
3
Per
le
operazioni
crittografiche
sul
file
di
configurazione
sarà
utilizzato
il
tool
OpenSSL7
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.
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
17/02/10
4
# 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
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).
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
17/02/10
5
<!-- 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>
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.
17/02/10 6
<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>
17/02/10
7
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.
17/02/10
8
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
.
17/02/10 9