Нещодавно ми знайшли рішення, яке виглядає так:
/ etc / ssh / sshd_config:
...
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
Дозволи довідника:
root@server:~ # chown root:root /home
root@server:~ # chmod 111 /home
root@server:~ # chmod 700 /home/*
Тепер він /homeзадовольняє вимогам ChrootDirectoryі не може бути перелічений обмеженими користувачами, але sftponlyкористувачі не зможуть увійти, якщо їх домашні каталоги налаштовані як зазвичай ( /home/$LOGNAME): в умовах, що захищаються, їх домашні каталоги знаходяться не всередині, /homeа безпосередньо під корінь ( /).
обхід 1
Встановіть будинки обмежених користувачів, як вони відображаються під chroot:
root@server:~ # usermod -d /username username
застереження 1
Якщо хтось із необмежених користувачів або якийсь сценарій адміністрування використовує розширення bash's tilde, як ~usernameвоно розшириться до /usernameтеперішнього часу, що не означає, що мається на увазі.
Також адміністратор, який створює sftponlyкористувачів, повинен пам’ятати про використання домашнього не за замовчуванням. Розв’язується зі сценарієм. Який адміністратор повинен пам’ятати, щоб використовувати.
обхід 2
Це альтернатива попередній, яку ми закінчили використовувати:
root@server:~ # ln -s . /home/home
Тобто створити симпосилання всередині /homeвласного ім’я. Тепер під chroot /home/usernameвказується на той самий каталог, що і без chroot. Для обмеженого користувача, який увійшов у систему за допомогою sftp, він виглядає як /username. Цей каталог можна писати для власника (обмежений користувач). Користувач з обмеженими можливостями не може перелічити батьківські та домашні каталоги жодного з братів і сестер за іменем.
Єдине, що особливе у sftponlyкористувача, - це його участь у sftponlyгрупі. З нами було легше впоратися, ніж із способом вирішення проблеми 1.
застереження 2
- Ви не можете мати користувача з іменем "home" з домашнім каталогом
/home/home
- Ви повинні бути обережними зі сценаріями, які переходять
/homeієрархію та слідують за посиланнями.
chrooted своїChrootDirectory? Чи можуть вони отримати доступ до нього?