Pure-FTPd — свободный FTP-сервер для операционных систем семейства UNIX, распространяемый по лицензии BSD. Основное внимание уделяется безопасности и простоте настройки.
Официальный сайт: www.pureftpd.org
Документация: www.pureftpd.org/project/pure-ftpd/doc
Дополнения, примеры и т.д.: download.pureftpd.org/pub/pure-ftpd/
Устанавливать ftp сервер будет на систему CentOS release 6.3 (Final) и ядро 2.6.32-279.19.1.el6.x86_64. После прочтения статьи у вас получиться ftp сервер с анонимным доступом и возможностью записи в определённый каталог.
Первым делом необходимо подключить репозиторий EPEL:
EPEL с зеркала Яндекс
для x86_64
rpm -Uvh http://mirror.yandex.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm
или для i386
rpm -Uvh http://mirror.yandex.ru/epel/6/i386/epel-release-6-8.noarch.rpm
EPEL с официального сайта:
для i386
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
или для x86_64
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Откуда устанавливать выбирайте сами
Устанавливаем Pure-FTPd
Устанавливаем:
yum --enablerepo=epel -y install pure-ftpd
Копируем конфиг
cp /etc/pure-ftpd/pure-ftpd.conf /etc/pure-ftpd/pure-ftpd.conf.default
Редактируем конфиг
vi /etc/pure-ftpd/pure-ftpd.conf
cat /etc/passwd | grep ftp ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
mkdir /var/ftp/upload chmod -R 0755 /var/ftp/upload
На корень ftp сервера установим права запрещающую всем запись
chmod 555 /var/ftp
Владельцем каталога /var/ftp/, является пользователь ftp. Но так как, что творится в вашей системе известно только вам, советую переназначить владельца
chown -R ftp /var/ftp/
echo "HI" > /var/ftp/README echo "download your files in upload" >> /var/ftp/README echo "Sites powered by Pure-FTPd" >> /var/ftp/README
Настраиваем конфиг Pure-FTPd
От конфига который нам даётся после установки у меня получилось отличие в несколько параметров
AnonymousOnly yes — доступ только анонимным пользователям
AnonymousCanCreateDirs yes — анонимным пользователям разрешено создавать каталоги
Umask 022:022 — маска для создаваемых файлов:директорий, получается в результате вычитания из 777 указанного значения. В нашем случае маска получится 755:755
AnonymousCantUpload no — значение «no» разрешает анонимным пользователям загружать новые файлы
В итоге получился вот такой конфиг:
ChrootEveryone yes # TrustedGID 100 BrokenClientsCompatibility no MaxClientsNumber 50 Daemonize yes MaxClientsPerIP 8 VerboseLog no DisplayDotFiles yes AnonymousOnly yes NoAnonymous no SyslogFacility ftp 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 # Path to pure-authd socket (see README.Authentication-Modules) # ExtAuth /var/run/ftpd.sock PAMAuthentication yes # UnixAuthentication yes LimitRecursion 10000 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 022:022 MinUID 500 UseFtpUsers no AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no AnonymousCantUpload no #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
/etc/rc.d/init.d/pure-ftpd start
Добавляем сервис в автозагрузку
chkconfig pure-ftpd on
Настраиваем IPTABLES для работы pure-ftpd
# PassivePortRange 30000 50000
то будет использоваться диапазон 30000-50000 и тогда правила iptables будут выглядеть
iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p udp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 30000:50000 -j ACCEPT iptables -A INPUT -p udp --dport 30000:50000 -j ACCEPT
Команды администрирования pure-ftpd
Возможные ошибки pure-ftpd
Ошибка: Превышено время ожидания соединения
Ошибка: Не могу получить список каталогов!
Решение:
проверьте настройки iptables
2. Нет возможности удаления файлов и каталогов от anonymous
При настройки сервера для анонимных пользователей нет возможности дать доступ на удаление файлов.
Решение:
скачиваем исходники и читаем ChangeLog
* Version 1.0.5 : Rename and delete operations are now syslogged. Strange characters are now stripped from .banner/.message files. Unofficial macros to give more power to anon users : ANON_CAN_CHANGE_PERMS, ANON_CAN_DELETE, ANON_CAN_RESUME and ANON_CAN_RENAME. Return 550 when an upload excess quota. New unofficial macro : LOG_ANON_EMAIL . File deletion and rename are now logged. [v]snprintf() replacements have been totally rewritten. Accept multiple ip/mask filtering rules in the puredb backend. The load average can now be read on Solaris < 2.6 (where getloadavg() isn't implemented) . Contributed by Keneth Stailey. Documentation updates (FAQ and pure-ftpd man page), translation updates. Autoconf updated to 2.52g, Automake to 1.5b.
тоесть, для включения этой опции придется собирать pure-ftpd из исходников с дополнительными ключами
Свежие комментарии