Avanti Indietro Indice

6. Altri programmi a cui potreste dover fare un aggiornamento o applicare una patch

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.

Se state usando una Distribuzione Debian (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/

Il resto di questa sezione si occupa di come aggiornare adduser, wu_ftpd, ftpd, pop3d, xlock, xdm e sudo in modo che supportino la shadow suite.

Guardate il capitolo Aggiungere il supporto Shadow ad un programma C 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).

6.1 Il programma adduser della Slackware

Le distribuzioni Slackware (e forse anche altre) contengono un programma interattivo per aggiungere utenti chiamato /sbin/adduser. Una versione shadow di questo programma si può ottenere da ftp://sunsite.unc.edu/pub/Linux/system/Admin/accounts/adduser.shadow-1.4.tar.gz.

Vi incoraggio ad usare i programmi che vengono forniti con la Shadow Suite (useradd, usermod, e userdel) invece del programma Slackware adduser. 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 /etc/passwd e /etc/shadow (adduser non lo fa).

Guardate il capitolo su Mettere al lavoro la Shadow Suite per maggiori informazioni.

Ma se dovete proprio usarlo (adduser N.d.T.), ecco cosa dovete fare:

tar -xzvf adduser.shadow-1.4.tar.gz
cd adduser
make clean
make adduser
chmod 700 adduser
cp adduser /sbin

6.2 Il Server wu_ftpd

La maggior parte dei sistemi Linux contengono il server wu_ftpd. Se la vostra distribuzione non ha la shadow installata, allora il vostro wu_ftpd non sarà compilato per la shadow. wu_ftpd viene lanciato da inetd/tcpd come un processo di root. Se state eseguendo un vecchio demone wu_ftpd, vorrete aggiornarlo comunque perché quelli più vecchi hanno un baco che permetterebbe che l'account root venisse compromesso (per maggiori informazione guardate la Linux security home page).

Fortunatamente, avete solo bisogno di ottenere il codice sorgente e di ricompilarlo con le shadow abilitate.

Se non state usando un sistema ELF, il server wu_ftp può essere trovato su Sunsite come wu-ftp-2.4-fixed.tar.gz

Una volta ottenuto il server, mettetelo in /usr/src, quindi digitate:

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

Quindi editate ./src/makefiles/Makefile.lnx, e cambiate la riga:

LIBES    = -lbsd -support
in:
LIBES    = -lbsd -support -lshadow

Ora siete pronti ad eseguire lo script "build" e all'installazione:

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

Questo usa il file di configurazione delle shadow di Linux, compila ed installa il server.

Sul mio sistema Slackware 2.3 devo fare anche le seguenti cose prima di eseguire il build:

cd /usr/include/netinet
ln -s in_systm.h in_system.h
cd -

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 wu-ftp-2.4.2-beta-10.tar.gz

Una volta ottenuto il server, mettetelo in /usr/src, quindi digitate:

cd /usr/src
tar -xzvf wu-ftpd-2.4.2-beta-9.tar.gz
cd wu-ftpd-beta-9
cd ./src/config

Poi editate config.lnx, e cambiate:

#undef SHADOW.PASSWORD
in:
#define SHADOW.PASSWORD
Poi,
cd ../Makefiles
ed editate il file Makefile.lnx e cambiate:
LIBES = -lsupport -lbsd # -lshadow
in:
LIBES = -lsupport -lbsd -lshadow
Poi eseguite build ed installate:
cd ..
build lnx
cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
cp ./bin/ftpd /usr/sbin/wu.ftpd

Notate che dovreste controllare il vostro file /etc/inetd.conf 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.

6.3 Ftpd standard

Se state usando il server ftpd standard, vi consiglio di aggiornarlo al server wu_ftpd. A parte il baco conosciuto discusso sopra, generalmente è considerato più sicuro.

Se insistete ad usare quello standard, o avete bisogno di supporto NIS, Sunsite ha ftpd-shadow-nis.tgz

6.4 pop3d (Post Office Protocol 3)

Se avete bisogno di supportare il Post Office Protocol 3 (POP3), avete bisogno di ricompilare un programma pop3d. pop3d è normalmente eseguito da inetd/tcpd come root.

Ci sono due versioni disponibili da: pop3d-1.00.4.linux.shadow.tar.gz e pop3d+shadow+elf.tar.gz

Entrambi questi sono abbastanza semplici da installare.

6.5 xlock

