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).
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
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.
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
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.
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.
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.
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
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.
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.