Symptoms

I have stopped and started iptables with these commands:

~# /etc/init.d/iptables stop

~# /etc/init.d/iptables start

Now I see that some rules have disappeared. What could be the reason?

Cause

If rules were added using /sbin/iptables utility, they were added to a chain in the memory and were not committed to the hard disk. Upon restart, those rules were flushed from the memory and not restored.

Resolution

In order to avoid losing rules during an iptables restart, you need to save them before the restart.

  1. Method 1:

    ~# iptables-save > iptables_save.txt

    If using this method, you will need to restore the rules after the restart:

    ~# iptables-restore < iptables_save.txt

  2. Method 2:

    ~# /etc/init.d/iptables save
    Saving firewall rules to /etc/sysconfig/iptables: [ OK ]

The above command saves the rules to the file system, and an iptables restart will not affect them.

Related Articles

RedHat: Saving IPTables Rules

CentOS: Saving IPTables Rules

Internal content