В прошлой статье Настраиваем FTP сервер Proftpd мы устанавливали и делали базовую настройку ftp сервера. Сегодня я хочу коснуться немного безопасности сервера и его специфических настроек.
Если у вас ftp сервер работает на хосте в интернете, то в логах proftpd можно заметить, что кто-то перебирает связки логин-пароль. Чтобы ограничить этот беспредел введем жесткие меры на ввод логина-пароля. Для этого активируем модуль Proftpd, который называется mod_ban. Хочу заметить, что в ранних версиях proftpd этот модуль надо было ставить отдельно, так что если что-то у вас не заработает, то лучшим выходом будет обновить версию proftpd до последнего релиза, где этот модуль ставится вместе с остальными модулями.
Нижеприведенный кусок конфига proftpd.conf отвечает за блокировку хостов, которые пытаются перебирать пароли на вашем ftp. Я для примера разрешил 6 попыток ввода логина-пароля за 10 минут, после чего ip с которого происходила попытка подключения блокируется на 24 часа. По истечении 24 часов забаненый хост снова может пробовать подключаться.
<IfModule mod_ban.c>
BanEngine on
BanLog /var/log/proftpd/ban.log
BanTable /var/db/proftpd/ban.tab
BanMessage "Host %a has been banned"
# Бан для хостов, которые достигли maxloginAttemps 2 раза в течение
# 10 минут (т.е если кто-то 6 раз в течение 10 минут набрал неправильный логин-пароль)
# то такие хосты (их ip) баним на 24 часа
BanOnEvent MaxLoginAttempts 2/00:10:00 24:00:00
# Allow the FTP admin to manually add/remove bans
BanControlsACLs all allow user root
</IfModule>
Посмотреть, кто в данный момент забанен можно с помощью команды
# ftpdctl ban info -e
ftpdctl: No bans
ftpdctl:
ftpdctl: No ban events
Отменить забаненый хост, раньше времени
ftpdctl permit host ip_хоста
Вот такой вот полезный модуль.
Расскажите как собрать Proftpd 1.3.4 для ubunta 10.04 так как в репозитории нет Proftpd 1.3.4 а только Proftpd 1.3.2 (в ней отсутствует данный модуль)
поскольку версия 1.3.4 еще нестабильна, то или поищите на форумах пакет .deb собранный энтузиастами или самим из исходников.
Как ниже конечно не совсем правильно с точки зрения системы пакетов, но зато будет результат
#./configure --prefix=/usr/local/proftpd
#make
#sudo make install
в каталоге /usr/local/proftpd будет все что относится к рограмме
А как установить модуль если его нет?
И как обновить proftpd до версии 1.3.5 с сохранением настроек?
Скачать я так понял отсюда ftp://ftp.proftpd.org/distrib/source/
но как установить на Debian?
вообще-то для debian есть уже собранные пакет proftpd.
если вы скачали файл в формате tar.gz, то распакуйте его в удобную для вас директорию и установите как написано в комментарии выше.
Обновление отменяется, т.к. провайдер пишет, что слетят все FTP пользователи, а создавать их заново нереально.
Модуль отдельно не добавляется для 1.3.4?
я не знаю вашу конфигурацию proftpd, но наверняка есть миграция пользователей.
по поводу модуля, он не добавляется отдельно, надо пересобирать весь пакет 1.3.4 заново. но вообще странно, что у вас модуля нет. он вроде как должен быть включен в стандартный набор proftpd, если конечно его не исключили. Посмотрите внимательно на эту статью http://www.maxblogs.ru/articles/nastroika-modulya-mod_banc-v-proftpd, там как раз описывается подключение модуля и говорится о том, что с версии 1.3.4 этот модуль надо подключать по особенному.
Когда я себе включал модуль proftpd, то версия была 1.3.2 и видать все изменилось с версии 1.3.4.