Как встроить внешний blocklist для совместной работы с ПУ
Добавлено: Пн мар 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. Если нами отловлен "ярый" атакующий, тогда пополняем им глобальную базу.
Сейчас 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. Если нами отловлен "ярый" атакующий, тогда пополняем им глобальную базу.