Рейтинг:0

Помогите сделать фильтр fail2ban

флаг mx

Я уже сделал некоторые фильтры для моего fail2ban, но только простые вещи, такие как:

[Определение]
failregex = ^ .* "GET .*/wp-login.php
игнорироватьregex =

я не использую wordpress на своем сервере, поэтому я блокирую много вредоносных попыток. И я также создал аналогичные для: phpmyadmin, wp-admin, wp-include и т. д.

но я нашел в своем access.log странные вещи, такие как:

167.172.145.56 - - [22/Sep/2021:06:44:50 -0700] "GET /wp-login.php HTTP/1.1" 403 9901 "http://cpanel.alebalweb-blog.com/wp-login .php" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
167.172.145.56 - - [22/сен/2021:06:44:50 -0700] "GET /wp-login.php HTTP/1.1" 403 9901 "http://mail.alebalweb-blog.com/wp-login .php" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"


61.135.15.175 - - [22/Sep/2021:05:45:24 -0700] "GET / HTTP/1.1" 200 26210 "http://webdisk.alebalweb-blog.com/" "Mozilla/5.0 (Linux; Android 10.0; MI 2 Build/O012) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4472.114 Mobile Safari/537.36"    
61.135.15.175 - - [22/Sep/2021:05:45:24 -0700] "GET / HTTP/1.1" 200 26210 "http://webmail.alebalweb-blog.com/" "Mozilla/5.0 (Linux; Android 10.0; MI 2 Build/O012) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4472.114 Mobile Safari/537.36"    
61.135.15.175 - - [22/Sep/2021:05:45:24 -0700] "GET / HTTP/1.1" 200 26210 "http://cpcalendars.alebalweb-blog.com/" "Mozilla/5.0 (Linux; Android 10.0; MI 2 Build/O012) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4472.114 Mobile Safari/537.36"

Эти поддомены не существуют.

Я попытался создать новый фильтр, вдохновленный apache-badbots, но я не уверен, что это правильно:

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

различныйтоблок = cpanel\.|магазин\.|веб-диск\.|автообнаружение\.|приложение\.|cpcalendars\.|cpcontacts\.|веб-почта\.|почта\.|фулаифуши\.|surf11818\.|asg\.| owa\.|обмен\.\$

failregex = ^<HOST> -.*"(GET|POST).*HTTP.*".*(?:%(varioustoblock)s).*"$
игнорироватьregex =

датапаттерн = ^[^\[]

особенно для (.), в прошлом у меня были проблемы с (.) в фильтрах fail2ban, и решение состояло в том, чтобы полностью их удалить...

но в этом случае их нельзя удалить, я не могу заблокировать любого, у кого в моем URL-адресе есть слово «почта» ... мне нужно обязательно заблокировать «почту».

и я хотел бы создать один большой фильтр, который идентифицирует как несуществующие поддомены, так и попытки доступа к wordpress или phpmyadmin, но регулярное выражение pyton действительно страшно, если вы никогда его не использовали...

Может кто-нибудь помочь мне?

(Я также думал об удалении *.alebalweb-blog.com из конфигурации dns, но я не уверен, что это хорошая идея, в том числе потому, что я использую некоторые поддомены.)

P.S. Насколько я должен беспокоиться, если кто-то попытается получить доступ к субдоменам, которых нет на моем сайте?

флаг ru
Итак, вот что нужно учитывать: существует МНОГО устаревших записей DNS для разных вещей. Я все еще получаю удары за сайт, который был удален 6 лет назад на одном сервере, домене и DNS и все такое, но пауки все еще пытаются попасть на него — вы можете просто подумать о настройке «сайта» по умолчанию в Apache или nginx для любого непревзойденная запись хоста в вашей системе, которая просто получает 403 или 404. Однако во всех случаях вы должны меньше беспокоиться, если кто-то заходит на несуществующие сайты и субдомены, и больше беспокоиться о том, что вы предоставляете контент ТОЛЬКО для действительных хостов в вашей системе и только 403 или 404 для недействительных.
alebal avatar
флаг mx
Я бы предпочел их заблокировать, так как например сегодня пришли: 3721, а-пистефто, зархар, прогылка, туя, бнксб... которые уж точно не имеют ничего общего ни с текущим сервером, ни с прошлыми серверами, они как бы ищу открытую дверь для входа... и я проверял некоторые айпи, часто они одни и те же ищет wp-login или wp-admin... но мой фильтр надо дорабатывать, так как сегодня например заблокировал mail.ru , который, бедняга, ничего плохого не сделал...
флаг ru
Вот факт: большинство из них, вероятно, являются служебными зондами, а не вещами, о которых вы действительно можете беспокоиться. Мое предложение: просто используйте стандартный старый фильтр Fail2Ban для отслеживания 404 и 403, а затем просто расширьте блок до непристойного времени вместо того, чтобы сужать фильтры. Например, сегодня у меня есть шестьдесят тысяч обращений к случайным строкам имени хоста из 5 символов для поддомена, который работает здесь. Они совершенно случайные, скорее всего сервисные сканеры. Попытка заблокировать их всех бесполезна.
Рейтинг:0
флаг co

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

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

шаблон даты = ^\S+ \S+ \S+( \[{ДАТА}\])

код ошибки = (?!401)[45]\d\d
разрешенные субдомены = www|почта|cpannel
неправильнодомены = (?!(?:%(разрешенные субдомены)s)?\.)(?:[^\."]+\.){2,}[^\."]+
failregex = ^<ADDR> \S+ \S+ "[A-Z]+ /[^"]*" (?:(?P<err>%(код ошибки)s)|\d+)(?(err)| \d+ " https?://%(неправильные домены)s")

Это будет соответствовать любому «плохому» коду, указанному код ошибки или неправильные домены из-за условного совпадения e. г. в случае кода 200.

Где:

  • (?:(?P<err>%(код ошибки)s)|\d+) - соответствует любому указанному коду ошибки (например, 403 и сохраняет его как именованную группу ошибаться) или любой другой код (например, 200);
  • (?(ошибка)...А...|...Б...) - условное выражение, соответствующее подвыражению A, если ошибаться совпало с выражением выше (только код ошибки, потому что A здесь пусто), в противном случае совпало с подвыражением B (неправильный поддомен).
  • (?!(?:%(разрешенные субдомены)s)?\.)(?:[^\."]+\.){2,}[^\."]+ - сопоставление всего, кроме строк, начинающихся с разрешенных поддоменов, из-за отрицательного просмотра вперед (?!...) и (?:[^\."]+\.){2,}[^\."]+ для обозначения типа zzz.xxx.yyy.

Но было бы лучше ограничить домены на стороне веб-сервера и запретить там любые запросы к нелегальному домену.

В этом случае фильтр может быть примерно таким:

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

шаблон даты = ^\S+ \S+ \S+( \[{ДАТА}\])

код ошибки = (?!401)[45]\d\d
failregex = ^<ADDR> \S+ \S+ "[A-Z]+ /[^"]*" %(код ошибки)s\b
alebal avatar
флаг mx
Не могли бы вы объяснить их мне?
sebres avatar
флаг co
Конечно, я обновил свой ответ
alebal avatar
флаг mx
Большое спасибо, теперь давайте посмотрим...и попробуем понять...спасибо

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

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