Firmware fog per Dreambox - e altro

Pagina creata da Salvatore D'Alessandro
 
CONTINUA A LEGGERE
Firmware fog per Dreambox
                                    … e altro

Autore: fog (alias fog@infosat sui forums di www.info-sat.org). Tutti i diritti riser-
vati. Per qualsiasi ridistribuzione o uso del contenuto del presente documento
inviare una richiesta a mk0134@mclink.it.
Responsabilità: L'autore declina ogni responsabilità per qualsiasi danno imputa-
bile ad inesattezze o errori contenuti nella presente guida o nel software (firm-
ware) per Dreambox distribuito insieme alla presente. Questa è più o meno la
formula di rito che resta comunque valida. Nella sostanza, ho realizzato questo
lavoro per hobby e scopi personali e lo rendo pubblico solo perché penso che
forse possa essere di spunto o di aiuto per altri che come me condividono la
passione per il ricevitore Dreambox ed il software che lo fa funzionare, molto è
inoltre lasciato alle vostre capacità e naturalmente, buon senso.
Firmware fog per Dreambox 7000

 Indice Generale
 1 Introduzione....................................................................................................5
      1.1 A chi non è Rivolta Questa Immagine.....................................................6
      1.2 A chi è Rivolta Questa Immagine?..........................................................6
      1.3 Linee Guida.............................................................................................8
         1.3.1 Considerazioni Generali sulla Sicurezza..........................................8
         1.3.2 Livello di Sicurezza Presente nel Firmware....................................11
         1.3.3 Tipo d'Uso Previsto.......................................................................12
 2 Cosa c’è Sotto al Cofano.............................................................................15
      2.1 Cambiamenti al Software ‘Standard’....................................................15
         2.1.1 Kernel Linux...................................................................................15
         2.1.2 Enigma...........................................................................................15
         2.1.3 Scripts di Init..................................................................................16
         2.1.4 Utenti, Gruppi Preimpostati e Passwords......................................18
         2.1.5 Software Busybox..........................................................................20
         2.1.6 Shadow Passwords.......................................................................21
         2.1.7 Software di Rete Avviato da inetd..................................................21
             2.1.7.1 Server Telnet...........................................................................21
             2.1.7.2 Server FTP Vsftpd...................................................................21
         2.1.8 Software di Rete Standalone Avviato da Enigma..........................23
             2.1.8.1 Software Samba.....................................................................23
             2.1.8.2 Interfaccia Web di Enigma......................................................25
      2.2 Principale Software Extra Contenuto nell'Immagine.............................26
         2.2.1 Software Sudo...............................................................................26
         2.2.2 Editor Nano....................................................................................27
         2.2.3 Libreria OpenSSL...........................................................................27
         2.2.4 Software OpenSSH (Portable).......................................................27
         2.2.5 Software Stunnel............................................................................31
         2.2.6 Software TCP Wrappers................................................................32
         2.2.7 Libreria Berkeley DB......................................................................34
         2.2.8 Software Netatalk..........................................................................34
 3 Suggerimenti................................................................................................37

iii
Firmware fog per Dreambox 7000

     3.1 Dove Installare l’Immagine....................................................................37
     3.2 Appena Installata ’Immagine.................................................................37
     3.3 Creazione di Directories e Installazione di files.....................................38
        3.3.1 Installazione di Plug-ins, Settings e Skins di Enigma....................38
        3.3.2 Installazioni in Aree Protette...........................................................38
        3.3.3 Installazione di Emulatori CA (Emus).............................................39
     3.4 Creazione di Nuovi Utenti e Gruppi.......................................................39
        3.4.1 Creazione delle Home Directories..................................................40
        3.4.2 Esempio di Creazione di Un’utente................................................40
4 Possibili Evoluzioni.......................................................................................43

iv
Firmware fog per Dreambox 7000

1 Introduzione
Questo firmware, espressamente realizzato per il Dreambox 7000, nasce ini-
zialmente per gioco e per sperimentare e mettere un po’ ‘sotto torchio’ su Mac
OS X il cross developement kit del Dreambox. Recentemente sono infatti riusci-
to, con opportune modifiche a diversi files di configurazione ed ai patches di
Linux distribuiti con il CVS, a far funzionare il CDK anche sotto Mac OS X. Ho
già postato tempo fa su www.info-sat.org le modifiche e le istruzioni relative
alla compilazione su Mac OS X.
Dopo i primi tentativi, hanno preso forma quelli che poi sarebbero diventati gli
obiettivi principali di questa realizzazione e tra loro correlati:

   1) Fornire un'immagine software che, nella sua configurazione di default
      fosse sufficientemente sicura se paragonata agli standard, presi ad
      esempio, ai quali ci hanno da tempo abituato le diverse distribuzioni
      Linux, Unix e non ultimo Mac OS X.
   2) Riesaminare il software di rete normalmente fornito con il Dreambox (in
      primo luogo i servers FTP e Samba) in modo da fornire per esso una con-
      figurazione di default che tenesse in considerazione gli obiettivi definiti al
      punto 1 ed al tempo stesso ne sfruttasse meglio le potenzialità.
   3) Aggiungere i servizi di rete offerti dal pacchetto Netatalk, in particolare il
      server AFP (Apple Filing Protocol) configurato in modo da offrire i propri
      servizi sia attraverso TCP/IP che attraverso il protocollo Appletalk (il pro-
      tocollo di rete legacy di Apple e che consente il browsing dei servers di
      rete AFP sui computer clients). AFP è ancora il metodo di condivisione
      più usato su Mac OS X e spero che la scelta di includere Netatalk in que-
      sta immagine possa fare contenti gli utenti Mac. Il protocollo Appletalk su
      Mac OS X è stato affiancato dal più recente Rendezvous/Bonjour che of-
      fre servizi simili su TCP/IP per quanto riguarda il browsing dei servizi di
      rete. Sulle versioni più recenti di Mac OS X Appletalk può essere usato
      solo per le funzioni di browsing dei servers di rete (la connessione al ser-
      ver e il trasferimento dei files avviene sempre mediante connessioni
      TCP/IP), sulle versioni precedenti dell'OS del Mac, Appletalk può (in alcu-
      ni casi deve, come nella versioni di Mac OS precedenti la 8) anche esse-
      re impiegato come protocollo di trasporto (anche se le prestazioni sono
      nettamente inferiori a quelle ottenibili via TCP/IP). Le ultime osservazioni
      solo per sottolineare che potrete connettervi al vostro Dreambox anche
      con computer Mac vecchi di una quindicina d'anni e anche più.

Fatta questa premessa è opportuno sottolineare a chi può interessare questo
firmware, anche per non generare false aspettative.

                                                                                   5
Firmware fog per Dreambox 7000

