Fail2Ban/IPTables & Pure-Ftpd

У меня есть чистый ftpd, работающий на веб-сервере с Fail2Ban. Fail2Ban допускает соединения apache2, но запрещает любое FTP-соединение с любого другого компьютера, кроме локального. Я пытался изменить файлы jail.local и jail.conf, но у меня все еще есть проблемы.

Вот раздел pure-ftpd моего файла jail.local:

[pure-ftpd]
enabled = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/auth.log
maxretry = 6

Вот вид моего iptables -L -n:

Chain INPUT (policy DROP)
target     prot opt source               destination
fail2ban-postfix  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,443,25,587,110,995,143,993,4190
fail2ban-dovecot  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,443,25,587,110,995,143,993,4190
fail2ban-roundcube  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,443,25,587,110,995,143,993,4190
fail2ban-ssh  tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
fail2ban-pure-ftpd  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 21,20,990,989
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:25
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:587
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:110
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:995
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:143
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:993
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain fail2ban-dovecot (1 references)

Если я запускаю следующие команды вручную, FTP работает (как активный, все еще не может работать пассивно), но я действительно хочу, чтобы это работало с Fail2Ban:

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT

Любые идеи о том, как заставить fail2ban правильно настроить iptables? Если нет, какие правила мне нужно установить, чтобы активная и пассивная работа FTP работала правильно?

2 ответа

Я нашел конфигурацию IPTABLES по умолчанию в /etc/default/iptables, добавил следующее и перезапустил службу iptables, и теперь ftp работает:

-A INPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT

Как настроить пассивные порты для Pure-FTPd (и настроить брандмауэр):

  1. Установите максимальное количество одновременных соединений ftp в этом файле:

    /etc/pure-ftpd/conf/MaxClientsNumber
    

    например:

    50
    
  2. Установите желаемый диапазон пассивного порта в этом файле:

    /etc/pure-ftpd/conf/PassivePortRange
    

    например:

    42420 42520
    

    подсказки:

    • Введите два номера порта через пробел.
    • Откройте вдвое больше портов, чем вы установили в MaxClientsNumber, например. MaxClientsNumber = 50 -> открыть 100 пассивных портов.
    • Порты должны находиться в диапазоне свободных портов (еще не использованных на вашем компьютере другим сервисом и не используемых никаким другим стандартным сервисом).
    • Примеры диапазона пассивных портов: 29100-29200 или 32770-32870 или 42420-42520 или 51899-51999. Смотрите полный список стандартных IP-портов здесь. Проверьте используемые порты на вашей машине с sudo iptables -nvL,
  3. Открытые порты в брандмауэре:

    Могу ли я предложить использовать UFW в дополнение к iptables? Это значительно упрощает настройку правил брандмауэра, а также делает ваши правила постоянными.

    Всякий раз, когда что-то меняется на вашем брандмауэре, будьте осторожны, чтобы не заблокировать себя от вашей машины! Проверьте, открыт ли порт 22/ssh, если вы подключены через ssh.

    Установите UFW, запретите любой входящий трафик (сначала закройте все, затем просто откройте необходимые порты), откройте порт 22/ssh, затем запустите UFW:

    sudo apt-get install ufw
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow ssh
    sudo ufw enable
    

    Откройте порты для FTP: (замените 42420:42520 на свои собственные порты.)

    sudo ufw allow ftp
    sudo ufw allow proto tcp from any to any port 42420:42520
    

    Откройте порты для вашего веб-сервера:

    sudo ufw allow http
    sudo ufw allow https
    

    Откройте порты для вашего почтового сервера: (может быть, вам не нужны все эти порты. Хорошие советы смотрите здесь.)

    sudo ufw allow 25
    sudo ufw allow 110
    sudo ufw allow 143
    sudo ufw allow 465
    sudo ufw allow 587
    sudo ufw allow 993
    sudo ufw allow 995
    sudo ufw allow 4190
    

    Наконец, проверьте ваши настройки и включите их постоянно:

    sudo ufw status verbose
    sudo ufw disable
    sudo ufw enable
    
  4. Последний шаг: еще раз проверьте, выполнял ли UFW установку все ваши предыдущие правила iptables, а если нет, удалите их вручную.

    iptables -nvL --line numbers
    iptables -D INPUT X
    

    Замените X на номер строки, которую вы прочитали из вывода первой команды, и повторите (обе команды!) Для каждого правила iptables, которое вы хотите удалить.

    Особенно проверьте это правило iptables в цепочке IPUT (как видно из ваших данных выше) с опцией '-v' sudo iptables -nvL

    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
    

    Если вы видите столбец с надписью "lo" в этой строке, то все в порядке, и здесь ничего не нужно делать. Если в этой строке нет 'lo', это может означать, что ваш брандмауэр будет принимать весь трафик на все порты (как если бы у вас вообще не было брандмауэра), и его следует удалить.

Теперь у вас должен быть Pure-FTPd, принимающий пассивные порты, и настройка UFW, которая проста для управления брандмауэром.

Другие вопросы по тегам