Vreau să împărtășesc cu comunitatea o metodă simplă și funcțională de a proteja rețeaua mea și serviciile „care scapă” din cauza ei, folosind Mikrotik, de atacurile externe. Adică, organizarea unui honeypot pe Mikrotik cu doar trei reguli.
Așadar, să ne imaginăm că avem un birou mic, cu un IP extern, în spatele căruia se află un server RDP, pentru a permite angajaților să lucreze de acasă. Prima regulă este, desigur, să schimbăm portul 3389 pe interfața externă cu altul. Dar aceasta nu va dura mult, deoarece, după câteva zile, jurnalul de audit al serverului terminal va începe să arate câteva încercări nereușite de autentificare pe secundă din partea clienților necunoscuți.
O altă situație este că, în spatele Mikrotik-ului, aveți un asterisk, evident, nu pe portul udp 5060, și după câteva zile începe și acolo forțarea parolelor... Da, știu, fail2ban este tot ce avem, dar va trebui să ne străduim din nou... de exemplu, eu am configurat recent fail2ban pe ubuntu 18.04 și cu surprindere am descoperit că, din cutie, fail2ban nu conține setările actuale pentru asterisk din aceeași cutie a acelei distribuții Ubuntu... iar căutarea rapidă a setărilor „rețetelor” gata pregătite nu dă rezultate nici acum, numerele versiunilor cresc pe parcursul anilor, iar articolele cu „rețete” pentru versiunile vechi nu mai funcționează, iar cele noi apar foarte rar... Dar cred că m-am abătut de la subiect...
Așadar, ce este un honeypot în două cuvinte — este un momeală, în cazul nostru, un port popular pe IP-ul extern, orice solicitare pe acest port din partea unui client extern trimite adresa sursă în lista neagră. Atât.
/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"
Prima regulă pe porturile TCP populare 22, 3389, 8291 ale interfeței externe ether4-wan trimite IP-ul „vizitatorului” în lista „Honeypot Hacker” (porturile pentru ssh, rdp și winbox sunt deja dezactivate sau schimbate). A doua regulă face același lucru pe portul UDP popular 5060.
A treia regulă, în etapa de preroating, blochează pachetele „vizitatorilor” a căror adresă sursă a fost inclusă în lista „Honeypot Hacker”.
După două săptămâni de funcționare a Mikrotik-ului meu de acasă, lista „Honeypot Hacker” a inclus aproximativ o mie și cinci sute de adrese IP ale celor care „își iau libertăți” cu resursele mele de rețea (acasă am telefonie proprie, email, nextcloud, rdp). Atacurile de tip brute-force au încetat, a venit fericirea.
La lucru, nu a fost totul atât de simplu, acolo serverul rdp continuă să fie atacat prin forțarea parolelor.
Se pare că numărul portului a fost determinat de scanner înainte de activarea honeypot-ului, iar în timpul carantinei nu este tocmai ușor să reconfigurezi peste 100 de utilizatori, dintre care 20% au vârsta de peste 65 de ani. În cazul în care portul nu poate fi schimbat, există o mică rețetă funcțională. Am întâlnit ceva similar pe internet, dar aici este o ajustare suplimentară și o reglare fină:
Reguli pentru configurarea 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
În 4 minute, clientului de la distanță i se permite să facă doar 12 noi „solicitări” la RDP. server. O încercare de conectare înseamnă între 1 și 4 „solicitări”. După a 12-a „solicitare” – blocare timp de 15 minute. În cazul meu, atacatorii nu au încetat să mai încerce să compromită serverul, s-au adaptat la temporizatoare și acum o fac foarte încet; această viteză de testare reduce eficiența atacului la zero. Angajații companiei nu întâmpină practic nicio neplăcere din cauza măsurilor adoptate.
Încă o mică șmecherie
Această regulă se activează conform unui program la ora 1 noaptea și se dezactivează la 5, când oamenii reali dorm cu siguranță, iar instrumentele automate de testare rămân active.
/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_stage8Deja la a 8-a conexiune, IP-ul atacatorului este trimis pe lista neagră pentru o săptămână. Frumos!
Ei bine, și ca un plus la cele spuse anterior, voi adăuga un link către articolul Wiki, cu o configurare funcțională a protecției Mikrotik împotriva scanerelor de rețea.
Pe dispozitivele mele, această configurare funcționează împreună cu regulile honeypot descrise mai sus, completându-le destul de bine.
UPD: Așa cum au sugerat în comentarii, regula de blocare a pachetelor a fost mutată în RAW, pentru a reduce încărcătura pe router.
Sursa: habr.com
