Fehler in der Anleitung zum hinzufügen der Blocklist in einem Mikrotik Router + Verbesserungsvorschlag

Hi,
hier [IPv64 Blocklists - How to add IP Blocklists to your Firewall] (IPv64 Blocklists - How to add IP Blocklists to your Firewall) folgendes Script angegeben.

:local url "https://ipv64.net/blocklists/ipv64_blocklist_blocklistde_all.txt"
:local listName "IPv64-Blocklist"

# Inhalte von der URL herunterladen
/tool fetch url=$url mode=http

:local fileContents [/file get [/file find name="ipv64_blocklist_blocklistde_all.txt"] contents]
:local ipAddressList [:toarray $fileContents]

# IP-Adressen extrahieren und der Firewall-Adressliste hinzufügen
:foreach ip in=$ipAddressList do={
    /ip firewall address-list add address=$ip list=$listName
}

Dieses Script hat aber einen Typo und wird so mit einem Fehler quittiert
image

Richtigerweise ist der mode im fetch https und nicht http
So funktioniert es, zumindest der Download

:local url "https://ipv64.net/blocklists/ipv64_blocklist_blocklistde_all.txt"
:local listName "IPv64-Blocklist"

# Inhalte von der URL herunterladen
/tool fetch url=$url mode=https

:local fileContents [/file get [/file find name="ipv64_blocklist_blocklistde_all.txt"] contents]
:local ipAddressList [:toarray $fileContents]

# IP-Adressen extrahieren und der Firewall-Adressliste hinzufügen
:foreach ip in=$ipAddressList do={
    /ip firewall address-list add address=$ip list=$listName
}

Es wird so allerdings keine Adresslist erzeugt (oder sieht man die nur nicht unter adress lists?

Und, fehlt hier nicht ein Scheduler damit die Liste regelmäßig aktualisiert wird? Die wird doch auch bei euch ständig erweitert oder eben geschrumpft etc.

Ich habe den Typo korrigiert. Wenn du magst füge mir den restlichen Befehle gerne hinzu und ich aktualisiere die Doku auf der Page.

Danke dir

Hi Dennis,

add interval=7d name="IPv64-Blocklist-refresh" start-date=Jan/01/2000 start-time=00:05:00 on-event=IPv64-Blocklist

Das setzt aber natürlich voraus, dass man das Script mit dem Namen IPv64-Blocklist gespeichert hat.

Vielleicht kann man die manuellen Steps auch alle per Terminal durchführen allerdings bin ich kein Profi der das Script in ein Terminal Befehl übersetzen könnte. Meine Versuche schlugen bislang fehl aber da sind ja hier mit Sicherheit die besseren Profis die das mit Links können.

Also bei mir ist die Datei wohl immer zu groß und somit die variable leer, wenn ich die kleinste Datei nehme kommt es wenigstens in der Variable an (global geguckt) allerdings setzt er nicht die Adressliste ohne Fehler im Log.

ich steh auf dem Schlauch wie ich jetzt die „all“ liste benutzen soll.

Und am Ende krieg ich einfach ein memory Log Eintrag mit der IP Adresse und keine Adresse wurde in die Liste hinzugefügt.

:local url "https://ipv64.net/blocklists/ipv64_blocklist_v4_spamhaus_drop.txt"
:local listName "IPv64-Blocklist"

# Inhalte von der URL herunterladen
/tool fetch url=$url mode=https

:global fileContents [/file get [/file find name="ipv64_blocklist_v4_spamhaus_drop.txt"] contents]
:local ipAddressList [:toarray $fileContents]

# IP-Adressen extrahieren und der Firewall-Adressliste hinzufügen
:foreach ip in=$ipAddressList do={
    /ip firewall address-list add address=$ip list=$listName
}```

Die Mikrotik Blocklisten liegen bereits auf dem Server und werden mitaktualisiert.
Liegen ebenfalls im Ordner /blocklists/

1 „Gefällt mir“

Ach geil danke dir, werd ich mal einbauen dann. Dann kann die Anleitung wohl weg für die Txt files denn jedenfalls mein kleiner hex s kann solche files in der größere nicht parsen, auch 2025 nicht :smiley:

lüppt danke!

Hallo,
Ich habe eine Mikrotik Router mit ROS 7.18.2 und wenn ich das Script ausführe, dann funktioniert das aufsplitten des Files in den IP-Array nicht. Es ist EIN langer string.
Hat jemand eine Idee, was ich machen könnte?
LG Tom

Moin, bin gerade neu hier.
Auch ich habe Probleme die Liste einzulesen. Leider bietet das ganze kein vernuenftige Debug System. Habe jedoch herausgefunden, dass es ein Problem beim Einlesen des Dateies ist.

Bei der Suche nach alternative bin ich auf ein andere Art gestossen. Im Grunde eine Schleife, der alle IP-Adressen zufuegt. Statt diese aus der Liste zu Parsen.

Ich schreibe gerade an einer Rust-Routine, der so eine Datei wie : Mikrotik-Blacklist/blacklist.rsc at master · pwlgrzs/Mikrotik-Blacklist · GitHub, jedoch aus die Blockliste von ipv64,
zur Verfuegung stellt. Dies klappt bei mir.

Eventuell hat der Betreiber Interesse an dies, gegebenfalls aktuelle Skripte zur Verfuegung zu stellen.

LG Damian

Mahlzeit :slight_smile:
Es gibt bereits ein fabelhaftes Skript zum Hinzufügen beliebiger Listen :slight_smile:

Das Skript verarbeitet auch sehr große Listen und „merged“ diese dabei, ohne die alte Liste jedesmal wegzuwerfen. Es vergleicht existierende und neue Listen und ändert nur die Änderungen. Damit ist auch während der Updates die FW-Liste immer aktiv ohne Lücke beim Update.
Und nicht nur das, da gibt es noch viel viel mehr, schaut selbst.

EWORM ist vielen MikroTik-Usern auch im Forum ein Begriff.
Er ist absolut vertrauensvoll.
@Dennis: er wohnt nicht weit weg von dir, in Oberhausen und hat dich schon persönlich angeschrieben.

1 „Gefällt mir“