SymptomsI 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?
CauseIf 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.
ResolutionIn order to avoid losing rules during an iptables restart, you need to save them before the restart.
# iptables-save > iptables_save.txt
If using this method, you will need to restore the rules after the restart:
# iptables-restore <iptables_save.txt
# /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.
This method is preferable if you want to leave the server intact.