Το DataGuard είναι threat-intelligence platform που συσχετίζει syslog από MikroTik nodes, WAF,
RDP και mail auth failures, και εξάγει τις banned διευθύνσεις σε RouterOS .rsc μορφή.
Ο παρακάτω κώδικας κατεβάζει αυτόματα τη λίστα κάθε 6 ώρες, την περνάει σε address-list
και την εφαρμόζει σε RAW prerouting — δηλαδή πριν καν φτάσει το πακέτο στο connection tracking.
.rsc και το κάνει import στην address-list.Κάνε paste κάθε block με τη σειρά στο terminal (Winbox → New Terminal).
/system/script
add dont-require-permissions=yes name=DataGuard owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":do {\r\
\n :local fileName \"dataguard.rsc\"\r\
\n :local portalUrl \"https://www.rpmz.gr/dataguard.rsc\"\r\
\n \r\
\n # 1. Download the RSC file (check-certificate over HTTPS)\r\
\n /tool fetch url=\$portalUrl mode=https check-certificate=yes dst-path=\$fileName;\r\
\n \r\
\n # DataGuatd Update list Import Stage\r\
\n :delay 2s;\r\
\n\r\
\n # 2. Import it\r\
\n /import \$fileName verbose=no;\r\
\n \r\
\n # 3. Delete the file to keep storage clean\r\
\n /file remove \$fileName;\r\
\n \r\
\n :log info \"DataGuard: Address-list updated from rpmz.gr\";\r\
\n} on-error={ :log error \"DataGuard: Import failed from rpmz.gr\" }"
/system script run DataGuard
Η τελευταία γραμμή τρέχει το script μία φορά αμέσως, ώστε η address-list
DataGuard-Blacklist να έχει ήδη γεμίσει πριν μπουν οι RAW κανόνες —
αλλιώς θα περίμενες τον scheduler. Έλεγξε με
/ip firewall address-list print count-only where list=DataGuard-Blacklist
ότι επέστρεψε εγγραφές πριν προχωρήσεις στο STEP_03.
/system scheduler
add interval=6h name=DataGuard-Updater on-event=DataGuard policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=startup
add name=DataGuard-Startup on-event=":delay 120s\
\n/system script run DataGuard" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup
/system safe-mode (ή F4 στο Winbox terminal) — αν χαθεί
η σύνδεση, το RouterOS κάνει αυτόματο rollback
/ip firewall address-list print where list=DataGuard-Blacklist address~"Η_IP_ΣΟΥ"
action=accept κανόνα με τη δική σου IP πάνω από τα drops
/ip firewall raw
add action=drop chain=prerouting \
src-address-list=DataGuard-Blacklist \
comment="DataGuard: drop inbound from blacklisted sources"
add action=drop chain=prerouting \
dst-address-list=DataGuard-Blacklist \
comment="DataGuard: drop outbound to blacklisted destinations"
/log print where message~"DataGuard" /ip firewall address-list print count-only where list=DataGuard-Blacklist /ip firewall raw print stats /system scheduler print detail where name~"DataGuard"
Το script έχει ήδη τρέξει μία φορά στο STEP_01 και από εκεί και πέρα το αναλαμβάνει ο
DataGuard-Updater κάθε 6 ώρες — δεν χρειάζεται χειροκίνητο
run. Το raw print stats δείχνει τους μετρητές
πακέτων· αν μένουν στο μηδέν, είτε η λίστα είναι άδεια είτε δεν περνάει κίνηση από τους κανόνες.
Ίδιο script — αλλάζεις μόνο τα τρία :local στο block του Step 01
και το name= του script.
| FEED | URL | ΧΡΗΣΗ |
|---|---|---|
| DataGuard | dataguard.rsc | drop — κύρια blocklist |
| DataGuard Extend | dataguard-extend.rsc | drop — εκτεταμένη, με subnet escalation |
| M365 | DataGuard-M365.rsc | accept / QoS — όχι drop |
| Windows Update | DataGuard-WindowsUpdate.rsc | accept / QoS — όχι drop |
/system scheduler remove [find name~"DataGuard"] /system script remove [find name~"DataGuard"] /ip firewall raw remove [find comment~"DataGuard"] /ip firewall address-list remove [find list=DataGuard-Blacklist]