Se installate la Shadow Suite e poi eseguite X Windows System e bloccate (lock) lo schermo senza aggiornare il vostro xlock, dovrete usare CNTL-ALT-Fx per passare ad un'altra tty, collegarvi, e uccidere il processo xlock (o usare CNTL-ALT-BS per uccidere il server X). Fortunatamente è abbastanza facile aggiornare il vostro programma xlock.

Se state usando le Versioni 3.x.x di XFree86, probabilmente state usando xlockmore (che è un grande screen-saver in aggiunta a lock). Questo pacchetto supporta le shadow con una ricompilazione. Se avete un xlock precedente, vi consiglio di aggiornarlo a questo.

xlockmore-3.5.tgz è disponibile su: ftp://sunsite.unc.edu/pub/Linux/X11/xutils/screensavers/xlockmore-3.7.tgz

Fondamentalmente, questo è quello che avete bisogno di fare:

Ottenere il file xlockmore-3.7.tgz e metterlo in /usr/src, spacchettarlo:

tar -xzvf xlockmore-3.7.tgz

Editare il file: /usr/X11R6/lib/X11/config/linux.cf, e cambiare la riga:

#define HasShadowPasswd    NO
in
#define HasShadowPasswd    YES

Quindi compilate gli eseguibili:

cd /usr/src/xlockmore
xmkmf
make depend
make

Quindi spostare tutto al suo posto e aggiornare i proprietari ed i permessi dei file:

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

Il vostro xlock ora funzionerà correttamente.

6.6 xdm

xdm è un programma che presenta uno schermo di login per X-Windows. Alcuni sistemi avviano xdm quando viene detto al sistema di andare ad uno specifico livello di esecuzione (vedere /etc/inittab).

Con la Shadow Suite installata, xdm avrà bisogno di essere aggiornato. Fortunatamente è abbastanza facile aggiornare il vostro programma xdm.

xdm.tar.gz è disponibile su: ftp://sunsite.unc.edu/pub/Linux/X11/xutils/xdm.tar.gz

Prendete il file xdm.tar.gz e mettetelo in /usr/src, quindi per spacchettarlo:

tar -xzvf xdm.tar.gz

Editate il file: /usr/X11R6/lib/X11/config/linux.cf, e cambiate la riga:

#define HasShadowPasswd    NO
in
#define HasShadowPasswd    YES

Quindi compilate gli eseguibili:

cd /usr/src/xdm
xmkmf
make depend
make

Poi mettete tutto al suo posto:

cp xdm /usr/X11R6/bin/

xdm è eseguito da root perciò non avete bisogno di cambiare i permessi del file.

6.7 sudo

Il programma sudo 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.

sudo necessita di leggere le password perché verifica la password dell'utente quando viene invocato. sudo già viene eseguito SUID root, perciò accedere al file /etc/shadow non è un problema.

sudo per la shadow suite, è disponibile su: ftp://sunsite.unc.edu/pub/Linux/system/Admin/sudo-1.2-shadow.tgz

Attenzione: Quando installate sudo il vostro file /etc/sudoers 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 /etc).

Il pacchetto è già predisposto per le shadow, perciò tutto quello che è richiesto è ricompilare il pacchetto (mettetelo in /usr/src):

cd /usr/src
tar -xzvf sudo-1.2-shadow.tgz
cd sudo-1.2-shadow
make all
make install

6.8 imapd (pacchetto Pine E-Mail)

imapd è un server e-mail simile a pop3d. imapd è incluso nel pacchetto Pine E-mail. 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 libshadow.a in tempo di compilazione, perciò non sono riuscito ad aggiungere il supporto shadow per imapd.

Se qualcuno è riuscito a farlo, per favore mi mandi una e-mail, ed io includerò qui la soluzione.

6.9 pppd (Point-to-Point Protocol Server)

Il server pppd può essere impostato in modo che usi diversi tipi di autenticazione: Password Authentication Protocol (PAP) e Cryptographic Handshake Authentication Protocol (CHAP). Il server pppd di solito legge le stringhe contenenti le password che usa da /etc/ppp/chap-secrets e/o /etc/ppp/pap-secrets. Se state usando questo comportamento predefinito di pppd, non è necessario reinstallare pppd.

pppd vi permette anche di usare il parametro login (o su linea di comando, o nella configurazione del file options). Se viene data l'opzione login, il pppd userà il file /etc/passwd per il nome utente e la password per il PAP. 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.

L'esempio dato nel prossimo capitolo consiste nell'aggiunta di supporto shadow a pppd-1.2.1d (una vecchia versione di pppd).

pppd-2.2.0 contiene già il supporto shadow.


Avanti Indietro Indice