在Ubuntu 18.04上重新加载/重新启动iptables


16

在以前与Centos 7和Red Hat一起使用之前,我在Ubuntu 18.04上存在iptables的问题,我可以简单地使用

systemctl restart iptables

但是在Ubuntu上它不起作用。我都找不到iptable init.d

有人可以帮助我如何在Ubuntu 18.04上重新启动或重新加载它吗?


那么,ubuntu 1804从默认安装中删除iptables-save吗?我曾经花了很多时间研究如何使用iptables-save,然后从默认安装WTF中消失了?因此,如果ubuntu 2004从默认安装中删除ufw,我应该使用哪个linux内核syscall来获得与iptables-save相同的效果?
青铜人,

Answers:


31

如果您希望Ubuntu防火墙以与RedHat / Fedora类似的方式运行,请在Ubuntu 18.04中使用:

sudo apt install iptables-persistent netfilter-persistent

然后在中编辑规则 /etc/iptables/rules.v[46]

其他可能有用的命令:

netfilter-persistent save
netfilter-persistent start

iptables-save  > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

iptables-restore  < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6

systemctl stop    netfilter-persistent
systemctl start   netfilter-persistent
systemctl restart netfilter-persistent

这两个软件包相似,但提供的功能略有不同。如果仅安装iptables-persistent,则不会获得在systemd中正确处理的服务定义文件,例如/lib/systemd/system/netfilter-persistent.service

如果仅安装netfilter-persistent,则会发现根据自述文件,规则在启动时未正确应用

netfilter-persistent and its plugins
------------------------------------

netfilter-persistent does no work on its own. You need the accompanying
plugins (for example, iptables-persistent) to load and save filter rules.

However, commands are run from netfilter-persistent. For example, to save
all filter rules:

   netfilter-persistent save

or to load them:

   netfilter-persistent start

For more details, see `man netfilter-persistent`.

The system service will try to load rules at startup if enabled, but by
default it will not flush rules at shutdown. This behaviour can be changed
by editing /etc/default/netfilter-persistent.

afaict netfilter-persistent save也会更新/etc/iptables/rules.v4/6,如果正确的话,我认为iptables-save > /etc/iptables/rules.v4/6也没有必要。
吉拉德·玛雅妮

的确如此,但是为了完整起见还包括了其他命令。就我个人而言,我从不使用该netfilter-persistent save命令,因为它包含注释并且不会将计数器归零。
ThankYee

2

在较新的发行版中,您通常具有配置和管理防火墙的前端。最受追捧的ufwfirewalld,也许shorewall。这些前端也要小心地添加规则,iptables并且iptables可以跳过脚本,或者最好说应该跳过脚本,因为前端不会iptables直接提取您对命令所做的更改。

对于Ubuntu 18.04,它似乎firewalld已成为默认ufw安装位置,但处于非活动状态。

root@localhost:~# firewall-cmd --state 
running
root@localhost:~# ufw status
Status: inactive

因此,与其创建自己的iptables遵循规则,不如使用这些前端来创建防火墙配置。

我不熟悉,ufw但可以肯定您会在这里找到Askubuntu或互联网上其他地方的信息。
firewalld带有GUI(firewall-config)和命令行工具firewall-cmd
随着firewalld你必须添加规则,而不应用它现在(该选项永久),只有经过防火墙的重载应用它。或者,您可以将它们添加到运行时配置中,对其进行测试,然后将其添加到永久配置中。
要将新添加的永久配置重新加载到您的运行规则中,您必须按如下所示输入命令或在GUI中进行相应的单击。

firewall-cmd --reload

乍一看可能看起来有些复杂,因为firewalld它遵循区域链条概念。但是它很好地与NetworkManager集成在一起,附带了一个GUI ...
熟悉它的一个很好的起点在这里


2
那不能回答问题
Panther

这可能有效,但无法将DevOps的前端应用程序自动化。
Lance Kind,

对于Ubuntu 18.04,默认情况下似乎未安装firewalld。
Rockallite

1

您可以使用以下命令检查包装内容:

dpkg -L iptables-persistent

然后您会发现以下命令是正确的:

/etc/init.d/netfilter-persistent restart


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.