У меня есть чистый 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 работала правильно?
Я нашел конфигурацию IPTABLES по умолчанию в / etc / default / iptables, добавил следующее и перезапустил службу iptables, и теперь ftp работает:
-A INPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT
Как настроить пассивные порты для Pure-FTPd (и настроить брандмауэр):
Установить максимальное число одновременных соединений ftp в этом файле:
/etc/pure-ftpd/conf/MaxClientsNumber
для Например:
50
Установите желаемый диапазон пассивных портов в этом файле:
/etc/pure-ftpd/conf/PassivePortRange
, например:
42420 42520
Подсказки:
sudo iptables -nvL
. Открытые порты в брандмауэре:
Могу ли я предложить использовать 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
Последний шаг: Проверьте еще раз, если установка 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, упрощающая управление брандмауэром.