Запуск SFTP или FTP-сервера независимо от системных учетных записей

463
Vanadium

Можно ли запустить SFTP-сервер без использования демона SSH, так сказать, в «пространстве пользователя»? Мне не нравится, как учетные записи пользователей системы связаны с учетными данными для входа, я гораздо лучше иметь отдельный конфигурационный файл, чтобы указать разрешенные пользователю: комбинации паролей и есть демон работать под одним пользователем. Если это невозможно сделать с SFTP, то решение FTP тоже будет в порядке.

2

1 ответ на вопрос

4
grawity

без использования демона SSH, в «пространстве пользователя», так сказать

Здесь есть неправильное представление. Демон SSH - это «пространство пользователей», как и любой другой сервер сетевых протоколов - он не обязательно является частью ОС.

Более важно: то, как проверяются учетные данные для входа, не имеет ничего общего с присутствием демона SSH, но зависит от того, каким демоном SSH вы пользуетесь, и как он написан (запрограммирован) для работы. Нет ничего, что заставляло бы демона SSH использовать системные учетные записи; это выбор программиста (хотя по общему признанию единственный выбор, который имеет смысл для ежедневного использования).

(Примечание: это не всегда так со всеми сетевыми программами. Например, встроенный SMB-сервер Windows на самом деле является частью ОС и, как правило, не может быть заменен. Но, к счастью, ваш вопрос не о SMB на Windows; речь идет о SSH в Linux.)

Продолжая:

Можно ли запустить SFTP-сервер без использования демона SSH

И да и нет.

SFTP определен для использования через транспорт SSH; большинство клиентов не будут поддерживать никакой другой транспорт. Важным следствием является то, что SFTP не имеет собственной защиты (например, аутентификации или шифрования) - эти уровни безопасности устанавливаются во время рукопожатия SSH.

Однако SFTP не требует конкретно sshd OpenSSH, а также не требует полнофункционального общесистемного демона SSH в целом - полный стек может быть реализован другим программным обеспечением, часто как в одной программе.

Мне не нравится, как системные учетные записи пользователей привязаны к учетным данным

Для общих демонов SSH использование системных учетных записей, как правило, является единственным вариантом, который имеет смысл, поскольку они позволяют клиенту иметь интерактивный доступ к оболочке, с помощью которого он может запускать всевозможные внешние программы и системные команды. Одна только служба SSH не может обеспечить разделение между программами, запускаемыми разными пользователями, если она не получит помощь от ОС - и по совпадению именно для этого созданы системные учетные записи. Вот почему OpenSSH использует системные учетные записи и ничего больше.

К счастью, вышесказанное не является проблемой для демонов FTP и выделенных демонов SSH «только для SFTP», поскольку все операции FTP / SFTP происходят внутри самого демона, и для изоляции пользователя не требуется ничего, кроме тщательной проверки путей к файлам.

Итак, наконец-то добрались до вашего запроса:

Я бы предпочел иметь отдельный конфигурационный файл для указания разрешенных комбинаций пользователь: пароль и запуск демона под одним пользователем

Для этого есть программное обеспечение. Поиск FTP-серверов, которые поддерживают аутентификацию «виртуальных пользователей» через какую-либо форму базы данных. Некоторые из них также имеют возможность SFTP, например, ProFTPd . Большинство, однако, делают только FTP / FTPS.

Спасибо, ProFTPd был именно тем, что я искал! Я понимаю различие, я просто не мог найти программное обеспечение, которое соответствовало бы тому, о чем я думал. Vanadium 5 лет назад 1

Похожие вопросы