Как встроить внешний blocklist для совместной работы с ПУ

Защита сервера от взлома, антивирус, файрвол, SSL-сертификаты и прочие вопросы, связанные с безопасностью данных.
Ответить
vikont
Сообщения: 122
Зарегистрирован: Сб ноя 11, 2017 10:51 pm

Как встроить внешний blocklist для совместной работы с ПУ

Сообщение vikont » Пн мар 04, 2019 9:33 pm

Наблюдая за "поломничеством" на SSH моего сервера задался вопросом, а как облегчить ему работу и увеличить безопасность?
Сейчас iptables действует неким жестко установленным правилам, все равно допускает проход хакеров и тех кто таковыми себя считают, на SSH и там начинается "поиск" отмычки..
На этом этапе вступает в работу fail2ban и согласно настроек, сначала "присматривается" к действиям с входящего IP в течении указанного времени, по умолчанию 3600 сек, за которые успевают проверить до 1000 "отмычек"!!! Странное поведение, если учитывать, что ограничение на ошибку пароля всего в несколько попыток! Пришлось сократить "раздумывания" fail2ban до 1000 сек! И потом происходит блокировка на указанный в настройках период!

Как то не "кучеряво", того и смотри положат сервер и наткнулся на https://github.com/firehol/blocklist-ip ... _ssh.ipset и родилась мысль, а как бы изменить логику блокировки! Облегчить работу сервера от атак и повысить безопасность!!!
Ipset существует давно, а вот как бы его приспособить к серверу с помощью ПУ?
Логика такая:
1. Автоматически скачивается blocklist-ipsets сравнивая с имеющейся базой блокировок
2. Входящий IP сначала сверяется с базой, если не найден тогда присматриваемся к его действиям
3. Если действия подозрительные тогда блокировка на указанный период. Если неудачные входы повторятся вносим в большой blocklist-ipsets, который проверяем с внешним через определенный период.
4. Если атаки прекращаются в течении какого то периода, IP разблокируется, до очередной атаки.
Задача - не ждать когда IP себя проявит если он уже в глобальном списке атакующих. Постоянно обновлять списки заблокированных IP реабилитируя хорошие IP.

Мысль, скорее всего, не новая и возможно даже есть готовый вариант! Но надо все сделать так, чтобы не сломать работу ПУ какими то сторонними репозитариями. Поэтому вопрос адресую к разработчикам brainy.

В описании логики работы я упомянул 2 базы - оперативная (собственных блокировок) и глобальной, с которой сверяется еще не знакомый нам IP. Если нами отловлен "ярый" атакующий, тогда пополняем им глобальную базу.

Аватара пользователя
ordex
Сообщения: 153
Зарегистрирован: Вт ноя 20, 2018 2:47 pm

Re: Как встроить внешний blocklist для совместной работы с ПУ

Сообщение ordex » Вт мар 05, 2019 10:02 am

Защита ssh это не забота панели, а ваша. Если вам так необходим доступ по ssh с разных адресов, то существует port-knocking, авторизация по ключам и ещё много всего интересного. Они вон shellinabox для пользователей отключили т.к. видимо не смогли нормально сделать, а вы про ssh.

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

vikont
Сообщения: 122
Зарегистрирован: Сб ноя 11, 2017 10:51 pm

Re: Как встроить внешний blocklist для совместной работы с ПУ

Сообщение vikont » Вт мар 05, 2019 11:32 am

ordex писал(а):
Вт мар 05, 2019 10:02 am
Защита ssh это не забота панели, а ваша.
Тут вы не совсем правы:
1. В ПУ уже есть встроенная защита SSH, в том числе и через fail2ban
2. Любое мое вмешательство, которое потребует стороннего репозитария может нарушить работу ПУ и всего сервера в целом! Об этом предупреждают сами разработчики ПУ.
3. Разработчики ПУ позиционируют ее как средство защиты сервера и встраивают различные средства.
Если разработчик сообщит как мне сделать желаемое при этом не нарушая работу ПУ, вот тогда это будет мое личное дело!

Аватара пользователя
ordex
Сообщения: 153
Зарегистрирован: Вт ноя 20, 2018 2:47 pm

Re: Как встроить внешний blocklist для совместной работы с ПУ

Сообщение ordex » Вт мар 05, 2019 12:43 pm

1. Это не встроенные фичи панели. Да, она может рухнуть если полезть руками в управление nginx, php-fpm, бд и накосячить, но управлять ssh, fail2ban и iptables можно из консоли и для этого не нужны никакие сторонние репозитарии и это никак не повлияет на панель (не считая случаев когда вы сами себе или панели перекроете кислород), если бы данное утверждение было ложным, я бы моментально удалил эту укню со своих серверов.

2. Не нужны никакие сторонние репозитарии для нормальной защиты ssh. Материалов на этот счёт море, советовать что-нибудь не зная как у вас и что бессмысленно. А встраивать какой-то велосипед в панель можно тогда, когда уже имеющиеся и основные функции работают полноценно, а это далеко не так.

3. Они могут позиционировать её как угодно, есть вещи, которые лучше настроить самому. Хотя на главной написано "Основная задача Brainy — максимально облегчить системному администратору управление сервером и автоматизировать все серверные процессы."
Я пользуюсь панелью недолго, месяца 3-4. Да, создать пользователей и дать им доступ к панели для управления сайтами - для этого она подходит. Но отдавать ей на откуп и рассчитывать, что она волшебным образом НОРМАЛЬНО настроит за вас такие вещи как iptables, fail2ban, ssh.. ну, удачи)

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

vikont
Сообщения: 122
Зарегистрирован: Сб ноя 11, 2017 10:51 pm

Re: Как встроить внешний blocklist для совместной работы с ПУ

Сообщение vikont » Чт мар 07, 2019 2:14 pm

Я не говорю, что вы не правы предлагая им новый функционал, но это скорее в "пожелания", а не в "безопасность". Пока что они не реализовали даже действия и фильтры fail2ban для самой brainy.
Вернуться к началу
Собственно, это не новый функционал, а расширение логики работы fail2ban с использованием внешних бан-листов.
Если IP уже есть в глобальном бан-листе, то какой смысл его проверять, да еще в течении 3600 сек, за которые он может много чего натворить!

И что совсем не понятно, так это почему fail2ban не блокирует IP при достижении установленного лимита ошибок на ввод пароля и продолжает "анализировать" IP, ожидая окончания лимита времени по проверке его деятельности???

bennieSib
Сообщения: 14
Зарегистрирован: Сб апр 20, 2019 8:54 pm
Откуда: Denmark
Контактная информация:

Как встроить внешний blocklist для совместной работы с ПУ

Сообщение bennieSib » Пн апр 22, 2019 7:20 pm

с объяснением что водила не прав проблем нет
а вот когда я сам не прав и осознаю это и хочу чтобы водила понимал что я осознаю?

Ответить