1.1 A chi non è Rivolta Questa Immagine
È doveroso evidenziare da subito che se siete alla ricerca dell'ultimo grido in
fatto di miglioramenti dell'interfaccia grafica di Enigma e relativi pugins lasciate
perdere e non provate neppure ad installare questa immagine perché ne rimar-
rete delusi. Detto in altri termini niente nuovi plugins, emu, skins, superpannelli
di controllo od altre modifiche ad hoc al software Enigma scaricabile dal CVS.
Le motivazioni di questo fatto sono principalmente due e tra loro correlate.
La prima è che sto muovendo i primi passi nella programmazione per il Dream-
box ed al momento non ho assolutamente intenzione né la possibilità di com-
petere con chi da anni ha accumulato una notevole esperienza nella program-
mazione di Enigma ed è stato capace di fornire miglioramenti al software (nella
forma di plugins o di modifiche al software principale) senza i quali la passione
per il Dreambox si sarebbe spenta da tempo in molti di noi visto che le speran-
ze iniziali riposte nella casa madre sono state, nel corso degli anni, in gran par-
te disattese.
La seconda ragione è che, se anche avessi tempi e mezzi per fare una rivolu-
zione, probabilmente le prime attenzioni si rivolgerebbero in ogni caso alla co-
struzione di una base più solida e sicura del software installato.

1.2 A chi è Rivolta Questa Immagine?
Le osservazioni precedenti rispondono già in parte a questa domanda. Chiun-
que si sia già posto il problema di come rendere più sicuro il Dreambox potrà
trovare utile avere a disposizione questo firmware sia come spunto per 'fortifi-
care' quello a lui preferito, attraverso la lettura dei vari files di configurazione e
scripts di init in essa contenuti sia come immagine base di partenza, installa-
ta su pen USB o Hard disc da arricchire con i plugins indispensabili (e purtrop-
po in essa mancanti) e quelli preferiti. Non nascondo che entrambi gli approcci
presentano dei limiti oggettivi e/o delle difficoltà anche legate alle capacità e
alle conoscenze della singola persona.
Nel primo caso può non essere sufficiente la semplice copiatura dei files binari
e di configurazione nelle posizioni corrispondenti dell'immagine preferita. Il
CDK infatti, per salvare spazio, al momento di creazione dell'immagine finale,
installa le librerie eliminando tutti i 'simboli' e le funzioni non usate dai vari bi-
naries installati. Ad esempio copiare semplicemente sudo o afpd e relativa li-
breria libatalk.so potrebbe non funzionare in quanto tali software potreb-
bero avere bisogno di funzioni presenti in altre librerie (libc.so ad esempio)
che sull'immagine scelta come base d'installazione potrebbero essere non pre-
senti. La soluzione migliore, in questo caso, è forse quella di copiare in blocco
il software di questa immagine in una directory dedicata su pen USB o Hard
disc, modificare gli scripts di init (prendendo come riferimento quelli presenti
nella mia immagine) impostando la variabile d'ambiente LD_LIBRARY_PATH in
modo opportuno, rigenerare i links necessari ai vari files di configurazione, al

6
Firmware fog per Dreambox 7000

file passwd e shadow nelle directories originali /etc e /var/etc, ecc. ecc.
ecc. Insomma, una soluzione per utenti esperti e disposti a perdere un po' di
tempo.
Nel secondo caso (personalizzazione di questa immagine) i limiti sono imposti
dal modo stesso in cui il software Enigma si è evoluto (o non evoluto?) nel cor-
so del tempo. Se anche da un lato offre discrete possibilità di personalizzazio-
ne ed addizione di nuove funzionalità (skins e plugins) la struttura principale ri-
sulta poco modulare e strutturata. A tale proposito e solo a titolo di esempio
basti pensare al fatto che il percorso per le registrazioni è codificato diretta-
mente all'interno del codice (che mi ricordi esiste appena una direttiva #defi-
ne nei sorgenti c++) oppure al fatto che la rete venga configurata in un paio di
punti all'interno del codice (nei quali viene avviato anche Samba se impostato
nelle preferenze dall’utente) ed anche in questo caso i nomi dei comandi sono
addirittura hard coded. Che dire poi della scelta di avviare Samba con Enigma
e lasciare i servers FTP e Telnet alla configurazione manuale di inetd?
Quello che voglio dire è che manca totalmente in Enigma una visione coerente
di come gestire la rete e i relativi software e meno che mai Enigma offre un mo-
dello e facilities per il programmatore che voglia aggiungere nuove funzionalità.
Tutto questo è, secondo il mio parere responsabilità della casa madre che
poco ha investito nel corso degli anni nel software, che in fondo è il vestito che
rende il suo prodotto un prodotto di successo. Tutto questo ha costretto i di-
versi sviluppatori indipendenti di software per Dreambox, che via via si sono
susseguiti lasciando tracce più o meno profonde, a reinventare continuamente
la ruota per implementare particolari funzionalità che fossero in accordo con la
loro particolare visione di cosa doveva fare il Dreambox.
Una responsabilità dell'attuale situazione di stallo però l'abbiamo anche noi
(utenti e sviluppatori/assemblatori indipendenti) che, invece di unire le forze ab-
biamo incitato una sorta di 'gara all'immagine più bella e più stabile'. La situa-
zione attuale è sotto gli occhi di tutti, i limiti fisici (grandezza RAM e FLASH)
del Dreambox sono stati da tempo raggiunti e l'assemblaggio di un un immagi-
ne spesso si limita alla scelta di quale software includere o meno. Niente o
quasi, per continuare con gli esempi, è stato fatto per facilitare il programmato-
re o anche l'utente esperto per la realizzazione in un modo standard di pac-
chetti software da installare su hard disc o dispositivi di memoria USB. É evi-
dente che da utente Mac ho il palato esigente, tuttavia non pretendo l'esisten-
za sul Dreambox di Frameworks od un livello di astrazione paragonabili a quelli
di questo sistema operativo, ma tra il 'nulla' e la 'quasi' perfezione ed anche
considerando le potenzialità effettive della macchina Dreambox (non paragona-
bili a quelle dei PC più recenti) qualcosa deve pur esserci.
Fine della lunga divagazione, scusate dello sfogo, ma alcuni di questi pensieri
mi pesano da diverso tempo.

                                                                                   7
Firmware fog per Dreambox 7000

1.3 Linee Guida
In questa sezione desidero soffermarmi più da vicino sulle considerazioni che
mi hanno guidato nella realizzazione di questa immagine che, come detto pre-
cedentemente, ha lo scopo di rendere il nostro Dreambox un po’ più sicuro.
Scusate se alcune divagazioni possono sembrare sproporzionate all'argomen-
to trattato, anché perché sicuramente lo sono.
Ci siamo spesso incontrati sui forum di http://www.info-sat.org/ (sul quale que-
sta immagine per il Dreambox dovrebbe essere resa disponibile) parlando degli
argomenti più disparati e forse questa è un'occasione per conoscerci meglio.
Le persone con cui ho avuto l'onore di scambiare opinioni sui vari threads pro-
babilmente mi conoscono già come un gran chiaccherone e non voglio smen-
tirmi. Di solito osservo ma quando parto a scrivere è difficile fermarmi.

