Добавление правил iptables после настройки fail2ban

Вопрос или проблема

Я недавно настроил 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.

Вот предложенная конфигурация:

  1. Удалите строку, явно разрешающую доступ к порту 2222:

    -A INPUT -p tcp --dport 2222 -j ACCEPT
  2. Убедитесь, что у вас есть правило для порта 2222, которое будет перенаправлять трафик через цепочку fail2ban:

    -A INPUT -p tcp -m multiport --dports 2222 -j fail2ban-ssh

Настройка fail2ban

После изменения правил iptables убедитесь, что fail2ban настроен на мониторинг порта 2222. Для этого вам нужно изменить конфигурацию fail2ban, добавив или изменив настройку для SSH:

  1. Откройте файл конфигурации fail2ban для SSH. Обычно это файл jail.local или jail.conf в директории /etc/fail2ban/.

  2. Найдите секцию [sshd] и измените параметр port, чтобы он соответствовал вашему порту (2222 вместо стандартного 22):

    [sshd]
    enabled = true
    port    = 2222
    logpath = /var/log/auth.log
    maxretry = 5
    bantime = 600
  3. После внесения изменений перезапустите службу fail2ban для применения конфигурации:

    sudo systemctl restart fail2ban

Заключение

Теперь ваша конфигурация iptables будет обеспечивать защиту SSH на порту 2222 через fail2ban, предотвращая доступ к этому порту от IP-адресов, которые проявляют подозрительное поведение. Кроме того, порту 80 будет предоставлен доступ, что потребуется для работы серверных приложений. Таким образом, вы сможете эффективно управлять доступом к вашему серверу, сохраняя при этом соответствующий уровень безопасности.

Дополнительные рекомендации

  • Мониторинг: Регулярно проверяйте логи fail2ban и iptables для выявления попыток взлома или проблем в конфигурации.
  • Резервное копирование: Перед внесением серьезных изменений в конфигурацию всегда создавайте резервные копии текущих настроек.
  • Обновление ПО: Убедитесь, что ваш сервер и fail2ban всегда обновлены до последних версий для защиты от новых угроз.

Данная конфигурация поможет вам эффективно управлять безопасностью сервера Debian и защитить его от несанкционированного доступа.

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

Капча загружается...