How to save rules of the iptables? [duplicate]
I create the rules to iptables. But, when I restart the computer, the rules don't work! How to save the rules on Ubuntu ?
The was problem solved!
do:
After of the write the commands iptables, do:
1. sudo su
2. iptables-save > /etc/iptables.rules
3. In /etc/network/if-pre-up.d/iptables,put:
#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0
4. After, in /etc/network/if-post-down.d/iptables,put:
#!/bin/sh
iptables-save -c > /etc/iptables.rules
if [ -f /etc/iptables.rules ]; then
iptables-restore < /etc/iptables.rules
fi
exit 0
5. After, give permission to the scripts:
sudo chmod +x /etc/network/if-post-down.d/iptables
sudo chmod +x /etc/network/if-pre-up.d/iptables
More information: https://help.ubuntu.com/community/IptablesHowTo#Saving_iptables Good luck!
Solution 1:
The easy way is to use iptables-persistent
.
Install iptables-persistent
:
sudo apt-get install iptables-persistent
After it's installed, you can save/reload iptables rules anytime:
sudo /etc/init.d/iptables-persistent save
sudo /etc/init.d/iptables-persistent reload
Ubuntu 16.04 Server
The installation as described above works without a problem, but the two commands for saving and reloading above do not seem to work with a 16.04 server. The following commands work with that version:
sudo netfilter-persistent save
sudo netfilter-persistent reload
Solution 2:
The generic method of saving iptables rules is to use the command iptables-save, which writes to stdout.
iptables-save > /etc/network/iptables.rules
The output created by iptables-save can then by read on stdin by iptables-restore. If on a server, without NetworkManager, a common approach is then to use a pre-up command in /etc/network/interfaces.
iface eth0 inet static
....
pre-up iptables-restore < /etc/network/iptables.rules
If you are using NetworkManager it should be possible to run the same command from a script created under /etc/NetworkManager/dispatcher.d/. In the Community Documentation - iptables howto, see Configuration on Startup for NetworkManager for more information.
Do note that the commands iptables, iptables-save and iptables-restore are IPv4 only. For IPv6 traffic the equivalent commands are ip6tables, ip6tables-save and ip6tables-restore.