1.3.1 Considerazioni Generali sulla Sicurezza
Il computer più sicuro è quello che rimane sempre spento e forse neanche
quello perché può sempre arrivare la ‘Banda Bassotti’.
Già questa premessa fa intuire che l'arte di assemblare hardware e software si-
curo e configurare quest'ultimo in modo da garantire una sicurezza accettabile,
non è di quelle facili.
Il tema della sicurezza coinvolge inoltre aspetti tecnici e teorici che richiedono
conoscenze molto specialistiche, basti solo pensare alle conoscenze matema-
tiche richieste che stanno dietro alle ricerche avanzate sulla crittografia, sulla
quale sono basati buona parte dei metodi di protezione usati dai vari software.
La crittografia, tuttavia, non esaurisce in alcun modo il tema della sicurezza
che, anche se riferita al solo settore dei computer, risulta piuttosto dall'intrec-
cio complicato di diverse discipline. Con riferimento ai computer, ma credo che
l'affermazione valga anche in senso più generale, la sicurezza è allo stesso
tempo un bersaglio in movimento ed una entità di grandezza non misurabile in
senso assoluto. In movimento perché anche partendo da una condizione di si-
curezza giudicata inizialmente accettabile non è detto che questa rimanga tale,
senza ulteriori e continui sforzi di miglioramento e di monitoraggio. Di grandez-
za non misurabile in senso assoluto perché, ovviamente, il grado di sicurezza
giudicato accettabile è sempre il risultato di compromessi e varia in funzione
del tipo di servizi che si vuole offrire, della sensibilità dei dati presenti e non ul-
timo, in un mondo collegato da reti di tutti i tipi, della possibilità che ha il nostro
sistema (computer) d'interagire con altri, potendo, nei fatti, alterare lo stato di
sicurezza di questi ultimi (l'esempio più lampante è dato dai virus anche se esi-
stono esempi molto più sottili).
Un'aspetto della sicurezza, che in alcuni casi diventa paradossale, è che que-
sta è più facile da implementare in una serie di casi estremi e a due a due op-
posti e che dal punto di vista concettuale corrispondono a situazioni del tipo 'o
tutto o nulla'. Ad esempio è molto più facile raggiungere una sicurezza accetta-

8
Firmware fog per Dreambox 7000

bile nei due casi limite:

   1) Un computer la cui unica funzione sia quella di offrire un servizio al mon-
      do intero (ad esempio un server FTP con accesso anonimo).
   2) Un computer usato per memorizzare dati sensibili ma che non debba for-
      nire alcun servizio al mondo esterno.

Naturalmente, negli esempi riportati, ho fatto l'ipotesi che il software impiegato
fosse ideale, cioè privo di bugs o crepe nella sua implementazione. La situazio-
ne reale è ben diversa, con frequenza sempre maggiore, infatti, assistiamo al ri-
lascio di aggiornamenti software il cui solo scopo è quello di tappare falle o ri-
parare a bugs che si ripercuotono sulla sicurezza stessa. Ancora un argomento
a favore della sicurezza vista come bersaglio mobile e in continua evoluzione.
Per tornare al discorso principale: sono sempre le situazioni di mezzo che pre-
sentano le maggiori difficoltà, e tutte le situazioni reali sono situazioni di mezzo.
Potrei continuare con diversi altri esempi ma credo sia sufficiente.
Ho espresso il concetto solo per evidenziare che i concetti di 'indipendenza' /
'disomogeneità' (che si possono riassumere con il termine di ortogonalità ter-
mine sempre più in voga per esprimere tali concetti e che non a caso hanno
una forte similitudine con il concetto di otrogonalità in matematica) intesi
come sussistenza d'indipendenza tra determinati fattori o scarsa sovrapposi-
zione tra determinate funzioni, giocano un ruolo importante sia per quanto ri-
guarda l'analisi dello stato di sicurezza di un determinato sistema sia per quan-
to riguarda l'implementazione di un determinato livello di sicurezza in casi con-
creti. Non poteva essere altrimenti, visto che in ogni situazione reale comples-
sa ci comportiamo più o meno nello stesso modo: cerchiamo di scomporla o
rappresentarla nel minor numero di aspetti indipendenti. Il concetto di ortogo-
nalità, espresso in questi termini, può sembrare banale, ma sono sempre le
cose banali che nascondono i significati più profondi. Qualcuno potrà anche
obiettare che esiste anche l'intuito, che tutto coglie in un solo pensiero, ma un
genio senza un esercito di raziocinanti costretti a usare principi d'indipenden-
za per scomporre, inquadrare, classificare … una teoria, un'equazione … pro-
babilmente rimarrebbe un genio incompreso.
Pur restando ai piani alti, è bene tornare al tema della sicurezza, vedo infatti già
del fumo bianco salire dalle parti basse di qualche lettore.
Come detto, il concetto di ortogonalità, per quanto riguarda la sicurezza, è un
valido aiuto sia nell'analisi di un sistema esistente che nella pianificazione di
uno da costruire. Questo ultimo aspetto è quello che ci riguarda più da vicino e
costituisce un criterio essenziale per:

   1) Pianificare i servizi che desideriamo implementare sul nostro sistema
      classificandoli secondo un criterio di ortogonalità.
   2) Per ognuno dei servizi stabiliti al punto precedente, stabilire il grado di si-

                                                                                    9
Firmware fog per Dreambox 7000

       curezza necessario per ognuno di essi e quindi individuare gli strumenti
       necessari per raggiungere tale grado di sicurezza.

Per quanto riguarda il punto 1, è importante sottolineare che, quanti più servizi
tra loro indipendenti/disomogenei (ortogonali) intendiamo implementare, tanto
più difficile e delicata sarà la fase descritta al punto 2. A tale proposito basti
pensare che a nessuno verrebbe in mente (almeno spero di no!) di implementa-
re un servizio di home-banking su una macchina che contemporaneamente of-
fre un servizio di libero accesso attraverso qualche protocollo di condivisione.
Per quanto riguarda il punto 2 è invece importante sottolineare che quanto
maggiore è l’indipendenza (ortogonalità) tra i vari strumenti individuati per rag-
giungere il grado di sicurezza desiderato, tanto più facile sarà mantenere tale li-
vello di sicurezza nel corso del tempo o incrementare il livello di sicurezza qua-
lora ce ne fosse bisogno. A tale proposito, non a caso ho parlato di sistema e
non di macchina o computer in quanto un fattore, che aumenta notevolmente
l’indipendenza tra i vari sistemi usati per raggiungere il livello di sicurezza desi-
derato, è proprio quello di implementare tali strumenti su macchine o computer
differenti da quella che offre i servizi. Un'esempio per tutti di tale fatto sono i
routers e i firewalls.
È per considerazioni generali di questo tipo che un po' storco il naso quando,
tra le funzionalità elencate in un nuovo firmware per Dreambox, vedo quelle di
firewall (e magari anche di router! Per non parlare poi delle immagini che offro-
no Open VPN tra il software installato!). E questo anche senza considerare che
un firewall/router sul Dreambox:

     1) È come mettere il carro davanti ai buoi se prima non si è posto rimedio
        agli aspetti di 'base' della sicurezza come ho cercato di fare realizzando
        questa immagine.
     2) Può costituire un sovraccarico notevole per una macchina destinata ad
        uno scopo totalmente diverso.
     3) Può generare false aspettative nell'utente, che potrebbe arrivare a pen-
        sare di affidare ad esso compiti delicati per i quali non è assolutamente
        adeguato, e concentrare in esso funzionalità di sicurezza non solo per i
        servizi residenti sul Dreambox ma anche per l'intera rete domestica, tra-
        sformandolo nell'anello più debole e fragile dell'intera catena (e con que-
        sto torniamo al discorso sull'ortogonalità).

Meglio scendere di piano, perché il fumo che vedo ora è diventato nero! Que-
sta lunga introduzione mi serve infatti per dire due cose:

     1) Con questa immagine il Dreambox non diventa Fort Knox;
     2) La configurazione dei vari software presenti nell'immagine è stata fatta
        pensando ad un uso privato e personale degli stessi.

