Нещодавно ми знайшли рішення, яке виглядає так:
/ 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
ієрархію та слідують за посиланнями.
chroot
ed своїChrootDirectory
? Чи можуть вони отримати доступ до нього?