I've set up OpenVPN on my Debian server and would like to add a rule to iptables. I already have a file that lists default filter rules that iptables reads from (pre-up). I tried adding the rule to the file like so:

# Default firewall rules are here

-A POSTROUTING -s -o wlan0 -j SNAT --to-source

I then try to apply the rules with:

sudo iptables-apply /etc/iptables.firewall.rules

and it fails.

For reference, I followed this tutorial but don't want to use the shell script because it also failed to apply the mangle rule.


You have to add the SNAT rule to the nat table and not mangle.

You could also add the rule directly to the active table using:

iptables -t nat -A POSTROUTING -s -o wlan0 -j SNAT --to-source

And if everything is working save it to a file using:

iptables-save > file
  • 1
    Thanks, I don't know where the mangle/nat confusion happened. I also didn't know non-filter table rules don't show by default when you list them with iptables -S. I didn't see the rules until iptables -t nat -S. – cptncrnch Jun 14 '16 at 23:51
  • 1
    @cpt you're welcome, don't worry, happens to me as well. One more thing I learned while testing new iptables rules with iptables-restore is that error messages are not always very helpful. Using iptables directly will help you to find the mistake faster. Also try iptables -vnL – rda Jun 15 '16 at 0:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.