Un modo semplice per proteggere il tuo Mikrotik dagli attacchi

Voglio condividere con la community un modo semplice e funzionante di come utilizzare Mikrotik per proteggere la propria rete e i servizi che “fanno capolino” da dietro da attacchi esterni. Ovvero, solo tre regole per organizzare un honeypot su Mikrotik.

Immaginiamo quindi di avere un piccolo ufficio, con un IP esterno dietro il quale si trova un server RDP per consentire ai dipendenti di lavorare da remoto. La prima regola è ovviamente cambiare la porta 3389 dell'interfaccia esterna con un'altra. Ma questo non durerà a lungo: dopo un paio di giorni, il registro di controllo del server terminal inizierà a mostrare diverse autorizzazioni non riuscite al secondo da parte di client sconosciuti.

Altra situazione, hai l'asterisco nascosto dietro Mikrotik, ovviamente non sulla porta 5060 udp, e dopo un paio di giorni inizia anche la ricerca della password... sì, sì, lo so, fail2ban è il nostro tutto, ma dobbiamo ancora farlo lavoraci sopra... ad esempio, l'ho installato di recente su Ubuntu 18.04 e sono stato sorpreso di scoprire che fail2ban pronto all'uso non contiene le impostazioni correnti per l'asterisco dalla stessa scatola della stessa distribuzione di Ubuntu... e cercare su Google le impostazioni rapide per le “ricette” già pronte non funziona più, i numeri delle uscite crescono negli anni, e gli articoli con le “ricette” per le vecchie versioni non funzionano più, e quelle nuove non ne compaiono quasi mai... Ma sto divagando...

Quindi, cos'è un honeypot in poche parole: è un honeypot, nel nostro caso, qualsiasi porta popolare su un IP esterno, qualsiasi richiesta a questa porta da un client esterno invia l'indirizzo src alla lista nera. Tutto.

/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"

La prima regola sulle popolari porte TCP 22, 3389, 8291 dell'interfaccia esterna ether4-wan invia l'IP "ospite" all'elenco "Honeypot Hacker" (le porte per ssh, rdp e winbox vengono disattivate in anticipo o modificate con altre). Il secondo fa lo stesso sul popolare UDP 5060.

La terza regola nella fase di pre-instradamento elimina i pacchetti dagli "ospiti" il cui indirizzo srs è incluso nell'"Honeypot Hacker".

Dopo due settimane di lavoro con il mio Mikrotik di casa, l'elenco "Honeypot Hacker" comprendeva circa un migliaio e mezzo di indirizzi IP di coloro a cui piace "tenere per mammella" le mie risorse di rete (a casa c'è la mia telefonia, posta, nextcloud, rdp). Gli attacchi di forza bruta sono cessati ed è arrivata la felicità.

Al lavoro, non tutto si è rivelato così semplice, lì continuano a rompere il server rdp forzando brutalmente le password.

Apparentemente, il numero di porta è stato determinato dallo scanner molto prima dell'accensione dell'honeypot e durante la quarantena non è così facile riconfigurare più di 100 utenti, di cui il 20% ha più di 65 anni. Nel caso in cui non sia possibile modificare la porta, esiste una piccola ricetta di lavoro. Ho visto qualcosa di simile su Internet, ma sono necessarie alcune aggiunte aggiuntive e ottimizzazioni:

Regole per la configurazione di 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

In 4 minuti, il client remoto può effettuare solo 12 nuove “richieste” al server RDP. Un tentativo di accesso prevede da 1 a 4 “richieste”. Alla 12a “richiesta” - blocco per 15 minuti. Nel mio caso, gli aggressori non hanno smesso di hackerare il server, si sono adattati ai timer e ora lo fanno molto lentamente, una tale velocità di selezione riduce a zero l'efficacia dell'attacco. I dipendenti dell'azienda non hanno riscontrato praticamente alcun disagio sul lavoro a causa delle misure adottate.

Un altro piccolo trucco
Questa regola si attiva secondo un programma all'5 di notte e si disattiva alle XNUMX del mattino, quando le persone reali dormono definitivamente e i selezionatori automatizzati continuano a essere svegli.

/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

Già all’ottava connessione l’IP dell’aggressore viene inserito nella lista nera per una settimana. Bellezza!

Bene, oltre a quanto sopra, aggiungerò un collegamento a un articolo Wiki con una configurazione funzionante per proteggere Mikrotik dagli scanner di rete. wiki.mikrotik.com/wiki/Drop_port_scanners

Sui miei dispositivi, questa impostazione funziona insieme alle regole dell'honeypot descritte sopra, integrandole bene.

UPD: Come suggerito nei commenti, la regola di rilascio dei pacchetti è stata spostata su RAW per ridurre il carico sul router.

Fonte: habr.com

Aggiungi un commento