SMsoft – informatica e dintorni

varie su OSX, GNU/Linux e l'Open Source

Attivare l’accesso SSH in chroot su Debian Lenny

Innanzitutto due parole sul chroot. Attivare il chroot su una connessione ssh, significa costringere un utente a restare all’intero della sua home directory senza porter andare a “spasso” sul server.
In pratica viene creato un ambiente contenente le librerie ed i programmi necessari all’utente, che sarà limitato ad operazioni solo all’interno di questo ambiente.
Dalla versione 4.8 di openssh è possibile attivare questa funzionalità sfruttando una direttiva interna chiamata ChrootDirectory.

Ipotizziamo di avere un utente chiamato test (gruppo test) per cui vogliamo attivare il chroot. Basta modificare il file /etc/ssh/sshd_config, aggiungendo:

Match User test
ChrootDirectory /home/%u

e poi riavviare il server ssh con:
/etc/init.d/ssh reload

Per attivare anche sftp sembre per l’utente test (gruppo test), bisogna inserire in  /etc/ssh/sshd_config:

Subsystem sftp /usr/lib/openssh/sftp-server
Match User test
    ChrootDirectory /home/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand /usr/lib/openssh/sftp-server

A questo punto bisogna inserire nella root directory dell’utente i necessari files per far funzionare il chroot. Piuttosto che fare l’operazione a mano, vi segnalo un semplice script chiamato ssh-scp-sftp-chroot-jail (mirror locale forse non aggiornato) che consente di automatizzare questo processo, che altrimenti avremmo dovuto fare manualmente, cercando le librerie necessarie alla bash (con il comando ldd /bin/bash) e creare alcuni devices (es. /dev/null con mknod).
Scarichiamo lo script:

cd /usr/local/sbin
wget http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/make_chroot_jail.sh
chmod 700 /usr/local/sbin/make_chroot_jail.sh

ed utilizziamolo:

make_chroot_jail.sh test /bin/bash /home/test

dove test sarà chiaramente l’utente per cui attivare il chroot

Attenzione: è buona norma modificare i permessi a 700 della home directory dell’utente per cui si è attivato il chroot .

Nota: nel caso sia necessario gestire opzioni particolari (es transfer rate in upload/download, limitare il numero di connessioni massime e per IP) vi consiglio di visionare http://mysecureshell.sourceforge.net/

Kernel panic – not syncing: VFS: Unable to mount root fs

Se vedete questo messaggio durante l’avvio della vostra LinuxBox Debian, non fatevi prendere dal panico ed operate come segue.

L’errore è relativo ad un problema nel file di initrd e quindi basta ricostruirlo per riavviare il sistema. Innanzitutto bisogna avere il CD/DVD della nostra cara Debian per avviare il sistema in rescue-mode:

  • Accendere la LinuxBox con il CD/DVD inserito e fare il boot da questo supporto
  • Se avete una distribuzione recente (es Debian Lenny):
    • dal menù visualizzato scegliere “Advanced options” e poi “Rescue mode” e dare Invio
  • Se avete una distribuzione meno recente (es. Debian etch):
    • al prompt “boot“, digitare “rescue” come segue:
      …… boot: rescue

Successivamente, se il sistema riesce a rimontare i dischi automaticamente possiamo saltare il prossimo punto, altrimenti bisogna montare la partizione di root su un mountpoint e poi farla diventare la nostra nuova root. Immaginiamo che la root (/) sia nel device /dev/sda1, procediamo come segue:

mkdir /prova
mount /dev/sda1 /prova
chroot /prova

Ricreiamo infine il file di initrd come segue:

update-initramfs -u

A questo punto riavviamo il sistema e dovrebbe essere tornato tutto a posto

Page optimized by WP Minify WordPress Plugin