УСТАНОВКА И НАСТРОЙКА PURE-FTPD ПОД UBUNTU

УСТАНОВКА PURE-FTPD

Сначала, используя apt устанавливаем pure-ftpd пакет – он доступен в репозиториях по умолчанию:

sudo apt-get update
sudo apt-get install pure-ftpd

По завершении установки демон  будет запущен и слушать на 21 порту:

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

Вот как выглядит конфигурация pure-ftpd:

cd /etc/pure-ftpd/conf/
ls -al
Результат выполнения команды будет следующего вида:

Каждый конфигурационный  файл описывает отдельный параметр командной строки демона pure-ftpd. Например, файл AltLog содержит формат и путь к журналу передачи (tranfer log file):

cat AltLog

Содержимое выглядит приблизительно так:

НАСТРОЙКА PURE-FTPD

Настройка основных параметров сервера (сервер слушает на порту 21 на всех доступных интерфейсах и будет использвать IP 12.34.56.78 и порты 4500-4600 для пассивного режима – следует настроить перенаправление на NAT маршрутизаторе, если сервер находится за ним):

sudo -i
echo ,21 > Bind
echo 12.34.56.78 > ForcePassiveIP
echo 4500 4600 > PassivePortRange

Настройка параметров безопасности:

echo yes > ChrootEveryone
echo yes > ProhibitDotFilesRead
echo yes > ProhibitDotFilesWrite
echo yes > NoChmod
echo yes > BrokenClientsCompatibility

Настройка ограничений:

echo 4 > MaxClientsPerIP
echo 20 > MaxClientsNumber

Теперь нужно решить какие будут использоваться методы авторизации. Имеются следующие варианты:

  • Unix Authentication (любой пользователь, имеющий системную учетную запись сможет зайти на FTP сервер)
  • PureDB авторизация использует отдельную базу виртуальных пользователей pure-ftpd.

Предпочтительнй использовать второй вариант, который мы и настроим. Итак, отключим Unix и PAM вторизацию, установим путь к PureDB базе пользователей и добавим PureDB как метод вторизации путем создаия символической ссылки в директории /etc/pure-ftpd/auth:

echo no > PAMAuthentication
echo no > UnixAuthentication
echo /etc/pure-ftpd/pureftpd.pdb > PureDB
ln -s /etc/pure-ftpd/conf/PureDB ../auth/50pure

Добавим системную группу и пользователя, с правами которых будут храниться файлы, выгружаемые на сервер виртуальными пользователями. Из соображений безопасности, этот пользователь не должен иметь домашнней директории  (-d /bin/null) и не иметь доступа к командной оболочке (-s /bin/false) :

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

ДОБАВЛЕНИЕ ПОДДЕРЖКИ TLS/SSL

Сгенерируем сертификат безопасности:

sudo apt-get install openssl
echo 1 > TLS
sudo openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Изменяем права доступа на сертификат, чтоб он не был доступен никому, кроме рутового пользователя:

sudo chmod 600 /etc/ssl/private/pure-ftpd.pem

В последний раз перезапускаем сервер для применения нашей свежей конфигурации:

sudo service pure-ftpd restart

Вот и все. Наш сервер настроен, осталось только добавить пользователей.

ДОБАВЛЕНИЕ ПОЛЬЗОВАТЕЛЕЙ В БАЗУ PUREFTPD.

Создадим нового пользователя, назовем его “pureusertest”:

sudo pure-pw useradd pureusertest -u ftpuser -g ftpgroup -d /home/pureftp/pureusertest -N 10

Программа попросит ввести пароль и его подтверждение.

Не забудьте выполнить команду pure-pw mkdb: она нужна для того, чтоб применить изменения, сделанные в базе виртуальных пользователей, по умолчанию находящуюся по пути /etc/pure-ftpd/pureftpd.passwd:

sudo pure-pw mkdb

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

ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ПОЛЬЗОВАТЕЛЯХ PURE-FTPD

Просмотр списка пользователей:

pure-pw list

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

pure-pw show pureusertest

Если вы обратили внимание, что строка “Directory: /home/pubftp/pureusertest/./” заканчивается на ./ – не стоит переживать по этому поводу. Это всего-лишь chroot инструкция для данного пользователя, что обозначает, что он не может попасть в директории, находящиеся “выше”.

Изменение пароля пользователя:

sudo pure-pw passwd pureusertest

После изменения пароля, не забудьте выполнить команду pure-pw mkdb:

sudo pure-pw mkdb

Вот и все. Pure-FTPd настроен. Если есть вопросы, замечания – пишите в комментах.

Источник: http://profhelp.com.ua