FreeBSD Поднимаем FTP на Proftpd

    В процессе создания сайта нам конечно понадобится перекачивать на сервер (и с него) кучу файлов для этого подымем FTP. Мой выбор ProFTPD. Я считаю ProFTPD – один из самых популярных, продвинутых ftp серверов. Содержит массу настроек и возможностей, легко расширяется за счет модулей. И что самое приятное для многих – его конфигурационный файл имеет подобный Apache синтаксис. Во FreeBSD ProFTPD присутствует в портах в обычном виде и порта, который собирается сразу с поддержкой MySQL. Установим обычный порт, он с легкостью позволяет работать системным пользователям и практически не нуждается в настройке.

 

Установка ProFTPD

   Идем сюда:

# cd /usr/ports/ftp/proftpd
# make config

   Отключаем поддержку IPV6, а также "Native Language Support" (чтобы логи не портились) запускаем установку:

# make install clean

   Вносим в файл /etc/rc.conf  строку  

proftpd_enable=“YES”

   Идем править конфиг, находится он здесь /usr/local/etc/proftpd.conf. Предлагаю свой вариант конфига, под свои нужды естественно нужно внести свои данные. Нижеприведенная настройка предполагает, что у вас в системе уже создан анонимный пользователь ftp, а также присутствуют пользователь/группа nobody/nogroup. Если анонимных пользователей пускать не будем значит закоментировать соотвествующие строчки.

# Описываем свой сервер
ServerName            "My FTP"
# Это отдельно стоящий сервер (режим работы - автономный)
ServerType            standalone
# Указываем, на каком IP-адресе будет работать ftp
DefaultAddress            192.168.218.13
# Сервер будет работать только на указанном IP-адресе
SocketBindTight            on
# Выключаем приветствие, выдаваемое клиенту после соединения
ServerIdent            off
# Имя файла, где хранится информация о текущих сессиях
ScoreboardFile            /var/run/proftpd/proftpd.scoreboard
# Указываем стандартный порт для работы
Port                21
# Интервал портов для работы в пассивном режиме (min max)
PassivePorts            50000 50100
# Не использовать протокол IPv6

# UseIPv6                off
# Umask для создаваемых файлов и директорий
Umask                022
# Максимальное число одновременно запускаемых процессов в режиме standalone
MaxInstances            30
# Ограничение максимальной длины команды (число символов)
CommandBufferSize        512
# Общее максимальное число соединений и выводимое предупреждение при достижении этого числа
MaxClients            10    "Too many connections"
# Максимальное число соединений с одного хоста и предупреждение при достижении этого числа
MaxClientsPerHost        3    "%m client are already connected from your host"
# Максимальное число попыток ввода пароля и предупреждение при достижении этого числа
MaxLoginAttempts        3    "Too many of attempts to connected"
# Выводимое сообщение при запрещении входа на ftp
AccessDenyMsg            "ATTENTION! All connections are loged"
# Выводимое сообщение
AccessGrantMsg            "Now apload/download files"
# Выводимое сообщение при отклонении соединения с ftp
DisplayGoAway            "Go Away!"
# Уровень логирования
SyslogLevel            notice
# Не проверять реверсные ответы DNS
UseReverseDNS            off
# Отключаем использование протокола идентификации RFC1413
IdentLookups            off
# Файл лога передачи файлов
TransferLog            /var/log/proftpd-transfer.log
# Файл общего системного лога ProFTPD
SystemLog            /var/log/proftpd-error.log
# Файл лога записи/чтения файлов с ftp
ExtendedLog            /var/log/proftpd-extended.log read,write
# Указываем пользователя/группу от имени которых будет запущен ProFTPD
User                nobody
Group                nogroup
 # Перенаправляем каждого ftp-пользователя в его домашнюю директорию
DefaultRoot ~
 # Разрешаем перезаписывать файлы
AllowOverwrite            on
 # Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
  DenyAll
</Limit>
# Задержка простоя (в секундах)
TimeoutIdle            3600
# Задержка ожидания авторизации (в секундах)
TimeoutLogin            3600
# Задержка после авторизации, если не начал прием/передачу файлов (в секундах)
TimeoutNoTransfer        3600
# Задержка во время пересылки файла (в секундах)
TimeoutStalled            3600
# Максимальная длительность сессии (в секундах)
TimeoutSession            3600
# Не использовать PAM-аутентификацию
AuthPAM                off
# Описываем работу ProFTPD при анонимном доступе, указав каталог /home/ftp
<Anonymous /home/ftp>
# Имя/группа для анонимного пользователя
    User            ftp
    Group            nogroup
# Указываем анонимных пользователей (uid)
    UserAlias        anonymous ftp
# Даем доступ только пользователям, упомянутым в директиве UserAlias
    AuthAliasOnly        on
# Не проверять валидность shell у анонимного пользователя
    RequireValidShell    off
# Не спрашивать пароль у анонимных пользователей
    AnonRequirePassword    off
# Указываем максимальное число анонимных пользователей и сообщение при достижении этого числа
    MaxClients        5    "Soory, max %m users - try again later"
# Ограничения на вход для анонимных пользователей
        <Limit LOGIN>
        # Пускаем всех
        AllowAll
        </Limit>
# Ограничение на запись для анонимных пользователей
    <Limit WRITE>
        # Запрещаем всем
        DenyAll
    </Limit>
</Anonymous>
 

    Теперь нам необходимо создать три файла для логов работы ProFTPD:
# touch /var/log/proftpd-error.log
# touch /var/log/proftpd-extended.log
# touch /var/log/proftpd-transfer.log

    Запускаем ProFTPD:

# /usr/local/etc/rc.d/proftpd start

    Проверить работу демона ProFTPD можно командой:

# netstat -an | grep LIST | grep 21
tcp4       0      0 192.168.0.10.21                   *.*                    LISTEN

    Следует еще упомянуть несколько полезных команд для мониторинга работы ProFTPD:

    ftpwho – показывает текущую информацию о процессе для каждого сеанса FTP
    ftpcount – показывает текущее число соединений для каждой proftpd конфигурации сервера
    ftptop – отображает рабочее состояние на proftpd соединениях сервера

    И напоследок: если на сервере установлен файервол, то необходимо дать разрешения на доступ к ftp-серверу. Как ставить Firewall, с примером конфига вот в этой статье. И в конфиге нужно раскоментировать вот эти строки (если их нет вставляем):

${FwCMD} add allow tcp from any to ${IpOut} 21 via ${LanOut}

${FwCMD} add allow tcp from any to ${IpOut} 50000-50100 via ${LanOut}

Категории:

Рейтинг: 
Голосов еще нет

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

Filtered HTML

Plain text