一直以为只有安装了服务才能使用iptables
命令iptables.service
,后来发现我错了
┌──[[email protected]]-[~]
└─$systemctl status iptables.service
Unit iptables.service could not be found.
┌──[[email protected]]-[~]
└─$iptables -A INPUT -p icmp --icmp-type 13 -j DROP
┌──[[email protected]]-[~]
└─$iptables -A OUTPUT -p icmp --icmp-type 14 -j DROP
添加规则后,立即生效
没有iptables.service
服务,命令仍然可以使用
┌──[[email protected]]-[~]
└─$whereis iptables
iptables: /usr/sbin/iptables /usr/libexec/iptables /usr/share/man/man8/iptables.8.gz
┌──[[email protected]]-[~]
└─$which iptables
/usr/sbin/iptables
我很好奇为什么我们需要iptables.service
以及它意味着什么,为简单起见我们可以使用firewalld.service
.
┌──[[email protected]]-[~]
└─$yum -y install iptables-services.x86_64 > /dev/null
┌──[[email protected]]-[~]
└─$systemctl status iptables.service
● iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
Active: inactive (dead)
我安装了,发现只有配置文件
┌──[[email protected]]-[~]
└─$rpm -qlc iptables
/etc/sysconfig/ip6tables-config
/etc/sysconfig/iptables-config
还有什么作用iptable.service
?
我可以这样假设吗? iptables
与内核相关,不需要iptables.service
安装即可工作,但我看到很多人iptable.service
在更改iptable
规则后重新加载配置文件并重新启动,这是正确的想法吗?
该
iptables
命令用于添加或删除规则和链,可以在没有服务文件的情况下使用。所做的是iptables.service
在启动时自动加载保存的规则集并在关机时卸载规则。脚本中有一些安全检查,例如将默认链策略设置为关闭时接受,以防止系统具有不可用的规则集。如果你想在每次启动系统时手动加载规则,你可以,该服务只是让它变得更容易。firewalld
提供了一个更简单的定义规则的界面,iptables
但这确实是主要区别。在幕后,firewalld
用于iptables
实施规则。就个人而言,我更喜欢使用,iptables
但多年来我已经习惯了这种配置。iptables
或的选择firewalld
实际上取决于您的舒适程度。