Я настраиваю fail2ban для своих экземпляров EC2, на каждом из которых запущены разные службы. Поэтому я настраиваю джейлы специально для каждой службы. У меня два вопроса (на которые я не смог найти ответ в другом месте):
- Если IP-адрес заблокирован fail2ban из-за неудачной аутентификации на одном порту, сможет ли этот пользователь по-прежнему войти через другие открытые порты?
- Как блокировка определенных портов сравнивается с блокировкой всех портов с использованием конфигурации, упомянутой здесь? Не будет ли более безопасным заблокировать все открытые порты, поскольку в конечном итоге я не хочу, чтобы хакер проник?
решение1
(Предполагается, что ОС — 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обнаруживает попытку вторжения)
Ознакомьтесь также с комментариями ниже, которые могут содержать ценную информацию.