Установка PureFTPd с виртуальными пользователями на CentOS

PureFTPd является довольно удобным FTP сервером и удобными настройками, в частности, управлением пользователями. Устанавливать и настраивать будем на Centos 6.4, что с легкостью можно отнести к Red Hat подобным дистрибутивам (Fedora, Red Hat и др).

Настроить сервер можно довольно гибко. В данной статье будет описан способ создания виртуальных пользователей. Так же можно использовать уже имеющихся пользователей в системе, но в моем случае это не совсем удобно. Создавая виртуальных пользователей, мы их можем привязать к системным. Для удобства, будет создана группа ftpgroup и пользователь этой группы — ftpuser.

По порядку

  1. В первую очередь нужно подключить репозиторий, откуда будем устанавливать дистрибутив. Последнюю версию и нужную архитектуру смотрим по адресу http://pkgs.repoforge.org/rpmforge-release
  2. Устанавливаем сам сервер
  3. Для включения виртуальных пользователей необходимо поправить конфигурационный файл /etc/pure-ftpd/pure-ftpd.conf. Надо раскомментировать данную строку, которая указывает на хранилище паролей.
  4. Запустим FTP сервер

    или

  5. Теперь нужно создать системную группу и пользователей, к которым будут привязаны виртуальные ftp пользователи. Дадим им идентификаторы 2000, чтобы проще было запомнить.

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

    После выполнения данной команды будет запрошен пароль. Данным действием мы добавили пользователя test, привязали его к системной группе ftpgroup (gid 2000) и системному пользователю ftpuser (uid 2000). После внесения новых пользователей необходимо выполнить команду: Так же указана директория, к которой будет предоставлен доступ данному пользователю.

    Которая обновит базу данных пользователей.

  7. Последним шагом является включение PureFTPd в автозагрузку сервера

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


Расширенные настройки pure-ftpd:

  • Если вы не используете ipv6, то лучше раскомментировать данную строку:
  • Если хотите, чтобы передаваемые данные шифровались, то необходимо раскомментировать блок

    При этом, значение TLS можно установить в 1 — разрешены оба типа подключения и 2 — доступно только подключение с шифрованием. Не забываем сгенерировать ключ следующей командой:

  • В зависимости от настроек сервера — можно так же указать права, которые будут присвоены диекториям/файлам. У меня на одном из серверов каждый виртуальны хост запущен от своего пользователя, но есть один пользователь в группе, который тоже должен иметь доступ к файлам, поэтому я ставлю следующую маску:

    Что означает, что файлам будут даны права 640, а директориям 750

  • Для подключения к ftp в пассивном режиме необходимо указать диапазон портов, используемых pure-ftpd, например:

    Далее, нам необходимо на firewall открыть доступ к данным портам. Пример конфигурации для iptables:

  • По умолчанию в pure-ftp могут заходить анонимные пользователи, давайте запретим это, добавив: