Why do iptables rules disappear when restarting my Debian system?

I add this rule:

sudo iptables -t nat -A OUTPUT -d a.b.c.d -p tcp 
       --dport 1723 -j DNAT --to-destination a.b.c.d:10000
  1. When restart computer rules are deleted. Why?
  2. What I can do to make the rules persist?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

On Debian, install iptables-persistent:

sudo apt-get install iptables-persistent

The package will automatically load /etc/iptables/rules for you during boot.

Any time you modify your rules, run /sbin/iptables-save > /etc/iptables/rules to save them. You can also add that to the shutdown sequence if you like.

Method 2

There is no option in iptables which will make your rules permanent. But you can use iptables-save and iptables-restore to fulfill your task.

First add the iptable rule using the command you gave.

Then save iptables rules to some file like /etc/iptables.conf using following command:

$  iptables-save > /etc/iptables.conf

Add the following command in /etc/rc.local to reload the rules in every reboot.

$  iptables-restore < /etc/iptables.conf

Method 3

After installing iptables-persistent above you can also save rules with the following shorter command on Ubuntu 16.04+:
sudo netfilter-persistent save

And they can also be restored back to how they were last time you saved them with:
sudo netfilter-persistent reload

Method 4

Because you did not save the iptables rules.

You can do that by using sudo iptables-save

Method 5

  1. Install iptables-persistent package
  2. Whenever you change the rules of iptables, you should save the backup into following file using following command:

iptables-save -f /etc/iptables/rules.v4 (for iptables)

iptables-save -f /etc/iptables/rules.v6 (for ip6tables)

Method 6

First install the persist iptables (ubunut or debian)

   apt install iptables-persistent

Run your statement:

   iptables -A INPUT -s 0/0 -p tcp --dport 5433 -j ACCEPT

Then save the settings

   iptables-save

Finally restart the machine to verify

reboot


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x