<?xml version='1.0' encoding='UTF-8'?> <!-- $Header: /var/www/www.gentoo.org/raw_cvs/gentoo/xml/htdocs/doc/it/quick-samba-howto.xml,v 1.4 2005/01/05 13:51:58 mush Exp $ --> <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> <guide link="quick-samba-howto.xml" lang="it"> <title>Gentoo Samba3/CUPS/Clam AV HOWTO</title> <author title="Autore"> <mail link="daff at dword dot org">Andreas "daff" Ntaflos</mail> </author> <author title="Autore"> <mail link="joshua@sungentoo.homeunix.com">Joshua Preston</mail> </author> <author title="Traduzione"> <mail link="sasdo@email.it">Enrico Sasdelli</mail> </author> <abstract> Installazione e configurazione di un Server Samba sotto Gentoo per la condivisione di file e stampanti con scansione virus. </abstract> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/1.0 --> <license/> <version>1.12</version> <date>2005-08-29</date> <chapter> <title>Introduzione all'Howto</title> <section> <title>Scopo</title> <body> <p> Questo Howto è pensato per guidare l'utente a passare da una rete con macchine client che "parlano" lingue diverse, a una rete con macchine che parlano la stessa lingua. L'obiettivo finale è quello di ottenere un ambiente di felice coesistenza fra architetture e tecnologie differenti, frequenti in ambito produttivo. </p> <p> Le direttive di questo Howto forniranno un ottimo passo avanti in una pacifica coesistenza fra Windows e, virtualmente, tutte le variazioni di *nix. </p> <p> Questo Howto originalmente è iniziato come una FAQ. Deve essere inteso come mezzo per esplorare le funzionalità e le potenzialità dei sistemi Gentoo, del portage e della flessibilità delle USE flags. Come per altri progetti, è semplice e veloce trovare ciò che manca nel regno Gentoo: non c'era nessun Howto rigurdante Samba. Gli utenti Gentoo hanno più richieste degli altri: alte performance, flessibilità e personalizzazione. Questo non implica che questo Howto non sia adatto ad altre distribuzioni, solo che è pensato per funzionare con versioni di Samba altamente personalizzabili. </p> <p> Verrà descritto come condividere files e stampanti tra macchine Windows e *nix. Mostrerà anche l'uso di VFS (Virtual File System), una feature di Samba, per incorporare una protezione dai virus automatica. Infine, verrà descritto come montare e manipolare le risorse condivise. </p> <p> Ci sono diversi topic che verranno menzionati, ma son fuori dalla portata di questo Howto. Verranno comunque notificati quando necessario. </p> <p> Questo documento è basato sull'unione di un'eccellente Howto scritto nel <uri link="http://forums.gentoo.org">Forum Gentoo</uri> da Andreas "daff" Ntaflos e le conoscenze di Joshua Preston. Il link alla discussione(inglese) è riportato qui sotto: </p> <ul> <li> <uri link="http://forums.gentoo.org/viewtopic.php?t=110931">HOWTO CUPS+Samba: printing from Windows & Linux</uri> </li> </ul> </body> </section> <section> <title>Prima di usare questa guida</title> <body> <p> Ci sono diverse altre guide per configuarare CUPS e/o Samba, è bene leggere anche alcune di quelle in modo da colmare le lacune lasciate (intenzionalmente) da questo Howto. Uno di questi documenti è veramente utile e ben scritto <uri link="/doc/it/printing-howto.xml">Guida alla Stampa in Gentoo</uri>, contiene configurazioni di stampanti particolari che non sono discusse qui. </p> </body> </section> <section> <title>Breve Descrizione</title> <body> <p> La seguente lista contiene gli argomenti trattati in questo Howto: </p> <ul> <li>Sul server Samba: <ul> <li>Installazione e configurazione di ClamAV</li> <li>Installazione e configurazione di Samba</li> <li>Installazione e configurazione di CUPS</li> <li>Aggiungerela stampante a CUPS</li> <li>Aggiungere i driver PS per i client Windows</li> </ul> </li> <li>Sui client Unix: <ul> <li>Installazione e configuazione di CUPS</li> <li>Configurazione di una stampante di default</li> <li>Mount di una condivisione Samba con Windows</li> </ul> </li> <li>Sul client Windows: <ul> <li>Configurazione della stampante</li> <li>Accesso alle condivisioni Samba</li> </ul> </li> </ul> </body> </section> <section> <title>Requisiti</title> <body> <p> Ciò che segue è il necessario per seguire l'Howto: </p> <ul> <li>net-fs/samba</li> <li>app-antivirus/clamav</li> <li>net-print/cups</li> <li>net-print/foomatic</li> <li>net-print/hpijs (per stampanti HP)</li> <li>Un Kernel a scelta (preferibilmente 2.4.24+ or 2.6.x)</li> <li>Una stampante (PS o non-PS, possibilmente non troppo recente)</li> <li>Una rete locale funzionante composta da più di una macchina.</li> </ul> <p> Il pacchetto principale è net-fs/samba, comunque, sarà necessario un kernel con il supporto a smbfs abilitato, in modo da poter montare una condivisione Samba o Windows da un altro computer. Verrà fatto l'emerge di CUPS se non è già installato. Verrà usato anche app-antivirus/clamav, per adattarlo a lavorare con Samba. Il Gentoo ebuild di samba supporta tutte le tecnologie di virus scanning quali Sophos, FProt, Fsav, Trend, Icap, Nai, ... </p> </body> </section> </chapter> <chapter> <title>Alcune note prima di installare Samba</title> <section> <title>Le flag USE</title> <body> <p> Prima di emergere qualsiasi cosa, è bene controllare le varie flag USE possibili per Samba. </p> <pre caption="Samba ha le seguenti flag USE:"> kerberos mysql xml acl cups ldap pam readline python oav libclamav </pre> <p> Le flag USE descritte qui sotto definiscono cosa includere o escludere dall'emerge di Samba in base alla tipologia di rete e alle specifiche richieste dal server. </p> <table> <tr> <th><b>Flag USE</b></th> <th>Descrizione</th> </tr> <tr> <th><b>kerberos</b></th> <ti> Include il supporto a Kerberos. Il server avrà bisogno di questo se si ha intenzione di far parte di un dominio esistente o di Active Directory. Per maggiori informazioni a riguardo, ci sono le note in fondo al documento. </ti> </tr> <tr> <th><b>mysql</b></th> <ti> Questo permetterà a Samba di usare MySQL per le autenticazioni password. Immagazzinerà ACL, username, password ed altro in un database anzichè in un singolo file. Samba necessiterà di autenticazioni password, in modo da agire come un server di convalidazione password o un Primary Domain Controller (PDC). </ti> </tr> <tr> <th><b>xml</b></th> <ti> La flag xml provvederà a un database per le password che permetterà a Samba di immagazzinare i dettagli degli account in file XML, per la stessa ragione della flag mysql. </ti> </tr> <tr> <th><b>acl</b></th> <ti> Abilita l' Access Control Lists, il supporto ACL in Samba, usa un ext2/ext3 patchato o XFS di SGI in modo da funzionare correttamente e di estendere accessi più dettagliati a file e directory, molto più che il tipico schema *nix GID/UID. </ti> </tr> <tr> <th><b>cups</b></th> <ti> Questo abilita il supporto al Common Unix Printing System. Questo provvede un'interfaccia che consente alle stampanti CUPS locali di essere condivise agli altri sistemi nella rete. </ti> </tr> <tr> <th><b>ldap</b></th> <ti> Abilita il Lightweight Directory Access Protocol (LDAP). Se Samba si deve aspettare di lavorare con Active Directory, questa flag deve essere usata. Questo deve essere usato nel caso che Samba necessiti di fare o fornire il login ad un Server di Dominio o a un Server Active Directory. La flag kerberos è necessaria per far funzionare propriamente questa opzione. </ti> </tr> <tr> <th><b>pam</b></th> <ti> Include il supporto per Pluggable Authentication Modules (PAM). Questo provvede alla possibilità di autenticare utenti sul Server Samba che è richiesto se gli utenti devono fare il login sul server. La flag kerberos è raccomandata per quest'opzione. </ti> </tr> <tr> <th><b>readline</b></th> <ti> Collega Samba a libreadline. E' altamente raccomandata e NON deve essere disattivata. </ti> </tr> <tr> <th><b>python</b></th> <ti> Python bindings API, provvede un API che permette, a chi programma in Python, di interfacciarsi con Samba. </ti> </tr> <tr> <th><b>oav</b></th> <ti> Provvede un controllo all'accesso delle condivisioni Samba con FRISK F-Prot Daemon, Kaspersky AntiVirus, OpenAntiVirus.org ScannerDaemon, Sophos Sweep (SAVI), Symantec CarrierScan e Trend Micro (VSAPI). </ti> </tr> <tr> <th><b>libclamav</b></th> <ti> Abilita ClamAV come virus scanner al posto del demone clamd. </ti> </tr> </table> <p> Un po' di cose che è meglio sapere riguardo le flag USE e le diverse funzioni che Samba include: </p> <ul> <li> ACL su ext2/3 è implementato attraverso gli Extended Attributes (EA). Le opzioni del kernel EA e ACL per ext2 e/o ext3 devono essere abilitate (dipende dal file system che si sta usando, possono essere selezionate entrambe). </li> <li> Dato che le funzioni di Active Directoru, ACL e PDC sono al di là dell'intenzione di questo Howto, a questi link si possono trovare delle ulteriori informazioni a loro riguardo: <ul> <li><uri>http://www.bluelightning.org/linux/samba_acl_howto/</uri></li> <li><uri>http://open-projects.linuxcare.com/research-papers/winbind-08162000.html</uri></li> <li><uri>http://www.wlug.org.nz/HowtoSamba3AndActiveDirectory</uri></li> </ul> </li> </ul> </body> </section> </chapter> <chapter> <title>Installazione del Software sul Server</title> <section> <title>Emerge di Samba</title> <body> <p> Prima di tutto, bisogna controllare che tutti gli hostname della rete siano risolti correttamente con un appropriato file <path>/etc/hosts</path>. Spesso <c>cupsaddsmb</c> genera errori se gli hostname non puntano alle macchine corrette. </p> <p> Probabilmente ora si può fare una valutazione di ciò che si ha bisogno per usare Samba o per le proprie esigenze. In questo Howto si useranno: </p> <ul> <li>oav</li> <li>cups</li> <li>readline</li> <li>pam</li> </ul> <p> Per ottimizzare le performance, dimensione dei binari e tempi di compilazione, le flag USE sono specificatamente incluse o escluse. </p> <pre caption="Emerge Samba"> # <i>echo "net-fs/samba oav readline cups pam" >> /etc/portage/package.use</i> # <i>emerge net-fs/samba</i> </pre> <note> Le architetture seguenti hanno bisogno di aggiungere <e>~</e> alle loro <e>KEYWORDS</e>: x86, ppc, sparc, hppa, ia64 e alpha. </note> <p> Questo emergerà sia Samba che CUPS (se CUPS non è già installato). </p> </body> </section> <section> <title>Emerging Clam AV</title> <body> <p> Dato che la flag USE <e>oav</e>, provvede solo ad un'interfaccia che consente l'accesso alla scansione virus, bisogna emergere il virus scanner. In questo Howto viene usato Clam AV. </p> <pre caption="Emerge ClamAV"> # <i>emerge app-antivirus/clamav</i> </pre> </body> </section> <section> <title>Emerge di foomatic</title> <body> <pre caption="Emerge foomatic"> # <i>emerge net-print/foomatic</i> </pre> </body> </section> <section> <title>Emerging di net-print/hpijs</title> <body> <p> Attenzione, questo serve solo se si ha una stampante HP. </p> <pre caption="Emerge hpijs"> # <i>emerge net-print/hpijs</i> </pre> </body> </section> </chapter> <chapter> <title>Configurazione del Server</title> <section> <title>Configurazione di Samba</title> <body> <p> Il file di configurazione principale di Samba è <path>/etc/samba/smb.conf</path>. E' diviso in sezioni indicate da [nome_sezione]. I commenti cominciano con # o ; . Un esempio di <path>smb.conf</path> è riportato qui sotto con commenti e suggerimenti per essere modificato. Se sono necessari ulteriori dettagli, si faccia riferimento alle manpage per <path>smb.conf</path>, al file d'esempio <path>smb.conf.example</path>, al sito web di Samba o a uno dei numerosi libri su Samba. </p> <pre caption="Un Esempio di /etc/samba/smb.conf"> [global] <comment># Sostituire MYWORKGROUPNAME con il proprio workgroup/domain</comment> workgroup = <comment>MYWORKGROUPNAME</comment> <comment># Questo serve giusto a far capire che non è Windows.. # %v stampa la versione di Samba</comment> server string = Samba Server %v <comment># Se si usa cups, bisogna inserirlo qui</comment> printcap name = cups printing = cups load printers = yes <comment># Settare un file di log di dimensioni massime di 50K.</comment> log file = /var/log/samba/log.%m max log size = 50 <comment># Alcune opzioni per le interfaccie...</comment> socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 <comment># Questo che segue è il binding del Server Samba alla propria # rete locale # Per esempio, se eth0 è la propria scheda di rete:</comment> interfaces = lo <i>eth0</i> bind interfaces only = yes <comment># Ora si specifica a chi è permesso accedere alla rete, # bisogna essere cauti in quanto non si usano password...</comment> hosts allow = 127.0.0.1 <i>192.168.1.0/24</i> hosts deny = 0.0.0.0/0 <comment># Altre opzioni sono: USER, DOMAIN, ADS e SERVER # Quella di default è USER.</comment> security = share <comment># Nessuna password, quindi si usano account Guest</comment> guest account = samba guest ok = yes <comment># Ora viene implementato il virus scanner. # NOTA: ponendo questo nella sezione [Global], si abilita # lo scan di tutte le condivisioni, si può spostare quanto segue # in una specifica sezione in modo da attivare lo scan solo su di essa.</comment> <comment># Per Samba 3.x. Questo abilita ClamAV </comment> vfs object = vscan-clamav vscan-clamav: config-file = /etc/samba/vscan-clamav.conf <comment># Ora vengono configurati i driver per la stampante</comment> [print$] comment = Printer Drivers path = /etc/samba/printer <comment># questo path mantiene la struttura dei driver</comment> guest ok = yes browseable = yes read only = yes <comment># Se si modifica quanto segue con "NOME_UTENTE,root" si abilita # l'utente specificato come amministratore delle stampanti.</comment> write list = <i>root</i> <comment># Quanto segue imposta la stampante da condividere, # il nome è completamente arbitrario.</comment> [NOME_STAMPANTE] comment = DESCRIZIONE DELLA STAMPANTE printable = yes path = /var/spool/samba public = yes guest ok = yes <comment># Anche qui si può modificare con "NOME_UTENTE,root" per abilitare # l'utente ad amministrare la stampante.</comment> printer admin = <i>root</i> <comment># Ora si configura la condivisione delle stampanti. # Può essere: browseable, printable, public.</comment> [printers] comment = All Printers browseable = no writable = no printable = yes public = yes guest ok = yes path = /var/spool/samba <comment># Anche qui si può modificare con "NOME_UTENTE,root" per abilitare # l'utente ad amministrare la stampante.</comment> printer admin = <i>root</i> <comment># Ora si crea una nuoca condivisione che può essere letta/scritta da # chiunque. E' simile ad una condivisione pubblica dove chiunque può fare quello che vuole.</comment> [public] comment = Public Files browseable = yes public = yes create mode = 0766 guest ok = yes path = /home/samba/public </pre> <warn> Se si vuole usare un account guest di Samba per fare qualsiasi cosa riguardo la stampa da client Windows, non bisogna settare <c>guest only = yes</c> nella sezione [global]. A volte, quando ci si collega da client Windows, sembra che gli account Guest causino problemi mentre <c>cupsaddsmb</c> è in funzione. Più avanti si parla di <c>cupsaddsmb</c> e dei problemi che ci possono essere. Conviene pertanto usare un account dedicato alla stampa, come <c>printeruser</c> o <c>printer</c>. Non fa danni e certamente protegge da molti problemi. </warn> <warn> Abilitare ClamAV a controllare i file ad ogni accesso nella sezione <c>[global]</c>, causerà un forte calo delle performance sul Server Samba. </warn> <p> Ora verranno create le directory richieste per la configurazione minima di Samba per condividere le stampanti attraverso la rete. </p> <pre caption="Creare le directory"> # <i>mkdir /etc/samba/printer</i> # <i>mkdir /var/spool/samba</i> # <i>mkdir /home/samba/public</i> </pre> <p> E' richiesto almeno un utente Samba per installare i driver delle stampanti e per permettere agli utenti di connettersi alle stesse. Gli utenti devono esistere nel file <path>/etc/passwd</path>. </p> <pre caption="Creazione degli Utenti"> # <i>smbpasswd -a root</i> <comment>Se un altro utente è stato impostato come Amministratore delle stampanti:</comment> # <i>smbpasswd -a nome_utente</i> </pre> <p> Le password Samba devono essere diverse dalle password in <path>/etc/passwd</path> </p> <p> Si renderà necessario poi aggiornare <path>/etc/nsswitch.conf</path> così che i sistemi Windows possano essere trovati semplicemente usando NetBIOS: </p> <pre caption="Modificare /etc/nsswitch.conf"> # <i>nano -w /etc/nsswitch.conf</i> <comment>(Modificare la riga hosts:)</comment> hosts: files dns <i>wins</i> </pre> </body> </section> <section> <title>Configurazione di Clam AV</title> <body> <p> Il file di configurazione specifificato in <path>smb.conf</path> è <path>/etc/samba/vscan-clamav.conf</path>. Mentre queste opzioni sono settate come default, il file delle azioni sui file infetti deve essere cambiato. </p> <pre caption="/etc/samba/vscan-clamav.conf"> [samba-vscan] <comment>; configurazione a runtime per vscan-samba con ; clamd ; tutte le opzioni sono impostate con i valori di default</comment> <comment>; Non controllare i file maggiori di X byte. Se X è 0 (default), ; questa opzione è disabilitata e tutti i file vengono controllati.</comment> max file size = 0 <comment>; Fai un log per ogni accesso a file (yes/no). Se impostato a "yes", ; ogni accesso viene loggato. Se impostato a "no", solo gli accessi a file ; infetti vengono loggati.</comment> verbose file logging = no <comment>; se impostato "yes"(default) ogni file viene controllato quando aperto.</comment> scan on open = yes <comment>; se impostato "yes"(default) ogni file viene controllato quando chiuso.</comment> scan on close = yes <comment>; Se la comunicazione con clamd fallisce, negare l'accesso ai file? ; (default: yes)</comment> deny access on error = yes <comment>; Se il demone fallisce con un errore meno rilevante (corruzione del file..) ; l'accesso al file deve essere negato? ; (default: yes)</comment> deny access on minor error = yes <comment>; Invio di un messaggio tramite Windows Messenger se viene ; trovato un virus? ; (default: yes)</comment> send warning message = yes <comment>; Cosa si vuole fare con un file infetto: ; quarantine: si tenta di spostare il file in una directory di quarantena. ; se impossibile, si cancella il file. ; delete: cancellare il file infetto ; nothing: non fare nulla</comment> infected file action = <comment>delete</comment> <comment>; Dove mettere i file infetti? E' bene cambiare la directory secondo ; le proprie esigenze. Notare che deve essere sullo stesso dispositivo della ; condivisione.</comment> quarantine directory = /tmp <comment>; Prefisso per i file in quarantena</comment> quarantine prefix = vir- <comment>; Se Windows tenta di aprire un file più volte in un tempo veramente ; breve, samba-vscan usa un meccanismo basato sull'ultimo file aperto per ; evitare multiple scansioni sul medesimo file. Questo parametro ; specifica il massimo numero di elementi da ricordare nella lista degli ; ultimi file aperti (default: 100).</comment> <comment>; un'operazione su un file è invalida dopo N secondi. Dove N ; è il numero di secondi di "vita" dell'ultimo file aperto. ; (Default: 5)</comment> lru file entry lifetime = 5 <comment>; Nome socket per clamd (default: /var/run/clamd)</comment> clamd socket name = /tmp/clamd <comment>; Porta su cui il demone di scan rimarrà in ascolto:</comment> oav port = 8127 </pre> <p> In genere è una buona idea far partire il virus scanner immediatamente. Bisogna quindi aggiungerlo al runlevel <e>default</e> ed eseguire subito il servizio <c>clamd</c>. Il servizio ha due processi: freshclam che preleva le definizioni dei virus da un database aggiornato, mentre clamd è il vero demone anti-virus. Per prima cosa è bene impostare i percorsi dei file di log. </p> <pre caption="Controllare le locazioni dei logfile"> # <i>vim /etc/clamd.conf</i> <comment>(Controllare la riga: "LogFile /var/log/clamd.log")</comment> # <i>vim /etc/freshclam.conf</i> <comment>(Controllare la riga: "UpdateLogFile /var/log/freshclam.log")</comment> # <i>vim /etc/conf.d/clamd</i> <comment>(Impostare "START_CLAMD=yes" e "START_FRESHCLAM=yes")</comment> </pre> <p> Ora si lancia il virus scanner. </p> <pre caption="Aggiungere clamd all'avvio ed eseguirlo:"> # <i>rc-update add clamd default</i> # <i>/etc/init.d/clamd start</i> </pre> </body> </section> <section> <title>Configurazione di CUPS</title> <body> <p> Questo è un po' più complicato. Il file principale di configurazione di CUPS è <path>/etc/cups/cupsd.conf</path>. La sua struttura è simile al file di Apache <path>httpd.conf</path>. Qui di seguito ci sono le direttive che bisogna cambiare o aggiungere al file originale: </p> <pre caption="/etc/cups/cupsd.conf"> ServerName <i>PrintServer</i> <comment># il proprio nome del Server delle Stampanti</comment> ServerAdmin <i>root@PrintServer</i> <comment># l'utente da contattare per l'amministrazione</comment> AccessLog /var/log/cups/access_log <comment># probabilmente non necessita di cambiamenti</comment> ErrorLog /var/log/cups/error_log <comment># nemmeno questo.</comment> LogLevel debug <comment># solo durante installazione e test. Poi si potrà # cambiare in 'info'</comment> MaxClients 100 <comment># numero dei client (attenzione a non esagerare)</comment> BrowseAddress @IF(<i>eth0</i>) <comment># Questo va cambiato con la propria interfaccia di rete</comment> <Location /> Order Deny,Allow Deny From All Allow From <i>192.168.1.*</i> <comment># indirizzo della rete, 192.168.1.* abiliterà # l'accesso da qualsiasi host alla rete 192.168.1.0. # Questo bisogna cambiarlo in base al proprio indirizzo di rete.</comment> </Location> <Location /admin> AuthType Basic AuthClass System Allow From <i>192.168.1.*</i> <comment># come sopra, ma per amministrare il sistema.</comment> Order Deny,Allow Deny From All </Location> </pre> <p> E' bene modificare <path>/etc/cups/mime.convs</path> decommentando alcune linee. I cambiamenti a <path>mime.convs</path> e a <path>mime.types</path> sono necessari per fare sì che CUPS stampi dei documenti di Microsoft Office. </p> <pre caption="/etc/cups/mime.convs"> <comment>(La linea seguente è reperibile verso la fine del file. Va decommentata.)</comment> application/octet-stream application/vnd.cups-raw 0 </pre> <p> Ora si può modificare <path>/etc/cups/mime.types</path> decommentando alcune linee. </p> <pre caption="/etc/cups/mime.types"> <comment>(La linea seguente è reperibile verso la fine del file. Va decommentata.)</comment> application/octet-stream </pre> <p> CUPS deve partire al boot ed essere avviato manualmente subito. </p> <pre caption="Impostare il servizio CUPS:" > <comment>(CUPS al boot)</comment> # <i>rc-update add cupsd default</i> <comment>(Per avviare o riavviare CUPS)</comment> # <i>/etc/init.d/cupsd restart</i> </pre> </body> </section> <section> <title>Installare una stampante con e per CUPS</title> <body> <p> Primo, al link <uri link="http://linuxprinting.org">LinuxPrinting.Org</uri> è possibile trovare e scaricare il corretto file PPD per la propria stampante e CUPS. Per fare ciò, bisogna cliccare il link "Printer Listings" sulla sinistra, selezionare la marca ed il modello della stampante quindi cliccare "Show". Nella pagina che si aprirà bisogna cliccare sul link "reccomended driver" dopo aver letto le varie note ed informazioni. Infine, nella pagina successiva basta scaricare il file PPD dopo aver letto le note e l'introduzione. Bisogna nuovamente selezionare marca e modello della stampante. Può risultare utile leggere <uri link="http://www.linuxprinting.org/cups-doc.html">CUPS quickstart guide</uri> per ulteriori informazioni. </p> <p> Ora, bisogna copiare il file PPD scaricato in <path>/usr/share/cups/model</path>. Ed ora si può finalmente installare la stampante. Questo può essere fatto tramite l'interfaccia web di CUPS o via linea di comando. L'interfaccia web può essere trovata a <path>http://PrintServer:631</path> una volta che CUPS è avviato. </p> <pre caption="Installazione della stampante via linea di comando"> # <i>lpadmin -p NOME_STAMPANTE -E -v usb:/dev/ultp0 -m PROPRIO_FILE.ppd</i> </pre> <p> Attenzione ad avere l'argomento <c>-p</c> NOME_STAMPANTE uguale a quello impostato durante la configurazione di Samba. Attenzione anche a mettere i corretti <c>usb:/dev/usb/DEVICE</c> o <c>parallel:/dev/DEVICE</c> o qualsiasi altro device usato per la stampante. </p> <p> Ora è possibile accedere alla stampante tramite l'interfaccia web e stampare una pagina di prova. </p> </body> </section> <section> <title>Installare i driver delle stampanti su Windows</title> <body> <p> Ora che le stampanti sono funzionanti, è tempo di installare i driver per i client Windows. Samba 2.2 introduce questa funzionalità . Visualizzando il Print Server da Risorse di Rete, cliccare con il tasto destro del mouse sulla stampante condivisa e selezionare "connetti". A questo punto verranno scaricati automaticamente i driver sui client connessi evitando la seccatura di installarli manualmente. </p> <p> Ci sono due set di driver per le stampanti PS. Il primo, Driver Adobe PS, può essere scaricato da: <uri link="http://www.adobe.com/support/downloads/main.html">Adobe</uri> (PostScript Printer Driver). Il secondo set contiene i driver CUPS PS, scaricabili dalla <uri link="http://www.cups.org/software.php">Homepage di CUPS</uri> selezionando "CUPS Driver for Windows" dal menu a tendina. Non ci dovrebbero essere differenze sostanziali di funzionamento tra i due, ma i driver Adobe PS necessitano di essere estratti su un sistema Windows dato che, di fatto, sono in un file binario leggibile da Windows. Infine la procedura di ricerca e copia dei file corretti è un po' più seccante. I driver CUPS dovrebbero avere qualche funzionalità in più rispetto agli Adobe. </p> <p> Qui verranno usati i driver CUPS per Windows. Il file scaricato si chiama <path>cups-samba-5.0rc2.tar.gz</path>. Bisogna estrarne i file in una directory. </p> <pre caption="Estrazione dei file e installazione"> # <i>tar -xzf cups-samba-5.0rc2.tar.gz</i> # <i>cd cups-samba-5.0rc2</i> <comment>(Usare questo script solo se CUPS si trova in /usr/share/cups)</comment> # <i>./cups-samba.install</i> </pre> <p> <path>cups-samba.ss</path> è un archivio TAR contente 3 file: <path>cups5.hlp</path>, <path>cupsdrvr5.dll</path> e <path>cupsui5.dll</path>. Questi sono i driver. </p> <warn> Lo script <c>cups-samba.install</c> potrebbe non funzionare per tutti i sistemi *nix (per esempio FreeBSD) perchè quasi tutto ciò che non è parte del sistema base è installato da qualche parte con il prefisso <path>/usr/local/</path>. Questo non dovrebbe essere il caso più frequente nelle installazioni GNU/Linux. Comunque, se si ha CUPS installato da qualche parte che non sia <path>/usr/share/cups/</path>, si può seguire l'esempio qui di seguito. </warn> <p> Si suppone che l'installazione di CUPS sia in <path>/usr/local/share/cups/</path>, e vi si vogliono installare i driver. E' sufficiente seguire i seguenti passi: </p> <pre caption="Installazione manuale dei driver"> # <i>cd /path/you/extracted/the/CUPS-driver/tarball/into</i> # <i>tar -xf cups-samba.ss</i> <comment>(questo estrae i file in usr/share/cups/drivers NELLA DIRECTORY CORRENTE)</comment> # <i>cd usr/share/cups/drivers</i> <comment>(non togliere / !)</comment> # <i>cp cups* /usr/local/share/cups/drivers</i> </pre> <p> Ora si può usare lo script <c>cupsaddsmb</c> fornito dalla distribuzione di CUPS. La man page di questo script è un'utile lettura. </p> <pre caption="Eseguire cupsaddsmb"> # <i>cupsaddsmb -H PrintServer -U root -h PrintServer -v NOME_STAMPANTE</i> <comment>(Al posto di NOME_STAMPANTE si può inserire il parametro "-a", che esporterà tutte le stampanti conosciute)</comment> # <i>cupsaddsmb -H PrintServer -U root -h PrintServer -a</i> </pre> <warn> L'esecuzione di questo comando spesso genera alcuni problemi. E' possibile richiedere aiuto <uri link="http://forums.gentoo.org/viewtopic.php?t=110931">in questo thread</uri>. </warn> <p> Alcuni errori comuni che possono avvenire: </p> <ul> <li> L'hostname dato come parametro per <c>-h</c> e <c>-H</c> (<c>PrintServer</c>) spesso non risolve correttamente il nome e non identifica il Print Server per l'interazione fra CUPS e Samba. Se si ha un errore simile a: <b>Warning: No PPD file for printer "NOME_STAMPANTE" - skipping!</b>, la prima cosa che si può provare è sostituire <c>PrintServer</c> con <c>localhost</c> e riprovare. </li> <li> Il comando fallisce con un <b>NT_STATUS_UNSUCCESSFUL</b>. Questo messaggio d'errore è abbastanza comune e può creare diversi problemi. Un tentativo che si può fare è settare temporaneamente <c>security = user</c> nel proprio <path>smb.conf</path>. Una volta terminata l'installazione si può risettare a share o a quello che era prima. </li> </ul> <p> Tutto ciò installa il corretto albero delle directory in <path>/etc/samba/printer</path>. Questo dovrebbe essere <path>/etc/samba/printer/W32X86/2/</path>. Dovrebbe contenere i 3 file dei driver e il file PPD rinominato come NOME_STAMPANTE.ppd (il nome con cui si ha installato la stampante). </p> <p> Se non ci sono stati errori o altre complicazioni, i driver delle stampanti sono stati installati. </p> </body> </section> <section> <title>Terminare la Configurazione</title> <body> <p> Infine, configurazione delle directory. </p> <pre caption="Ultimi cambiamenti necessari:"> # <i>mkdir /home/samba</i> # <i>mkdir /home/samba/public</i> # <i>chmod 755 /home/samba</i> # <i>chmod 755 /home/samba/public</i> </pre> </body> </section> <section> <title>Provare la configurazione di Samba</title> <body> <p> Per controllare che il file di configurazione sia formattato correttamente e che tutte le sue opzioni hanno la giusta sintassi, si usi il comando <c>testparm</c>. </p> <pre caption="Eseguire testparm"> <comment>(Di default testparm controlla /etc/samba/smb.conf)</comment> # <i>/usr/bin/testparm</i> Load smb config files from /etc/samba/smb.conf Processing section "[printers]" Global parameter guest account found in service section! Processing section "[public]" Global parameter guest account found in service section! Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions ... ... </pre> </body> </section> <section> <title>Avviare il servizio Samba</title> <body> <p> Aggiunta di samba al runlevel di default ed immediata esecuzione. </p> <pre caption="Aggiunta di Samba all'avvio e prima esecuzione"> # <i>rc-update add samba default</i> # <i>/etc/init.d/samba start</i> </pre> </body> </section> <section> <title>Controllo dei propri servizi</title> <body> <p> A questo punto è buona cosa controllre i propri log e controllare le condivisioni impostate con Samba: <c>smbclient</c>. </p> <pre caption="Controllo delle risorse condivise con Samba"> # <i>smbclient -L localhost</i> Password: <comment>(Comparirà una lunga lista di servizi)</comment> </pre> </body> </section> </chapter> <chapter> <title>Configurazione dei Client</title> <section> <title>Configurazione delle stampanti con un client *nix.</title> <body> <p> Indipendentemente dalle variazioni o dalla distribuzione, l'unica cosa di cui si ha bisogno è CUPS che va quindi installato. </p> <pre caption="Configurazione di un sistema Gentoo"> # <i>emerge cups</i> # <i>nano -w /etc/cups/client.conf</i> ServerName <i>PrintServer</i> <comment># il nome del server</comment> </pre> <p> Questo dovrebbe bastare. Non serve nient'altro. </p> <p> Se si ha una sola stampante, quella sarà quella di default. Se invece il server dovrà gestire più stampanti, l'amministratore dovrà definirne una di default sul server. Per impostarne una propria stampante di default differente da quella sul server, bisogna usare il comando <c>lpoptions</c>. </p> <pre caption="Impostare la propria stampante di default"> <comment>(Lista delle stampanti disponibili)</comment> # <i>lpstat -a</i> <comment>(Esempio di output)</comment> HPDeskJet930C accepting requests since Jan 01 00:00 laser accepting requests since Jan 01 00:00 <comment>(Define HPDeskJet950C come stampante di default)</comment> # <i>lpoptions -d HPDeskJet930C</i> </pre> <pre caption="Printing in *nix"> <comment>(Specificare la stampante da usare)</comment> # <i>lp -d HPDeskJet930C foo.txt</i> <comment>(Usare la stampante di default)</comment> # <i>lp foo.ps </i> </pre> <p> Per gestire le stampanti e i loro lavori nella coda di stampa, basta digitare <c>http://printserver:631</c> nel browser di un client, e si accederà ad una comoda interfaccia web. Bisogna cambiare <c>printserver</c> con il nome della <e>macchina</e> su cui gira il server di stampa, non il nome dato al server cups se si hanno usati due nomi differenti. </p> </body> </section> <section> <title>Montare una condivisione Samba o Windows in GNU/Linux</title> <body> <p> Ora bisogna configurare il kernel per supportare smbfs. Si assume di avere almeno un kernel compilato per controllare che ci siano tutte le opzioni necessarie. Per semplicità si imposteranno a "modulo" le varie voci. </p> <pre caption="Opzioni del kernel (nel file .config)" > CONFIG_SMB_FS=m CONFIG_SMB_UNIX=y </pre> <p> Quindi eseguire l'installazione dei moduli per installarli. Eseguire il comando seguente per caricarli: </p> <pre caption="Caricare i moduli del kernel"> # <i>modprobe smbfs</i> </pre> <p> Una volta che il modulo è caricato, è possibile montare una risorsa condivisa di Samba o Windows. Per questo si usa <c>mount</c> come segue: </p> <pre caption="Montare una condivisione Samba o Windows"> <comment>(La sintassi per montare una risorsa condivisa è: mount -t smbfs [-o username=xxx,password=xxx] //server/share /mnt/point Se non si stanno usando password, non è necessario inserire il parametro)</comment> # <i>mount -t smbfs //PrintServer/public /mnt/public</i> <comment>(Se la password è richiesta)</comment> # <i>mount -t smbfs -o username=USERNAME,password=PASSWORD //PrintServer/public /mnt/public</i> </pre> <p> Una volta montato vi si potrà accedere come se fosse una risorsa locale. </p> </body> </section> <section> <title>Configurazione delle stampanti remote su client Windows NT/2000/XP</title> <body> <p> E' giusto un punta-e-clicca. Visualizzare <path>\\PrintServer</path> da Risorse di Rete, cliccare con il tasto destro del mouse sulla stampante e selezionare "connetti". Questo scaricherà automaticamente i driver su Windows ed ora ogni applicazione (come Word o Acrobat) potrà vedere le stampanti condivise ed utilizzarle. </p> </body> </section> </chapter> <chapter> <title>Note Finali</title> <section> <body> <p> Bene, ora tutto è ultimato con un sistema di stampanti remote e condivise funzionante ed esente da virus per sistemi sia *nix che Windows! </p> </body> </section> </chapter> <chapter> <title>Link e Risorse</title> <section> <title>Link</title> <body> <p> Alcuni links che possono essere d'aiuto nelle impostazioni, configurazioni e nei problemi riguardanti l'installazione: </p> <ul> <li><uri link="http://www.cups.org/">CUPS Homepage</uri></li> <li><uri link="http://www.samba.org/">Samba Homepage</uri></li> <li><uri link="http://linuxprinting.org/">LinuxPrinting dot Org</uri></li> <li> <uri link="http://www.linuxprinting.org/kpfeifle/SambaPrintHOWTO/">Kurt Pfeifle's Samba Print HOWTO</uri> ( Questo Howto contiene davvero <e>TUTTO</e> ciò che è scritto qui, più molte informazioni riguardo a CUPS e Samba e in genere alle reti di stampanti. Veramente molto interessante e dettagliato) </li> <li><uri link="http://www.freebsddiary.org/cups.php">FreeBSD Diary's CUPS Topic</uri></li> </ul> </body> </section> <section> <title>Risoluzione dei Problemi</title> <body> <p> <uri link="http://www.linuxprinting.org/kpfeifle/SambaPrintHOWTO/Samba-HOWTO-Collection-3.0-PrintingChapter-11th-draft.html#37">Questa Pagina</uri> è presa dal manuale "Printing Support in Samba 3.0" di Kurt Pfeifle. Contiene molti trucchi e segreti di Samba. Prima di chiedere, è bene darci un'occhiata, magari la soluzione è proprio lì. </p> </body> </section> </chapter> </guide>