2

У меня есть домашний веб-сервер, использующий SSH на пользовательском порту. Я обнаружил, что если я перейду к sftp://domainname.tld:port вся моя файловая система видна, и любой может скачать любой файл. Я хотел бы сделать это в моем каталоге public_html , но мои добавления, кажется, не имеют никакого значения после перезапуска службы. Мои добавления в sshd_config следующие:

Subsystem       sftp    /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp

ChrootDirectory /path/public_html/
ForceCommand internal-sftp
AllowTcpForwarding no

Ссылка на то, где я могу прочитать документацию по конфигурациям SSH, также будет очень признательна.

РЕДАКТИРОВАТЬ: я случайно пропустил важную часть информации (я думаю). Я говорю о том, когда кто-то посещает sftp://domainname.tld:port в веб-браузере, а не с программой SFTP. Я получаю это поведение от Firefox на Linux Mint.

2 ответа2

1

Как это должно. SFTP работает через SSH, поэтому вы должны видеть любой файл, к которому у пользователя, вошедшего в систему, есть доступ для чтения. Даже если вы используете chroot SFTP, пользователь может просто войти в систему, используя SSH, и прочитать файл.

и любой желающий может скачать любой файл

Некорректное; Любой, у кого есть учетная запись в системе, может загрузить любой файл , доступ к которому у него есть.

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

1

Добавить что-то вроде:

Match user restricted_user
    ChrootDirectory /home/chrooted
    ForceCommand internal-sftp

в /etc/ssh/sshd_config .

restricted_user больше не может использовать оболочку ssh:

$ ssh -o Port=some_port restricted_user@domainname.tld
restricted_user@domainname.tld's password:
This service allows sftp connections only.
Connection to domainname.tld closed.

Кажется, что ssh очень требователен к праву доступа к каталогу. Если соединение завершается неудачно с ошибкой Write failed: Connection reset by peer ошибки однорангового узла, обычно вы можете посмотреть в /var/log/auth или /var/log/secure чтобы узнать, что произошло.

См. Https://wiki.archlinux.org/index.php/SFTP-chroot для получения более подробной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .