Come configurare un MikroTik per bloccare malware e phishing

Questa è una guida completa, didattica e riproducibile per configurare un router MikroTik (RouterOS) in modo da ridurre in modo drastico i rischi di malware, botnet e phishing. Vediamo come integrare feed di blocco, filtrare DNS, forzare l’uso del resolver sicuro, impostare regole firewall e verificare tutto con log e test. Tutti i comandi sono pensati per CLI (Terminal/WinBox), con note di compatibilità tra RouterOS v6 e v7.

Preparazione e hardening di base

Prima di introdurre filtri avanzati, mettiamo in sicurezza il router e predisponiamo un ambiente pulito e verificabile.

Creiamo un backup immediato prima di eseguire la procedura:

/system backup save name=pre-security-config
/export file=pre-security-config.rsc

Salva un backup binario e un export leggibile per rollback e audit.

Aggiorniamo RouterOS:

/system package update check-for-updates
/system package update install

Riavviamo se richiesto; mantenere RouterOS aggiornato è fondamentale per sicurezza e compatibilità.

Account amministrativo sicuro:

/user add name=nome utente da inserire password="NuovaPassword da inserire" group=full
/user disable admin

Esempio:

/user add name=cristiangallo19 password="X6hyIP2025!" group=full
/user disable admin

Riduce l’esposizione dell’utente di default. Usa una password unica e lunga.

Limitare i servizi di gestione:

/ip service set winbox address=192.168.1.0/24
/ip service set ssh address=192.168.1.0/24
/ip service disable telnet
/ip service disable www
/ip neighbor discovery-settings set discover-interface-list=none

Nel mio caso il mio ip possiede la classe 1 nel vostro caso sostituitela con la vostra ad esempio se avete 88 mettete:

/ip service set winbox address=192.168.88.0/24
/ip service set ssh address=192.168.88.0/24
/ip service disable telnet
/ip service disable www
/ip neighbor discovery-settings set discover-interface-list=none

Consenti WinBox/SSH solo dalla LAN affidabile; disabilita servizi non necessari e discovery L2.

Sincronizzazione oraria per log affidabili:

/system ntp client set enabled=yes servers=pool.ntp.org

Feed di blocco: import automatico di domini/IP malevoli

Useremo uno script e uno scheduler per scaricare e importare periodicamente una lista MikroTik-formattata da Malware Patrol. La logica è idempotente: pulisce voci precedenti e importa solo le nuove.

Definizione dello script di aggiornamento

  • Obiettivo: scaricare il file .rsc, rimuovere vecchie voci, importare nuove voci nell’address-list.
  • Nota nomenclatura: useremo l’indirizzo-list MP_MaliciousDomains e commento coerente MP_MaliciousDomains.
/system script add name="MP_UpdateMaliciousDomains" source={
  :log info "MP_UpdateMaliciousDomains: starting fetch";
  /tool fetch url="https://USERNAME:PASSWORD@eval.malwarepatrol.net/feeds/files/MP_malicious_domains.mikrotik.rsc" mode=https dst-path=MP_malicious_domains.mikrotik.rsc keep-result=yes;
  :if ([:len [/file find name="MP_malicious_domains.mikrotik.rsc"]] = 0) do={
    :log warning "MP_UpdateMaliciousDomains: fetch failed or file not found";
    :error "Fetch failed";
  }
  :log info "MP_UpdateMaliciousDomains: cleaning previous address-list entries";
  /ip firewall address-list remove [find where list="MP_MaliciousDomains"];
  :log info "MP_UpdateMaliciousDomains: importing new address-list";
  /import file-name=MP_malicious_domains.mikrotik.rsc;
  :log info "MP_UpdateMaliciousDomains: import completed";
}

Cosa modificare: sostituisci USERNAME:PASSWORD con le tue credenziali Malware Patrol.

Cosa fa: scarica il file, elimina tutte le voci correnti della lista, importa le nuove voci.

