Вопрос или проблема
Я недавно настроил fail2ban на новом сервере debian, в результате чего у меня осталась автоматическая конфигурация iptables по умолчанию,
root@plutarchy:/etc/apache2# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 2222 -j fail2ban-ssh
-A fail2ban-ssh -j RETURN
Теперь, когда я добавляю некоторые старые правила iptables, которые не хочу пропускать через fail2ban, я получаю следующее,
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 2222 -j fail2ban-ssh
-A INPUT -s 127.0.0.1/32 -i lo -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 2222 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j DROP
-A fail2ban-ssh -j RETURN
Обратите внимание, что мне нужно добавить строку -A INPUT -p tcp –dport 2222 -j ACCEPT, иначе я не смогу подключиться по ssh к серверу.
Будет ли fail2ban по-прежнему защищать ssh (порт 2222), когда я вставил эту строку? Если нет, как я могу убедиться, что ssh по-прежнему проходит через fail2ban, пока порт 80 открыт для нормальной работы?
Я думаю, что лучший способ – изменить конфигурацию fail2ban, чтобы фильтровать порт 2222 вместо 22.
Ответ или решение
Введение
Постановка вопроса о применении iptables после внедрения fail2ban на сервере Debian требует глубокого понимания механизмов работы этих инструментов. В данной статье мы подробно рассмотрим, как правильно конфигурировать iptables, чтобы обеспечить защиту SSH-порта 2222 с использованием fail2ban, а также как поддерживать рабочие соединения через другие открытые порты.
Описание ситуации
Вы внедрили fail2ban на ваш сервер Debian, и это привело к созданию базовой конфигурации iptables, которая включает цепочку fail2ban для порта SSH (2222). При добавлении постоянных правил iptables, таких как разрешение доступа на порт 2222, вы столкнулись с риском утраты защиты fail2ban для данного порта.
Текущая конфигурация iptables
На данный момент у вас имеется следующая конфигурация iptables:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 2222 -j fail2ban-ssh
-A INPUT -s 127.0.0.1/32 -i lo -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 2222 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j DROP
-A fail2ban-ssh -j RETURN
Ваша цель — сохранить защиту SSH на порту 2222 через fail2ban, одновременно открывая порт 80 для нормальной работы серверных приложений.
Проблема
Команда -A INPUT -p tcp --dport 2222 -j ACCEPT
создает правило, которое напрямую принимает все входящие соединения на порт 2222. Это означает, что даже если fail2ban начнет блокировать IP-адреса за подозрительные попытки входа, ваше правило будет их игнорировать. Как решить эту проблему?
Решение
Для того чтобы сохранить защиту SSH через fail2ban, необходимо внести изменения в конфигурацию iptables. Вместо того чтобы напрямую открывать порт с помощью -A INPUT -p tcp --dport 2222 -j ACCEPT
, следует настроить iptables так, чтобы трафик на этот порт обрабатывался через fail2ban.
Вот предложенная конфигурация:
-
Удалите строку, явно разрешающую доступ к порту 2222:
-A INPUT -p tcp --dport 2222 -j ACCEPT
-
Убедитесь, что у вас есть правило для порта 2222, которое будет перенаправлять трафик через цепочку fail2ban:
-A INPUT -p tcp -m multiport --dports 2222 -j fail2ban-ssh
Настройка fail2ban
После изменения правил iptables убедитесь, что fail2ban настроен на мониторинг порта 2222. Для этого вам нужно изменить конфигурацию fail2ban, добавив или изменив настройку для SSH:
-
Откройте файл конфигурации fail2ban для SSH. Обычно это файл
jail.local
илиjail.conf
в директории/etc/fail2ban/
. -
Найдите секцию
[sshd]
и измените параметрport
, чтобы он соответствовал вашему порту (2222 вместо стандартного 22):[sshd] enabled = true port = 2222 logpath = /var/log/auth.log maxretry = 5 bantime = 600
-
После внесения изменений перезапустите службу fail2ban для применения конфигурации:
sudo systemctl restart fail2ban
Заключение
Теперь ваша конфигурация iptables будет обеспечивать защиту SSH на порту 2222 через fail2ban, предотвращая доступ к этому порту от IP-адресов, которые проявляют подозрительное поведение. Кроме того, порту 80 будет предоставлен доступ, что потребуется для работы серверных приложений. Таким образом, вы сможете эффективно управлять доступом к вашему серверу, сохраняя при этом соответствующий уровень безопасности.
Дополнительные рекомендации
- Мониторинг: Регулярно проверяйте логи fail2ban и iptables для выявления попыток взлома или проблем в конфигурации.
- Резервное копирование: Перед внесением серьезных изменений в конфигурацию всегда создавайте резервные копии текущих настроек.
- Обновление ПО: Убедитесь, что ваш сервер и fail2ban всегда обновлены до последних версий для защиты от новых угроз.
Данная конфигурация поможет вам эффективно управлять безопасностью сервера Debian и защитить его от несанкционированного доступа.