Устанавливаем Pure-FTPd (виртуальные пользователи)

Продолжаем изучение Pure-FTPd. Я уже описывал как настроит VsFTPd для пользователей не привязанных к системе в статье «VsFTPD виртуальные пользователи (Berkeley DB + PAM)«. Сегодня проделаем тоже самое, но на этот раз будем использовать Pure-FTPd.

Действия производить будем с системой

Если вы собирали Pure-FTPd из исходников, то для включения поддержки puredb в pure-ftpd необходимо было собирать с параметром:

./configure --with-puredb

—with-puredbвключает поддержку puredb

Мы же подключим репозиторий RPMForge. Для этого заходим на сайт http://pkgs.repoforge.org/rpmforge-release/ и выбираем нужный пакет. В нашем случае, команда для добавления репозитория, получится:

rpm -ihv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

Обновляемся

yum update

Устанавливаем pure-ftp

yum install pure-ftpd

Копируем дефолтный конфиг

cp /etc/pure-ftpd/pure-ftpd.conf /etc/pure-ftpd/pure-ftpd.conf.default

Сервер установлен, теперь переходим к настройке:

groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Создадим директорию для фтп сервера и пользователя test:

mkdir -p /home/ftpusers/test

Установим необходимые права:

chown -R ftpuser:ftpgroup /home/ftpusers/

Добавляем виртуального пользователя

pure-pw useradd test -u ftpuser -d /home/ftpusers/test

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

Переходим к настройке конфига:

vi /etc/pure-ftpd/pure-ftpd.conf

Меняем следующие параметры:

NoAnonymous yesзапрещаем авторизацию анонимным пользователям
PureDB /etc/pure-ftpd/pureftpd.pdbуказываем путь до базы с информацией о виртуальных пользователях
AnonymousCanCreateDirs yesзапрещаем анонимным пользователям создавать директории 
CreateHomeDir yesпри добавлении нового виртуального пользователя автоматически будет создаваться домашняя папка, в случае если она отсутствует.

После изменение конфиг будет выглядеть:

ChrootEveryone              yes
# TrustedGID                    100
BrokenClientsCompatibility  no
MaxClientsNumber            50
Daemonize                   yes
MaxClientsPerIP             8
VerboseLog                  no
DisplayDotFiles             yes
AnonymousOnly               no
NoAnonymous                 yes
SyslogFacility              ftp
# FortunesFile              /usr/share/fortune/zippy
DontResolve                 yes
MaxIdleTime                 15
# LDAPConfigFile                /etc/pure-ftpd/pureftpd-ldap.conf
# MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf
# PGSQLConfigFile               /etc/pure-ftpd/pureftpd-pgsql.conf
PureDB                        /etc/pure-ftpd/pureftpd.pdb
# ExtAuth                       /var/run/ftpd.sock
PAMAuthentication             yes
# UnixAuthentication            yes
LimitRecursion              7500 8
AnonymousCanCreateDirs      yes
MaxLoad                     4
# PassivePortRange          30000 50000
# ForcePassiveIP                192.168.0.1
# AnonymousRatio                1 10
# UserRatio                 1 10
AntiWarez                   yes
# Bind                      127.0.0.1,21
# AnonymousBandwidth            8
# UserBandwidth             8
Umask                       133:022
MinUID                      500
UseFtpUsers no
AllowUserFXP                no
AllowAnonymousFXP           no
ProhibitDotFilesWrite       no
ProhibitDotFilesRead        no
AutoRename                  no
AnonymousCantUpload         yes
#TrustedIP                  10.1.1.1
#LogPID                     yes
AltLog                     clf:/var/log/pureftpd.log
# AltLog                     stats:/var/log/pureftpd.log
# AltLog                     w3c:/var/log/pureftpd.log
#NoChmod                     yes
#KeepAllFiles                yes
CreateHomeDir               yes
#Quota                       1000:10
#PIDFile                     /var/run/pure-ftpd.pid
#CallUploadScript yes
MaxDiskUsage               99
#NoRename                  yes
CustomerProof              yes
# PerUserLimits            3:20
# NoTruncate               yes
# TLS                      1
# IPV4Only                 yes
# IPV6Only                 yes
# FileSystemCharset	big5
# ClientCharset		big5

Создаем базу с виртуальными пользователями. Данную команду необходимо выполнять при любом изменении связанным с виртуальными пользователями (добавление, удаление, модификация)

pure-pw mkdb

Проверяем что база (файл pureftpd.pdb) создалась.

[root@test ~]# ls /etc/pure-ftpd/ | grep pdb
 pureftpd.pdb

Запускаем сервер:

service pure-ftpd start

Добавляем в автозагрузку

chkconfig pure-ftpd on

Советую не доверять машинам (восстание не за горами 😉 ) и проверять введённые вами команды

[root@test ~]# chkconfig --list | grep pure
pure-ftpd 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл

Проверяем работу сервера. Для этого создадим тестовый файл который мы увидим при подключении к серверу:

touch /home/ftpusers/test/test_file

Для чистоты эксперимента, подключимся с другого компьютера и проверим содержимое домашней директории пользователя на предмет присутствия тестового файлика

Настраиваем iptables для работы pure-ftpd

IPTABLES -A INPUT -p TCP --dport 21 -j ACCEPT
IPTABLES -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

Материал для вкуривания: download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users

Share

You may also like...

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *