У меня есть VPS под управлением Ubuntu 10.04, и я хотел бы предоставить кому-то доступ по SFTP к одному каталогу, но не позволять им видеть что-либо еще в системе. Как лучше всего это осуществить?
Я подумал об удалении разрешений «для всех» для всего в системе, но это кажется действительно грубым инструментом для решения этой проблемы (и тем, что вызовет другие проблемы) - я надеюсь, что здесь есть лучший вариант.
редактировать: Ценю ответы! (И я многому научился, читая / исследуя их). В итоге я нашел и использовал это руководство от Linode, поскольку в нем были прописаны все шаги: http://library.linode.com/security/sftp-jails/
Лучше всего использовать ftps и chroot (vsftpd) или web-dav с ssl (Apache2, nginx).
Создать сертификат:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Редактировать конфигурацию:
ssl_enable=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
chroot_local_user=YES
С Ubuntu вы можете использовать scponly довольно легко
sudo apt-get install scponly
sudo dpkg-reconfigure -plow scponly
После его установки и настройки вы можете использовать прилагаемый сценарий для создания учетных записей пользователей и тюрем.
cd /usr/share/doc/scponly/setup_chroot
sudo gunzip setup_chroot.sh.gz
sudo chmod +x setup_chroot.sh
sudo ./setup_chroot.sh
Следуйте инструкциям на экране, чтобы настроить пользователя.
Если вам нужен SFTP, который является подсистемой SSH, ознакомьтесь с этим руководством. Вот
Если вам нужен FTP со слоем SSL, то предложение ooshro подойдет.