10
Firmware fog per Dreambox 7000

Questi due aspetti sono esaminati nelle due sezioni seguenti.

1.3.2 Livello di Sicurezza Presente nel Firmware
A questa domanda, posta in termini così generali (i titoli di una sezione hanno
le loro esigenze), non so proprio come rispondere, a meno di non continuare
con altre pagine di dissertazioni, che a questo punto sarebbero fuori luogo, an-
che per me.
In termini molto più semplici è forse meglio riassumere quello che ho cercato di
fare con questa realizzazione al fine di garantire un livello di sicurezza accetta-
bile.
D'accordo, ma cosa vuol dire accettabile?
Accettabile vuol dire introdurre una serie di strumenti universalmente ricono-
sciuti come idoonei per fornire una sicurezza accettabile per le situazioni d'uso
previste per la nostra macchina. Sembra il cane che si morde la coda o il clas-
sico dilemma dell'uovo e della gallina ed in un certo senso è proprio così. For-
se è meglio passare direttamente all'esemplificazione.
Molti di noi, almeno quelli abituati ad usare un sistema Linux o UNIX, hanno di-
mestichezza con i tools fondamentali ed i criteri impiegati per ottenere la sicu-
rezza di ‘base’ in una macchina multiutente basata su UNIX o ad esso ispirata.
Tools quali sudo, l'impostazione data dal meccanismo delle Shadow Pas-
swords, la disabilitazione dell'utente root, … sono tutte cose che probabilmen-
te conosciamo e che sui sistemi basati su UNIX sono presenti o impiegate da
parecchi anni come strumenti fondamentali su cui fondare la sicurezza di base.
Quello che ho cercato di fare è stato semplicemente dotare (o anche far emer-
gere, visto che, ad esempio, le Shadow Passwords erano già supportate) il no-
stro Dreambox di questi strumenti o impostazioni, in modo da farlo assomiglia-
re un po' di più, sul piano della sicurezza, ai cugini PC che usano un sistema
operativo basato su UNIX/Linux.
La domanda veramente sorprendente, quindi, è un'altra. Visto che fin dall'inizio
il Dreambox ha offerto servizi di rete (server FTP, interfaccia Web ecc.) che a
parer mio esigevano almeno una minima preoccupazione per l'aspetto sicu-
rezza, come mai nessuno (che io sappia) lo ha fatto prima?
Il lavoro che ho fatto è stato senz'altro faticoso e a tratti noioso, ma non credo
assolutamente che possa essere classificato tra quelli ‘difficili’, anche conside-
rando che ho fatto questo come hobby senza dedicargli il tempo pieno (a parte
la scrittura di questa introduzione … eh! eh!).
Quindi, se avete fiducia nell'efficacia dei metodi usati in questo firmware per
aggiungere sicurezza (che, ripeto, sono ormai divenuti uno standard), dovreste
considerare il livello di sicurezza raggiunto accettabile. So di finire ancora con
un giro di parole ma spero di essere stato capito.
Quanto detto vale per quanto riguarda la fiducia nei metodi e criteri generali
usati per aggiungere sicurezza. Vi è un'altro aspetto che spesso viene total-

                                                                                 11
Firmware fog per Dreambox 7000

mente sottovalutato ed è quello della fiducia implicitamente riposta sia nei
tools che implementano i criteri di sicurezza scelti sia più in generale, in tutto il
software che viene eseguito sulla macchina. A quest'aspetto ho già accennato
all'inizio di questa sezione. Merita tuttavia richiamarlo ancora perché è spesso
il più sottovalutato ed anche perché diversi software inclusi in questo firmware
(una discreta parte di quelli ‘standard’ ed ‘extra’ presenti nel CVS) sono un po'
datati. Non ho fatto una ricerca approfondita delle implicazioni che quest'a-
spetto può avere sulla sicurezza ed ho resistito alla tentazione di sostituire i
software già presenti nel CVS con versioni più recenti (in particolare Busybox,
Samba e OpenSSL) per due ragioni.
La prima e più ovvia ragione è che parte del lavoro era già stato fatto, mentre la
seconda è dovuta vincoli sulla dimensione finale dell’immagine. È regola comu-
ne infatti che il codice di un software cresca di dimensione nel corso della sua
evoluzione ed è assai probabile che se avessi seguito il percorso di un aggior-
namento completo alle ultime versioni, avrei superato le dimensioni massime
consentite per un immagine firmware, dettate dalla dimensione della flash del
Dreambox 7000, visto che l’immagine attuale non supera questo limite per una
manciata di kB. Inoltre, come detto nell’ultima parte di questa guida, il software
e le configurazioni presenti in questa immagine costituiscono un primo esperi-
mento di ‘fattibilità’, e si presterebbero meglio ad una distribuzione nella forma
di pacchetto da installare su un dispositivo di memoria USB o su hard disc.

