Безопасно ли применять fail2ban к журналам sshd «Получено отключение / отключено… [preauth]»?

Я вижу много подобных журналов в /var/log/auth.log (Debian Buster):

Jan  2 17:10:17 mybox sshd[16304]: Received disconnect from 1.2.3.4 port 37792:11: Bye Bye [preauth]
Jan  2 17:10:17 mybox sshd[16304]: Disconnected from authenticating user root 1.2.3.4 port 37792 [preauth]
Jan  2 17:10:20 mybox sshd[16306]: Received disconnect from 5.6.7.8 port 63061:11: Bye Bye [preauth]
Jan  2 17:10:20 mybox sshd[16306]: Disconnected from authenticating user root 5.6.7.8 port 63061 [preauth]
Jan  2 17:12:38 mybox sshd[16380]: Received disconnect from 9.10.11.12 port 55224:11: Normal Shutdown, Thank you for playing [preauth]
Jan  2 17:12:38 mybox sshd[16380]: Disconnected from authenticating user root 9.10.11.12 port 55224 [preauth]

Я знаю, что это попытки взлома, потому что никто не должен пытаюсь войти в систему на этой машине (кроме меня).

Нет соответствующего правила в /etc/fail2ban/filter.d/sshd.conf , поэтому эти попытки не приводят к тому, что fail2ban заблокирует неправильный IP-адрес.

Я отключил вход по паролю, поэтому я предполагаю, что здесь происходит то, что эти попытки отбрасываются еще до того, как они попытаются аутентифицироваться, и по этой причине fail2ban их не принимает.

Однако, поскольку я знаю, что это попытки взлома, я все же хотел бы заблокировать IP, чтобы они не пытались делать другие вещи и не заполняли мои журналы.

Безопасно ли мне добавлять регулярное выражение, соответствующее некоторым из этих строк, или я рискую сопоставить законные (основанные на ключах) попытки входа в систему? Какие части составят безопасную комбинацию? Будет ли совпадение слов «Disconnected» и тега «[preauth]» обязательно указывать на неудачный перебор пароля на основе пароля?

0
задан 3 January 2021 в 20:10
2 ответа

В файле /etc/fail2ban/filter.d/sshd.conf нет соответствующего правила, поэтому эти попытки не приводят к тому, что fail2ban блокирует нарушающий IP-адрес.

Какую версию вы используете? Fail2Ban поставляется с предопределенным правилом по этому поводу, включенным в общее failregex, используемое всеми режимами.

Fail2Ban v0.10.2 в одной из моих систем включает это правило:

^<F-NOFAIL>Received <F-MLFFORGET>disconnect</F-MLFFORGET></F-NOFAIL> from <HOST>: 11:

А Fail2Ban v0.11.2 включает вот это (что лучше):

^<F-NOFAIL>Received <F-MLFFORGET>disconnect</F-MLFFORGET></F-NOFAIL> from <HOST>%(__on_port_opt)s:\s*11:

Видимо разработчики думали, что любая из следующих строк

Received disconnect from <HOST>: 11:
Received disconnect from <HOST> port XXXXX:11:

будет достаточно. Соответствующие ключевые слова: Получено отключение от и часть : 11: (вместо суффикса [preauth]).

означает, что эта строка не является ошибкой и будет ожидать другого совпадения без для блокировки IP-адреса, поэтому у вас будет чтобы удалить окружающие теги.

2
ответ дан 4 January 2021 в 12:37

Безопасно ли мне добавлять регулярное выражение, соответствующее некоторым из этих строк, или я рискую сопоставить законные (основанные на ключах) попытки входа в систему? Какие части составят безопасную комбинацию? Будет ли совпадение слов «Disconnected» и тега «[preauth]» обязательно указывать на неудачный перебор пароля на основе пароля?

Законное успешное соединение и аутентификация не запускают такие строки журнала. Эти записи могут поступать со сканеров, которые не причиняют вреда, но также могут быть заблокированы. preauth означает, что эти клиенты еще не начали аутентификацию.

Даже если вы сами стали причиной неудачного входа в систему, используя неверные ключи или неправильно введя пароль,использование fail2ban все еще в порядке. fail2ban блокируется только после настраиваемого числа совпадающих строк журнала и только в течение определенного периода времени.

Вы можете использовать этот фрагмент (например, как cmdfailre) в Debian buster:

^Received disconnect from <HOST>%(__on_port_opt)s:11: \s* %(__suff)s$
^Disconnected from authenticating user <F-USER>.*?</F-USER> <HOST>%(__on_port_opt)s %(__suff)s$
0
ответ дан 3 January 2021 в 23:54

Теги

Похожие вопросы