Gentoo Network Appliance (GNAP) - Guida Utente
1.
Le basi di GNAP
Scopo
Lo scopo è quello di sfruttare l'attuale sistema Gentoo dell'utente (chiamato
host, ospite) per creare un LiveCD o un disco con un sistema avviabile
per dispositivi di rete, completo di file di configurazione personalizzati, che
sia possibile usare per l'avvio di un altro sistema (chiamato target,
bersaglio).
GNAP fornisce un immagine di sistema pre-confezionata, chiamata GNAP core
(letteralmente, nucleo o cuore di GNAP). E' possibile modificare la
configurazione predefinita di questa immagine introducendo nuovi file di
configurazione che andranno a sovrascriversi all'immagine di sistema stessa
durante l'avvio del target.
Lo script gnap_overlay prende una tarball (ovvero un file generato con
l'ausilio del programma di compressione tar) di GNAP core e una o più
sorgenti overlay (NdR: le sorgenti overlay, letteralmente "copertura",
contengono dati che andranno a sovrascrivere i corrispettivi originali, da cui
il termine che sarà mantenuto tale per l'intero documento) da cui o produce un
file .iso per la realizzazione di un LiveCD avviabile, oppure scrive un
filesystem avviabile su un dispositivo di memorizzazione (tipicamente una scheda
CompactFlash o DOM):
Figura 1.1: Come funziona gnap_overlay |
 |
Le sorgenti overlay
Esistono due tipi di sorgenti overlay che si possono usare con
gnap_overlay: directory e file conflet.
Le directory overlay sono solamente cartelle contenenti file che saranno copiati
sul filesystem principale durante l'avvio del target. La radice della directory
corrisponde alla radice del filesystem del target, quindi contiene normalmente
una sottodirectory etc/ dove sono presenti file che saranno copiati
sulla cartella /etc del target.
I file Conflet non sono nient'altro che tarball compresse .tar.bz2
contenenti una directory overlay. Di solito contengono configurazioni
riutilizzabili su cui sono state applicate modifiche diffuse, così da rendere
più facile mantenere diverse configurazioni.
Importante:
Attualmente solo le directory /etc, /var,
/tmp, /home, /root e /mnt
del target sono scrivibili all'avvio del target stesso, il che significa che le
sorgenti overlay non possono specificare file al di fuori di queste directory.
|
Il file overlay.conf
Il file overlay.conf controlla la personalizzazione delle opzioni
generali sul target, come le opzioni per la localizzazione e quali
caratteristiche dovrebbero essere abilititate sulla macchina GNAP target. Il
file deve essere presente in una sorgente overlay (come
etc/overlay.conf) oppure lo si deve specificare direttamente con il
parametro -c allo script gnap_overlay.
2.
Il primo LiveCD GNAP
Installazione di GNAP
GNAP è disponibile attraverso Gentoo Portage. Baste lanciare emerge come segue
(da utente root):
Codice 2.1: Installazione di GNAP |
# emerge gnap
|
Avvertenza:
GNAP potrebbe essere disponibile solo in "~x86". Dovrà essere modificato il file
/etc/portage/package.keywords se necessario.
|
Nota:
Così facendo verrà recuperato il file GNAP core, che è di solito abbastanza
grande (circa 14Mb). Si può però impostare la flag USE "minimal" se non si
desidera scaricare lo GNAP core, ma semplicemente installare i gli strumenti
forniti con GNAP.
|
Nota:
Gli utenti di altre distribuzioni Linux possono fare riferimento alla guida
Using GNAP on non-Gentoo hosts (Utilizzare GNAP su sistemi
non-Gentoo).
|
Preparazione del proprio overlay e del file overlay.conf
In questo tutorial, GNAP verrà usato per realizzare un LiveCD avviabile
contenente un Firewall che filtri il traffico ed effettui il NAT per una piccola
rete LAN. C'è bisogno di attivare queste caratteristiche in overlay.conf
e nei file overlay per la configurazione della rete e del firewall.
Nota:
Non c'è bisogno dei privilegi di root per realizzare un LiveCD GNAP.
|
Prima di tutto, deve essere creata una cartella che verrà utilizzata come radice
per la cartella overlay, e le sottodirectory etc/,
etc/conf.d/ e etc/firehol:
Codice 2.2: Preparazione delle directory di overlay |
$ mkdir myoverlay
$ mkdir myoverlay/etc
$ mkdir myoverlay/etc/conf.d
$ mkdir myoverlay/etc/firehol
|
Poi creare il file di configurazione della rete (etc/conf.d/net),
con un indirizzo verso l'esterno 111.222.111.47 (gateway 111.222.111.254) e
verso la LAN 192.168.1.*. Questo file aderisce alla sintassi Gentoo descritta
nel file /etc/conf.d/net.example sul sistema dell'utente:
Codice 2.3: Contenuto del file myoverlay/etc/conf.d/net |
# Usare la configurazione con la sintassi di iproute2
modules=( "iproute2" )
# L'interfaccia esterna
ipaddr_eth0=( "111.222.111.47/24" )
iproute_eth0=( "default via 111.222.111.254" )
# L'interfaccia interna
ipaddr_eth1=( "192.168.1.254/24" )
|
Adesso va creato il file di configurazione per il programma firehol che verrà
usato come firewall, lasciando passare tutto il traffico in uscita dalla LAN ma
non il traffico in ingresso:
Codice 2.4: Contenuto del file myoverlay/etc/firehol/firehol.conf |
version 5
interface eth0 internet
interface eth1 lan
router lan2internet inface eth1 outface eth0
masquerade
route all accept
|
Infine, è necessario scrivere un file overlay.conf per indicare a GNAP
che dovrà usare due schede di rete, ed eseguire uno script per il firewall
firehol all'avvio:
Codice 2.5: Contenuto del file myoverlay/etc/overlay.conf |
# Usare due schede di rete
NBCARDS=2
# Avviare lo script del firewall 'firehol' all'avvio
USE_FW=yes
FW_TYPE=firehol
|
Generazione del file .iso, realizzazione del CD-R
Il prossimo passo è l'uso dello script gnap_overlay per combinare la
directory overlay myoverlay e lo GNAP core in modo da produrre un
file myfirewall.iso contenente l'immagine del LiveCD per il sistema target.
Questo lo si può fare con il comando:
Codice 2.6: Creazione del file .iso |
$ gnap_overlay -i myfirewall.iso -o myoverlay/
|
L'immagine myfirewall.iso risultante deve essere masterizzata in un CD-R (o
meglio, un CD-RW) usando il proprio strumento di masterizzazione preferito, per
esempio:
Codice 2.7: Masterizzazione del file .iso, YMMV |
$ cdrecord -v -eject speed=4 dev=/dev/hdc myfirewall.iso
|
Test del sistema GNAP risultante
Una volta che il CD-R è pronto, inserirlo nel sistema target e usarlo per
l'avvio. Per sistemi meno recenti non dovrebbero esserci problemi, GNAP dovrebbe
avviarsi con successo su sistemi 486 con meno di 32Mb di RAM.
Nota:
Il BIOS del sistema target dovrebbe ovviamente essere configurato per l'avvio da
CD-ROM.
|
Durante l'avvio, sono visibili i messaggi specifici di GNAP, mentre gli
initscript (script d'inizializzazione, presenti sul sistema target in
/etc/init.d/overlay) si occupano dei file di overlay e processano
le opzioni in overlay.conf. Se la configurazione non è corretta, è
possibile variare il contenuto della directory myoverlay/, creare
nuovamente l'immagine .iso, masterizzarla, quindi riavviare il sistema target
con il nuovo LiveCD.
3.
Ulteriori personalizzazioni
Manutenzione degli overlay
Nella precedente sezione, è stato usata una singola sorgente overlay (la
directory myoverlay/), rendendo difficile gestire più
configurazioni diverse con caratteristiche comuni condivise. Lo script
gnap_overlay accetta opzioni -o multiple, quindi si possono usare
cartelle diverse e più file conflet per formare una singola
configurazione:
Codice 3.1: Utilizzo di diverse sorgenti overlay |
$ gnap_overlay -i myfirewall.iso -o common/ -o specific/ -o mypublickey.tbz2
|
Piuttosto che includere un file etc/overlay.conf in una delle
sorgenti overlay, è possibile specificare il nome di un file da usare come
overlay.conf nel proprio sistema GNAP, sfruttando l'opzione -c:
Codice 3.2: Utilizzo di un file overlay.conf separato |
$ gnap_overlay -i myfirewall.iso -c firewall.conf -o overlay2/
|
Per tenere traccia dei cambiamenti alla configurazione, è possibile usare
direttamente CVS sulle cartelle overlay. Lo script gnap_overlay ignorerà
automaticamente le directory di controllo di CVS e non le copierà sul sistema
target.
Internazionalizzazione
Due opzioni nel file overlay.conf controllano il timezone, ovvero il fuso
orario (impostato in modo predefinito su UTC), e la keymap, ovvero la mappa dei
caratteri (che assume in modo predefinito il layout di tastiera 'us'), usati sul
sistema target:
-
TIMEZONE: Se si desidera usare un altro timezone piuttosto che UTC, sarebbe
necessario leggere questa
pagina per determinare il codice timezone appropriato compatibile con
uclibc.
-
KEYMAP: Se si vuole potere effettuare il login in locale, potrebbe essere
necessario cambiare il layout predefinito della tastiera ('us') in qualcosa
di più appropriato. Esiste un completo albero di keymap in
/usr/share/keymaps da cui scegliere.
Codice 3.3: Esempio di opzioni per l'internazionalizzazione in overlay.conf |
# Usare il fuso orario dell'Europa Centrale (UTC+1) con le normali regole dell'orario estivo
TIMEZONE=CET-1CEST
# Usare un layout di tastiera francese
KEYMAP=fr
|
Configurazione di rete
È stata già discussa l'opzione NBCARDS in overlay.conf, la quale
specifica quante schede di rete devono essere avviate, e si è parlato della
necessità di fornire un file etc/conf.d/net nei propri overlay per
fornire i dettagli della configurazione statica per la rete. Saranno ora
discusse le altre opzioni e i file overlay tipici che possono essere usati per
raffinare ulteriormente la configurazione di rete:
-
IP_RELAY: Dovrebbe essere impostato a yes (si) se si vuole trasmettere gli
IP alle proprie schede di rete. Utile nei casi in cui si voglia eseguire un
gateway senza uno script di firewall.
-
NTPSERVER: Permette di specificare il nome di un server NTP da utilizzare
come riferimento temporale per poter trattare in modo corretto il tempo sul
sistema target.
- USE_PPPOE: Indica che si dovrebbe eseguire rp-pppoe durante l'avvio.
-
etc/resolv.conf: Questo file può contenere la configurazione
per i DNS relativa al sistema.
-
etc/hosts: File complementare o alternativo rispetto a
etc/resolv.conf, contiene informazione statiche per la
risoluzione dei nomi.
-
etc/conf.d/hostname: Questo file può essere usato appositamente
per assegnare un nome specifico al sistema target. Il file
etc/hosts dovrebbe essere adattato appositamente.
Nota:
Se non viene specificata una configurazione in etc/conf.d/net, il
sistema userà il DHCP per ottenere la configurazione di rete relativa alle
interfacce mancanti.
|
Firewall, controllo del traffico
L'abilitazione dello script di firewall è controllata dall'opzione USE_FW=yes.
Di base, GNAP utilizzerà Shorewall,
un programma di supporto eccellente e completo per iptables. È possibile
impostare l'opzione FW_TYPE=firehol per utilizzare Firehol, uno script semplice ma
efficente.
Se si decide di usare Shorewall, andrebbero sovrascritti i file nella directory
etc/shorewall per personalizzarne il comportamento, in particolare
di dovrebbe pensare di modificare i file interfaces,
zones, policy e shorewall.conf . Se
invece si decide di usare Firehol, deve essere personalizzato il file
etc/firehol/firehol.conf.
È possibile abilitare lo script di controllo del traffico usando l'opzione
USE_TC=yes. In modalità predefinita, GNAP userà cbqinit, un semplice ma
talvolta inefficiente programma di supporto al controllo del traffico. Piuttosto
è possibile utilizzare htbinit, uno script più
complesso ma anche più efficiente, impostando l'opzione TC_TYPE=htbinit.
Se si utilizza cbqinit, devono essere sovrascritti i file nella directory
etc/cbqinit per personalizzarne il comportamento, seguendo le
istruzioni riportate da /usr/sbin/cbqinit. Se si decide invece di
utilizzare htbinit, devono essere creati dei file in etc/htbinit
seguendo le istruzioni riportate da /usr/sbin/htbinit.
Servizi di GNAP
Gnap offre diversi servizi standard. Il primo è il server SSH Dropbear, che
permette il controllo da remoto del sistema GNAP. Viene abilitato utilizzando
l'opzione USE_SSH=yes. Le funzioni di Dropbear sono controllate attraverso il
file etc/conf.d/dropbear. È consigliabile sovrascrivere le chiavi
RSA/DSS fornite per il server in etc/dropbear (in modo che non
vengano ricreate dopo ogni avvio).
Un altro servizio è la cache DNS / il server DHCP DnsMasq, che mette a
disposizione un risolutore DNS (per mappare nomi in indirizzi) e capacità di
DHCP sulla LAN (per l'assegnamento automatico degli indirizzi agli host). È
attivabile usando l'opzione USE_DNSDHCP=yes, e configurandolo attraverso
il file etc/dnsmasq.conf.
Un ulteriore servizio che GNAP mette a disposizione è la soluzione VPN OpenVPN. Questo altro non è che una soluzione
per VPN semplice ma completa di ogni caratteristica che potrà aiutare nella
realizzazione di un connessione sicura (detta bridge, o ponte) fra LAN
attraverso reti insicure, non fidate. La si può abilitare usando l'opzione
USE_VPN=yes, nel cui caso andrebbero sovrascritti i file nella directory
etc/openvpn con la configurazione desiderata per OpenVPN.
Infine, esiste la possibilità di definire servizi extra da utilizzare all'avvio
di GNAP. Ci sono due modi per farlo: usando l'opzione START_SERVICES in
overlay.conf o utilizzando il file etc/gnap/start_services:
Codice 3.4: Definizione dei servizi iptables e boa tramite overlay.conf |
# Avviare iptables e boa all'avvio
START_SERVICES="iptables boa"
|
Codice 3.5: Esempio di etc/gnap/start_services per l'avvio di iptables e boa |
iptables boa
|
Account e password
GNAP opera più o meno come un'applicazione a scatola chiusa nella modalità
predefinita. In ogni caso, potrebbe esserci la necessità di loggarsi al suo
interno. Di norma, non sono definiti account utente, e l'account per
l'amministratore (utente root) ha una password impossibile, il che rende
impossibile loggarsi. Ci sono diversi modi per cambiare questo comportamento:
È possibile impostare una password di root vuota, utile per esempio in
configurazioni di test, sfruttando l'opzione EMPTY_ROOTPASS=yes.
Il modo più sicuro per accedere all'interno di GNAP è quello di eseguire il
server SSH Dropbear in modalità a chiave pubblica. Sarà necessario configurare
Dropbear per disabilitare il login con password (in
etc/conf.d/dropbear) e aggiungere la propria chiave pubblica al
file root/.ssh/authorized_keys:
Codice 3.6: Contenuto di etc/conf.d/dropbear per disabilitare l'autenticazione con password |
DROPBEAR_OPTS="-s"
|
Nota:
Il file /usr/lib/gnap/examples/conflets/dropbear_nopasswd.tbz2,
aggiunto durante l'installazione di GNAP, è un file conflet contenente il
sostituto necessario per sovrascrivere etc/conf.d/dropbear.
|
Se si vuole anche cambiare la password per gli utenti di sistema, lo si può fare
sovrascrivendo un file etc/gnap/chpasswd contenente linee
nome_utente:password_cifrata che verranno aggiunte con chpasswd -e
durante l'avvio. Leggere man chpasswd per i dettagli sul formato di
questo file.
Supporto per il salvataggio dei cambiamenti alla configurazione durante
una sessione dal vivo
Un problema che potrebbe essere riscontrato con i sistemi GNAP usando
configurazioni dinamiche (come quelle dei firewall) è che tutti i cambiamenti
fatti durante una sessione dal vivo saranno persi al prossimo riavvio. Una
possibile soluzione è quella di riportare tutti questi cambiamenti sulle
directory di overlay del sistema host e assicurarsi di masterizzare un nuovo
CD-R con la nuova configurazione prima del prossimo riavvio, ma non è molto
pratico. Un'alternativa è l'uso di una partizione in lettura/scrittura e del
sistema RW_SYNC per il backup dei cambiamenti così da poterli recuperare
automaticamente da un dato account al prossimo riavvio.
Per abilitare questo sistema, è necessario aggiungere l'opzione RW_SYNC al
proprio file overlay.conf, così da farla puntare alla partizione r/w che
si desidera utilizzare. GNAP supporta le partizioni FAT ed ext2:
Codice 3.7: Contenuto di RW_SYNC per il backup su floppy disk |
RW_SYNC=/dev/fd0
|
Durante il primo avvio, quando l'opzione risulta attivata ma nessun file di
backup è presente ancora sulla partizione puntata da RW_SYNC, l'utente riceverà
il seguente errore durante l'inizializzazione del sistema target, messaggio che
si può ignorare senza problemi:
Codice 3.8: Errore innocuo ricevuto al primo avvio con l'opzione RW_SYNC |
* Sync rw-sync changes to /dev/fd0 ...
* Missing gnap_sav.tgz or gnap_md5.sum file : aborting [ !! ]
|
Una volta che l'opzione RW_SYNC è abilitata, è possibile sfruttare lo script di
supporto rw-sync.sh sul sistema GNAP target per specificare quali file
salvare. C'è bisogno solamente di indicare i file una volta così che questi
vengano aggiunti al file rw-sync.cfg per i backup successivi.
Importante:
Non dimenticare di aggiungere il file /etc/rw-sync.cfg alla lista
di backup così da poterlo recuperare al prossimo riavvio.
|
Codice 3.9: Indicazione dei file e delle directory per il backup |
# rw-sync.sh -a /etc/rw-sync.cfg
# rw-sync.sh -a /etc/shorewall/
|
Adesso è possibile effettuare il backup dei file ogni volta dopo una modifica
usando il comando seguente:
Codice 3.10: Backup sulla partizione in lettura/scrittura |
# rw-sync.sh -w
|
Per maggiori informazioni su rw-sync.sh, basta eseguirlo senza alcuna
opzione in modo da visualizzare le istruzioni.
4.
Output su disco
Obiettivi e requisiti
Nel capitolo precedente, è stato usato GNAP per produrre un LiveCD avviabile con
un sistema per dispositivi di rete su di esso. GNAP può anche essere usato per
inizializzare un disco con un filesystem personalizzato per dispositivi di rete,
pronto per essere montato su un sistema target e avviato.
Questa modalità di utilizzo può essere sfruttata per inizializzare dischi rigidi
che possono così essere montati su sistemi con basse prestazioni, ma sono
particolarmente utili per piccoli dispositivi target come gli strumenti forniti
da Soekris che possono essere avviati
da una scheda CompactFlash, o altri sistemi embedded che verranno avviati da un
bus IDE (Disk-On-Module, Disk-On-Chip...).
Per questa modalità di utilizzo, è necessario eseguire gnap_overlay con i
privilegi di root per poter così manipolare i dispositivi di memorizzazione a
basso livello. È anche leggermente più complicato e pericoloso da utilizzare,
quindi fare attenzione ed usare questo metodo a proprio rischio e pericolo.
Preparazione dei dispositivi
Precedentemente all'esecuzione di gnap_overlay per la prima volta su un
componente, bisogna preparare il dispositivo target. Si dovrebbe collegare il
disco rigido, la scheda CF (CompactFlash) o altri componenti che si desidera
usare sul sistema host e determinare qual'è il nome dell'elemento montato (i log
di sistema possono risultare utili in questo caso). Non c'è bisogno di montare i
componenti. Negli esempi che seguono si suppone che il disco target risulti
disponibile sul sistema host come /dev/sdb.
Se non lo si ha ancora fatto, è necessario partizionare il dispositivo. La
partizione dove GNAP installerà il filesystem dovrebbe essere marcata come
"attiva" ed essere grande abbastanza da contenere GNAP stesso. In caso di dubbi,
creare una singola partizione di 16Mb, e attivarla.
Codice 4.1: Partizionamento del disco target /dev/sdb |
# fdisk /dev/sdb
|
Il disco potrebbe anche avere un Master Boot Record (MBR) installato, che
permetterà al sistema di avviarsi. Se non si è sicuri, è possibile installare un
MBR utilizzando il seguente comando:
Codice 4.2: Installazione di un MBR sul disco target /dev/sdb |
# dd if=/usr/lib/gnap/mbr/mbr.bin of=/dev/sdb bs=512 count=1
|
Nota:
Sarà sufficiente preparare il dispositivo una sola volta, sarà possibile poi
eseguire più volte il comando gnap_overlay su di esso dal momento in cui
è stato preparato.
|
Utilizzo di gnap_overlay per la scrittura su disco
In modalità disco, bisogna passare due opzioni a gnap_overlay. Una è il
nome completo della partizione del disco target così come viene indicata sul
sistema host (opzione -d), l'altra è lo short-name (identificativo)
della partizione sul disco target così come viene indicata dal sistema target
all'avvio (opzione -r). La distinzione risulta abbastanza importante,
di seguito viene riportato un esempio.
Supponiamo di voler installare un sistema GNAP su una scheda CF, così da usarla
per avviare un dispositivo Soekris. Inserendola nel sistema host (quello su cui
verrà eseguito gnap_overlay), sarà riconosciuta come
/dev/sdb, per cui creareuna singola partizione su di essa,
/dev/sdb1. Quindi nel caso di questo esempio, il nome completo
della partizione sul disco target così come indicato sul sistema host è
/dev/sdb1.
D'altro canto, è risaputo, da test o specifiche, che il componente Soekris
riconoscerà la scheda CF inserita al suo interno come /dev/hda.
Quindi l'identificativo della partizione sul disco target così come indicato
sul sistema target durante l'avvio è "hda1".
Per inizializzare un disco con una configurazione GNAP, si deve semplicemente
sostituire l'opzione -i (utilizzata per costruire un file iso per LiveCD)
con le giuste opzioni -d e -r:
Codice 4.3: Inizializzazione della partizione /dev/sdb1 |
# gnap_overlay -d /dev/sdb1 -r hda1 -o myoverlay/
|
Nota:
La partizione sul disco target (opzione -d) potrebbe non risultare
montata. Lo script gnap_overlay la monterà quando necessario.
|
Opzioni specifiche
Due opzioni possono essere utili in caso di sistema target embedded (per sistemi
embedded, o incapsulati, si indicano sistemi specifici inseriti ed integrati con
il sistema che li ospita). Una è data dal parametro opzionale -m che può
venire utilizzato per indicare a GNAP di riportare in memoria il filesystem una
volta all'avvio per evitare accessi multipli in lettura che possono usurare il
dispositivo (o renderlo troppo lento).
L'altra consiste nel parametro -s che può essere utilizzato per indicare
a GNAP di inviare la console alla porta seriale, con uno specifico baudrate.
Risulta essere particolarmente utile per dispositivi con sola porta seriale come
appunto i dispositivi Soekris.
Codice 4.4: Riduzione degli accessi in lettura e utilizzo di una console seriale con baudrate pari a 19200 |
# gnap_overlay -d /dev/sdb1 -r hda1 -o myoverlay/ -m -s 19200
|
Scrittura file immagine del disco
Si potrebbe volere scrivere su un file immagine del disco piuttosto che lavorare
direttamente su quest'ultimo. Ciò è reso possibile dall'opzione -l:
questa permette di specificare il nome del file immagine del disco su cui
scrivere. Le opzioni della modalità disco (ad eccezione dell'opzione -d)
saranno applicate in modalità immagine.
Codice 4.5: Scrittura su un pre-esistente file immagine del disco nominato myimagefile.img |
# gnap_overlay -l myimagefile.img -r hda1 -o myoverlay/ -m -s 19200
|
Avvertenza:
Sul file immagine del disco è supportato l'uso di una sola partizione.
|
Alternativamente si può chiedere a GNAP di creare un file immagine del disco
usando l'opzione -L. Il file immagine ha dimensione predefinita pari a 15
Mb, ma si può specificarne una alternativa usando l'opzione -S:
Codice 4.6: Scrittura su una nuova immagine del disco chiamata newimagefile.img |
# gnap_overlay -L newimagefile.img -S 14 -r hda1 -o myoverlay/
|
5.
Uso delle estensioni
Estensioni e nuova realizzazione
si potrebbe volere aggiungere caratteristiche particolari al proprio sistema
GNAP per dispositivi di rete. Il modo più semplice per farlo è l'uso delle
estensioni, piccoli pacchetti software che aggiungono funzionalità ad un
sistema GNAP.
L'estensioni sono file compressi .tar.bz2 con nomi standardizzati.
Vengono installati in /usr/lib/gnap/extensions e sono chiamati
gnapext_[nome].tbz2. L'estensione boa, per esempio, è in
realtà il file /usr/lib/gnap/extensions/gnapext_boa.tbz2.
Il programma gnap_remaster combina un file contenente un filesystem GNAP
di base, uno file GNAP core esistente e estensioni per creare un nuovo file GNAP
core che contenga le estensioni scelte dall'utente. Quindi, sarà possibile usare
il file GNAP core esteso ottenuto con gnap_overlay per creare sistemi
specifici che facciano uso di funzionalità extra.
Figura 5.1: Come funziona gnap_remaster |
 |
Installazione del pacchetto di estensione per GNAP
Il pacchetto di estensione per GNAP, che installa il programma
gnap_remaster, il file basefs di GNAP e le estensioni predefinite (tutto
il necessario per lavorare con le estensioni), è disponibile attraverso Portage.
Si raccomanda di installare la versione corrispondente alla propria versione del
pacchetto GNAP.
Codice 5.1: Installazione del pacchetto di estensione per GNAP |
# emerge gnap-ext
|
Avvertenza:
Il programma gnap-ext potrebbe essere disponibile solamente in "~x86". Se
necessario modificare il proprio file
/etc/portage/package.keywords.
|
Nota:
Verrà recuperato così il file basefs di GNAP, che ha dimensioni abbastanza
grandi (circa 9Mb). È possibile impostare la USE flag "minimal" se non si
desidera scaricare il file basefs e il pacchetto di estensioni predefinito, ma
solamente il programma gnap_remaster.
|
Generazione di un file GNAP core con estensioni
Si può invocare gnap_remaster con i nomi delle estensioni necessarie, da
utente root. Questo porterà alla creazione di un file core rimaneggiato dal nome
mynewcore.tar con in aggiunta le estensioni richieste:
Codice 5.2: Generazione del file GNAP core, con aggiunta l'estensione per boa |
# gnap_remaster -e boa -o mynewcore.tar
|
Nota:
Si deve utilizzare il nome delle estensioni, non il nome del file. È
possibile combinare opzioni -e multiple contemporaneamente.
|
Utilizzo di gnap_overlay su un file GNAP core specifico
È facile fare in modo che gnap_overlay utilizzi il file core appena
creato invece che quello predefinito. Basta usare l'opzione -g:
Codice 5.3: Imporre a gnap_overlay l'utilizzo del file core creato a mano |
$ gnap_overlay -g mynewcore.tar -i myfirewall.iso -o myoverlay/
|
Nota:
Il programma gnap_remaster può essere usato anche su moduli creati
dall'utente: estensioni, minkernpackages e modulespackages. Per favore si legga
la GNAP Guida Utente
Avanzata (ndT: in inglese( per maggiori informazioni in merito
all'argomento.
|
6.
Riferimenti per GNAP
overlay.conf
| Opzioni |
Valori |
Valore predefinito |
| EMPTY_ROOTPASS |
Se impostato a yes (si), la password dell'utente root sarà vuota e chiunque
tramite terminale potrà accedere al sistema come tale utente. Dovrebbe
essere usata principalmente per scopi di test del sistema.
|
no |
| FW_TYPE |
Impostare su shorewall o firehol in merito a quale sistema
firewall si desidera utilizzare.
|
shorewall |
| IP_RELAY |
All'avvio deve essere attiva la trasmissione degli IP ? |
no |
| KEYMAP |
Valore per la mappa dei caratteri su console. |
us |
| NBCARDS |
Numero di schede di rete connesse che si vogliono avviare. |
1 |
| NTPSERVER |
Nome del server NTP da usare come sorgente per la sincronizzazione
temporale.
|
vuoto (il tempo non è sincronizzato tramite NTP) |
| RW_SYNC |
Percorso della partizione in lettura/scrittura da usare per il salvataggio
dei file di configurazione modificati utilizzando rw_sync.sh
|
vuoto (non è usato il sistema di backup RW_SYNC) |
| START_SERVICES |
Lista dei servizi extra da eseguire all'avvio. Utile per avviare servizi
dalle estensioni (come boa).
|
vuoto (nessun servizio extra) |
| TC_TYPE |
Impostare su cbqinit o htbinit in merito al sistema di
controllo del traffico che si desidera usare.
|
cbqinit |
| TIMEZONE |
Il codice di
fuso orario compatibile con uclibc.
|
vuoto (UTC) |
| USE_DNSDHCP |
Impostare a yes per avere il demone DNSMasq esguito all'avvio. |
no (non eseguito) |
| USE_FW |
Impostare a yes per avere lo script del firewall eseguito all'avvio.
Vedere l'opzione FW_TYPE.
|
no (non eseguito) |
| USE_PPPOE |
Impostare a yes per avere il demone rp-pppoe eseguito all'avvio.
|
no (non eseguito) |
| USE_SSH |
Impostare a yes per avere il demone Dropbear eseguito all'avvio.
|
no (non eseguito) |
| USE_TC |
Impostare a yes per avere lo script di controllo del traffico
eseguito all'avvio. Vedere l'opzione TC_TYEP.
|
no (non eseguito) |
| USE_VPN |
Impostare a yes per avere il demone OpenVPN eseguito all'avvio.
|
no (non eseguito) |
File specifici di GNAP da sovrascrivere sul sistema target
Oltre al file etc/overlay.conf, GNAP usa diversi file aggiuntivi
sul sistema target, di cui una lista è sotto riportata:
| File sovrascritti |
Scopo |
Esempio di contenuti |
| etc/rw_sync.conf |
Il file di controllo di rw_sync.sh, contiene i file e le directory di cui
dovrebbe essere fatto il backup. Probabilmente, si vorrà usare rw_sync.sh
per modificarne il contenuto.
|
|
| etc/gnap/start_services |
Contiene una lista di nomi di servizi (separati da spazi bianchi) che il
sistema target dovrebbe in aggiunta eseguire al proprio avvio. Questi
servizi devono esistere come script in /etc/init.d sul sistema
target.
|
iptables |
| etc/gnap/chpasswd |
Rappresenta un file che sarà riempito da chpasswd -e all'avvio per
inizializzare le password nel sistema. Dovrebbe contenere una lista di
linee nome_utente:password_cifrata.
|
root:$1$o0YB.OW/$llYLxHFYX5DQrZF7FZicJ0 |
Opzioni di gnap_overlay e gnap_remaster
Si prega di fare riferimento alla pagina di manuale per informazioni su tutte le
opzioni disponibili con questi comandi:
Codice 6.1: Recupero di maggiori informazioni su gnap_overlay o gnap_remaster |
$ man gnap_overlay
$ man gnap_remaster
|
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|