> MENU
374913040_961fe551f5.jpg

Usare il Wii Remote in ambiente Linux

Corso PHP - Sessioni - sessioni1

Corso su PHP: Le sessioni

13 febbraio 2008 Visualizzazioni: 240 Focus

SSH in CHROOT: Una gabbia per la shell sicura (1/2)

OpenSSH è lo strumento per la connessione a sistemi remoti più utilizzato negli ambienti Linux: è sicuro, veloce e facile da installare. Un utente che si collega ad un Server attraverso ssh effettua un vero e proprio login nel sistema ed ha pieno accesso alle funzionalità che questo offre.

Chrootssh logo

Su alcuni sistemi può però nascere l’esigenza di dover garantire l’accesso ssh ad utenze non privilegiate, che non abbiano cioè la possibilità di aggirarsi per il sistema. Certo una gestione oculata dei permessi di accesso ed esecuzione ai file critici può bastare per proteggersi, ma esiste una via più radicale per affrontare la questione, si tratta cioè della creazione di una gabbia che consenta all’utente l’utilizzo del sistema limitato ai comandi ed ai file definiti dall’amministratore : il chroot di ssh.

Significato di chroot e sua applicazione alla shell sicura
Il termine chroot (CHange ROOT) indica una forma di accesso diversa dallo standard, in un sottosistema generalmente contenente un numero di directory ed un set di comandi limitato.

Gli ambienti chroot vengono impiegati laddove si ha la necessità di far girare dei servizi in sicurezza in modo che se questi vengono in qualche modo violati, non consentono all’attaccante di aggirarsi per il sistema.

Il concetto di chroot applicato ad ssh si basa sulla stessa filosofia: restringere il set di file visionabili e comandi eseguibili i attraverso una gabbia, un filesystem ridotto all’essenziale.

osshChroot : la patch per openssh
Per utilizzare il chroot con ssh è necessario applicare una patch ai sorgenti originali del pacchetto openssh creata da Ricardo Cerqueira e mantenuta da James Dennis.

Tale patch modifica il comportamento in cui il demone openssh legge le informazioni dell’account dal file di sistema /etc/passwd. Infatti il codice aggiunto prevede che se nella home directory dell’utente che vuole effettuare il login esiste un carattere “.” (punto), allora prima di proseguire con la direzione della console alla homedir viene invocato il comando chroot sulla directory precedente il punto.

Questo significa, ad esempio, che se è stato costruito un ambiente chroot nella directory /chroot ed esiste un utente foo la cui homedir è /chroot/./home/foo, questo effettuerà il login nell’ambiente chroot creato sotto /chroot che corrisponderà per l’utente a / e la directory in cui si troverà sarà /home/foo.

Grazie a questa funzionalità sarà semplice separare utenti privilegiati da utenti “carcerati” all’interno della gabbia /chroot.

Patching, compilazione e creazione del pacchetto openssh
La procedura descritta si riferisce alla compilazione del pacchetto openssh in Debian Etch 4.0.

Per predisporre il sistema a compilare sorgenti e generare pacchetti è necessario installare i due pacchetti (e le dipendenze ad essi correlate) build-essential e devscripts:

# apt-get install build-essential devscripts

Il sistema è pronto a compilare e produrre pacchetti, una volta reperiti i sorgenti di openssh attraverso il comando apt-get:

# apt-get source openssh

E’ sufficiente scaricare la patch osshChroot tramite wget :

# wget http://chrootssh.sourceforge.net/download/osshChroot-4.2p1.diff

Ed applicarla ai sorgenti:

# cd openssh-4.3p2/

# patch -p1 < ../osshChroot-4.2p1.diff

quindi attraverso la modifica del file debian/changelog o attraverso il comando debchange inseriamo le note per questo pacchetto, che riguardano essenzialmente la patch per il chroot e che hanno questa forma:

openssh (1:4.3p2-9chroot) unstable; urgency=high

[ RaSca ]

* chroot patch

— root Wed, 6 Feb 2008 16:00:08 +0100

prima di lanciare la compilazione dei sorgenti andranno soddisfatte tutte le dipendenze delle librerie del pacchetto openssh. Attraverso l’opzione build-dep del comando apt-get si può automatizzare questo processo:

# apt-get build-dep openssh

E’ possibile quindi avviare la compilazione e generazione dei pacchetti attraverso il comando debuild:

# debuild

I pacchetti verranno generati nella directory sottostante quella dei sorgenti:

# cd ..
# ls -1 *.deb
openssh-client_4.3p2-9_i386.deb
openssh-server_4.3p2-9_i386.deb
ssh_4.3p2-9_all.deb
ssh-askpass-gnome_4.3p2-9_i386.deb
ssh-krb5_4.3p2-9_all.deb

e potranno essere installati nel sistema attraverso il comando dpkg :

# dpkg -i ssh_4.3p2-9chroot_all.deb openssh-client_4.3p2-9chroot_i386.deb openssh-server_4.3p2-9chroot_i386.deb

Nel prossimo articolo verrà analizzata la creazione dell’ambiente chroot e della prima utenza che vi effettuerà il login.

LEZIONI:
13 Febbraio 2008: SSH in CHROOT: Una gabbia per la shell sicura (1/2)
22 Febbraio 2008
: SSH in CHROOT: Una gabbia per la shell sicura (2/2)

di Raoul Scarazzini - TuxJournal.net

twittergoogle_pluslinkedinmail
  • Exo

    per farla piu' semplice ci sono scpononly e rssh