Устанавливаем Pure-FTPd (anonymous) из репозитория

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
В рамках данного поста, рассмотрим работу сервера с доступом для анонимного пользователя и возможностью записи в определённый каталог. То есть любой сможет попасть на сервер с правами на запись. Для этого проверяем есть ли у нас в системе  пользователь ftp:
cat /etc/passwd | grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
Домашний каталог пользователя ftp является /var/ftp. В нем и создадим папку c необходимыми правами:
upload — права на запись
mkdir /var/ftp/upload
chmod -R 0755 /var/ftp/upload

На корень ftp сервера установим права запрещающую всем запись

chmod 555 /var/ftp

Владельцем каталога /var/ftp/, является пользователь ftp. Но так как, что творится в вашей системе известно только вам, советую переназначить владельца

chown -R ftp /var/ftp/
Для пользователей создадим файлик, чтобы все сразу поняли как работает наш 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

Если вы не назначите в конфиге диапазон пассивных портов 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-ftpwho — в реальном времени показывает кто lскачивает/загружает файлы и с какой скоростью.

Возможные ошибки pure-ftpd

1. Ошибка при подключении к pure-fptd

Ошибка: Превышено время ожидания соединения
Ошибка: Не могу получить список каталогов!

Решение:

проверьте настройки 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 из исходников с дополнительными ключами

Share

You may also like...

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

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