Как предотвратить переход пользователя в вышестоящую директорию с помощью vsftpd в Ubuntu

Вопрос или проблема

Каталоги и настройки доступа следующие:

/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 для предотвращения выхода в родительский каталог

  1. Убедитесь, что vsftpd установлен и активен:

    Прежде всего, убедитесь, что vsftpd установлен и запущен на вашем сервере. Вы можете использовать следующие команды для проверки и установки:

    sudo apt-get update
    sudo apt-get install vsftpd
    sudo systemctl enable vsftpd
    sudo systemctl start vsftpd
  2. Настройка конфигурационного файла vsftpd:

    Откройте конфигурационный файл vsftpd:

    sudo nano /etc/vsftpd.conf

    Убедитесь, что у вас установлены следующие параметры:

    chroot_local_user=YES
    allow_writeable_chroot=YES

    Параметр chroot_local_user=YES блокирует пользователей в их домашнем каталоге, что должно предотвратить их возможность перехода в верхний каталог. Однако если allow_writeable_chroot=YES, это может создать уязвимости, позволяя пользователю просматривать другие каталоги. Рекомендуется настроить окружение chroot должным образом.

  3. Проверка прав доступа:

    Убедитесь, что права доступа к домашнему каталогу пользователя настроены таким образом, чтобы они не могли просматривать каталоги на уровень выше. Для этого выполните следующие команды:

    chmod 755 /home
    chmod 700 /home/directory1

    Важно убедиться, что у каталога /home права доступа 755, чтобы у пользователя не было прав на его просмотр. Каталог, в который пользователь будет перенаправлен — /home/directory1, должен иметь права 700, чтобы пользователь мог работать только внутри него.

  4. Пересмотрите настройки FTP-клиента:

    Иногда FTP-клиенты могут отображать нехарактерное поведение. Убедитесь, что ваш клиент (например, FileZilla) настроен правильно и не использует параметры анонимного доступа или другие настройки, которые могли бы позволить обходить настройки chroot.

  5. Перезапуск службы vsftpd:

    После внесения всех изменений, не забудьте перезапустить службу vsftpd:

    sudo systemctl restart vsftpd
  6. Тестирование настроек:

    Попробуйте повторно подключиться к FTP-серверу с пользователя user1 и проверьте, ограничен ли он в доступе к родительскому каталогу. Убедитесь, что он видит только содержимое своего домашнего каталога /home/directory1, и у него нет возможности перейти на уровень выше.

Заключение

Следуя этим шагам, вы сможете эффективно ограничить доступ пользователя к родительскому каталогу через vsftpd на Ubuntu. Следует помнить о том, что корректная настройка прав доступа и конфигурационных параметров критична для безопасности вашего FTP-сервера. На всякий случай всегда делайте резервные копии конфигурационных файлов перед внесением изменений, чтобы можно было легко восстановить работоспособность в случае возникновения проблем.

Оцените материал
Добавить комментарий

Капча загружается...