Рейтинг:0

fail2ban не работает для ssh, кроме порта 22

флаг vn

Мой fail2ban не работает для sshd, за исключением порта по умолчанию 22/tcp.

Мой старый рабочий конфиг в jail.local:

[сшд]
включено = верно
порт = ssh

Проверено fail2ban, забанил меня после 3-х неудачных попыток, как и предполагалось.

Впоследствии я явно указал другой порт в jail.local; Туннель ssh работает на новом порту, но когда я сознательно ошибаюсь с неверным паролем ssh, я не получаю бан после любого количества попыток.

sshd.service, fail2ban.service уже перезапущен, также пробовал перезагружаться.

Я ДЕЙСТВИТЕЛЬНО получаю сообщение электронной почты о том, что меня забанили, однако я все еще могу (успешно) попытаться войти в систему.

Изменить: это pastebin из fail2ban-клиент -d | грэп 'ssh'

Chris avatar
флаг it
*После этого я явно указал другой порт в jail.local* Если вы используете пользовательский порт ssh, вам необходимо явно указать его в вашей конфигурации (например, порт = 12345), иначе fail2ban забанит порт ssh по умолчанию (22) .
itarill avatar
флаг vn
Это то, что я сделал. Отсюда мое удивление.
itarill avatar
флаг vn
У меня время бана 10 минут - если я поменяю IP для sshd на 22 и запущу новый туннель на 22 порт, то тоже не банится.
sebix avatar
флаг ie
Без дополнительной информации (показанной конфигурации, журналов и т. д.) трудно догадаться, что не так.
Рейтинг:0
флаг il

Что-то может быть не так в вашей конфигурации.

Например, раздел тюрьмы по умолчанию fail2ban для sshd: [сшд], тогда как ваш пример показывает [сш]. У вас есть 2 тюрьмы? Или вы сделали какую-то настройку с собственным джейлом или по умолчанию? (например, по умолчанию действие перезаписывается).

Чтобы осмотреть его глубже, вы можете показать дамп конфигурации fail2ban (объединенный):

fail2ban-клиент -d | грэп 'ssh'

Интересны значения actionstart (и actionban) и интерполяция порта в определениях действий.

Небольшая подсказка: для настройки (если вам нужно перезаписать действие по какой-либо причине), либо установить запрет только (он будет интерполирован по умолчанию действие декларация):

[тюрьма]
banaction = iptables-ipset-proto6

или использовать все параметры, которые ожидает действие:

[тюрьма]
action = iptables-ipset-proto6[port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]

В противном случае действие может использовать свой порт по умолчанию (который действительно может быть 22).

itarill avatar
флаг vn
Вы правы с [ssh] против [sshd]. Это была опечатка в сообщении с моей стороны, в файле конфигурации это правильно. Я добавил pastebin с помощью fail2ban-client -d.
sebres avatar
флаг il
Смотрите в дампе порт `ssh`: ` -I INPUT -p tcp -m multiport --dports ssh -j f2b-sshd'`. Таким образом, либо у вас есть другие конфигурации, перезаписывающие порт sshd jail (например, в `/etc/fail2ban/jail.d`, вы можете проверить, какие файлы конфигурации включаются с помощью `fail2ban-client -vvd`), либо ваш `jail.local ` находится не в том месте (он должен быть непосредственно в `/etc/fail2ban`) или ваши конфиги по-прежнему неверны (внимательно смотрите мой ответ, например, `действие` клетки перезаписывается, а порт, указанный в клетке, не передается на Действие).
itarill avatar
флаг vn
В соответствии с этим pastebin конфигурации [fail2ban-client -vvd](https://pastebin.com/RhE44Mst) должно быть все в порядке, все порты перезаписаны на 31222. Моя локальная тюрьма была в основном копией jail.conf, скопированной в джейл .local в том же каталоге.
itarill avatar
флаг vn
Я почистил свой jail.local, вот он [целиком](https://pastebin.com/qsnAhGB8).
sebres avatar
флаг il
Там еще много записей, дублирующих оригинальный jail.conf (который можно удалить), но... что касается порта, то с jail.local вроде все в порядке. Если я попытаюсь сбросить вашу конфигурацию с помощью стандартного `/etc/fail2ban` с `fail2ban-client -d | grep 'dports'`, он довольно хорошо показывает правильный порт для тюрьмы `sshd`: `['начало действия', ' -N f2b-sshd\n -A f2b-sshd -j ВОЗВРАТ\n -I ВХОД -p tcp -m multiport --dports 31222 -j f2b-sshd'], ['actionban', ' -I f2b-sshd 1 -s -j ']`. Поэтому, пожалуйста, внимательно прочитайте то, что я написал выше, и внимательно проверьте остальную часть конфигурации.
sebres avatar
флаг il
... и если ваш дамп станет правильным (вы увидите `--dports 31222`), не забудьте перезапустить fail2ban (или хотя бы джейл `sshd`).
itarill avatar
флаг vn
Спасибо, теперь работает нормально. Мне пришлось еще немного почистить мой `jail.local` (раньше это не работало, хотя `dports` уже правильно отображался в дампе). Еще одна вещь, мои действия и запреты определяются файлом jail.conf. Когда я переопределил один из них с помощью iptables-ipset-proto6 (согласно вашему комментарию), это сделало джейл бесполезным на всех портах (включая 22), хотя `fail2ban-client status sshd` действительно показывал бан. Я не могу точно сказать, в чем разница между ними, где я могу кратко прочитать об этом? :)

Ответить или комментировать

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