我在之前的所有 Ubuntu 版本中都这样做过,没有任何问题,但在 Ubuntu 20.04 中发生了一些变化。
sudo apt install iptables-persistent
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
...
debconf-set-selections <<< "iptables-persistent iptables-persistent/autosave_v4 boolean true"
debconf-set-selections <<< "iptables-persistent iptables-persistent/autosave_v6 boolean true"
dpkg-reconfigure iptables-persistent
我注意到两件事
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] COMMIT
- 重启后,所有内容都设置为上述文件。因此没有任何内容被保存。
请问有什么建议吗?
答案1
我至少可以回答您问题的一部分,似乎没有办法在重新配置期间抑制保存提示并让它执行保存。您可以通过设置“iptables-persistent/autosave_done”来抑制提示,但这也会阻止任何保存的发生。如果您想查看逻辑,它包含在/var/lib/dpkg/info/iptables-persistent.config
和中/var/lib/dpkg/info/iptables-persistent.postinst
。
我不知道为什么重新配置保存不起作用,这听起来很傻,但是您可以iptables -t filter -L -n
在运行重新配置之前执行操作吗?它看起来像您期望的那样吗?
顺便问一下,你运行重新配置的唯一目的是为了保存你的规则吗?如果是这样,那么这样做就容易多了iptables-save > /etc/iptables/rules.v4 && ip6tables-save > /etc/iptables/rules.v6
答案2
如何在 ubuntu 20.04 上永久保存 iptables?
这里我将给出端口:80 和 443 的传入规则
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
安装 iptables-persistent
sudo apt-get install iptables-persistent
如果已经安装则重新启动它:
sudo dpkg-reconfigure iptables-persistent
给予 - 两个问题都回答“是”
现在将 iptables 永久保存到文件:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
sudo ip6tables-save | sudo tee /etc/iptables/rules.v6
现在重启你的 ubuntu
sudo reboot
您会发现所有 iptables 规则也将针对我们的端口 80 和 443 传入自动重新加载。
答案3
自 2021 年 2 月起,iptables 不再适用于 UBUNTU 20.04。用户必须迁移到 nftables 包。您可以使用 apt 或 synaptic 安装它。https://www.netfilter.org/projects/nftables/index.html