一个空格的魅力

1.1背景
在Centos8系统环境下,使用命令重新加载firewall安全策略,出现报错。系统版本及报错信息,如下所示。
1.1.1系统版本
 [root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 8.4.2105
[root@localhost ~]#
1.1.2报错信息
[root@localhost ~]# firewall-cmd --reload
Error: COMMAND_FAILED: Direct: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore v1.8.4 (nf_tables): interface name `ens192--destination' must be shorter than IFNAMSIZ (15)
Error occurred at line: 3
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
[root@localhost ~]#
1.2报错问题解决
仔细查看报错信息,判断出报错的关键字段。从本案例报错来看报错的关键字段是“ens192--destination”;
从报错的关键字段分析来看,“ens192--destination”不可能是网络接口的名字。使用命令ifconfig查看网络接口的名字得知是:“ens192”;
再次分析报错关键字段来看,“ens192--destination”与firewall安全策略中的字段相关;
使用命令history查看历史命令发现,的确存在一条firewall安全策略包含报错关键字段,如下所示;
[root@localhost firewalld]# history 
   54  history 
   55  firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface ens192--destination 224.0.0.18 --protocol vrrp -j ACCEPT
   56  history 
[root@localhost firewalld]#
从firewall安全策略分析,“ens192--destination”之间应该有一个“空格”,报错的原因也基本明确了——firewall安全策略配置错误;
接下来,我们需要解决的问题是如何删除错误的安全策略;
以“firewall direct”为关键字上网搜索得知,direct策略配置文件的目录在“/etc/firewalld
”,如下所示。
[root@localhost firewalld]# pwd
/etc/firewalld
[root@localhost firewalld]# ls -l | grep dir
-rw-r--r--. 1 root root  341 Nov 12 15:25 direct.xml
-rw-r--r--. 1 root root  199 Nov 12 15:24 direct.xml.old
[root@localhost firewalld]#
使用命令“vi /etc/firewalld/direct.xml”编辑此配置文件,删除错误的安全策略配置并保存配置文件;
 
重新配置安全策略,然后重新加载安全策略,无报错信息。
 
加一个“空格”解决问题,它是不是非常有“魅力”呢?
1.3脑补之firewall-cmd相关命令
#启动firewall防火墙
[root@localhost firewalld]# systemctl start firewalld.service
#firewalld服务设置开机自启动
[root@localhost firewalld]# systemctl enable firewalld.service
#重新加载firewall策略
[root@localhost ~]# firewall-cmd –reload
#查看zones安全防护策略
[root@localhost ~]# firewall-cmd --list-all
#查看direct安全防护策略
[root@localhost ~]# firewall-cmd --direct --get-all-rules
#zones和direct安全防护策略配置文件目录
[root@localhost firewalld]# pwd
/etc/firewalld
[root@localhost firewalld]# ls -l | grep dir
-rw-r--r--. 1 root root  342 Nov 12 15:38 direct.xml
-rw-r--r--. 1 root root  199 Nov 12 15:37 direct.xml.old
[root@localhost firewalld]# 
[root@localhost zones]# pwd
/etc/firewalld/zones
[root@localhost zones]# ls -l
total 8
-rw-r--r--. 1 root root 478 Nov 12 12:58 public.xml
-rw-r--r--. 1 root root 441 Nov  7 10:00 public.xml.old
[root@localhost zones]#
#配置keepalive服务检测放通策略
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface ens3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --zone=public --add-protocol=vrrp –permanent
备注:ens3是网络接口的名字,需根据系统网络接口的名字进行实际配置
#仅允许源主机192.168.0.1访问服务器tcp的8000端口
方法1:firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 1 -p tcp --dport 8000 -s 192.168.0.1 -j ACCEPT
方法2:firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.0.1/32 port port=8000 protocol=tcp accept'
#禁止其它主机ping通服务器
firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop'
1.4总结
一个空格的魅力,在于我们正确的使用它。日常工作中,我们命令行管理网络设备或系统时,建议先把相关命令记录下来,然后输入到系统中,特别是重要的网络设备或系统,从而防止错误的输入相关命令而不知道如何解决相关报错问题。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onme0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值