uname -r:4.13.0-16-generic (Ubuntu 17.10-Server)
Ich habe ein Problem, dass iptables nach einem Neustart nicht funktioniert:
iptables-apply /etc/network/iptables
[ ok ] Stopping fail2ban (via systemctl): fail2ban.service.
Applying new iptables rules from '/etc/network/iptables'... modprobe: FATAL: Module ip_tables not found in directory /lib/modules/4.13.0-16-generic
iptables-restore v1.6.1: iptables-restore: unable to initialize table 'filter'
Error occurred at line: 3
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
failed.
Error: unknown error applying new iptables rules: /etc/network/iptables
Reverting to old iptables rules... done.
Ich habe versucht, Kernel und iptables neu zu installieren:
apt install --reinstall linux-generic linux-image-4.13.0-16-generic linux-image-extra-4.13.0-16-generic linux-headers-4.13.0-16-generic iptables
Wenn ich es neu installiere (ohne Neustart), funktioniert iptables nach einem Neustart des Dienstes.
Wenn ich die Maschine neu starte, erhalte ich denselben Fehler erneut.
Mir ist aufgefallen, dass bei jedem Neustart folgender Ordner weg ist:
/lib/modules/4.13.0-16-generic/kernel/net/ipv4/netfilter
Nur noch 2 Dateien im Ordner ipv4 sind:
gre.ko udp_tunnel.ko
Das Kopieren der fehlenden Dateien an diesen Ort funktioniert nicht, wird beim nächsten Neustart entfernt.
Irgendeine Idee, wie man das beheben kann?
Akzeptierte Antwort:
Ich bekomme das gleiche auf Ubuntu 16.04. Ich habe keine Lösung, aber ich habe einen Einblick, warum dies geschieht. Während des Buchvorgangs bootet das System zunächst auf einem RAM-basierten Dateisystem:initramfs. Später im Boot-Vorgang übernimmt die Festplatte, aber das Modulverzeichnis aus dem initramfs wird in das Modulverzeichnis der Festplatte eingehängt. Beachten Sie, dass die Ausgabe von mount
enthält die Zeile:
copymods on /lib/modules type tmpfs (rw,relatime)
Ok, also alle Änderungen an /lib/modules, z.B. durch Ausführen
sudo apt-get install --reinstall linux-image-$(uname -r)
gehen verloren, wenn das System neu gestartet wird. Wie soll das also funktionieren? Nun, wenn die apt install
Wenn der Befehl neue Module hinzufügt, sollte er einen entsprechenden Eintrag in /usr/share/initramfs-tools/hooks
einfügen . Dann das Installationsskript, das apt install
ruft update-initramfs
auf , das das CPIO-Archiv /boot/initrd.img-(uname -r)
generiert das ist Ihr initramfs-Image, das nun die Module enthalten sollte, die für iptables erforderlich sind, wenn das System neu gestartet wird.
Der Fehler besteht darin, dass die relevanten Einträge niemals tatsächlich in /usr/share/initramfs-tools/hooks
vorgenommen werden , und daher werden die entsprechenden Einträge nicht in initramfs vorgenommen und bleiben daher nicht erhalten, wenn das System neu gestartet wird.
An diesem Punkt stecke ich fest.