Scheduler per esecuzione periodica

/system scheduler add name="MP_UpdateMaliciousDomains" interval=1h start-time=00:05 on-event="MP_UpdateMaliciousDomains" policy=reboot,read,write,policy,test,password,sniff,sensitive

Frequenza: ogni ora. Puoi aumentare a 3–6h se preferisci minore impatto.

Policy: concedi privilegi sufficienti allo scheduler per import e fetch.

Prima esecuzione e verifica:

Esecuzione manuale:

/system script run MP_UpdateMaliciousDomains

Verifica file:

  • In Files deve comparire MP_malicious_domains.mikrotik.rsc aggiornato.

Verifica address-list:

/ip firewall address-list print where list="MP_MaliciousDomains"

Dovresti vedere voci popolate dal feed.

Regole firewall: blocco traffico verso/da entità malevole

Ora che la lista è popolata, aggiungiamo regole di drop. Manteniamo logging minimale ma utile. Blocca traffico in forwarding verso destinazioni malevole:

/ip firewall filter add chain=forward action=drop dst-address-list=MP_MaliciousDomains log=yes log-prefix="DROP_MP_DST"

Interrompe connessioni verso IP/host dannosi.

Blocca traffico in forwarding da sorgenti malevole (se in lista):

/ip firewall filter add chain=forward action=drop src-address-list=MP_MaliciousDomains log=yes log-prefix="DROP_MP_SRC"

Utile per bloccare host interni compromessi che risolvono in IP malevoli già noti o IP assegnati localmente.

Posizionamento delle regole:

  • Metti le regole di drop sopra eventuali accept generici in chain=forward.
  • Mantieni le regole established/related accettate, ma verifica l’ordine per evitare bypass.

/log print where message~"DROP_MP_"

Controlla che eventi vengano registrati quando si tenta di raggiungere domini/IP bloccati

DNS filtering e enforcement del resolver sicuro

Il DNS filtering impedisce la risoluzione di domini di phishing o malware. Puoi usare provider filtranti (FlashStart, OpenDNS) o DoH. In aggiunta, forzeremo i client a usare il DNS del router per garantire il filtraggio.

Impostare DNS filtrante

FlashStart (filtraggio security):

/ip dns set servers=185.236.104.104,185.236.105.105 allow-remote-requests=yes

OpenDNS (security + optional content controls):

/ip dns set servers=208.67.222.222,208.67.220.220 allow-remote-requests=yes

Controlla risoluzione:

/tool dig bad-example-domain.test
/ip dns cache print

Forzare i client a usare il DNS del router (DNS redirect)

Regole NAT per reindirizzare richieste DNS verso il router:

/ip firewall nat add chain=dstnat protocol=udp dst-port=53 action=redirect to-ports=53 log=no
/ip firewall nat add chain=dstnat protocol=tcp dst-port=53 action=redirect to-ports=53 log=no

Impedisce ai client di contattare DNS esterni direttamente; tutte le query passano per il router.

Ulteriori considerazioni:

  • Se usi DoH/DoT sui client, il redirect su 53 non li fermerà. Valuta policy aziendali e blocchi su porte 853 (DoT) o SNI per DoH a seconda del tuo scenario.
  • Per reti BYOD, comunica chiaramente la policy DNS.

Opzionale: DoH lato router (RouterOS v7)

Esempio con Cloudflare DoH:

/ip dns set use-doh-server=https://cloudflare-dns.com/dns-query verify-doh-cert=yes

Aggiungi i certificati CA corretti se richiesto; verifica con /tool fetch HTTPS funzionante.

Con questo metodo siamo riusciti a configurare il dispositivo MikroTik per proteggerlo da malware e phishing. Spero che la guida vi sia utile; a breve pubblicherò anche la configurazione del mio router con tutti i passaggi illustrati passo dopo passo.

Lascia un commento