I am currently looking into ansibles to store my configurations and deploy services more easily. I have couple of iptable rules in /etc/iptables/rules.v4, which I can easily restore. Meanwhile, ansible has iptable role for configurations. How do I persist this rules, especially across reboots? Should I rerun ansible every time on each reboot? I am at loss on how to best manage iptables, as other services can interact with it. How do you folks handle this? Thanks in advance!
Half off-topic, sorry: if you have some spare time on the weekend, you might want to take a look at nftables. AFAIK iptables is also just using nftables under the hood, so you are basically using a deprecated technology.
nftables is so much nicer to work with. In the end I have my custom rules (which are much saner to define than in iptables) in /etc/nftables.conf
, then I have a very simple systemd unit:
[Unit] Description=Restore nftables firewall rules Before=network-pre.target [Service] Type=oneshot ExecStart=/usr/sbin/nft -f /etc/nftables.conf ExecStop=/usr/sbin/nft flush table inet filter RemainAfterExit=yes [Install] WantedBy=multi-user.target
and finally if I push updates via ansible I simply replace the file and run nft -f /etc/nftables.conf
(via ansible; on-change event).
amp@sh.itjust.works 1 week ago
I second the use of nftables instead. Optimally with a pre-made role like this one: galaxy.ansible.com/ui/…/documentation/