ASN-Skript / iptables auf Laptop - lange Ladezeiten beim Booten

Ich möchte auf einem Ubuntu-Laptop per ASN-Skript (siehe z. B. https://www.kuketz-blog.de/asn-skript-datensammler-haben-ausgeschnueffelt-ipfire-teil3/) die IP-Adressen von ein paar Firmen blockieren.

Das Gerät wird in wechselnden Netzen genutzt und zur Benutzung jeweils frisch hochgefahren.

Mit Hilfe des ASN-Skripts wurden iptables-Regeln in eine Datei in /etc/iptables geschrieben, die bei jedem Booten prozessiert wird. Das sind etwa 200 bis 1000 Datensätze im Format

/sbin/iptables -A OUTPUT -d 8.8.4.0/24 -j REJECT

Der unschöne Effekt, für den vielleicht jemand eine Lösung / Alternative hat: Beim Booten beträgt die Ladezeit zwischen „Nutzer-Passwort bestätigt“ und „Desktop vollständig geladen“ mehr als 2 Minuten.
Ohne die Datei sind es nur Sekunden, sodass ich den Effekt eindeutig auf die iptables-Regeln zurückführe.

Helfen könnten intuitiv (und da komme ich nicht weiter):

  • Eine „Beschleunigung“ der Regelerzeugung nach jedem Systemstart durch einen technischen Trick
  • eine alternative Möglichkeit, solche IP-basierten Blockaderegeln dauerhaft im System zu hinterlegen, die keine massive Ladezeit bei jedem Systemstart erfordert

Eine Lösung außerhalb des Geräts (z. B. am Router) hilft nur eingeschränkt, da das Gerät in unterschiedlichen Netzen zum Einsatz kommt.

Es müsste doch noch mehr Menschen betreffen, da nicht jeder auf Router-Ebene agieren kann / will.
Hat jemand eine Idee zu dem Thema?

Die Regeln werden normalerweise sehr fix eingelesen. Auch bei erheblich größerer Anzahl. Es müsste also erstmal geklärt werden, warum es nach Eingabe des Passworts so lange dauert.
Evtl. wird mit den Regeln etwas blockiert, das im Zuge des Login bzw. Start der Umgebung versucht wird zu erreichen.

Fang doch mal mit folgenden Angaben an:
systemd-analyze
systemd-analyze blame
Der zweite Befehl zeigt dir, woran es hakt.
Alternativ kannst du auch die unerwünschten Seiten in die /etc/hosts eintragen. Dann findet die Namensauflösung nicht mehr statt und du kannst die Seiten nicht mehr im Internet erreichen.

2 „Gefällt mir“

Danke für die Tipps.
Mit systemd-analyse bekomme ich:

Startup finished in 38 s (kernel) + 17 s (userspace) = 55 s
Graphical.target reached after 16 s in userspace

Mit systemd-analyse blame kommt (gekürzt)

8 s Network manager wait online.service
4 s dev-mapper.service
6 s snap.service
ca. 25-mal dev-loopxx.device mit 4-1 Sekunden
100 Zeilen „Kleinkram“ unter 1 s

Das klingt für mich wenig verdächtig und erklärt auch nicht (vollständig) die über 2 min Verzögerung nach dem Login.

Wenn ich die iptables-Einträge neu setze (manuell Textdatei ausführen nach Flush der Regeln), dauert es ca. 1 s und sie sind eingeloggt. Es ist also schneller, die Regeln nicht über

iptables-persistent

zu laden, sondern manuell ein Skript auszuführen nach dem Login - ich bin verwirrt. :question:

Sorry, das Thema driftet in Richtung Linux-Support.

ein paar Ideen:

  • „/ect/iptables“ kenne ich nur als Ordner und nicht als Datei. Sicher, dass das kein Problem darstellt?
  • was genau bedeutet denn „prozessiert“? Sicher, dass die Regeln nicht wieder und wieder (persistent) angehängt werden?
  • was passiert, wenn die Datei nur eine oder wenige Zeilen enthält?

Ich meine die 2 Dateien rules.v4 und rules.v6 in dem Ordner

Ich meine die Ausführung dieser Befehlszeilen, um die Regeln zu setzen.
Initial nach dem Booten sind die iptables leer. Sie werden erst durch das Skript geschrieben.

Selbst bei Reduktion auf 2 Zeilen besteht die gleiche Wartezeit von 2 Minuten.
Werden die Dateien „rules.v4“ und „rules.v6“ beide gelöscht, lädt der Desktop nach ein paar Sekunden.

Der gleiche Effekt bzgl. Wartezeit besteht, wenn die iptables-Regeln in der /etc/rc.local stehen (die beim Systemstart automatisch ausgeführt wird).

Der große Zeitbedarf tritt also nur bei automatischer Ausführung nach dem Booten über einen der zwei Wege auf.

Wenn ich die Dateien in einen anderen Ordner verschieben und nach dem Login manuell von dort ausführe, sind die Regeln in 2 s gesetzt.

Ich vermute also einen mir unbekannten Effekt / Zusammenhang, der beim „Regelsetzen bei Systemstart“ auftritt…

Die 55 Sekunden wären für einen Laptop mit einer ordinären Festplatte gut. Darunter kommste kaum, es sei denn halt eine SSD.
Zeig vielleicht einfach auch inxi -Fz.
Du hast meine letzte Zeile nicht aufgenommen. Die Seiten in die /etc/hosts einzutragen. Hier steht ein wenig mehr dazu
https://www.linuxmintusers.de/index.php?topic=16254.0