Назад | Перейти на главную страницу

Как блокировка определенных портов с помощью fail2ban сравнивается с блокировкой всех портов?

Я настраиваю fail2ban для своих экземпляров EC2, на каждом из которых работают разные службы. Следовательно, я настраиваю тюрьмы специально для каждой службы. У меня два вопроса (на которые я нигде не нашел ответа):

  1. Если IP-адрес заблокирован fail2ban из-за неудачной аутентификации на одном порте, сможет ли этот пользователь войти через другие открытые порты?
  2. Как блокировка определенных портов сравнивается с блокировкой всех портов с использованием конфигурации, упомянутой здесь? Разве не было бы безопаснее заблокировать все открытые порты, так как в конечном итоге я не хочу, чтобы хакер проник?

(Предполагая, что ОС - Linux)

fail2ban это хорошо сделанный инструмент, наделенный высоким уровнем конфигурации.

В Linux Ubuntu конфигурация находится в /etc/fail2ban

Вопрос 1

Если вы не измените конфигурацию, только порт (ы), упомянутый в jail.conf для конкретной услуги будет заблокирован.

вопрос 2

Вы также можете заблокировать все порты. Это зависит от желаемого уровня безопасности, но блокировка всех портов может иметь недостатки.

Лично я предпочитаю блокировать только порт, которым злоупотребляли. Так как

  • если другие порты также злоупотребляют (и если они объявлены в jail.conf), они также будут заблокированы
  • некоторые IP-адреса используются всей компанией или многими людьми; поэтому, заблокировав все порты за злоупотребление ssh, вы запретите всем на этом адресе доступ http/s например
  • на вас также может повлиять полная блокировка. Например, вы делаете несколько ошибок при вводе пароля, используя ssh, а другой порт, который разрешил бы другой доступ, например, от поставщика, не будет доступен.

Чтобы заблокировать больше или все порты, вы можете изменить jail.conf файл.

Некоторые из атрибутов по умолчанию: (в [DEFAULT])

# "bantime" is the number of seconds that a host is banned.
bantime  = 10m
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 10m
# "maxretry" is the number of failures before a host get banned.
maxretry = 5

# Ports to be banned (Usually should be overridden in a particular jail)
port = 0:65535

т.е. все порты.

Для [sshd] например (и все услуги) port переопределяется

[sshd]
port    = ssh

Вы можете просто закомментировать port строка, чтобы вернуться к значениям по умолчанию, но я бы добавил комментарий и новую строку порта для упрощения обслуживания (другие люди / вы через 3 года)

[sshd]
# 25 Aug 2020 Rohit, block all ports
#port    = ssh
port = 0:65535

Изменение значения по умолчанию

Вы увидите в action.d каталог список возможных действий. По умолчанию в jail.conf,

banaction = iptables-multiport

это также можно изменить на

banaction = iptables-allports

это повлияет на все службы, не переопределяя banaction.

Перезапуск fail2ban

Затем перезапустите службу, для systemd

systemctl restart fail2ban.service

или

service fail2ban restart

(К вашему сведению, filter.d списки каталогов для каждой службы способом fail2ban обнаруживает попытку вторжения)

Также ознакомьтесь с комментариями ниже, которые могут предоставить ценную информацию.