SFTP Папка по умолчанию и Ограничение доступа с помощью chroot

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

Я хочу по умолчанию настроить определенного пользователя на конкретную папку, когда он подключается к моему Ubuntu 18.04 машине через SFTP. Также я хотел немного ограничить SFTP. Этот пост от Digital Ocean дал мне то, что нужно, и помог начать, но это не работает так, как я надеялся.

Я создал папку с названием /var/sftp/my_username. Затем я обновил sshd_config, чтобы включить следующие настройки:

Match User my_username
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp/
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Я надеялся, что my_username окажется в /var/sftp/my_username и будет там заблокирован. Вместо этого пользователь попадает в /var/sftp и должен открыть ‘my_username’, чтобы перейти в директорию, в которую он может загружать файлы. Это проблема, потому что в /var/sftp в конечном итоге будут перечислены другие подкаталоги sftp для других пользователей (т.е. /var/sftp/your_username).

Что я могу сделать, чтобы по умолчанию установить этого пользователя в /var/sftp/my_username? Я уже пробовал изменить домашнюю директорию пользователя на это местоположение, но безуспешно.

Спасибо!

Я думаю, вам нужно изменить запись ‘ChrootDirectory /var/sftp/’ в sshd_config на что-то вроде ‘ChrootDirectory /var/sftp/my_username’

Спасибо, Олав. Я пробовал это в своем первоначальном решении проблемы. Это не работает. Я не могу установить ChrootDirectory для какой-либо папки, которой не владеет Root.

Я решил эту проблему, просто создав дополнительный уровень папки:

ChrootDirectory /var/sftp/my_username/my_username

Папка /var/sftp имеет несколько имен пользователей для разных пользователей. Каждый пользователь ограничен своей верхней папкой my_username. Они не могут записывать в /var/sftp/my_username, но они владеют /var/sftp/my_username/my_username и могут просто открыть эту подпапку и делать с ней что угодно.

Это дает им возможность записи и скрывает другие папки от других пользователей.

Ответ или решение

Чтобы настроить SFTP-сервер на Ubuntu 18.04 так, чтобы пользователи автоматически попали в свои собственные папки и были ограничены в доступе к другим папкам, выполните следующие шаги:

  1. Создание необходимых директорий: Для каждого пользователя создайте отдельную директорию внутри папки /var/sftp. Например, для пользователя my_username создайте следующую структуру:

    sudo mkdir -p /var/sftp/my_username/my_username

    После этого настройте права доступа для этих директорий так, чтобы владельцем корневой директории /var/sftp была root, а для директории пользователя – сам пользователь. Например:

    sudo chown root:root /var/sftp
    sudo chown my_username:my_username /var/sftp/my_username/my_username
  2. Настройка файла конфигурации SSH: Откройте файл конфигурации SSH sshd_config:

    sudo nano /etc/ssh/sshd_config

    Добавьте следующие строки в конец файла, чтобы применить настройки для конкретного пользователя:

    Match User my_username
       ForceCommand internal-sftp
       PasswordAuthentication yes
       ChrootDirectory /var/sftp/my_username
       PermitTunnel no
       AllowAgentForwarding no
       AllowTcpForwarding no
       X11Forwarding no

    Обратите внимание, что ChrootDirectory указывает на корневую папку для данного пользователя, а не на папку, в которую вы хотите, чтобы они попали после входа.

  3. Перезагрузка SSH: После внесения изменений в конфигурацию перезагрузите SSH-сервер, чтобы применить новые настройки:

    sudo systemctl restart ssh
  4. Проверка доступа: Попробуйте подключиться к серверу с использованием SFTP от имени пользователя my_username. Вы должны автоматом попасть в папку /var/sftp/my_username/my_username и иметь возможность загружать и скачивать файлы в этой директории, при этом другие пользователи не будут видеть ваши папки.

Таким образом, с помощью этих шагов вы создадите изолированную среду для вашего пользователя SFTP и ограничите его доступ к другим пользовательским папкам. Если у вас возникнут дополнительные проблемы или необходимо будет настроить других пользователей, вы можете просто повторить шаги с созданием директорий и добавлением настроек в файл sshd_config.

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

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