Вопрос: Разрешить SFTP, но запретить SSH?


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

Я хочу дать своим «клиентам» право управлять своими файлами на сервере. Я ненавижу FTP, поскольку он не безопасен, и это, на мой взгляд, устарело.

Поэтому я хотел бы разрешить моим пользователям подключаться через SFTP, но не позволять им подключаться через SSH. (Я знаю, я знаю, SFTP использует SSH). Но я просто задавался вопросом, возможно ли это?

Поэтому мне не нужно было устанавливать FTP-сервер на сервере, и все было бы потрясающе!


85
2018-01-28 20:40


Источник




Ответы:


Начиная с версии 4.9 OpenSSH (недоступно в функции centos 5.x, но функция ChrootDirectory была обращена), имеет internal-sftp подсистема:

Subsystem sftp internal-sftp

А затем блокировать другие использования:

Match group sftponly
     ChrootDirectory /home/%u
     X11Forwarding no
     AllowTcpForwarding no
     ForceCommand internal-sftp

Добавьте своих пользователей в sftponly группа. Вы должны изменить исходный каталог пользователя для / из-за chroot и /home/user должны принадлежать root, Я бы также установил /bin/false как оболочка пользователя.


110
2018-01-28 20:46



Вау! Супер классно! Я проверю это и вернусь сюда, чтобы проверить. Большое спасибо! - TomShreds
+1 для элемента ChrootDirectory! - Kyle Hodgson
После этого мой sftponly пользователь не может получить доступ ssh и может подключиться по sftp. Однако он вообще не видит файл! Несмотря на то, что у этих файлов есть разрешение для этого пользователя. :-( - Emilio Nicolás
Если вы хотите сделать это и найти запись в вашем sshd_config с уже существующим «/ usr / lib / openssh / sftp-server», проверьте здесь: serverfault.com/questions/660160/...  - internal-sftp является «более новым, лучшим и легким», - Xosofox


Существует оболочка scponly что делает это. Оно может корневой слишком.


19
2018-01-28 21:11



Это будет здорово, если вам понадобятся пользователи SFTP и пользователи SSH. Вы просто замените оболочку на / etc / passwd для тех, которые ограничены только SFTP. - Dragos


Checkout rssh, который является фальшивой оболочкой, которая позволяет sftp, но отрицает ssh

Подробнее о RSSH

http://www.pizzashack.org/rssh/

Обороты

http://pkgs.repoforge.org/rssh/

Вы можете настроить rssh, чтобы разрешить / запретить различные виды поведения, такие как sft, scp и т. Д.


4
2018-02-02 13:15





Вы можете изменить / etc / passwd и дать этому пользователю фальшивую оболочку, чтобы он не мог использовать ssh.


2
2018-01-28 20:46



Вы проверили это? - splattne
Когда я пытаюсь установить оболочку на /bin/false ни ssh или sftp работает - Brad Mace
/ bin / false - запретить любой тип входа, это не правильный подход. Принятый ответ от Rob Wouters - это то, как вы должны ограничивать пользователей только SFTP, а не путем изменения оболочки. Если бы вы захотели изменить оболочку @ Stone's asnwer, это была бы хорошая идея. - jwbensley
поэтому оболочку WHAT следует использовать в предположении, что / bin / bash неприемлемо и / bin / false или / sbin / nologin запрещают доступ? - Putnik


Я использую метод указания оболочки пользователя как / bin / false, как упоминалось. Однако вы должны убедиться, что / bin / shell находится в / etc / shells. Затем он работает ssh = no ftp = ok.

Я также использую vsftpd и добавляю это
chroot_local_user = ДА в /etc/vsftpd/vsftpd.conf так что ftp-ers не могут видеть дату, а затем свою собственную.

Преимущество этих простых изменений не вызывает раздражающей конфигурации конфигурации ssh для каждого пользователя.


1
2017-09-23 17:09





Не забудьте найти линию UsePAM yes и прокомментируйте это:

#UsePAM yes

Не отключая это, ваш SSH-сервер сработает при перезагрузке / перезагрузке. Так как вам не нужны фантастические функции PAM, все в порядке.


1
2018-01-25 22:02





Настройка ssh для включения только sftp для некоторых выбранных пользователей - хорошая идея, и она работает правильно, при условии, что вы устанавливаете либо scponly или rssh,

rssh отлично работает, если вам не нужно настраивать тюрьму, в этом случае старайтесь следовать инструкциям, предоставленным руководствами CHROOT, безумно, что приводит к «копированию» больших частей системных исполняемых файлов и библиотеки чуть ниже «каждой пользовательской тюрьме», включая rssh сама оболочка. Это метод космических потерь.

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

Простой способ обеспечить функциональность «ftp» с правильной работой в тюрьме, поддержка SSL / TLS для безопасных транзакций и входа в систему - использовать «старый, но работающий» VSFTPD, который устанавливается быстро и качественно и предлагает всю конфигурацию по мере необходимости и, наконец, но не в последнюю очередь: это работает!

Маурицио.


0
2018-04-23 12:47