УСТАНОВКА 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