Назад | Перейти на главную страницу

SFTP может получить доступ к файлам на всем диске

У меня есть настройка сервера SFTP, всякий раз, когда пользователь пытается подключиться через SFTP, они видят каталог / home / user, но затем они также могут изменить каталог на / home и даже /

Как мне остановить это, чтобы они могли видеть только домашний каталог текущего пользователя?

У меня есть это в моем sshd_config, который

Subsystem sftp internal-sftp
Match group ftpaccess
    ChrootDirectory /home/sony
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

Из https://wiki.archlinux.org/index.php/SFTP_chroot, акцент мой:

Доступ для записи в chroot dir

...если пользователь может писать в каталог chroot, он может повысить свои привилегии до root и выйти из chroot. Один из способов обойти это - дать пользователю два домашних каталога - один «настоящий» дом, в который они могут писать, и один SFTP-дом, который заблокирован, чтобы поддерживать sshd и безопасность вашей системы. Используя mount --bind, вы можете сделать так, чтобы реальный домашний каталог отображался как подкаталог внутри домашнего каталога SFTP, предоставляя им полный доступ к их настоящему домашнему каталогу.

Это также можно использовать для достижения других целей. Например, домашний каталог пользователя может быть заблокирован в соответствии с правилами sshd chroot, а привязки монтирования используются для предоставления пользователям доступа к другим каталогам:

# mkdir /home/user/web
# mount --bind /srv/web/example.com /home/user/web

Необязательно добавить запись в / etc / fstab:

# echo '/srv/web/example.com/ /home/user/web        none    bind' >> /etc/fstab

Теперь пользователь может войти в систему с помощью SFTP, они привязаны к / home / user, но они видят папку с именем «web», к которой они могут получить доступ для управления файлами на веб-сайте (при условии, что у них есть правильные разрешения в / srv / web / example. .com.

Как указано в Справочная страница sshd_config:

ChrootDirectory

Задает путь к каталогу, в который после аутентификации будет использоваться chroot (2). При запуске сеанса sshd (8) проверяет, что все компоненты пути являются корневыми каталогами, которые не доступны для записи другим пользователям или группам. После chroot sshd (8) меняет рабочий каталог на домашний каталог пользователя.

Имя пути может содержать следующие токены, которые расширяются во время выполнения после аутентификации подключающегося пользователя: %% заменяется литералом '%',% h заменяется домашним каталогом аутентифицируемого пользователя, а% u заменяется по имени пользователя этого пользователя.

Итак, определение chroot-пути /home/%u или %h может быть то, что вы ищете.

Обратите особое внимание на требования к домашнему корневому каталогу пользователей sftp (т.е. /home/exampleuser1, /home/exampleuser2 и так далее), чтобы он принадлежал пользователю root. Доступ на запись пользователю sftp можно предоставить только в подкаталогах. Это требование находилось под пристальным вниманием Вот.