1.3.3 Tipo d'Uso Previsto
I diversi servers presenti in questa immagine sono stati preconfigurati pensan-
do ad un uso degli stessi di tipo privato e personale o da parte di utenti di fidu-
cia su una rete locale o anche attraverso internet per mezzo degli strumenti
forniti (il server SSH e Stunnel). Devo inoltre sottolineare che, qualora il Dream-
box sia collegato in una rete permanentemente connessa ad Internet (caso or-
mai frequente) tramite un router, ritengo indispensabile, per completare il qua-
dro di sicurezza preimpostato, che quest'ultimo o altro dispositivo svolga an-
che le funzioni di firewall per la rete. Credo che l'ultimo requisito sia frequente-
mente rispettato visto che, nella maggioranza dei casi, la connessione perma-
nente ad internet viene realizzata tramite ADSL per mezzo di router/firewall
provvisti di modem ADSL o porta ethernet connessa ad un modem ADSL.
Vista la disponibilità di hard disc dalla capacità ormai impressionante e dal
prezzo abbordabile, con l'aggiunta di qualche utente ed eventualmente gruppo
(le linee guida per la loro creazione sono date in seguito), il Dreambox potrebbe
diventare un piccolo NAS per scopi personali. Sicuramente mancano tools che
ne agevolino la configurazione ed altri che completino ulteriormente il quadro
(sto pensando al demone syslogd e ad una configurazione ponderata dei
logs di sistema), tuttavia, per esigenze personali e non esagerate, la sicurezza
offerta dovrebbe essere sufficiente.
Se avete intenzione di modificare le impostazioni iniziali per destinare i servers
ad un uso diverso da quello sopra descritto (ad esempio accesso incondizio-

12
Firmware fog per Dreambox 7000

nato o ad utenti non di fiducia al server FTP) siete sulle vostre gambe. Mi rac-
comando solo, in questo caso, di leggere attentamente i manuali di configura-
zione dei vari servers e soprattutto (vedi discorsi sull'ortogonalità) di non me-
scolare tipi di servizi, ad esempio usare il Dreambox sia come NAS personale
che come server per un accesso meno ristretto. Un'ultima raccomandazione,
per il caso in cui vogliate configurare un'accesso meno ristretto ai servers, è
quella di creare una DMZ nella quale collocare il Dreambox (esistono ormai
router/firewall con DMZ a prezzi non esagerati).
Poiché ho considerato la presenza di un firewall come prerequisito per il com-
pletamento del quadro di sicurezza, nelle spiegazioni che seguono, relative al
software installato, dò qualche consiglio sulle configurazioni più opportune per
questo dispositivo.

                                                                               13
Firmware fog per Dreambox 7000

 2 Cosa c’è Sotto al Cofano
Qualcosa deve pur esserci altrimenti che scrivo a fare?

2.1 Cambiamenti al Software ‘Standard’
Il progetto di fornire una base software più sicura unitamente all'aggiunta di
software extra di grosso calibro si è rivelato subito più impegnativo di quanto
potesse sembrare all'inizio. Non era infatti sufficiente modificare qualche file di
configurazione, compilare ed installare il software extra per raggiungere l'obiet-
tivo. È stata necessaria innanzitutto un'analisi preliminare del software di base
normalmente fornito con il Dreambox per valutare come questo rispondesse
sia alle richieste di sicurezza sia alle necessità dei pacchetti software aggiunti-
vi. Riporto di seguito i principali cambiamenti effettuati al software di base sia
in fase di compilazione che in quella di configurazione/installazione

2.1.1 Kernel Linux
Versione: 2.6.9 (?)
Links: http://www.kernel.org/
Non a caso ho inserito un punto interrogativo tra parentesi nel numero di ver-
sione del kernel di Linux. Infatti se anche è vero che i sorgenti di base corrison-
dono a questa versione è altrettanto vero che questi sono 'pesantemente' mo-
dificati mediante patches ricavati per la maggior parte da versioni successive
del kernel (parliamo di qulche centinaio di files modificati) ed in parte minore
corrispondenti a modifiche 'ad hoc' per l'hardware del Dreambox. Queste ulti-
me corrisspondono a loro volta, in discreta parte, alla configurazione del ker-
nel, eseguita in batch prima della compilazionene del kernel stesso. Secondo il
mio modo di vedere, in questa situazione, è difficile attribuire una corrispon-
denza del numero di versione del kernel del Dreambox con quelle ufficiali e di-
sponibili nel source tree di riferimento del kernel di Linux.
Rispetto alla versione normalmente compilata con i firmware ufficiali, Ho ag-
giunto i moduli di rete necessarri per il supporto del protocollo AppleTalk. I mo-
duli sono inseriti nel corretto ordine in fase di avvio della macchina (script
start_daemon in /etc/init.d).

2.1.2 Enigma
Versione: CVS Ottobre 2006
Links: http://cvs.tuxbox.org/
Per le ragioni esposte precedentemente, Enigma non ha subito modifiche,
sono stato anzi costretto, per i vincoli imposti sulla dimensione finale dell'im-
magine, ad eliminare tutti i plugins e gli skins extra (ad eccezione dello skin
Small usato come default) normalmente presenti anche nelle immagini ufficiali.

                                                                                 15
Firmware fog per Dreambox 7000

2.1.3 Scripts di Init
Poiché l'interfaccia ethernet viene attivata e configurata da Enigma nella fase di
avvio, senza possibilità, da parte di altro software residente sulla macchina di
modificare tale comportamento, ho dovuto modificare in modo sostanziale (la
modifica stessa si limita a poche righe ma il cambiamento è comunque sostan-
ziale) lo script di init rcS in modo da aggirare tale comportamento. Nelle im-
magini ufficiali (ed anche in tutte quelle di sviluppatori indipendenti che ho avu-
to modo di verificare) normalmente lo script principale di avvio rcS termina in
un loop che interroga con cadenza regolare lo stato di Enigma circa le azioni
da intraprendere. A seconda delle scelte effettuate dall'utente tramite il teleco-
mando (o anche tramite l'interfaccia web di Enigma), il loop termina in uno dei
seguenti modi:

     1) arresta la macchina;
     2) riavvia la macchina;
     3) riavvia la macchina eseguendo il comando /bin/flashtool a seguito
        dell'installazione di un nuovo firmware ;
     4) riavvia il demone dccamd.

