<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Linux Shadow Password HOWTO: Altri programmi a cui potreste dover fare un aggiornamento o applicare una patch</TITLE> <LINK HREF="Shadow-Password-HOWTO-7.html" REL=next> <LINK HREF="Shadow-Password-HOWTO-5.html" REL=previous> <LINK HREF="Shadow-Password-HOWTO.html#toc6" REL=contents> </HEAD> <BODY> <A HREF="Shadow-Password-HOWTO-7.html">Avanti</A> <A HREF="Shadow-Password-HOWTO-5.html">Indietro</A> <A HREF="Shadow-Password-HOWTO.html#toc6">Indice</A> <HR> <H2><A NAME="s6">6. Altri programmi a cui potreste dover fare un aggiornamento o applicare una patch</A></H2> <P>Anche se la shadow suite contiene programmi sostitutivi per la maggior parte dei programmi che hanno bisogno di accedere alle password, ci sono alcuni altri programmi su molti sistemi che richiedono accesso alle password. <P>Se state usando una <EM>Distribuzione Debian </EM> (o anche se non la usate), potete ottenere i sorgenti Debian per i programmi che devono essere ricompilati da: ftp://ftp.debian.org/debian/stable/source/ <P>Il resto di questa sezione si occupa di come aggiornare <CODE>adduser</CODE>, <CODE>wu_ftpd</CODE>, <CODE>ftpd</CODE>, <CODE>pop3d</CODE>, <CODE>xlock</CODE>, <CODE>xdm</CODE> e <CODE>sudo</CODE> in modo che supportino la shadow suite. <P>Guardate il capitolo <A HREF="Shadow-Password-HOWTO-8.html#sez-agg">Aggiungere il supporto Shadow ad un programma C</A> per una discussione su come aggiungere il supporto shadow a qualunque altro programma che ne abbia bisogno (anche se il programma deve allora essere eseguito SUID root o SGID shadow per poter veramente accedere al file shadow). <P> <H2><A NAME="ss6.1">6.1 Il programma adduser della Slackware</A> </H2> <P>Le distribuzioni Slackware (e forse anche altre) contengono un programma interattivo per aggiungere utenti chiamato <CODE>/sbin/adduser</CODE>. Una versione shadow di questo programma si può ottenere da <A HREF="ftp://sunsite.unc.edu/pub/Linux/system/Admin/accounts/adduser.shadow-1.4.tgz">ftp://sunsite.unc.edu/pub/Linux/system/Admin/accounts/adduser.shadow-1.4.tar.gz</A>. <P>Vi incoraggio ad usare i programmi che vengono forniti con la <EM>Shadow Suite</EM> (<CODE>useradd</CODE>, <CODE>usermod</CODE>, e <CODE>userdel</CODE>) invece del programma Slackware <CODE>adduser</CODE>. Imparare ad usarli richiede poco tempo, ma vale la pena fare lo sforzo perché avete molto più controllo ed essi eseguono un appropriato lock dei file <CODE>/etc/passwd</CODE> e <CODE>/etc/shadow</CODE> (<CODE>adduser</CODE> non lo fa). <P>Guardate il capitolo su <A HREF="Shadow-Password-HOWTO-7.html#sez-lavoro">Mettere al lavoro la Shadow Suite</A> per maggiori informazioni. <P>Ma se dovete proprio usarlo (adduser N.d.T.), ecco cosa dovete fare: <BLOCKQUOTE><CODE> <PRE> tar -xzvf adduser.shadow-1.4.tar.gz cd adduser make clean make adduser chmod 700 adduser cp adduser /sbin </PRE> </CODE></BLOCKQUOTE> <P> <H2><A NAME="ss6.2">6.2 Il Server wu_ftpd</A> </H2> <P>La maggior parte dei sistemi Linux contengono il server <CODE>wu_ftpd</CODE>. Se la vostra distribuzione non ha la shadow installata, allora il vostro <CODE>wu_ftpd</CODE> non sarà compilato per la shadow. <CODE>wu_ftpd</CODE> viene lanciato da <CODE>inetd/tcpd</CODE> come un processo di <EM>root</EM>. Se state eseguendo un vecchio demone <CODE>wu_ftpd</CODE>, vorrete aggiornarlo comunque perché quelli più vecchi hanno un baco che permetterebbe che l'account <EM>root</EM> venisse compromesso (per maggiori informazione guardate la <A HREF="http://bach.cis.temple.edu/linux/linux-security/Linux-Security-FAQ/Linux-wu.ftpd-2.4-Update.html">Linux security home page</A>). <P>Fortunatamente, avete solo bisogno di ottenere il codice sorgente e di ricompilarlo con le shadow abilitate. <P>Se non state usando un sistema ELF, il server <CODE>wu_ftp</CODE> può essere trovato su Sunsite come <A HREF="ftp://sunsite.unc.edu/pub/Linux/system/Network/file-transfer/wu-ftpd-2.4-fixed.tar.gz">wu-ftp-2.4-fixed.tar.gz</A><P>Una volta ottenuto il server, mettetelo in <CODE>/usr/src</CODE>, quindi digitate: <BLOCKQUOTE><CODE> <PRE> cd /usr/src tar -xzvf wu-ftpd-2.4-fixed.tar.gz cd wu-ftpd-2.4-fixed cp ./src/config/config.lnx.shadow ./src/config/config.lnx </PRE> </CODE></BLOCKQUOTE> <P>Quindi editate <CODE>./src/makefiles/Makefile.lnx</CODE>, e cambiate la riga: <BLOCKQUOTE><CODE> <PRE> LIBES = -lbsd -support </PRE> </CODE></BLOCKQUOTE> in: <BLOCKQUOTE><CODE> <PRE> LIBES = -lbsd -support -lshadow </PRE> </CODE></BLOCKQUOTE> <P>Ora siete pronti ad eseguire lo script "build" e all'installazione: <BLOCKQUOTE><CODE> <PRE> cd /usr/src/wu-ftpd-2.4-fixed /usr/src/wu-ftp-2.4.fixed/build lnx cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old cp ./bin/ftpd /usr/sbin/wu.ftpd </PRE> </CODE></BLOCKQUOTE> <P>Questo usa il file di configurazione delle shadow di Linux, compila ed installa il server. <P>Sul mio sistema Slackware 2.3 devo fare anche le seguenti cose prima di eseguire il <CODE>build</CODE>: <BLOCKQUOTE><CODE> <PRE> cd /usr/include/netinet ln -s in_systm.h in_system.h cd - </PRE> </CODE></BLOCKQUOTE> <P>Sono stati riscontrati dei problemi nel compilare questo pacchetto sotto sistemi ELF, ma la versione Beta della prossima release funziona bene. Si può trovare come <A HREF="ftp://tscnet.com/pub/linux/network/ftp/wu-ftpd-2.4.2-beta-10.tar.gz">wu-ftp-2.4.2-beta-10.tar.gz</A><P>Una volta ottenuto il server, mettetelo in <CODE>/usr/src</CODE>, quindi digitate: <BLOCKQUOTE><CODE> <PRE> cd /usr/src tar -xzvf wu-ftpd-2.4.2-beta-9.tar.gz cd wu-ftpd-beta-9 cd ./src/config </PRE> </CODE></BLOCKQUOTE> <P>Poi editate <CODE>config.lnx</CODE>, e cambiate: <BLOCKQUOTE><CODE> <PRE> #undef SHADOW.PASSWORD </PRE> </CODE></BLOCKQUOTE> in: <BLOCKQUOTE><CODE> <PRE> #define SHADOW.PASSWORD </PRE> </CODE></BLOCKQUOTE> Poi, <BLOCKQUOTE><CODE> <PRE> cd ../Makefiles </PRE> </CODE></BLOCKQUOTE> ed editate il file <CODE>Makefile.lnx</CODE> e cambiate: <BLOCKQUOTE><CODE> <PRE> LIBES = -lsupport -lbsd # -lshadow </PRE> </CODE></BLOCKQUOTE> in: <BLOCKQUOTE><CODE> <PRE> LIBES = -lsupport -lbsd -lshadow </PRE> </CODE></BLOCKQUOTE> Poi eseguite build ed installate: <BLOCKQUOTE><CODE> <PRE> cd .. build lnx cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old cp ./bin/ftpd /usr/sbin/wu.ftpd </PRE> </CODE></BLOCKQUOTE> <P>Notate che dovreste controllare il vostro file <CODE>/etc/inetd.conf</CODE> per essere sicuri che è qui che viene realmente realmente il vostro server wu.ftpd. È stato riscontrato che alcune distribuzioni mettono i server dei demoni in posti diversi, e quindi wu.ftpd in particolare potrebbe essere chiamato in qualche altro modo. <P> <H2><A NAME="ss6.3">6.3 Ftpd standard </A> </H2> <P>Se state usando il server <CODE>ftpd</CODE> standard, vi consiglio di aggiornarlo al server <CODE>wu_ftpd</CODE>. A parte il baco conosciuto discusso sopra, generalmente è considerato più sicuro. <P>Se insistete ad usare quello standard, o avete bisogno di supporto <EM>NIS</EM>, Sunsite ha <A HREF="ftp://sunsite.unc.edu/pub/Linux/system/Network/file-transfer/ftpd-shadow-nis.tgz">ftpd-shadow-nis.tgz</A><P> <H2><A NAME="ss6.4">6.4 pop3d (Post Office Protocol 3)</A> </H2> <P>Se avete bisogno di supportare il <EM>Post Office Protocol 3 (POP3)</EM>, avete bisogno di ricompilare un programma <CODE>pop3d</CODE>. <CODE>pop3d</CODE> è normalmente eseguito da <CODE>inetd/tcpd</CODE> come <CODE>root</CODE>. <P>Ci sono due versioni disponibili da: <A HREF="ftp://sunsite.unc.edu/pub/Linux/system/Mail/pop/pop3d-1.00.4.linux.shadow.tar.gz">pop3d-1.00.4.linux.shadow.tar.gz</A> e <A HREF="ftp://sunsite.unc.edu/pub/Linux/system/Mail/pop/pop3d+shadow+elf.tar.gz">pop3d+shadow+elf.tar.gz</A><P>Entrambi questi sono abbastanza semplici da installare. <P> <H2><A NAME="ss6.5">6.5 xlock</A> </H2> <P>Se installate la Shadow Suite e poi eseguite <EM>X Windows System</EM> e bloccate (lock) lo schermo senza aggiornare il vostro <CODE>xlock</CODE>, dovrete usare <CODE>CNTL-ALT-Fx</CODE> per passare ad un'altra <EM>tty</EM>, collegarvi, e uccidere il processo <CODE>xlock</CODE> (o usare <CODE>CNTL-ALT-BS</CODE> per uccidere il server X). Fortunatamente è abbastanza facile aggiornare il vostro programma <CODE>xlock</CODE>. <P>Se state usando le Versioni 3.x.x di XFree86, probabilmente state usando <CODE>xlockmore</CODE> (che è un grande screen-saver in aggiunta a lock). Questo pacchetto supporta le <EM>shadow</EM> con una ricompilazione. Se avete un <CODE>xlock</CODE> precedente, vi consiglio di aggiornarlo a questo. <P><CODE>xlockmore-3.5.tgz</CODE> è disponibile su: <A HREF="ftp://sunsite.unc.edu/pub/Linux/X11/xutils/screensavers/xlockmore-3.7.tgz">ftp://sunsite.unc.edu/pub/Linux/X11/xutils/screensavers/xlockmore-3.7.tgz</A><P>Fondamentalmente, questo è quello che avete bisogno di fare: <P>Ottenere il file <CODE>xlockmore-3.7.tgz</CODE> e metterlo in <CODE>/usr/src</CODE>, spacchettarlo: <BLOCKQUOTE><CODE> <PRE> tar -xzvf xlockmore-3.7.tgz </PRE> </CODE></BLOCKQUOTE> <P>Editare il file: <CODE>/usr/X11R6/lib/X11/config/linux.cf</CODE>, e cambiare la riga: <BLOCKQUOTE><CODE> <PRE> #define HasShadowPasswd NO in #define HasShadowPasswd YES </PRE> </CODE></BLOCKQUOTE> <P>Quindi compilate gli eseguibili: <BLOCKQUOTE><CODE> <PRE> cd /usr/src/xlockmore xmkmf make depend make </PRE> </CODE></BLOCKQUOTE> <P>Quindi spostare tutto al suo posto e aggiornare i proprietari ed i permessi dei file: <BLOCKQUOTE><CODE> <PRE> cp xlock /usr/X11R6/bin/ cp XLock /var/X11R6/lib/app-defaults/ chown root.shadow /usr/X11R6/bin/xlock chmod 2755 /usr/X11R6/bin/xlock chown root.shadow /etc/shadow chmod 640 /etc/shadow </PRE> </CODE></BLOCKQUOTE> <P>Il vostro xlock ora funzionerà correttamente. <P> <H2><A NAME="ss6.6">6.6 xdm</A> </H2> <P><CODE>xdm</CODE> è un programma che presenta uno schermo di login per X-Windows. Alcuni sistemi avviano <CODE>xdm</CODE> quando viene detto al sistema di andare ad uno specifico livello di esecuzione (vedere <CODE>/etc/inittab</CODE>). <P>Con la <EM>Shadow Suite</EM> installata, <CODE>xdm</CODE> avrà bisogno di essere aggiornato. Fortunatamente è abbastanza facile aggiornare il vostro programma <CODE>xdm</CODE>. <P><CODE>xdm.tar.gz</CODE> è disponibile su: <A HREF="ftp://sunsite.unc.edu/pub/Linux/X11/xutils/xdm.tar.gz">ftp://sunsite.unc.edu/pub/Linux/X11/xutils/xdm.tar.gz</A><P>Prendete il file <CODE>xdm.tar.gz</CODE> e mettetelo in <CODE>/usr/src</CODE>, quindi per spacchettarlo: <BLOCKQUOTE><CODE> <PRE> tar -xzvf xdm.tar.gz </PRE> </CODE></BLOCKQUOTE> <P>Editate il file: <CODE>/usr/X11R6/lib/X11/config/linux.cf</CODE>, e cambiate la riga: <BLOCKQUOTE><CODE> <PRE> #define HasShadowPasswd NO in #define HasShadowPasswd YES </PRE> </CODE></BLOCKQUOTE> <P>Quindi compilate gli eseguibili: <BLOCKQUOTE><CODE> <PRE> cd /usr/src/xdm xmkmf make depend make </PRE> </CODE></BLOCKQUOTE> <P>Poi mettete tutto al suo posto: <BLOCKQUOTE><CODE> <PRE> cp xdm /usr/X11R6/bin/ </PRE> </CODE></BLOCKQUOTE> <P><CODE>xdm</CODE> è eseguito da <EM>root</EM> perciò non avete bisogno di cambiare i permessi del file. <P> <H2><A NAME="ss6.7">6.7 sudo</A> </H2> <P>Il programma <CODE>sudo</CODE> permette ad un amministratore di sistema di lasciare che gli utenti eseguano programmi che normalmente richiederebbero accesso da root. Questo è comodo perché lascia limitato l'accesso di amministratore all'account root stesso, mentre permette agli utenti di fare cose tipo il mount dei dispositivi. <P><CODE>sudo</CODE> necessita di leggere le password perché verifica la password dell'utente quando viene invocato. <CODE>sudo</CODE> già viene eseguito SUID root, perciò accedere al file <CODE>/etc/shadow</CODE> non è un problema. <P><CODE>sudo</CODE> per la shadow suite, è disponibile su: <A HREF="ftp://sunsite.unc.edu/pub/Linux/system/Admin/sudo-1.2-shadow.tgz">ftp://sunsite.unc.edu/pub/Linux/system/Admin/sudo-1.2-shadow.tgz</A><P><EM>Attenzione</EM>: Quando installate <CODE>sudo</CODE> il vostro file <CODE>/etc/sudoers</CODE> sarà sostituito con uno predefinito, perciò avrete bisogno di farne una copia di backup se avete aggiunto qualcosa a quello predefinito (potreste anche editare il Makefile e rimuovere la riga che copia il file predefinito in <CODE>/etc</CODE>). <P>Il pacchetto è già predisposto per le shadow, perciò tutto quello che è richiesto è ricompilare il pacchetto (mettetelo in <CODE>/usr/src</CODE>): <BLOCKQUOTE><CODE> <PRE> cd /usr/src tar -xzvf sudo-1.2-shadow.tgz cd sudo-1.2-shadow make all make install </PRE> </CODE></BLOCKQUOTE> <P> <H2><A NAME="ss6.8">6.8 imapd (pacchetto Pine E-Mail)</A> </H2> <P><CODE>imapd</CODE> è un server e-mail simile a <CODE>pop3d</CODE>. <CODE>imapd</CODE> è incluso nel pacchetto <EM>Pine E-mail</EM>. La documentazione inclusa nel pacchetto afferma che nei sistemi Linux è predefinita l'opzione di includere il supporto shadow. Comunque, ho trovato che questo non è vero. Inoltre, la combinazione script di build/Makefile su questo pacchetto rende molto difficile aggiungere la libreria <CODE>libshadow.a</CODE> in tempo di compilazione, perciò non sono riuscito ad aggiungere il supporto shadow per <CODE>imapd</CODE>. <P>Se qualcuno è riuscito a farlo, per favore mi mandi una e-mail, ed io includerò qui la soluzione. <P> <H2><A NAME="ss6.9">6.9 pppd (Point-to-Point Protocol Server)</A> </H2> <P>Il server pppd può essere impostato in modo che usi diversi tipi di autenticazione: <EM>Password Authentication Protocol</EM> (PAP) e <EM>Cryptographic Handshake Authentication Protocol</EM> (CHAP). Il server pppd di solito legge le stringhe contenenti le password che usa da <CODE>/etc/ppp/chap-secrets</CODE> e/o <CODE>/etc/ppp/pap-secrets</CODE>. Se state usando questo comportamento predefinito di pppd, non è necessario reinstallare pppd. <P>pppd vi permette anche di usare il parametro <EM>login</EM> (o su linea di comando, o nella configurazione del file <CODE>options</CODE>). Se viene data l'opzione <EM>login</EM>, il pppd userà il file <CODE>/etc/passwd</CODE> per il nome utente e la password per il <EM>PAP</EM>. Questo, ovviamente, non funzionerà più ora che il nostro file shadow è "oscurato". Per quanto riguarda pppd-1.2.1d questo richiede aggiunta di codice per il supporto shadow. <P>L'esempio dato nel prossimo capitolo consiste nell'aggiunta di supporto shadow a <CODE>pppd-1.2.1d</CODE> (una vecchia versione di pppd). <P><CODE>pppd-2.2.0</CODE> contiene già il supporto shadow. <P> <HR> <A HREF="Shadow-Password-HOWTO-7.html">Avanti</A> <A HREF="Shadow-Password-HOWTO-5.html">Indietro</A> <A HREF="Shadow-Password-HOWTO.html#toc6">Indice</A> </BODY> </HTML>