Защита файловой системы для безопасного SFTP-сервера


12

Это может показаться не вопросом развития, но по сути это так. Позвольте мне объяснить, как. Нашей основной целью разработки является динамический контент страниц. Некоторые из наших клиентов просили нас предоставить им место на наших серверах (которое они платят) за их старый статический контент. Мы используем для этого, предоставляя клиенту учетную запись ftp в другой домен. (Например, доменом клиента является customer.com, но они обращались к своему статическому контенту через otherdomain.com/customerstatic).

Теперь мы хотим повысить безопасность, предоставляя клиентам учетные записи sftp на своих Linux-серверах. Я использую openssh / sftp-server в своей среде оболочки, поэтому они не могут войти или выполнить команды.

Проблема в том, что по своей природе многие файлы файловой системы по умолчанию (drwxr-xr-x), что означает, что любой пользователь сможет прочитать содержимое каталога и, возможно, некоторые файлы. Я не думаю, что изменение всей файловой системы на -rwxr-x - x - это разумный шаг, поскольку я не знаю, сколько системных файлов потребуется для этого разрешения на чтение.

Кто-то сталкивался с этой проблемой в прошлом. Если у вас есть, не могли бы вы просветить путь?

Благодарность


Хороший вопрос и краткий полный ответ - модератор, вероятно, должен изменить заголовок и превратить его в вопрос, не относящийся к вики.
MikeyB

невозможно удалить вики-вопрос; извините
Джефф Этвуд

Ответы:


22

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

В Linux я бы обратил внимание на эту часть (настройка / etc / ssh / sshd_config):

  Match Group sftponly
         ChrootDirectory %h
         ForceCommand internal-sftp 
         AllowTcpForwarding no

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

Смотрите ссылку для получения дополнительной информации, а также прочитайте справочную страницу sshd_config. Надеюсь, это поможет.


Кроме того, вам может потребоваться указать OpenSSH использовать его, internal-sftpкогда клиент запрашивает подсистему sftp - возможно, он настроен на использование внешней sftp-serverпрограммы. Для этого добавьте или измените строку Subsystem sftp internal-sftpв главном разделе файла конфигурации (а не в Matchразделе).
Nate

Джош, ты когда-нибудь придумывал, как сделать так, чтобы это не требовало прав root-доступа к домашним каталогам пользователей?
Мэтт Симмонс


1

Когда вы говорите «Многие файловые системы имеют разрешения по умолчанию 755», это на самом деле означает, что значение umask по умолчанию установлено на 022. Вы можете изменить это значение по умолчанию (для новых файлов), установив значение umask на 027, что сделает права доступа по умолчанию 750, или установите значение umask 007, что сделает разрешения по умолчанию 770.


0

Вы можете подумать о настройке сервера OpenVZ, а затем о создании отдельного небольшого виртуального контейнера ftp / sftp для каждой компании. Это держит их всех отдельно, и как только вы овладеете OpenVZ, это действительно удобно для такого рода мелких вещей.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.