I file binari flashtool e ddcamd fanno parte del software fornito dalla Dream
Multimedia in forma binaria dei quali di più non sono in grado di dire se non del
fatto che, dal nome si può supporre che dccamd sia il demone che si occupa
della codifica dreamcrypt. Anche se con l'intuito era facile supporre che fla-
shtool veniva eseguito a seguito di una nuova installazione firmware, ho im-
piegato un po' di tempo a recuperare il codice di uscita da Enigma quando vie-
ne eseguito un aggiornamento del software in flash, ancora una volta a confer-
ma della scarsa linearità e intricatezza del software Enigma che inoltre è prati-
camente sprovvisto di documentazione o codice ben commentato.
In ogni modo, quello che è importante osservare ai nostri fini è che, per la pre-
senza del loop ora descritto, lo script rcS resta in esecuzione per tutto il tem-
po in cui è in esecuzione Enigma ed obbiga ad eseguire prima di esso tutti gli
altri comandi o scripts aggiuntivi (compreso lo script /var/etc/init even-
tualmente presente, normalmente usato per 'customizzare' il boot del Dream-
box da parte dell'utente). Questo fatto crea un problema per l'avvio di tutti i de-
moni di rete che hanno bisogno di conoscere lo stato e l'indirizzo IP dell'inter-
faccia ethernet, in quanto l'interfaccia è attivata da Enigma stessa in funzione
delle impostazioni fissate dall'utente.
Ho risolto il problema creando uno script (start_daemons) lanciato in back-
ground da rcS che monitora lo stato dell'interfaccia ethernet e non appena ri-
leva che è attiva e configurata con un indirizzo IP lancia i servers facenti parte
del pacchetto. Oltre a questo lo script start_daemons esegue anche le se-
guenti operazioni:

16
Firmware fog per Dreambox 7000

   1) Imposta ‘una tantum’ i permessi su /var/tuxbox in modo tale che il
      gruppo admin abbia i permessi in lettura e scrittura (l'impostazione è
      controllata dall'esistenza o meno del file nascosto .DreamboxSetupDo-
      ne e per le ragioni di questa impostazione vedi la sezione successiva ri-
      guardo gli utenti preimpostati sul sistema)
   2) Ad ogni avvio imposta i permessi su /tmp in modo tale che il gruppo ad-
      min abbia i permessi in lettura e scrittura (per i motivi vedi anche in que-
      sto caso la sezione successiva riguardo gli utenti preimpostati sul siste-
      ma) ed in modo adeguato i permessi su importanti files per la sicurezza.
   3) Carica i moduli del kernel necessari per il funzionamento di AppleTalk.
   4) Prima dell'avvio dei servers di rete esegue una modifica al volo dei files
      di configurazione /var/etc/hosts e /var/etc/smb.conf per il cor-
      retto funzionamento di Netatalk e Samba e forza Samba (che eventual-
      mente è stato già avviato da Enigma) a ricaricare la configurazione.

Ho trovato quest'ultimo passo necessario affinché funzionasse (almeno su
Mac) il browsing delle condivisioni di rete, sia quelle attivate da Samba che
quelle attivate da Netatalk. Osservo infatti che fino ad ora, con le immagini da
me provate e con Mac OS X come client, il browsing Samba non ha mai fun-
zionato, in altri termini non è mai apparso il nome del Dreambox nella cartella
Network del Mac. Un ruolo essenziale è giocato dal file /var/etc/hosts che,
nella configurazione di default è impostato in modo scorretto, dal momento
che sia al nome localhost che al nome Dreambox è associato l'indirizzo dell'in-
terfaccia di loopback 127.0.0.1. Ad ogni modo lo script start_daemons
dovrebbe essere ben commentato e per ulteriori dettagli basta leggerlo.
Anche il loop finale che lancia Enigma e precedentemente descritto è stato in-
corporato in uno script a parte (start_enigma) lanciato in background dallo
script principale rcS subito prima di start_daemons. Questa modifica forse
non era proprio necessaria (lo script start_daemons dovrebbe funzionare an-
che se lanciato prima del loop finale in rcS), ma avendo ormai imboccato una
strada ho cercato, anche per ragioni estetiche, di perseguirla fino in fondo. La
logica vorrebbe infatti che, anche se alcuni scripts sono lanciati in background,
la sequenza finale di avvio del Dreambox fosse: avvia Enigma (che imposta la
rete) -> avvia i servers di rete -> avvia lo script /var/etc/init (customizza-
zione da parte dell'utente).
Purtroppo non ho potuto spostare /var/etc/init in fondo alla procedura di
avvio in quanto ho riscontrato che tale spostamento interferisce negativamente
con fwpro qualora l'immagine sia installata su pen USB o hard disc. Probabil-
mente fwpro, che modifica lo script rcS, fa delle assunzioni precise sulla posi-
zione di alcuni elementi in rcS. Il risultato, spostando /var/etc/init in fon-
do alla sequenza di avvio, è che ogni volta che il Dreambox viene avviato, dopo
qulache secondo si rispegne. La sequenza finale di avvio è quindi: avvia lo
script /var/etc/init (customizzazione da parte dell'utente) -> avvia Enig-

                                                                                17
Firmware fog per Dreambox 7000

ma (che imposta la rete) -> avvia i servers di rete.
Ho voluto entrare nei dettagli delle modifiche apportate alla procedura di avvio
perché penso che oltre a poter essere di aiuto agli utenti meno smaliziati, pos-
sono essere uno spunto per chiunque abbia la necessità di creare uno script di
init di customizzazione per una qualsiasi immagine e per il quale sia impor-
tante conoscere stato e configurazione della rete. L'intera procedura di avvio
probabilmente non è sufficientemente robusta (soprattutto se pensiamo a quel-
lo che siamo abituati a vedere su Mac OS X, il cui launchd è da molti invidiato)
ma dopo diversi giorni di prove sembra funzionare. Infine, è l'unica soluzione
che ho trovato senza dover mettere le mani al codice di Enigma.

2.1.4 Utenti, Gruppi Preimpostati e Passwords
La prima preoccupazione è stata quella di rendere ‘inoffensivo’ o detto in altri
termini disabilitare il ‘superutente’ root. Questo è stato fatto seguendo uno dei
metodi più usati nei vari ambienti Unix e cioè impostando nel file passwd,
come shell di root il comando inoffensivo nologin, che semplicemente infor-
ma l'utente che l'account non è disponibile ed esce. Disabilitare root comporta
necessariamente la creazione di almeno un utente con compiti amministrativi e
l'introduzione di un tool che consenta di eseguire tali compiti. Il tool è natural-
mente costituito dall'arcinoto comando sudo (vedi più avanti) e l'utente preim-
postato per i compiti amministrativi (facente parte cioè dei sudoers) è drea-
madm.
Ho anche creato un'altro utente meno privilegiato: dreamuser. Le home direc-
tories dei due nuovi utenti sono rispettivamente /var/tuxbox per dreamadm
e /hdd/movie per dreamuser e penso che qualcuno abbia già chiaro il perché
di tale scelta. Le funzioni degli utenti e delle rispettive home directories corri-
spondono infatti anche a come sono state preimpostate le condivisioni per
FTP, Samba e Netatalk e spiegate successivamente.
Per ciascuno dei nuovi utenti ho preimpostato un gruppo con lo stesso id e
nome dell'utente e che costituisce il gruppo principale dell'utente stesso ed al
quale non dovrebbero essere associati altri utenti.
Ho inoltre creato due gruppi che, come funzionalità corrispondono a quelle dei
due utenti preimpostati. Il primo gruppo è admin (al quale appartengono root e
dreamadm) mentre il secondo è dbusers (al quale appartiene dreamuser).
Nell'impostazione dei gruppi mi sono ispirato allo schema usato su Mac OS X.
In particolare la creazione di un gruppo unico per ogni utente con lo stesso id
dell'utente garantisce una maggiore sicurezza delle home directories.
Spero che l'impostazione iniziale da me data per utenti e gruppi, unitamente
alle spiegazioni appena esposte, possa stabilire una linea guida ed una facilita-
zione per l'eventuale inserimento di nuovi utenti.
La password preimpostata per tutti i nuovi utenti e l'utente root è quella a cui
ormai siamo da sempre abituati e cioè Dreambox.

18
Firmware fog per Dreambox 7000

Suggerimenti per la sicurezza
Se volete sfruttare le impostazioni di sicurezza offerte da questa immagine, na-
turalmente la prima cosa da fare, una volta effettuato il login con secure shell
come utente dreamadm, sarà quella di cambiare le password di tutti gli utenti
inviando il comando sudo passwd  per ognuno dei tre
utenti del sistema: root, dreamadm e dreamuser.
Una cosa imortante da osservare è che il comando passwd non si comporta
nel modo in cui normalmente siamo abituati e l'uso di sudo è necessario. In al-
tri termini non è possibile inviare semplicemente il comando passwd senza
nome utente per cambiare la password dell'utente correntemente connesso.
Questo accade perché, anche se normalmente il comando passwd ha il bit se-
tuid impostato, sul Dreambox questo non accade e per motivi di sicurezza non
conviene assolutamente impostarlo. Il comando passwd è infatti un link simbo-
lico a busybox e impostarne il bit setuid equivale ad impostare il bit setuid di
busybox che fa capo alla maggior parte dei comandi presenti sul Dreambox
(vedi oltre per una descrizione del funzionamento di busybox).
Riconosco che questo aspetto costituisce un limite nel caso vogliate creare
nuovi utenti e consentire loro la modifica autonoma della password. Una possi-
bile soluzione potrebbe essere quella di creare o trovare un utlity adatta allo
scopo ma, attenzione!!! Un utility per il cambio password mal scritta e con il bit
setuid impostato è un potenzale pericolo capace di distruggere in un batter di
ciglio tutta la sicurezza faticosamente impostata. Forse ancor meglio sarebbe
ricompilare Busybox senza il supporto per il comando passwd e compilare se-
paratamente tale comando prendendolo dalle util-linux. Se questa immagine
avrà un riscontro terrò in considerazione questa possibilità per un eventuale
seconda versione.
Scegliete le nuove passwords in modo adeguato: uno o due segni di interpun-
zione, presenza di maiuscole e minuscole e, soprattutto, parole difficilmente
rintracciabili in un dizionario. Esistono molti metodi per costruire password di
questo tipo e che allo stesso tempo siano facili da ricordare.
Le passwords (come spiegato più avanti) sono memorizzate in forma cifrata nel
file /var/etc/shadow. La password preimpostata di default Dreambox è
quella di tipo crypt classica di UNIX (password cifrata con algoritmo DES a 56
bit). La cosa interessante è che Busybox, come default, genera le passwords
con algoritmo MD5, molto più sicure delle passwords di tipo crypt e quindi,
una volta modificate le passwords, queste saranno tutte cifrate con algoritmo
MD5 (anche questo ormai uno standard sulla gran parte delle distribuzioni
Linux/UNIX).
Le passwords cifrate in MD5 possono avere lunghezza arbitraria (con pas-
swords molto lunghe si preferisce usare il termine passphrases perché in que-
sto caso può essere abbastanza sicuro usare la giustapposizione di parole an-
che presenti in un dizionario) mentre le passwords di tipo crypt sono limitate ad
8 caratteri, quelli forniti in eccesso vengono infatti eliminati dall'algoritmo.

                                                                                19
Firmware fog per Dreambox 7000

C'è ancora di più: il comando passwd con l'opzione -a sha1 genera la pas-
sword con l'algoritmo SHA1, ancora più sicuro dei precedenti.
Esiste un tipo di password cifrata ancora più sicuro?
La risposta è sì e si tratta delle passwords bcrypt (algoritmo blowfish) anche se
tali tipi di password non sono supportate da Busybox.
Usato per la prima volta su OpenBSD, l'algoritmo bcrypt si sta diffondendo ad
altre distribuzioni Linux/UNIX. Penso tuttavia che le password di tipo MD5 o
SHA1 fornsiscano, al momento, un livello di sicurezza adeguato per il nostro
Dreambox.

2.1.5 Software Busybox
Versione: 1.0.1 (Disponibile nel CVS)
Links: http://www.busybox.net/
Come molti sapranno, Busybox è il software tuttofare del Dreambox e racchiu-
de le funzionalità di un discreto numero di tools che sono standard sulle varie
distribuzioni Linux/Unix.
Le diverse funzionalità di Busybox vengono assolte in funzione del nome con
cui viene invocato il comando busybox stesso. Questo viene realizzato me-
diante una serie di link simbolici a busybox, ognuno con il nome dell'utility
rimpiazzata da busybox.
Il parco di utilities standard che busybox può sostituire e che in gergo Busy-
box vengono chiamate applets è abbastanza ampio e viene stabilito in fase di
compilazione di Busybox stessa.
Visto che ora il Dreambox si rivela per quello che in realtà è sempre stato e cioè
una macchina multiutente, non poteva non mancare la compilazione in Busy-
box degli applets per la gestione di gruppi e utenti. I nuovi applets sono:

     1) adduser (aggiunta di un nuovo utente);
     2) addgroup (aggiunta di un nuovo gruppo);
     3) deluser (cancellazione di un utente esistente);
     4) delgroup (cancellazione di un gruppo esistente).

