Versione 1.2.1 for debianitalia.org by OldSparky - 23/01/2004
Questo semplice HowTo o guida è stato scritto con l' intenzione di dare utili informazioni a chi vorrebbe mettere su, un piccolo fileserver headless (senza monitor e tastiera per intenderci) casalingo, adatto per l' archiviazione di files su hdd e della condivisioni degli stessi. Non vuole essere certamente una documentazione di riferimento e nemmeno una documentazione completa all' installazione/manutenzione di un fileserver.
Gli autori di questa documentazione, non hanno nessuna responsabilità riguardo a danni o a malfunzionamenti recati da programmi, spiegazioni, conf o altro, citate nella stessa. Qualsiasi tipo di inconveniente o uso criminale derivato dalla lettura di questa documentazione, non da agli autori nessuna responsabilità dell' accaduto. Questa documentazione è stata redatta con gli soli scopi di informazione e nient' altro. Gli autori non sono tenuti a dare nessun tipo di supporto riguardo le procedure descritte nella documentazione se non per propria iniziativa.
Le risposta a questa domanda è molto semplice: si ottengono moltissimi vantaggi! Il primo tra questi è sicuramente che GNU/Linux è completamente sotto licenza GPL; in seconda la distribuzione Debian è dotata da una ricca varietà di software sempre sotto licenza GPL che svolgono i piu' disparati servizi come per es. ma non solo: Apache, Proftpd, Samba, molto flessibili e potenti a costo 0. Dispone di shell testuali flessibili e comode come bash, che nel nostro caso sono molto piu' indicate e comode delle shell grafiche, dato che sono molto piu' veloce, snelle e occupano pochissima banda e risorse; la possibilità di installare solo quello che ci serve; avere un potentissimo firewall a portata di mano con l' utilizzo di semplici script e molti altri motivi che in questo momento non mi vengono in mente. Scegliere poi una come distro Debian solo per il fatto che è mantenuta da un' immensa comunity, perchè dispone di piu' software pachettizzato e perchè possiede uno strumento come apt non se ne puo' proprio fare a meno, era il minimo che potessi pensare.
L' hardware puo' essere poco e molto economico. Vanno bene tutti i tipi di piattaforme, in questo howto useremo quella intel (i*86) dato che la si trova dappertutto a costi bassissimi (usato ebay.it). In pratica ci serve come minimo:
- un tower (cassone + ali 350w vanno bene);
- mobo & cpu min pentium/athlon;
- min 128mb dimm ram;
- 10/100Mb Eth card economica (es. con controller RTL8139);
- lettore CDROM min 8x;
- HDD di piccola/media capienza (per installare l'OS e basta).
Tutto il resto è in piu', apparte gli HDD di capienza piu' giusta a quello che dovete fare che verranno aggiunti alla fine, magari usando un controller IDE a basso costo.
La prima cosa da fare, dopo aver cablato l' hardware e di esserci assicurati che tutto sia apposto collegamenti interni vari compresi, è cominciare a collegare la cavetteria esterna per poi passare al config del bios.
Per installare e configurare il tutto senza usare tastiera e monitor per la box (server), si ha bisogno di una console seriale. Per chi non l' ha mai sentita nominare prima d'ora, si tratta di solito di un piccolo PC senza hdd e con OS ridotto all' estremo in grado solo di instaurare communicazioni con altri PC/box attraverso una connessione/rete (in poche parole un terminale), cosa che il nostro beneamato PC e un cavo null modem sostituirà alla perfezione. In questo modo riusciremmo a gestire la nostra box tramite la sola seriale (RS232) e nient'altro; capirete quindi che se ne avete la necessità di tenere molte macchine che svolgono determinate, in questo modo vi staranno in pochissimo spazio e a costi ridottissimi (come si usa nelle farm in pratica).
Ovvero un cavo cross per seriali. Per farlo (forse ne esistono di gia' fatti, ma e' meglio evitare brutte sorprese con cavi non standard) andate da un comune negozio di elettronica e chiedete:
n° 2 connettori a 9 poli seriali femmine
n° 2 metri di cavo a 5 conduttori schermato
ora vi servira' anche un saldatore e del filo di stagno comune, che troverete se non avete nel medesimo negozio a pochi soldi (e' sempre utile ormai avere un saldatore da hobbista in casa, vedrete...), spelate i conduttori alle estremita' del cavo e saldate come sotto riportato i fili ai numeri del connettore:
CONN 1 CONN 2 ------------------------------- SG -5------------------5- SG (Signal ground) RD -2------------------3- TD (Transmit data) TD -3------------------2- RD (Receive data) RTS -7------------------8- CTS (Clear to send) CTS -8------------------7- RTS (Ready to send) DTR -4--+---------------1- DCD (Data carrier detect) | +--6- DSR (Data set ready) DSR -6--+ | DCD -1--+------------+--4- DTR (Data terminal ready)
colori di per se' non sono importanti, pero' state attenti ad associare un colore ad ogni linea e non usate lo stesso colore per una linea su un connettore e per un' altra sull' altro connettore. I numeri dei pin sono stampati a caldo sulla spina del connettore e dovreste vederli senza problemi e come ultimo attenti ai corti, potrebbero darvi grosse grane!
Io ho usato minicom che troverete su qualunque distro linux, è molto facile da usare e si usa direttamente da shell. Per windows cè Tera Term Pro, semplice e freeware, altrimenti si puo' usare HyperTerminal che è di default nelle installazioni win (non consigliato). Dopo aver installato, impostate in questo modo:
Connection
- Protocol: serial
- Port: COM1 (o 2 dipende su quale com avete collegato il NULL cable)
- Baud rate: 9600
- Flow Control: DTR/DSR
- .. tutto il resto ok
Emulation
- Spuntate ANSI Color
.. fine. A questo punto salvate e connettetevi, fate partire la connessione e vi dara' ready senza errori con uno schermo nero, questo vuol dire che è in attesa di input.
Debian (pochi lo sanno) ha delle immagini CD in versione .ISO contenete solo la base per installazione, usando queste infatti, possiamo fare un installazione via network, evitando di usare i soliti floppy riformattati 100 volte e poco sicuri se non difettosi e di avere inutili ISO con software sempre vecchio. L' immagine si chiama mini.iso e la potrete scaricare da qualsiasi mirror debian http://www.debian.org/mirror/list nella path:
/debian/dists/sid/main/installer-i386/current/images/netboot/
Prima di masterizzarla pero' dobbiamo fare qualche modifica. Per redirigere tutto l' input e l' output sulla seriale, dovete assolutamente modificare questo file, in quanto essendo un opzione non molto usata, non e' inserita per default nel config del bootloader. Aprite il file e sostituite alla prima voce "append" che trovate, "vga=normal" con "console=ttyS0,9600n8" e modificate poi il valore della voce "timeout" a 10. In questo modo, appena faremo il boot dal cd, tutto l' output che andrebbe al monitor arriverà al nostro programmino console.
Ricordo qui alcuni settaggi importanti che dovrete sistemare nel BIOS del server, in modo che tutto vada per il verso giusto durante lo startup:
- settare la voce HALT ON a "no error" in modo che non si fermi mai durante il booting;
- sulla selezione dell' ordine delle devices da inizializzare dopo il booting settate prima CDROM, poi HDD-0;
- l' opzione VIDEO OFF OPTION portatela su "always on" in modo da non bloccarsi al booting perchè manca la card;
- la voce START POWER FAILURE portatela a "full on" in modo che nel caso ci fosse un calo di tensione, il mulo parte subito;
- disabilitate assolutamente WAKE UP LAN/RING è solo una noia e manda in stand-by il mulo;
- infine settate POWER MANAGEMENT su "user define" e disabilitate tutte le opzioni tipo SUSPEND MODE e DOZE MODE che non ci servono.
Queste opzioni le trovate sui BIOS dell' Award che sono i piu' comuni, negli altri come phoenix dovrebbero esserci con altri nomi, ma alla fine sono sempre quelle. Siccome il 99% dei BIOS non supporta la modalità console ma solo VGA (PCI o AGP), dovrete usare il vostro monitor e la vs tastiera per configurare il tutto almeno all' inizio, questo perchè è una limitazione del BIOS stesso.
Collegato e controllato tutto, possiamo procedere al booting vero e proprio, dove alla fine dovremmo trovarci la maschera dell' installer direttamente sulla nostra console, ma se questo non succede, vuol dire che avete sbagliato qualche cosa. E' raro che al primo colpo ci si riesca, percui non perdetevi d'animo e trovate l' inghippo!
Generalmente i problemi sono risolvibili facendo delle prove del boot corretto del cd di installazione su un pc con monitor, mentre per il cavo, ponticellando sulla spina libera (che dovrebbe andare al server) i pin 2 e 3 e guardare se digitando dei caratteri sulla console, questi tornino indietro come un echo. Controllate anche di non avere collegato il cavo su COM errate, e sul config che le COM usate siano proprio quelle.
Per una guida su come installare debian base, basta che usiate google e cercate con stringhe del tipo "debian+install+howto" per trovare una marea di info, ma comunque se siete un po' esperti riuscirete a fare il tutto in poco tempo. Vi consiglio le solite cose, tipo fare una partizione di swap che sia la metà della vostra RAM, fare la partizione di boot di 100-200Mb e infine quella di root, che occuperà il resto dell' hda. Non usate l' hdd di installazione per archiviare i files, perchè deve stare sempre a disposizione delle applicazioni e del kernel, quindi potete usarne pure di piccolo taglio, a meno che non abbiate un array RAID. Poi vi consiglio di usare la "unstable" se volete l' ultima versione di Samba, oppure Sarge se volete proprio qualcosa di piu' stabile e sicuro (nei limiti del possibile), cosa che cmq su un server casalingo non è proprio una necessità. Altra cosa, usate dei mirror italiani che di solito è sempre meglio, e non quelli ufficiali Debian. Installate il minimo dei pacchetti (no graphic, games, print, etc..), quelli che vi servono insomma, ma installate soprattutto tutti i compilatori, linguaggi e interpreti che sono molto importanti per poi compilare e scriptare per fare manutezione al software del mulo.
In questo paragrafo elenchero' quali pacchetti vi saranno utili per gestire il vostro fileserver nel migliore dei modi, comunque questa lista è solo la base, quindi vi consiglio di farvi un giro per avere un idea di tutte le alternative che ci sono.
OpenSSL e SSH -> questi due servizi vi serviranno per gestire delle connessioni criptate, tunnel, telnet, sftp, etc.. Il primo viene parecchio usato tramite mod_ssl da quasi tutti i demoni http,ftp,samba; il secondo invece lo userete al posto del telnet e per creare tunnel (il telnet trasmette tutto in plain, si, anche la pass!), quindi per non dover usare la seriale (lenta) ma la eth che è moolto piu' veloce (usate putty come client ssh per gli OS M$).
Samba o NFS -> NFS è la condivisione degli HDD nelle reti posix, ma siccome il pc M$ cè sempre è solitamente meglio usare Samba, che supporta pienamente le reti M$. La condivisione di files è sicuramente utilissima, percui installatelo.
ProFTPd o Vsftpd -> Sono due demoni per protocollo FTP: il primo è molto versatile, è similie a Serv-U per M$, se invece preferite la sicurezza, oppure volete usarlo su internet vi consiglio il secondo che non è versatile come il primo, ma difficilmente ve lo bucano in quanto è scritto gurdando in primis questo aspetto (serve xinetd).
In giro troverete degli HOWTO che li trattano molto piu' completi di quello che potrei dirvi qui io in decine di righe, percui non mi dulingo nel spiegare come funzionano e come si usano, ma vi consiglio di leggere i vari manuali, howto, guide, che troverete sui siti officiali, unoficiali e con l' aiuto del solito motore di ricerca.
Manca poco! Ora che tutto è installato, non ci resta che configurare il kernel a usare per l' output video la seriale ttyS0 (com1) e logicamente dovremmo fare cosi' anche per LILO o GRUB. Niente di difficile cmq, si tratta solo di un paio di righe.
Adesso cosi' com'è installato il linux, non sarà funzionante la console seriale, pero' ci sono molti modi per accedere lo stesso:
- Installer Shell - se siete ancora nell' installazione, premete ALT+F2, loggatevi come root
.
- SSH - se il settaggio del network e dei driver della scheda eth0 è andata a buon termine, SSH vi aspetta sulla porta di default.
- Resque disk - un qualsiasi resque disk va + che bene, se non sapete come farlo o non ne avete http://www.sysresccd.org/.
Adesso che siete dentro, passate al prossimo paragrafo per configurare la console in modo che funzioni con nuovo sistema installato.
Per chi non lo sapesse, inittab è il file di config di init, cioè quel demone che si preoccupa di caricare tutti gli altri dopo il caricamento del kernel nella ram, compresa la shell di comando.
Una volta aperto (usate vi , altrimenti provate con pico) trovate le righe di getty e commentatele tutte con #, poi dopo queste aggiungete:
# Start aGetty on port COM1
s0:2345:respawn:/sbin/agetty -h ttyS0 9600 vt102
e salvate il file. In questo modo il kernel non aprirà nessuna console sulla vga, ma solo sulla COM1, ovvero ttyS0, semplice no?
Debian di default usa lilo, ma recentemente anche grub. In entrambi i casi, per fare in modo che il caricamento del kernel vi appaia in console, dovremmo aggiungere il parametro:
console=ttyS0,9600n8
Nel caso aveste grub, basta aggiungere in coda al kernel, es:
kernel (hd0,5)/boot/vmlinuz-2.4.2 root=/dev/hda6 console=ttyS0,9600n8 ro
mente in lilo dovremmo aggiungere il parametro nell' opzione append, es:
image=/boot/vmlinuz-2.1.131-1
label=linux
root=/dev/hda4
append="console=ttyS0,9600n8"
read-only
Fatto questo, nel caso aveste lilo, dovete aggiornare l' MBR eseguendo lilo in console, mentre se avete grub è già tutto ok .
Il vs nuovo fileserve è bello pronto e linux powered! Niente roba ingombrate, potete metterlo su uno scaffale, basta il solo cavo eth, e nel caso abbia problemi avrete la COM per trovare il guasto senza collegare e scollegare niente che non sia un cavo. La console seriale vi servirà soprattutto quando dovrete fare manutenzione o non riuscite ad accedere tramite SSH, collegato il cavo e siete apposto. Adesso non vi resta che configurare e mettere in funzione i servizi che avete installato precedentemente, installare nuovi hdd da 300Gb e passa e configurare il firewall (sempre!).
Date sempre un occhio di riguardo alla sicurezza, soprattutto se il fileserver è usato per sharing (spero non per warez) su internet e quindi dove tutti possono accedere. Nel caso lo usate solo come storage per backup delle varie workstation, oppure come hdd condiviso per webserver, vi consiglio di renderlo inaccessibile dall' esterno come minimo.
Mi resta che augurarvi un buon lavoro!
Commenti
Inviato da Stefano il Sab, 22/01/2005 - 19:53.
Complimenti!
Non posso che fare i complimenti a questa guida, gli ho dato un bel 10, contenuto di qualità, ed ha fatto un perfetto uso dei tag di formattazione.
A quando la prossima?
Stefano Mainardi - Founder of ILDN & CEO of Twinbit
Inviato da paolo il Sab, 22/01/2005 - 20:14.
I miei complimenti.
Ottima guida, perfetta in ogni dettaglio, i miei complimenti, a quando la prossima ?
Paolo Mainardi
CTO Twinbit http://www.twinbit.it
Vice Presidente -- ILDN - Italian Linux DIstro Network
Inviato da kripsio il Dom, 23/01/2005 - 13:04.
Re: I miei complimenti.
Meravigliosa.... veri complimenti... anche oggi ho imparato qualcosa... grassie grassie.
Inviato da OldSparky il Dom, 23/01/2005 - 21:01.
Re: I miei complimenti.
La nuova versione è già migliore. Con le prossime dovrebbe diventare ancora meglio. Stay tuned!
Inviato da madbrains il Mer, 09/02/2005 - 23:57.
Re: I miei complimenti.
Che c'è da commentare ? leggerla rende a pieno l'idea complimenti
http://mad.nemail.it