Настройте pure-ftp так, чтобы он принимал только виртуальных пользователей.

Вопрос или проблема

Я установил pure-ftpd на Debian (Raspberry Pi), нашел конфигурационный файл и смог сделать базовую настройку, запретить анонимный вход, создать виртуального пользователя, вызвать pure-pw mkdb и перезапустить сервер. Но войти с этим пользователем не удалось.
Вместо этого я могу войти с обычным пользователем Linux.
Я хотел бы отклонить обычных пользователей и принимать только виртуальных.

Я узнал, что сервер должен быть запущен с параметром -l, который указывает, какие входы должны быть приняты. Это звучит здорово — если бы я только знал, где запускается сервер. Ничего нет ни в init.d, ни в других известных (для меня) местах, где выполняются такие автоматические старты демонов. Насколько я знаю, я ничего не сделал, чтобы активировать демон, это должно было произойти во время установки.
Если кто-то мог бы сказать мне, где запускается pure-ftpd, возможно, это решит обе мои проблемы.

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

Не является ли pure-ftpd лучшим выбором для FTP-сервера, который должен принимать только выделенных пользователей без связи с системными пользователями?

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

Это просто так написано. В общем, “почему программное обеспечение XYZ делает A, а не технически равнозначное B?” ответ такой же, как “почему автор написал свою книгу так, чтобы она была A, а не B”: это было сознательное или бессознательное решение, и никто не позаботился сделать B с этим программным обеспечением вместо этого.

В данном случае это проектное решение (которое я не разделяю, но вы, вероятно, выбрали pure-ftpd именно за их проектные решения):

Pure-FTPd стремится оставаться простым в эксплуатации и минимизировать количество

настроек до минимума.

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

Вот почему вещи не находятся последовательно в одном конфигурационном файле с точки зрения upstream pure-ftpd.

Необходимо добавлять параметры командной строки, чтобы сделать то, что вы хотите, является (очевидно, но только очевидно для людей, которые должны упаковывать программное обеспечение и помогать тысячам пользователей запустить его, а не для самих авторов программного обеспечения) плохой идеей; поэтому в Debian используется “обертка” PERL-скрипта, который читает свои собственные конфигурационные файлы и затем запускает pure-ftpd так, как это хочет пользователь.

Сервер запускается в /etc/init.d/pure-ftpd, который является частью пакета pure-ftpd-common для Debian, который вы должны были получить, если правильно установили pure-ftpd (т.е. через менеджер пакетов вашей ОС, apt install pure-ftpd). Если вы не установили его через это, то вам придется настроить свой собственный механизм запуска демона! (не делайте этого. Используйте пакет дистрибутива.)

Скрипт – это /usr/bin/pure-ftpd-wrapper (возможно, он читает доступные параметры конфигурации в начале, но не модифицируйте его!), и он читает все файлы в каталоге /etc/pure-ftpd/conf для общей конфигурации и все в /etc/pure-ftpd/auth для конфигурации аутентификации. Таким образом, вы найдете настройки, упомянутые в /usr/bin/pure-ftpd-wrapper, как имена файлов в /etc/pure-ftpd/{conf,auth}.

Думаю, это делает “удобный в использовании FTP-сервер”? Нет. Но это может быть разумным выбором, если вам действительно нужен FTP (не эксперт в FTP-серверах, если быть честным); обычно люди предпочитают (по крайней мере, на основе моего опыта, основанного на постах, которые я здесь видел) ProFTP или vsftp. Лично я бы утверждал, что 2024 год, и единственное место, где я вижу, что FTP используется в значительных развертываниях, – это распространение вредоносных программ и пиратского ПО, поэтому я бы утверждал, что если вы собираетесь настраивать сложную систему с виртуальными пользователями, возможно, FTP слишком 1970-х для ваших нужд, и вам лучше подойдут SFTP / webdav / совместимые с S3 протоколы… которые не тянут за собой пятнадцати лет совместимости (FTP старше интернета — он предшествовал интернет-протоколу на три года). Я бы даже сказал, что SMB был бы более разумным выбором, и в наши дни его можно нормально шифровать и защищать для работы через интернет. В отличие от FTP, все эти протоколы поддерживают полноценное кодирование, поддержку продолжения прерванных передач, намного лучшие списки каталогов…

Ответ или решение

Для настройки Pure-FTPd на прием только виртуальных пользователей в среде Debian (в частности, на Raspberry Pi) необходимо выполнить несколько ключевых шагов. Рассмотрим это более подробно.

Шаг 1: Установка Pure-FTPd

Убедитесь, что вы правильно установили Pure-FTPd с помощью пакетного менеджера:

sudo apt update
sudo apt install pure-ftpd

Это гарантирует, что все зависимости и конфигурационные файлы установлены правильно.

Шаг 2: Создание виртуальных пользователей

Вы уже создали виртуального пользователя с помощью команды:

pure-pw mkdb

Для создания нового виртуального пользователя вы можете использовать:

pure-pw useradd имя_пользователя -u ftpuser -d /путь/к/каталогу

Здесь -u ftpuser указывает системного пользователя, который будет иметь права доступа (обычно это специальный системный пользователь, предназначенный только для FTP). Опция -d устанавливает домашний каталог пользователя.

Шаг 3: Настройка Pure-FTPd для приема только виртуальных пользователей

Чтобы Pure-FTPd принимал только виртуальных пользователей, его необходимо запустить с определенной параметризацией. При этом в Debian процесс инициализации Pure-FTPd управляется скриптом /etc/init.d/pure-ftpd, который использует обертку для запуска демона.

Для этого:

  1. Откройте файл конфигурации:
sudo nano /etc/default/pure-ftpd
  1. Найдите строку, содержащую параметры запуска, и убедитесь, что добавлен параметр -l для логина виртуальных пользователей:
DAEMON_ARGS="-l puredbl:/etc/pure-ftpd/pureftpd.pdb"

Такой запуск означает, что сервер будет использовать базу данных виртуальных пользователей, созданную вами при помощи pure-pw.

Шаг 4: Перезапуск сервиса

После внесения изменений необходимо перезапустить службу:

sudo service pure-ftpd restart

Шаг 5: Проверка конфигурации

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

Шаг 6: Дополнительные ресурсы и соображения

В идеале, для работы с FTP-серверами стоит рассмотреть более современные протоколы передачи данных, такие как SFTP и WebDAV, которые обеспечивают лучшие уровни безопасности и более современный функционал. Однако, если вы все же решите использовать Pure-FTPd, у вас уже есть необходимые шаги для конфигурации.

Обратите внимание, что файловая структура конфигурации Pure-FTPd предоставляет множество возможностей для настройки. Вы можете размещать дополнительные параметры в файлах внутри каталогов /etc/pure-ftpd/conf и /etc/pure-ftpd/auth, что может помочь задать более тонкие конфигурации, такие как ограничения по размеру файлов, ограничения по количеству подключений и многое другое.

Заключение

Следуя вышеуказанным шагам, вы сможете настроить Pure-FTPd на прием только виртуальных пользователей, обеспечив тем самым большую безопасность и управляемость вашего FTP-сервера. Если вы столкнулись с проблемами, рекомендуется проверить журналы системы и конфигурационные файлы на наличие ошибок или неправильных настроек.

Оцените материал
Добавить комментарий

Капча загружается...