Niedawno znaleźliśmy obejście, które wygląda następująco:
/ etc / ssh / sshd_config:
...
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
uprawnienia do katalogu:
root@server:~ # chown root:root /home
root@server:~ # chmod 111 /home
root@server:~ # chmod 700 /home/*
Teraz /home
spełnia wymagania ChrootDirectory
i nie może być wymieniony przez ograniczonych użytkowników, ale sftponly
użytkownicy nie będą mogli się zalogować, jeśli ich katalogi domowe są skonfigurowane jak zwykle ( /home/$LOGNAME
): w środowisku chroot ich katalogi domowe nie znajdują się w środku, /home
ale bezpośrednio pod root ( /
).
obejście 1
Ustaw domy użytkowników z ograniczonym dostępem do wyglądu pod chroot:
root@server:~ # usermod -d /username username
zastrzeżenie 1
Jeśli którykolwiek z nieograniczonych użytkowników lub jakiś skrypt administracyjny używa rozszerzenia tylda bash, tak jak ~username
będzie się rozwijało do /username
teraz, to nie jest to, co należy rozumieć.
Również administrator tworzący sftponly
użytkowników musi pamiętać o używaniu domu innego niż domyślny. Rozwiązany za pomocą skryptu. Z których administrator musi pamiętać.
obejście 2
Jest to alternatywa dla poprzedniej, którą wykorzystaliśmy:
root@server:~ # ln -s . /home/home
To jest utworzenie dowiązania symbolicznego /home
do własnego katalogu. Teraz pod chroot /home/username
wskazuje na ten sam katalog, co bez chroot. Dla ograniczonego użytkownika zalogowanego za pomocą sftp wyglądałoby to jak /username
. Ten katalog jest zapisywalny dla jego właściciela (ograniczony użytkownik). Użytkownik z ograniczonym dostępem nie może wymienić swoich katalogów macierzystych ani domowych żadnego z rodzeństwa według nazwy.
Jedyną wyjątkową cechą sftponly
użytkownika jest jego udział w sftponly
grupie. Okazało się, że łatwiej sobie z tym poradzić niż obejście 1.
zastrzeżenia 2
- Nie możesz mieć użytkownika o nazwie „home” z katalogiem domowym
/home/home
- Musisz uważać na skrypty przechodzące przez
/home
hierarchię i podążające za dowiązaniami symbolicznymi.
chroot
użytkownicy ed mają swojeChrootDirectory
? Czy mogą uzyskać do niego dostęp?