Ho tolto invece l'applet che offre le funzionalita di vi. Ho infatti inserito nell'im-
magine l'editor Nano molto più semplice da usare anche per i meno esperti e
credo sufficiente per le eventuali operazioni di editing dei files di configurazione
sul Dreambox.

20
Firmware fog per Dreambox 7000

2.1.6 Shadow Passwords
Versione: Supportate da Busybox e dalle librerie di Sistema
Le Shadow Passords rappresentano un metodo, ormai standard su quasi tutte
le distribuzioni Linux/Unix, per incrementare in modo significativo la sicurezza.
Con le Shadow Passwords la password criptata di ogni utente non è più regi-
strata nel file /var/etc/passwd (che per ragioni che non sto a spiegare ma
intuibili deve essere accessibile in lettura a tutti gli utenti) ma nel file separato
/var/etc/shadow accessibile solo a root. La cosa strana che ho notato è
che, nonostante Busybox e le librerie di sistema del Dreambox offrano il sup-
porto alle Shadow Passwords, questa funzionalità non è mai stata sfruttata.
Bene, ora lo è.

2.1.7 Software di Rete Avviato da inetd
In considerazione del fatto che nell'immagine è stato installato il pacchetto
TCP Wrappers, il file di configurazione inetd.conf del ‘superdemone’ inetd
è stato modificato in modo che tutti i servers avviati da inetd siano lanciati at-
traverso tcpd, il demone fornito con TCP Wrappers (vedi oltre).

2.1.7.1    Server Telnet
Versione: vedi Busybox
Visto che nell'immagine è presente il server sshd che può rimpiazzare comple-
tamente il server telnetd, ho disabilitato quest'ultimo, commentando la riga
corrispondente nel file inetd.conf. Telnet è intrinsecamente poco sicuro, tutti
i dati, compresa la password di autenticazione, viaggiano in chiaro sulla rete.
Suggerimenti per la sicurezza
Nessuno tranne quello di non avviare telnetd riabilitando il server in
inetd.conf!

