Защищаем свою сеть от брутфорса и DDoS

Полезная тема?

  • Да, пригодится :)

    Голосов: 2 100,0%
  • Нет, мусор :(

    Голосов: 0 0,0%

  • Всего проголосовало
    2

Chifth

Постоялец
Регистрация
28 Фев 2016
Сообщения
160
Реакции
101
Не нашёл на форуме подобной темы, где бы можно было спросить\поделиться способами защиты своей сети. Предлагаю сдесь (Если модераторы не против).

Вообщем начну с того, что я в своих задачах использую OpenWRT. Отличная система, которую можно поставить на все самые ходовые роутеры (и даже на ПК). Ну и так как она заточена именно под Gateway - для нее есть все необходимые модули и плагины. И удобно админить через веб морду. Одним словом - Супер. Debian у меня теперь только если под сервер, и то, не всегда.

Теперь непосредственно к защите. (извините что не слишком красиво оформлено)

1. Защита от рекламы
Тут всё просто - ставим плагин Adblock и настраиваем списки. Если у вас роутер с 4МБ памяти - нужно собрать прошивку с блокировщиком, и вырезать что-то ненужное. Ресурсов блокировщик жрёт немного (в основном ОЗУ). Оказалось очень удобное решение для резки рекламы прямо "на входе". Настроить не сложно, домашняя сеть или офис облегченно вздохнут (но всё-же это не панацея).

2. Защита от DDoS.
Тут ещё проще: ставим плагин NODDOS и всё. Настроек там мало. работает сразу после ребута. (кстати если вы перезагрузите фаерволл из веб-морды, то он перестаёт работать т.к. правило для NODDOS добавляются во время загрузки системы (а не рестарта фаервола). обидно.

3. Защита от брутфорса.
Со временем рано или поздно вас начнут брутфорсить (особенно если вы светите наружу SSH или не дай бог проброшенный RDP). Долго пробовал разные способы, но ИМХО самый простой и эффективный - блокировать тоже прямо на входе с помощью нескольких правил iptables:
(вот мой конфиг, правьте под себя и вставляйте в веб-морде в Network->Firewall->вкладка-Custom Rules). Комментарии нужно удалить :)

iptables -t nat -I PREROUTING -p tcp --dport 1246 -j DNAT --to-destination 192.168.1.3:22 #проброс SSH
iptables -t nat -I PREROUTING -p tcp --dport 1247 -j DNAT --to-destination 192.168.1.218:22 #проброс SSH
iptables -t nat -I PREROUTING -p tcp --dport 1232 -j DNAT --to-destination 192.168.1.2:3389 #проброс RDP
iptables -t nat -I PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 192.168.1.4:3389 #проброс RDP

#Правило проверки брутфорса SSH
iptables -N ssh_brute_check
iptables -A ssh_brute_check -m conntrack --ctstate NEW -m recent --name BLOCK --rcheck --seconds 3600 -j DROP
iptables -A ssh_brute_check -m conntrack --ctstate NEW -m hashlimit --hashlimit-name BLOCK --hashlimit-mode srcip --hashlimit-above 2/h --hashlimit-burst 2 -m recent --name BLOCK --set -j DROP
iptables -A ssh_brute_check -p tcp --syn -j ACCEPT


#Правило проверки брутфорса RDP
iptables -N rdp_brute_check
iptables -A rdp_brute_check -m conntrack --ctstate NEW -m recent --name BLOCKRDP --rcheck --seconds 3600 -j DROP
iptables -A rdp_brute_check -m conntrack --ctstate NEW -m hashlimit --hashlimit-name BLOCKRDP --hashlimit-mode srcip --hashlimit-above 2/h --hashlimit-burst 2 -m recent --name BLOCKRDP --set -j DROP
iptables -A rdp_brute_check -p tcp --syn -j ACCEPT

#Заворачиваем трафик на правила фильтрации
iptables -I INPUT -m conntrack --ctstate NEW -p tcp --dport 1245 -j ssh_brute_check #INPUT-фильтр для SSH на роутере. У меня нестандартный порт.
iptables -I FORWARD -m conntrack --ctstate NEW -p tcp --dport 22 -j ssh_brute_check #FORWARD - фильтр проброшенного траффика. порты тут уже указывать те, которые открыты на серверах
iptables -I FORWARD -m conntrack --ctstate NEW -p tcp --dport 3389 -j rdp_brute_check

4. Открытие доступа по "стуку" (Port Knocking)
======= извините, пока не осилил. буду рад если поможете :) ==========

