Продолжаем изучение 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
Свежие комментарии