Вопрос или проблема
Каталоги и настройки доступа следующие:
/home/directory1
rwxr-xr-x 4 user1 user1 4096
/home
rwxrwxr-x 5 root root 4096
В файле vsftpd.conf я установил следующее:
chroot_local_user=YES
allow_writeable_chroot=YES
Затем перезапустил vsftpd следующим образом:
systemctl restart vsftpd
Однако, когда я тестирую с помощью Filezilla с ID user1, сначала я попадаю в назначенный каталог /home/directory1
, но я все равно вижу ..
и могу нажать на него, чтобы увидеть верхний каталог. Я даже могу посмотреть все остальные каталоги, включая корневой каталог, с user1. В чем моя ошибка?
Ответ или решение
Чтобы предотвратить доступ пользователей к родительскому каталогу с помощью vsftpd на Ubuntu, необходимо правильно настроить конфигурацию FTP-сервера. В вашем случае проблема заключается в неправильной настройке параметров chroot
и возможными правами доступа к родительскому каталогу. Давайте рассмотрим все детали.
Пошаговое руководство по настройке vsftpd на Ubuntu для предотвращения выхода в родительский каталог
-
Убедитесь, что vsftpd установлен и активен:
Прежде всего, убедитесь, что vsftpd установлен и запущен на вашем сервере. Вы можете использовать следующие команды для проверки и установки:
sudo apt-get update sudo apt-get install vsftpd sudo systemctl enable vsftpd sudo systemctl start vsftpd
-
Настройка конфигурационного файла vsftpd:
Откройте конфигурационный файл vsftpd:
sudo nano /etc/vsftpd.conf
Убедитесь, что у вас установлены следующие параметры:
chroot_local_user=YES allow_writeable_chroot=YES
Параметр
chroot_local_user=YES
блокирует пользователей в их домашнем каталоге, что должно предотвратить их возможность перехода в верхний каталог. Однако еслиallow_writeable_chroot=YES
, это может создать уязвимости, позволяя пользователю просматривать другие каталоги. Рекомендуется настроить окружениеchroot
должным образом. -
Проверка прав доступа:
Убедитесь, что права доступа к домашнему каталогу пользователя настроены таким образом, чтобы они не могли просматривать каталоги на уровень выше. Для этого выполните следующие команды:
chmod 755 /home chmod 700 /home/directory1
Важно убедиться, что у каталога
/home
права доступа 755, чтобы у пользователя не было прав на его просмотр. Каталог, в который пользователь будет перенаправлен —/home/directory1
, должен иметь права 700, чтобы пользователь мог работать только внутри него. -
Пересмотрите настройки FTP-клиента:
Иногда FTP-клиенты могут отображать нехарактерное поведение. Убедитесь, что ваш клиент (например, FileZilla) настроен правильно и не использует параметры анонимного доступа или другие настройки, которые могли бы позволить обходить настройки chroot.
-
Перезапуск службы vsftpd:
После внесения всех изменений, не забудьте перезапустить службу vsftpd:
sudo systemctl restart vsftpd
-
Тестирование настроек:
Попробуйте повторно подключиться к FTP-серверу с пользователя
user1
и проверьте, ограничен ли он в доступе к родительскому каталогу. Убедитесь, что он видит только содержимое своего домашнего каталога/home/directory1
, и у него нет возможности перейти на уровень выше.
Заключение
Следуя этим шагам, вы сможете эффективно ограничить доступ пользователя к родительскому каталогу через vsftpd на Ubuntu. Следует помнить о том, что корректная настройка прав доступа и конфигурационных параметров критична для безопасности вашего FTP-сервера. На всякий случай всегда делайте резервные копии конфигурационных файлов перед внесением изменений, чтобы можно было легко восстановить работоспособность в случае возникновения проблем.