Лесен начин да защитите Mikrotik от атаки

Искам да споделя с общността прост и работещ начин, как с помощта на Mikrotik да защитите своята мрежа и предлаганите от него услуги от външни атаки. А именно, как да организирате honeypot на Mikrotik само с три правила.

И така, да предположим, че имаме малък офис, зад който стои RDP сървър за работа на служителите от разстояние. Първото правило е, разбира се, да сменим порта 3389 на външния интерфейс с друг. Но това няма да продължи дълго, след няколко дни журналът за одит на терминалния сървър започва да показва по няколко неуспешни авторизации в секунда от неизвестни клиенти.

В друга ситуация, ако зад Mikrotik имате скрит asterisk, естествено не на UDP порт 5060, след няколко дни също започва пробиването на пароли... да, знам, fail2ban е всичко, но ще трябва да се поизмъчим с него... например, наскоро го инсталирах на ubuntu 18.04 и с изненада установих, че от кутията fail2ban не съдържа актуални настройки за asterisk за същото издание на ubuntu... а бързо да намеря настройки от «рецепти» не успявах, числата за версиите с годините растат, а статии с «рецепти» за стари версии вече не работят, а нови почти не се появяват... Но нещо се разсеях...

И така, какво е honeypot с две думи — това е примамка, в нашия случай някой популярен порт на външния IP, всяка заявка към този порт от външен клиент добавя src адрес в черен списък. Това е всичко.

/ip firewall filter
add action=add-src-to-address-list address-list="Honeypot Hacker" 
    address-list-timeout=30d0h0m chain=input comment="block honeypot ssh rdp winbox" 
    connection-state=new dst-port=22,3389,8291 in-interface=
    ether4-wan protocol=tcp
add action=add-src-to-address-list address-list="Honeypot Hacker" 
    address-list-timeout=30d0h0m chain=input comment=
    "block honeypot asterisk" connection-state=new dst-port=5060 
    in-interface=ether4-wan protocol=udp 
/ip firewall raw
add action=drop chain=prerouting in-interface=ether4-wan src-address-list=
    "Honeypot Hacker"

Първото правило на популярните TCP портове 22, 3389, 8291 на външния интерфейс ether4-wan добавя IP адреса на «гостя» в списъка «Honeypot Hacker» (портовете за ssh, rdp и winbox са предварително изключени или променени на други). Второто прави същото и за популярния UDP 5060.

Третото правило по време на етапа на пренасочване дропва пакети «гости», чиито srs-адреси са попаднали в «Honeypot Hacker».

След две седмици работа на моя домашен Mikrotik списъкът «Honeypot Hacker» включи около хиляда и петстотин IP адреса на любители на «поддържането на източник» на моите мрежови ресурси (вкъщи имам собствена телефония, имейл, nextcloud, rdp). Атаките с brute-force спряха, настъпи блаженство.

На работа нещата не са толкова прости, там rdp сървърът продължава да се ломи чрез пробиване на пароли.

Изглежда, че номерът на порта е бил определен от скенера още преди включването на honeypot, а по време на карантина не е лесно да се пренастроят над 100 потребители, от които 20% са над 65 години. В случай че портът не може да бъде сменен, има малък работещ трамплин. Подобно нещо съм срещал в интернет, но тук има допълнителна настройка и фини корекции:

Правила за настройка на Port Knocking

 /ip firewall filter
add action=add-src-to-address-list address-list=rdp_blacklist 
    address-list-timeout=15m chain=forward comment=rdp_to_blacklist 
    connection-state=new dst-port=3389 protocol=tcp src-address-list=
    rdp_stage12
add action=add-src-to-address-list address-list=rdp_stage12 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage11
add action=add-src-to-address-list address-list=rdp_stage11 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage10
add action=add-src-to-address-list address-list=rdp_stage10 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage9
add action=add-src-to-address-list address-list=rdp_stage9 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage8
add action=add-src-to-address-list address-list=rdp_stage8 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage4
add action=add-src-to-address-list address-list=rdp_stage7 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage6
add action=add-src-to-address-list address-list=rdp_stage6 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage5
add action=add-src-to-address-list address-list=rdp_stage5 
    address-list-timeout=4m chain=forward connection-state=new dst-port=
    3389 protocol=tcp src-address-list=rdp_stage4
add action=add-src-to-address-list address-list=rdp_stage4 
    address-list-timeout=4m chain=forward connection-state=new dst-port=
    3389 protocol=tcp src-address-list=rdp_stage3
add action=add-src-to-address-list address-list=rdp_stage3 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage2
add action=add-src-to-address-list address-list=rdp_stage2 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage1
add action=add-src-to-address-list address-list=rdp_stage1 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp 
/ip firewall raw
add action=drop chain=prerouting in-interface=ether4-wan src-address-list=
rdp_blacklist

За 4 минути на отдалечения клиент е разрешено да направи само 12 нови «заявки» към RDP сървъра. Една опит за вход — това е от 1 до 4 «заявки». При 12-та «заявка» — блокировка за 15 минути. В моя случай хакерите не спряха да атакуват сървъра, а се адаптираха към таймерите и сега го правят много бавно, такава скорост на подбора свежда ефективността на атаката до нула. Служителите на предприятието не изпитват практически никакви неудобства от приетите мерки.

Още една малка хитрост
Това правило се включва по график в час нощта и се изключва в 5, когато живите хора сигурно спят, а автоматизирани скриптове продължават да работят.

/ip firewall filter 
add action=add-src-to-address-list address-list=rdp_blacklist 
    address-list-timeout=1w0d0h0m chain=forward comment=
    "night_rdp_blacklist" connection-state=new disabled=
    yes dst-port=3389 protocol=tcp src-address-list=rdp_stage8

Вече на 8-ото свързване IP адресът на злосторника се добавя в черния списък за седмица. Красива!

И в допълнение на горното ще добавя линк към Wiki статия с работеща настройка за защита на Mikrotik от мрежови скенери. wiki.mikrotik.com/wiki/Drop_port_scanners

На моите устройства тази настройка работи заедно с описаните по-горе правила на honeypot, което ги допълва добре.

UPD: Както подсказаха в коментарите, правилото за дроп на пакети е преместено в RAW, за да се намали натоварването на рутера.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster