Легкий спосіб захистити свій Mikrotik від атак

Хочу поділитися з спільнотою простим і робочим способом, як за допомогою Mikrotik захистити свою мережу та «виглядаючі» через нього сервіси від зовнішніх атак. А саме всього трьома правилами організувати на мікротику honeypot.

Отже, уявімо, що у нас невеликий офіс, зовнішній IP за яким стоїть RDP сервер, для роботи співробітників з видалення. Перше правило це, звичайно, змінити порт 3389 на зовнішньому інтерфейсі на інший. Але це ненадовго, через кілька днів журнал аудиту термінального сервера почне показувати кілька невдалих авторизацій в секунду від невідомих клієнтів.

Інша ситуація, у Вас за Mikrotik захований asterisk, природно не на 5060 udp порту, і через пару днів також починається перебір паролів… так, знаю, 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-address потрапив в 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 статтю, з робочим налаштуванням захисту Мікротика від мережевих сканерів. wiki.mikrotik.com/wiki/Drop_port_scanners

На моїх пристроях це налаштування працює разом з вищеописаними honeypot правилами, непогано їх доповнюючи.

UPD: Як підказали в коментарях, правило дропу пакетів переміщено до RAW, для зниження навантаження на роутер.

Джерело: habr.com

Додати коментар або відгук