uname -r:4.13.0-16-generico (server Ubuntu 17.10)
Ho un problema che iptables non funziona dopo un riavvio:
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.
Ho provato a reinstallare kernel e iptables:
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
quando lo reinstallo (senza riavvio) iptables funziona dopo il riavvio del servizio.
quando riavvio la macchina ottengo di nuovo lo stesso errore.
Ho notato che ad ogni riavvio la seguente cartella scompare:
/lib/modules/4.13.0-16-generic/kernel/net/ipv4/netfilter
solo 2 file rimasti nella cartella ipv4 sono:
gre.ko udp_tunnel.ko
la copia dei file mancanti in questa posizione non funziona, verrà rimossa al prossimo riavvio.
Qualche idea su come risolvere questo problema?
Risposta accettata:
Ottengo lo stesso su Ubuntu 16.04. Non ho una soluzione, ma ho qualche idea del perché questo sta accadendo. Durante il processo di lettura, il sistema si avvia inizialmente su un file system basato su RAM:initramfs. Più avanti nel processo di avvio, il disco rigido prende il sopravvento, ma la directory dei moduli da initramfs viene montata nella directory dei moduli del disco rigido. Nota che l'output di mount
include la riga:
copymods on /lib/modules type tmpfs (rw,relatime)
Ok, quindi qualsiasi modifica a /lib/modules, ad es. eseguendo
sudo apt-get install --reinstall linux-image-$(uname -r)
andrà perso al riavvio del sistema. Quindi come dovrebbe funzionare? Bene, quando apt install
il comando aggiunge nuovi moduli, dovrebbe inserire una voce corrispondente in /usr/share/initramfs-tools/hooks
. Quindi lo script di installazione che apt install
invoca esegue update-initramfs
, che genera l'archivio CPIO /boot/initrd.img-(uname -r)
che è la tua immagine initramfs, che ora dovrebbe contenere i moduli necessari per il funzionamento di iptables al riavvio del sistema.
Il bug è che le voci rilevanti non vengono mai effettivamente create in /usr/share/initramfs-tools/hooks
, e quindi le voci rilevanti non vengono effettuate in initramfs e quindi non vengono conservate al riavvio del sistema.
A questo punto sono bloccato.