2.1.7.2    Server FTP Vsftpd
Versione: 1.1.0 (Disponibile nel CVS)
Links: http://vsftpd.beasts.org/
Il file di configurazione di vsftpd (vsftpd.conf) è stato modificato in modo
da sfruttare una caratteristica interssante offerta dal software, quella di ‘confi-
nare’ ogni utente nella propria home directory. In altri termini, come si dice in
gergo, ogni utente, una volta connesso al server FTP, è chrooted nella propria
home directory. In questo modo, per come sono state impostate le home di-
rectories l'utente dreamuser è confinato alla directory /hdd/movie (sempre
che abbiate installato un hard disc naturalmente). Questa funzionalità è stata
disabilitata, nel modo descritto di seguito, per l’utente dreamadm che, in quan-
to amministratore, deve poter accedere anche ad altre parti del file system, in
particolare la directory /tmp, sulla quale ha accesso in scrittura, per scaricare
un nuovo firmware.

                                                                                     21
Firmware fog per Dreambox 7000

Potete modificare questo comportamento di vsftpd per ogni singolo utente
impostato o aggiunto in seguito sul Dreambox, in modo che questo abbia ac-
cesso all'intero file system del Dreambox. Suggerimento: inserite, nel file
/var/etc/vsftpd.chroot_list, l'elenco degli utenti per i quali desidera-
te disabilitare la funzionalità di essere confinati alla propria home directory
Attenzione, il precedente suggerimento ha l'effetto desiderato in quanto l'op-
zione chroot_local_user in vsftpd.conf è stata abilitata, se non lo fos-
se, l'effetto del file /var/etc/vsftpd.chroot_list sarebbe esattamente il
contrario e cioè tutti gli utenti in questo file sarebbero confinati alla propria
home directory.
Maggiori dettagli sulla configurazione del server vsftpd li trovate qui:
http://vsftpd.beasts.org/vsftpd_conf.html.
In ogni caso, se decidete di consentire a degli utenti di accedere all'intero file
system, trattenetevi dal cambiare i permessi sui files al di fuori di /var/tux-
box (in particolare sui files in /var/etc/, /bin e /sbin) anche per quanto ri-
guarda l’utente dreamadm che già accesso all’intero filesystem. Dico questo
perché già immagino qualcuno che pensa a questa possibilità, così da tornare
alla vita facile di prima, dove anche questi files si editavano via FTP o anche
Samba. Agendo in questo modo, una parte della sicurezza preimpostata si dis-
solverà.
Vi raccomando infine di fare una visita sul sito dell'autore di Vsftpd che risulta
essere anche un grande esperto di sicurezza. Sul sito si possono trovare diver-
se discussioni illuminanti in proposito. Proprio per questo, Vsftpd è stato co-
struito avendo la sicurezza come primo obiettivo e da questo punto di vista,
probabilmente, è il campione dei vari servers FTP in circolazione.
L'ultima versione disponibile supporta anche connessioni sicure tramite SSL
(appoggiandosi alla libreria OpenSSL) e visto che Stunnel non è in grado di
proteggere (o può proteggere solo parzialmente) le connessioni FTP (vedi più
avanti), se questa immagine susciterà un certo interesse potrei verificare se è
fattibile l'aggiornamento alla nuova versione.
Suggerimenti per la sicurezza
La password per l'autenticazione viene inviata in chiaro, pertanto trattenetevi
dall'aprire il server FTP al mondo esterno (Internet) e tenete ben chiuse sul vo-
stro firewall le porte di default sulle quali opera FTP. Purtroppo, con la versione
correntemente installata di Vsftpd, non vedo soluzioni alternative (quali l'utilizzo
di ssh o stunnel come successivamente consigliato per Samba o Netatalk)
per connettervi al server FTP in modo sicuro dal mondo esterno con un norma-
le client FTP, se non quella di realizzare una VPN.
Comunque un momento … un’alternativa esiste ed è rappresntata da SFTP,
offerto da OpenSSH e descritto nella sezione relativa a questo software. Molti
clients FTP (ad esempio Transmit su Mac OS X) supportano infatti anche que-
sto protocollo.

22
Firmware fog per Dreambox 7000

In futuro, se sarà fattibile l'installazione dell'ultima versione di Vsftpd con il sup-
porto diretto di SSL le possibilità di scelta potrebbero aumentare.

2.1.8 Software di Rete Standalone Avviato da Enigma
2.1.8.1    Software Samba
Versione: 1.9.18p8 (Disponibile nel CVS)
Links: http://www.samba.org
La compilazione/installazione di Samba è stata modificata in modo da leggere
direttamente il file di configurazione smb.conf in /var/etc ed aggiungendo il
tool smbpasswd a supporto dell'autenticazione mediante passwords cifrate (di
tipo lan manager o NTLM). Il file di configurazione preimpostato è stato com-
pletamente riscritto e vi consiglio di dargli un'occhiata in quanto ho commenta-
to i punti più importanti.
Da segnalare:

   1) Autenticazione mediante passwords cifrate (le passwords per l'autentica-
      zione di Samba risiedono nel file separato /var/etc/smbpasswd ac-
      cessibile solo a root).
   2) Condivisione di tipo user e non più share come in precedenza.
   3) Introduzione nella sezione [global] di smb.conf dei parametri hots
      allow e hosts deny per limitare l'accesso alle condivisioni.
      La configurazione di tali parametri è identica a quella da me impostata
      nei file /var/etc/hosts.allow e /var/etc/hosts.deny, pertanto,
      riguardo la loro impostazione, vi rimando alla discussione successiva re-
      lativa al pacchetto Tcp Wrappers (Samba ha le funzioni della libreria dei
      Tcp Wrappers built-in ed il codice relativo è stato adattato a Samba pren-
      dendolo proprio dal pacchetto Tcp Wrappers)
   4) Due condivisioni impostate e attivate:
      EnigmaConf che corrisponde a /var/tuxbox ed è accessibile dal grup-
      po admin e quindi dall'utente dreamadm (serve per scaricare/modificare
      settings, skins, plugins ).
      UploadFW che corrisponde a /tmp ed è anche questa accessibile dal
      gruppo admin e quindi dall’utente dreamadm (serve per scaricare nuove
      immagini da installare in flash).
   5) Due condivisioni impostate, ma non attivate (le linee relative sono com-
      mentate nel file /var/etc/smb.conf con il carattere #), per agevolare
      gli utenti che hanno installato un hard disc e/o un dispositivo di memoria
      USB (le condivisioni sono commentate nel file ):
      Movies, che corrisponde ad /hdd/movie, è accessibile dai gruppi ad-
      min e dbusers e quindi dagli utenti dreamadm e dreamuser (serve ovvia-
      mente per scaricare le registrazioni sull'hard disc del Dreambox).

                                                                                    23
Puoi anche leggere