Chcem sa podeliť s komunitou o jednoduchý a funkčný spôsob, ako pomocou Mikrotiku chrániť svoju sieť a "vyzerajúce" služby od externých útokov. A to konkrétne organizovať na Mikrotiku honeypot pomocou troch jednoduchých pravidiel.
Predstavme si, že máme malú kanceláriu, externá IP adresa za ktorou je RDP server pre prácu zamestnancov na diaľku. Prvé pravidlo je samozrejme zmeniť port 3389 na externom rozhraní na iný. Ale to netrvá dlho, po niekoľkých dňoch auditný žurnál terminálového servera začne vykazovať niekoľko neúspešných autorizácií za sekundu od neznámych klientov.
Iná situácia, máte za Mikrotikom skrytý asterisk, samozrejme nie na porte 5060 UDP, a po pár dňoch sa začína prelomiť heslá... áno, viem, fail2ban je naše všetko, ale nad ním sa ešte budeme musieť popracovať... ja som napríklad nedávno nainštaloval fail2ban na ubuntu 18.04 a s prekvapením som zistil, že z krabičky fail2ban neobsahuje aktuálne nastavenia pre asterisk z tej istej verzie ubuntu... a rýchle nastavenia už nájsť nemožno, čísla v vydaniach s časom rastú a články s "receptami" pre staršie verzie už nefungujú, pričom nové sa objavujú len zriedkavo... Ale nejako som sa odklonil...
Čo je honeypot v dvoch slovách — je to pasca, v našom prípade nejaký populárny port na externej IP adrese, každý dotaz na tento port od externého klienta pridá zdrojovú adresu do čiernej listiny. A to je celé.
/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"
Prvé pravidlo na populárnych TCP portoch 22, 3389, 8291 externého rozhrania ether4-wan posiela IP "návštevníka" do zoznamu "Honeypot Hacker" (porty pre ssh, rdp a winbox sú vopred vypnuté alebo zmenené na iné). Druhé robí to isté na populárnom UDP 5060.
Tretie pravidlo v štádiu prerozdeľovania zhadzuje pakety "návštevníkov", ktorých zdrojová adresa sa dostala do "Honeypot Hacker".
Po dvoch týždňoch práce môjho domáceho Mikrotiku sa zoznam "Honeypot Hacker" rozrástol o približne tisíc päťsto IP adries milovníkov "držať moje sieťové zdroje za krkom" (doma máme vlastnú telefóniu, poštu, nextcloud, rdp) Brute-force útoky ustali, nastala blaženosť.
V práci to však nebolo také jednoduché, tam rdp server naďalej lámu prelomením hesiel.
Zdá sa, že portový skener určil číslo portu dávno pred aktiváciou honeypotu, a počas karantény nie je jednoduché znovu nastaviť viac ako 100 používateľov, z ktorých 20 % je starších ako 65 rokov. V prípade, že nie je možné zmeniť port, existuje malý funkčný recept. Podobné som videl na internete, ale tu je potrebná drobná úprava a jemné nastavenie:
Pravidlá pre konfiguráciu 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
Na vzdialeného klienta je povolené za 4 minúty uskutočniť iba 12 nových "požiadaviek" na RDP serveru. Jeden pokus o prihlásenie predstavuje od 1 do 4 "požiadaviek". Po 12. "požiadavke" – zablokovanie na 15 minút. V mojom prípade útočníci na server neprestali útočiť, prispôsobili sa časovačom a teraz to robia veľmi pomaly, táto rýchlosť skúšania znižuje účinnosť útoku na nulu. Zamestnanci podniku sa kvôli prijatým opatreniam prakticky necítia v práci nijako nepríjemne.
Ešte jeden malý trik
Toto pravidlo sa aktivuje podľa rozvrhu o polnoci a vypne sa o 5, keď živí ľudia určite spia, a automatizované nástroje na vylučovanie zostávajú nažive.
/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_stage8Už na 8. spojení sa IP útočníka dostáva na čiernu listinu na týždeň. Krása!
A k tomu, čo som spomenul, pridám odkaz na článok Wiki, s funkčným nastavením ochrany Mikrotiku proti sieťovým skenerom.
Na mojich zariadeniach toto nastavenie funguje spolu s vyššie opísanými pravidlami honeypotu a pekne ich doplňuje.
UPD: Ako naznačili v komentároch, pravidlo na zadržiavanie paketov bolo presunuté do RAW, aby sa znížila záťaž na router.
Zdroj: habr.com
