On Ubuntu Server 10.04 LTS, if I change my IPTables rules (loaded from a .conf file) from:
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 80 -j ACCEPT
etc.
to:
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport smtp -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport http -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport http -j ACCEPT
etc.
i.e. referencing the settings in /etc/services, things continue to work as expected. However, on reboot of the machine this change causes /proc/net/ip_conntrack and /proc/net/ip_conntrack_expect to disappear from the filesystem. Reversing the IPTables change and rebooting restores them.
What's going on here, and why? Which version should I be favoring?