Via Cà Matta 2 - Peschiera Borromeo (MI)
+39 02 00704272
info@synaptica.info

Chroot SFTP users

Chroot SFTP users

Obiettivo

l’obiettivo è quello di configurare degli utenti che possano accedere in ssh senza uscire dalla loro home.
Devono poter pubblicare i loro file, quindi i virtual host punteranno a tali home directory

Requisiti

  • ssh >= 4.7


syna@serverweb-prod:/home$ aptitude show openssh-server
Pacchetto: openssh-server
Stato: installato
Installato automaticamente: no
Versione: 1:5.1p1-6ubuntu2

  • Apache 2 con moduserdir


root@serverweb-prod:/etc/apache2/mods-enabled# aptitude show apache2
Pacchetto: apache2
Stato: installato
Installato automaticamente: no
Versione: 2.2.12-1ubuntu2.2

Implementazione

apache

utilizziamo il mod_userdir di apache per pubblicare i files presenti nelle directory pubbliche di ogni utente…


root@serverweb-prod:/# a2enmod userdir
Enabling module userdir.
Run '/etc/init.d/apache2 restart' to activate new configuration!
root@serverweb-prod:/etc/apache2/mods-enabled# /etc/init.d/apache2 restart
* Restarting web server apache2 ... waiting [ OK ]

sshd

Utilizzo le features di SSH per effettuare la jail…

Linked sftp-server into sshd. The internal sftp server is used when the command “internal-sftp” is specified in a Subsystem or ForceCommand declaration. When used with ChrootDirectory, the internal sftp server requires no special configuration of files inside the chroot environment.

Verranno imprigionati tutti gli utenti che appartengono al gruppo sftp


# groupadd sftp

Modifica alla configurazione di SSH


#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

# Deve essere in coda al file di configurazione
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

Aggiungere nuovi utenti

aggiungere come al solito gli utenti con il comando adduser :

# adduser walter

Aggiungiamo il nuovo utente al gruppo sftp


# usermod -G sftp walter

Disabilitiamo la shell


# usermod -s /bin/false walter

NB: l’home directory deve appartenere a root altrimenti internal-sftp non puo’ funzionare correttamente


# chown root:root /home/walter
# chmod 0755 /home/walter

sarà  sufficente creare con i diritti dell’utente una directory “public_html” o “www” dove l’utente metterà  i file pubblici…


# mkdir /home/walter/public_html
# chown walter:walter /home/walter/public_html

2 risposte

  1. Ivan ha detto:

    mi piace molto, sintetico e diretto al punto

  2. Matteo ha detto:

    Ottimo, veloce e immediato con pochi fronzoli!

Lascia un commento