Рейтинг:0

Фильтры FAIL2BAN. Какой-нибудь фильтр для этого вторжения сканерами интернет-поиска?

флаг vn
19 января 22:49:00 интеллигентая(ый) mahavira postfix/smtpd[670231]: соединение установлено
   19 января 22:49:00 интеллигентая(ый) mahavira postfix/smtpd[670231]: master_notify: статус 0
   19 января 22:49:00 интеллигентая(ый) махавира postfix/smtpd[670231]: name_mask: ресурс
   19 января 22:49:00 интеллектуальный-махавира postfix/smtpd[670231]: name_mask: software
   19 января 22:49:00 Intelligent-mahavira postfix/smtpd[670231]: подключиться со сканера-05.ch1.censys-scanner.com[162.142.125.57]
19 января 22:49:00 интеллигентая(ый) mahavira postfix/smtpd[670231]: match_list_match: scan-05.ch1.censys-scanner.com: совпадений нет
19 января 22:49:00 интеллигент-махавира postfix/smtpd[670231]: match_list_match: 162.142.125.57: совпадений нет
19 января 22:49:00 интеллигентая(ый) mahavira postfix/smtpd[670231]: match_hostname: smtpd_authorized_xforward_hosts: scan-05.ch1.censys-scanner.com ~? 12>
19 января 22:49:00 интеллигентая(ый) mahavira postfix/smtpd[670231]: match_hostaddr: smtpd_authorized_xforward_hosts: 162.142.125.57 ~? 127.0.0.0/8
19 января 22:49:00 интеллигентая(ый) mahavira postfix/smtpd[670231]: match_hostname: smtpd_authorized_xforward_hosts: scan-05.ch1.censys-scanner.com ~? [:>
19 января 22:49:00 интеллигентая(ый) mahavira postfix/smtpd[670231]: match_hostaddr: smtpd_authorized_xforward_hosts: 162.142.125.57 ~? [::1]/128
19 января 22:49:00 интеллигентая(ый) mahavira postfix/smtpd[670231]: match_list_match: scan-05.ch1.censys-scanner.com: совпадений нет
19 января 22:49:00 интеллигент-махавира postfix/smtpd[670231]: match_list_match: 162.142.125.57: совпадений нет
19 января 22:49:00 интеллигентая(ый) mahavira postfix/smtpd[670231]: smtp_stream_setup: maxtime=3600 enable_deadline=0
19 января 22:49:00 интеллигентая(ый) mahavira postfix/smtpd[670231]: match_list_match: scan-05.ch1.censys-scanner.com: совпадений нет
19 января 22:49:00 интеллигент-махавира postfix/smtpd[670231]: match_list_match: 162.142.125.57: совпадений нет
19 января 22:49:00 Intelligent-mahavira postfix/smtpd[670231]: auto_clnt_open: подключен к частному/наковальне

это повсюду в моем системном журнале.

я не вижу никаких фильтров в fail2ban.

Как написать фильтры?

я написал регулярное выражение, чтобы захватить весь этот IP-адрес

push (@matches,$&) while($search_contents =~ /$regex/gm);

Далее мне нужно найти способ создать фильтр в fail2ban

Вы можете дать мне полный файл, как в postfix.conf?

 можешь дать полный файл? вот postfix.conf ---> 
# Фильтр Fail2Ban для выбранных отказов Postfix SMTP
#
#

[ВКЛЮЧАЕТ В СЕБЯ]

# Чтение общих префиксов. Если какие-либо настройки доступны -- прочитайте их из
# общий.локальный
до = common.conf

[Определение]

_daemon = postfix(-\w+)?/\w+(?:/smtp[ds])?
_порт = (?::\d+)?

prefregex = ^%(__prefix_line)s<mdpr-<режим>> <F-CONTENT>.+</F-CONTENT>$

mdpr-normal = (?:NOQUEUE: reject:|неправильная конвейеризация команд после \S+)
mdre-normal=^RCPT from [^[]*\[<HOST>\]%(_port)s: 55[04] 5\.7\.1\s
            ^RCPT from [^[]*\[<HOST>\]%(_port)s: 45[04] 4\.7\.1 (?:Сервис недоступен\b|Хост клиента отклонен: не удается найти ваш (обратный) ?имя хоста\b)
            ^RCPT from [^[]*\[<HOST>\]%(_port)s: 450 4\.7\.1 (<[^>]*>)?: Команда Helo отклонена: хост не найден\b
            ^EHLO from [^[]*\[<HOST>\]%(_port)s: 504 5\.5\.2 (<[^>]*>)?: Команда Helo отклонена: требуется полное имя хоста\ б
            ^VRFY from [^[]*\[<HOST>\]%(_port)s: 550 5\.1\.1\s
            ^RCPT from [^[]*\[<HOST>\]%(_port)s: 450 4\.1\.8 (<[^>]*>)?: Адрес отправителя отклонен: домен не найден\b
            ^from [^[]*\[<HOST>\]%(_port)s:?

mdpr-авторизация = предупреждение:
mdre-auth = ^[^[]*\[<HOST>\]%(_port)s: Ошибка аутентификации SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5): (?! потерян для сервера аутентификации | Неверный механизм аутентификации)
mdre-auth2= ^[^[]*\[<HOST>\]%(_port)s: Ошибка аутентификации SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5): (?! потерян для сервера аутентификации)
# todo: проверить/удалить "Неверный механизм аутентификации" из списка игнорирования, если gh-1243 завершится (см. gh-1297).

# Режим "rbl" в настоящее время включен в режим "normal", но при необходимости только для джейла "postfix-rbl":
mdpr-rbl = %(mdpr-нормальный)s
mdre-rbl = ^RCPT from [^[]*\[<HOST>\]%(_port)s: [45]54 [45]\.7\.1 Служба недоступна; Хост клиента \[\S+\] заблокирован\b

# Режим "rbl" в настоящее время включен в режим "нормальный" (в пределах 1-го правила)
mdpr-больше = %(mdpr-нормальный)s
mdre-more = %(mdre-нормальный)s

mdpr-ddos = потеря соединения после (?! ДАННЫЕ) [A-Z]+
mdre-ddos = ^from [^[]*\[<HOST>\]%(_port)s:?

mdpr-extra = (?:%(mdpr-auth)s|%(mdpr-нормальный)s)
mdre-extra = %(mdre-auth)s
            %(mdre-нормальный)s

mdpr-агрессивный = (?:%(mdpr-auth)s|%(mdpr-нормальный)s|%(mdpr-ddos)s)
mdre-агрессивный = %(mdre-auth2)s
                  %(mdre-нормальный)s

mdre-scanner=(?<=match: )(.*)(?=: нет совпадения)
mdpr-scanner=(?<=match: )(.*)(?=: нет совпадений)

failregex = <mdre-<режим>>

# Параметр «режим»: more (по умолчанию сочетает в себе обычный и rbl), auth, normal, rbl, ddos, экстра или агрессивный (сочетает все)
# Пример использования (для jail.local):
# [постфикс]
# режим = агрессивный
# # или другой джейл (переписать параметры фильтра джейла):
# [постфикс-rbl]
# filter = postfix[mode=rbl]
#
режим = больше

игнорироватьregex =

[В этом]

journalmatch = _SYSTEMD_UNIT=postfix.service

# Автор: Сирил Жакье

Странный. Я нашел фильтр postfix_sasl в медиатемпле, а не в постфиксе amazon lightsail.

Этот postfix_sasl работает при сбое Sasl.

Теперь мне нужно использовать его для соответствия этой ошибке совпадения. Кто пытается войти на мой сервер, а также как они узнали мой IP-адрес? Выдает ли их plesk или mxlookup (раньше я проверял работоспособность электронной почты).

вот postfix-sasl.conf может кто-нибудь объяснить каждую строчку? и как я могу использовать его, чтобы не совпадать с ошибками входа в систему

# Фильтр Fail2Ban для ошибок постфиксной аутентификации
#


[ВКЛЮЧАЕТ В СЕБЯ]

до = common.conf

[Определение]

_daemon = postfix(-\w+)?/(?:submission/|smtps/)?smtp[ds]

failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: Ошибка аутентификации SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5)(:[ A-Za-z0-9+/:]*={0,2})?\s*$

ignoreregex = ошибка аутентификации: потеряно соединение с сервером аутентификации$

[В этом]

journalmatch = _SYSTEMD_UNIT=postfix.service


# Автор: Ярослав Гальченко


введите код сюда

Я получил это, но я не вижу, чтобы fail2ban использовал какой-либо IP-адрес без совпадения. fail2ban-regex -v /var/log/maillog /etc/fail2ban/filter.d/nomatcчас

Запуск тестов
==============

Использовать файл фильтра failregex: nomatch, baseir: /etc/fail2ban
Использовать datepattern : Детекторы по умолчанию
Используйте файл журнала: /var/log/maillog
Использовать кодировку: UTF-8


Результаты
=======

Failregex: всего 100
|- #) [количество совпадений] регулярное выражение
| 1) [81] ^match_list_match: <ADDR>: <F-NOFAIL>нет соответствия</F-NOFAIL>
| 152.32.131.196 Пт 21 Янв 06:52:15 2022
| 152.32.131.196 Пт 21 Янв 06:52:15 2022
| 152.32.131.196 Пт 21 Янв 06:52:15 2022
| 152.32.131.196 Пт 21 Янв 06:52:15 2022
| 152.32.131.196 Пт 21 Янв 06:52:16 2022
| 45.33.78.63 Пт 21 Янв 07:01:15 2022
| 45.33.78.63 Пт 21 Янв 07:01:15 2022
| 45.33.78.63 Пт 21 Янв 07:01:17 2022
| 139.162.99.243 Пт 21 Янв 08:19:03 2022
| 139.162.99.243 Пт 21 Янв 08:19:03 2022
| 139.162.99.243 Пт 21 Янв 08:19:03 2022
| 139.162.99.243 Пт 21 Янв 08:19:03 2022
| 162.142.125.41 Пт 21 Янв 08:48:58 2022
| 162.142.125.41 Пт 21 Янв 08:48:58 2022
| 162.142.125.41 Пт 21 Янв 08:48:58 2022
| 162.142.125.41 Пт 21 Янв 08:48:58 2022
| 162.142.125.41 Пт 21 Янв 08:48:58 2022
| 45.56.101.55 Пт 21 Янв 10:13:22 2022
| 45.56.101.55 Пт 21 Янв 10:13:22 2022
| 45.56.101.55 Пт 21 Янв 10:13:22 2022
| 45.56.101.55 Пт 21 Янв 10:13:22 2022
| 45.56.101.55 Пт 21 Янв 10:13:22 2022
| 162.142.125.42 Пт 21 Янв 10:31:18 2022
| 162.142.125.42 Пт 21 Янв 10:31:18 2022
| 162.142.125.42 Пт 21 Янв 10:31:19 2022
| 162.142.125.42 Пт 21 Янв 10:31:19 2022
| 162.142.125.42 Пт 21 Янв 10:31:19 2022
| 45.79.158.51 Пт 21 Янв 11:02:09 2022
| 45.79.158.51 Пт 21 Янв 11:02:09 2022
| 45.79.158.51 Пт 21 Янв 11:02:11 2022
| 104.206.128.26 Пт 21 Янв 12:07:17 2022
| 104.206.128.26 Пт 21 Янв 12:07:17 2022
| 104.206.128.26 Пт 21 Янв 12:07:17 2022
| 45.33.95.172 Пт 21 Янв 12:15:12 2022
| 45.33.95.172 Пт 21 Янв 12:15:12 2022
| 45.33.95.172 Пт 21 Янв 12:15:12 2022
| 45.33.95.172 Пт 21 Янв 12:15:12 2022
| 45.33.95.172 Пт 21 Янв 12:15:12 2022
| 192.241.219.199 Пт Янв 21 13:24:46 2022
| 192.241.219.199 Пт Янв 21 13:24:46 2022
| 192.241.219.199 Пт Янв 21 13:24:46 2022
| 45.79.178.163 Пт 21 Янв 14:13:30 2022
| 45.79.178.163 Пт 21 Янв 14:13:30 2022
| 45.79.178.163 Пт 21 Янв 14:13:30 2022
| 45.79.178.163 Пт 21 Янв 14:13:30 2022
| 45.79.178.163 Пт 21 Янв 14:13:30 2022
| 96.126.109.15 Пт 21 Янв 16:13:44 2022
| 96.126.109.15 Пт 21 Янв 16:13:44 2022
| 96.126.109.15 Пт 21 Янв 16:13:44 2022
| 96.126.109.15 Пт 21 Янв 16:13:44 2022
| 96.126.109.15 Пт 21 Янв 16:13:44 2022
| 66.240.236.116 Пт Янв 21 17:29:42 2022
| 66.240.236.116 Пт Янв 21 17:29:42 2022
| 66.240.236.116 Пт Янв 21 17:29:42 2022
| 66.240.236.116 Пт Янв 21 17:29:43 2022
| 69.164.210.216 Пт Янв 21 18:13:10 2022
| 69.164.210.216 Пт Янв 21 18:13:10 2022
| 69.164.210.216 Пт Янв 21 18:13:10 2022
| 69.164.210.216 Пт Янв 21 18:13:10 2022
| 69.164.210.216 Пт Янв 21 18:13:10 2022
| 164.90.197.27 Пт 21 Янв 19:06:22 2022
| 164.90.197.27 Пт 21 Янв 19:06:22 2022
| 164.90.197.27 Пт 21 Янв 19:06:22 2022
| 164.90.197.27 Пт 21 Янв 19:06:52 2022
| 45.56.99.23 Пт 21 Янв 20:14:25 2022
| 45.56.99.23 Пт 21 Янв 20:14:25 2022
| 45.56.99.23 Пт 21 Янв 20:14:25 2022
| 45.56.99.23 Пт 21 Янв 20:14:25 2022
| 45.56.99.23 Пт 21 Янв 20:14:25 2022
| 178.79.189.233 Пт Янв 21 20:22:36 2022
| 178.79.189.233 Пт Янв 21 20:22:36 2022
| 178.79.189.233 Пт Янв 21 20:22:36 2022
| 178.79.189.233 Пт Янв 21 20:22:38 2022
| 162.142.125.44 Пт 21 Янв 20:29:10 2022
| 162.142.125.44 Пт 21 Янв 20:29:10 2022
| 162.142.125.44 Пт 21 Янв 20:29:10 2022
| 162.142.125.44 Пт 21 Янв 20:29:10 2022
| 162.142.125.44 Пт 21 Янв 20:29:10 2022
| 45.56.104.184 Пт 21 Янв 21:00:33 2022
| 45.56.104.184 Пт 21 Янв 21:00:33 2022
| 45.56.104.184 Пт 21 Янв 21:00:35 2022
| 2) [19] ^auto_clnt_open: подключен к привату/наковальне
| 152.32.131.196 Пт 21 Янв 06:52:15 2022
| 45.33.78.63 Пт 21 Янв 07:01:17 2022
| 139.162.99.243 Пт 21 Янв 08:19:03 2022
| 162.142.125.41 Пт 21 Янв 08:48:58 2022
| 45.56.101.55 Пт 21 Янв 10:13:22 2022
| 162.142.125.42 Пт 21 Янв 10:31:19 2022
| 45.79.158.51 Пт 21 Янв 11:02:11 2022
| 104.206.128.26 Пт 21 Янв 12:07:17 2022
| 45.33.95.172 Пт 21 Янв 12:15:12 2022
| 192.241.219.199 Пт Янв 21 13:24:46 2022
| 45.79.178.163 Пт 21 Янв 14:13:30 2022
| 96.126.109.15 Пт 21 Янв 16:13:44 2022
| 66.240.236.116 Пт Янв 21 17:29:42 2022
| 69.164.210.216 Пт Янв 21 18:13:10 2022
| 164.90.197.27 Пт 21 Янв 19:06:22 2022
| 45.56.99.23 Пт 21 Янв 20:14:25 2022
| 178.79.189.233 Пт Янв 21 20:22:36 2022
| 162.142.125.44 Пт 21 Янв 20:29:10 2022
| 45.56.104.184 Пт 21 Янв 21:00:35 2022
`-

Игнорировать регулярное выражение: всего 0

Дата показа шаблона:
|- [количество просмотров] формат даты
| [3923] {^LN-BEG}(?:DAY )?MON Day %k:Minute:Second(?:\.Microseconds)?(?: ExYear)?
| [0] {^LN-BEG}ExYear(?P<_sep>[-/.])Month(?P=_sep)Day(?:T| ?)24hour:Minute:Second(?:[.,]Microseconds )?(?:\s*Смещение зоны)?
| [0] {^LN-BEG}(?:DAY )?MON Day ExYear %k:Minute:Second(?:\.Microseconds)?
| [0] {^LN-BEG}День(?P<_sep>[-/])Месяц(?P=_sep)(?:ExYear|ExYear2) %k:Minute:Second
| [0] {^LN-BEG}День(?P<_sep>[-/])MON(?P=_sep)ExYear[ :]?24hour:Minute:Second(?:\.Microseconds)?(?: Zone компенсировать)?
| [0] {^LN-BEG}Месяц/День/ExYear:24час:Минута:Секунда
| [0] {^LN-BEG}Месяц-День-ExYear %k:Минута:Секунда(?:\.Микросекунды)?
| [0] {^LN-BEG}Эпоха
| [0] {^LN-BEG}ExYear2ExMonthExDay ?24час:минута:секунда
| [0] {^LN-BEG}MON Day, ExYear 12hour:Minute:Second AMPM
| [0] {^LN-BEG}ExYearExMonthExDay(?:T| ?)Ex24hourExMinuteExSecond(?:[.,]Микросекунды)?(?:\s*Смещение зоны)?
| [0] {^LN-BEG}(?:Имя зоны )?(?:DAY )?MON Day %k:Minute:Second(?:\.Microseconds)?(?: ExYear)?
| [0] {^LN-BEG}(?:Смещение зоны )?(?:DAY )?MON Day %k:Minute:Second(?:\.Microseconds)?(?: ExYear)?
| [0] {^LN-BEG}TAI64N
| [0] {^LN-BEG}24 часа:минуты:секунды
| [0] ^<Месяц/День/ExYear2@24hour:Minute:Second>
| [0] ^MON-Day-ExYear2 %k:Minute:Second
`-

Строки: 3923 строки, 0 проигнорировано, 100 совпало, 3823 пропущено
[обработано за 0,25 сек.]

Пропущенные строки: слишком много для печати. Используйте --print-all-missed для печати всех 3823 строк

введите описание изображения здесь

Рейтинг:0
флаг il

В норме фильтр постфикс с режимом агрессивный предназначен для поиска таких сканеров:

[постфикс]
режим = агрессивный

Как это проверить с помощью fail2ban-regex:

fail2ban-regex /path/to/log_or_systemd-journal postfix[logtype=short,mode=aggressive]

Но я не вижу сообщения, которое соответствовало бы e. г. с какой-то ошибкой или где соединение отклонено. Более того auto_clnt_open: подключен к привату/наковальне говорит нам, что он подключился (правда, к наковальне, что такое демон ограничения скорости постфикса, но все же).
Так есть ли какие-то другие сообщения в конце (из этого сеанса [670231])?
Или что именно вы хотели бы считать здесь провалом?

Если вы имеете в виду, что он должен реагировать на не совпадает сообщения, вот ваш фильтр:

[Определение]

failregex = ^\s*\S+ postfix/smtpd\[[^\]]+]: match_list_match: <ADDR>: нет совпадения

Просто журнал, кажется, содержит несколько записей с не совпадает по одному «сеансу», поэтому это приведет к нескольким сбоям за одну попытку (в данном случае ровно 3), поэтому вам нужно увеличить максретри наверное.

Когда это должно быть скорее подключен к частному/наковальне, вот (это должно работать с fail2ban >= 0.10):

[Определение]

prefregex = ^\s*\S+ postfix/smtpd\[<F-MLFID>[^\]]+</F-MLFID>\]: <F-CONTENT>(?:match_list_match|auto_clnt_open).+</F -СОДЕРЖАНИЕ>$

failregex = ^match_list_match: <ADDR>: <F-NOFAIL>нет соответствия</F-NOFAIL>
            ^auto_clnt_open: подключен к привату/наковальне
alex K avatar
флаг vn
Я добавил еще немного информации. можете сделать для этого полный файл как в postfix-sasl. Связано ли это с постфиксом. Откуда у них ip моего сервера? Это новый сервер. Как они получили мою информацию? Также объясните каждую строку, чтобы она могла помочь другим и мне в создании фильтров для контроля ddos-атак.
alex K avatar
флаг vn
У меня забанено 100 ips, но это все от рецидива. Нет из постфиксного агрессивного или постфиксного-sasl. Я хочу убедиться, что эти фильтры работают, прежде чем перейти к производству. помогите пожалуйста.
Рейтинг:0
флаг jp

Есть официальная документация Разработка фильтров. Также есть много фильтров, включенных в /etc/fail2ban/filter.d/

alex K avatar
флаг vn
Ни один не соответствует этому
флаг jp
Исходники fail2ban доступны на GitHub, включая все фильтры.
alex K avatar
флаг vn
Ни у кого нет примера простого механизма фильтрации, поэтому я могу расширить его с помощью регулярных выражений.
alex K avatar
флаг vn
Как вы видите, 100 соответствуют nomatch.conf, но fail2ban не показывает ничего, запрещённого nomatch или postfix-sasl. Все это забанило ip (из них 236) от рецидива

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

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