//Из полезных фишек OpenWRT которые я использую:
- Wake on Lan
- Роутинг траффика на сайты на разных серверах в локалке (через nginx)
- Zaborona VPN для всей сети. (дома - через собственный VDS)
- Можно "слить" несколько сетей и админить через Radmin (но надо баловаться с маршрутизацией. использую редко).
 
1. Защита от рекламы
Тут всё просто - ставим плагин Adblock и настраиваем списки. Если у вас роутер с 4МБ памяти - нужно собрать прошивку с блокировщиком, и вырезать что-то ненужное. Ресурсов блокировщик жрёт немного (в основном ОЗУ). Оказалось очень удобное решение для резки рекламы прямо "на входе". Настроить не сложно, домашняя сеть или офис облегченно вздохнут (но всё-же это не панацея).
Блокировка только по доменам и для http трафика?
Что происходит в случае с TLS?
А при чём тут этот вымешленный персонаж?
особенно если вы светите наружу SSH
Брутфорс SSH не страшен, если отключена авторизация по паролю и включена по ключам.
Менять порт смысла не имеет, т.к. он обнаруживается банальным перебором.
Да и входящий трафик от ботов на 22-ой порт всё-равно никуда не денется.
У меня везде SSH только по IPv6, но на IPv4 адрес по 22 порту боты всё-равно продолжают стучать как дятлы, хотя SSH не слушает 22 порт на IPv4.
Пишется кстати OpenWrt, а не OpenWRT.
Раз уж зашла речь про компиляцию OpenWrt и настройку через консоль, почему бы тогда не заюзать Nftables?
Синтаксис у него более читабельный, чем у iptables. Хотя тут на вкус и цвет.
 
Блокировка только по доменам и для http трафика?
Что происходит в случае с TLS?
Блокировка по спискам доменов и IP. Списки разные бывают. Google Ads блокирует. Мне хватает.
Брутфорс SSH не страшен, если отключена авторизация по паролю и включена по ключам.
Думаю, тем кто умеет настроить аутентификацию по ключу, мои советы будут не нужны :)

У меня как раз настройка через веб. Для тех кто не очень разбирается в консоли.

Я вообще то не хотел сказать типа "вот я такой дартаньян, смотрите как надо".
Наоборот, хочу ещё многому научиться, а спросить некого.
Ну а для старта решил описать то что умею сам.
Вот например port knocking ещё не делал.
 
Блокировка по спискам доменов и IP. Списки разные бывают. Google Ads блокирует. Мне хватает.
Ну такое на самом деле.
По доменам и IP банального hosts хватает, но если скрипт трекинга на одном домене с сайтом то тут только браузерные расширения.
Либо своя прокся (squid например) с TLS сертификатом для контролируемого MiTM.
Думаю, тем кто умеет настроить аутентификацию по ключу, мои советы будут не нужны
Ну ключи ed25519 из коробки dropbear не понимает. Только RSA ключи (вроде что-то ещё).
Поэтому с ключами тоже не всё гладко.
Я вообще то не хотел сказать типа "вот я такой дартаньян, смотрите как надо".
А я где-то где-то сказал против? Лишь дополнил со своей стороны то, что запостил ты. :glob:
Вот например port knocking ещё не делал.
Разве в wiki OpenWrt или на форуме нет инфы?
 
По доменам и IP банального hosts хватает, но если скрипт трекинга на одном домене с сайтом то тут только браузерные расширения.
Про браузерные расширения - согласен. Например реклама в Ютуб.
Но резать рекламу на входе (хоть и не всю) - очень удобное решение для малого офиса или организации.
Из опыта скажу что 7 из 10 офисных сотрудников обычно просто открывают "вот этот ярлычок для интернета", что уж там говорить о плагинах для браузера. :)
Вот в таких ситуациях это очень удачное решение. Особенно тем что его применить может любой эникейщик.
Разве в wiki OpenWrt или на форуме нет инфы?
У них там не очень удобно читать. Да и примеров маловато.
 
Назад
Сверху