Ответы:
SSH изначально поддерживает синхронизацию SFTP-пользователя. Вам просто нужно поставить
ChrootDirectory
В вашем конфигурационном файле sshd и перезапустите sshd.
Если вы просто делаете sftp, вам больше ничего не нужно делать. К сожалению, это не работает для scp. Для интерактивной оболочки вам необходимо скопировать двоичные файлы и / dev узлы в chroot.
Пример конфигурации для одного пользователя, testuser:
Match User testuser
ChrootDirectory /home/testuser
ForceCommand internal-sftp
Несколько вещей, о которых следует знать, со страницы руководства sshd_config:
Все компоненты пути должны быть корневыми каталогами, которые не являются доступный для записи любому другому пользователю или группе. После chroot sshd (8) изменяет рабочий каталог в домашний каталог пользователя.
Ищите ChrootDirectory в man sshd_config для получения дополнительной информации.
Subsystem sftp /usr/lib/openssh/sftp-server
строку наSubsystem sftp internal-sftp -f AUTH -l VERBOSE
Match
раздела.
Chroot - это достаточно простой метод. Поскольку в операционной системе уже есть эта функция безопасности, создатели демонов, как правило, не пытаются переопределить ее.
Rssh поставляется с руководством по настройке chroot тюрьмы. Это в CHROOT
файле в исходном дистрибутиве. В двух словах:
/usr/bin/scp
, /usr/libexec/openssh/sftp-server
,/usr/bin/rssh_chroot_helper
{/usr,}/lib/lib*.so.[0-9]
), которые они используют, также скопированы/etc/passwd
(вполне возможно, не копия, но полученная от мастера)/dev/null
, /dev/tty
, а также /dev/log
разъем для регистрации (и вам нужно сообщить ваш демон системного журнала , чтобы слушать сокет)Дополнительный совет, которого нет в документации по rssh: если вам нужно, чтобы некоторые файлы были доступны в изолированной тюрьме chroot, вы можете использовать bindfs или Linux mount --bind
для создания дополнительных иерархий каталогов за пределами тюрьмы. bindfs
позволяет перемонтированному каталогу иметь более строгие разрешения, например, только для чтения. ( mount --bind
нет, если вы не примените патч к ядру; Debian включил этот патч с тех пор на востоке Ленни, но в большинстве других дистрибутивов его нет по состоянию на 2011 год.)
Возможно, вы захотите посмотреть на scponly (или совсем недавно, rssh ); по сути это оболочка входа в систему, которую можно использовать только для запуска scp или подсистемы sftpd. В scponlyc
варианте он выполняет chroot перед активацией рассматриваемой подсистемы.