Recentemente abbiamo trovato una soluzione alternativa che va così:
/ Etc / ssh / sshd_config:
...
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
permessi di directory:
root@server:~ # chown root:root /home
root@server:~ # chmod 111 /home
root@server:~ # chmod 700 /home/*
Ora /home
soddisfa i requisiti per ChrootDirectory
e non può essere elencato dagli utenti con restrizioni, ma gli sftponly
utenti non saranno in grado di accedere se le loro home directory sono configurate come al solito ( /home/$LOGNAME
): nell'ambiente chroot le loro home directory non sono all'interno /home
ma direttamente sotto root ( /
).
soluzione alternativa 1
Imposta le case degli utenti con restrizioni su come appaiono sotto chroot:
root@server:~ # usermod -d /username username
caveato 1
Se qualcuno degli utenti senza restrizioni o alcuni script di amministrazione usano l'espansione della tilde di bash come ~username
si espanderà /username
ora, il che non è ciò che si intende.
Anche l'amministratore che crea gli sftponly
utenti deve ricordare di utilizzare la home non predefinita. Risolvibile con una sceneggiatura. Che l'amministratore deve ricordare di usare.
soluzione alternativa 2
Questa è un'alternativa alla precedente che abbiamo finito per usare:
root@server:~ # ln -s . /home/home
Cioè creare un collegamento simbolico all'interno del /home
proprio dirname. Ora sotto chroot /home/username
punta alla stessa directory come senza chroot. Per gli utenti con accesso limitato con sftp sembrerebbe come /username
. Questa directory è scrivibile al suo proprietario (utente con restrizioni). L'utente con restrizioni non può elencare il proprio genitore o la home directory di nessuno dei fratelli per nome.
L'unica cosa speciale di un sftponly
utente è la sua partecipazione al sftponly
gruppo. Abbiamo trovato più facile gestire la soluzione alternativa 1.
avvertimenti 2
- Non puoi avere l'utente chiamato 'home' con una home directory
/home/home
- Devi stare attento con gli script che attraversano la
/home
gerarchia e seguono i collegamenti simbolici.
chroot
utenti ed possiedono i loroChrootDirectory
? Possono accedervi?