firewall-cmd 下规则控制与现象

18 篇文章 0 订阅

富规则

查看所有的规则

firewall-cmd --list-all

增加规则

firewall-cmd --permanent --add-rich-rule="rule family=ipv4 address=192.168.1.236 reject"

删除规则(先查看规则,然后从规则列表里赋值出规则)

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.236" accept'

 

开放端口

添加端口

firewall-cmd --zone=public --add-port=7777/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)

查看

firewall-cmd --zone=public --query-port=7777/tcp

删除端口

firewall-cmd --zone=public --remove-port=80/tcp --permanent

 

修改生效

上边所做的所有修改都需要重新加载才能生效。

firewall-cmd --reload

 

对应现象

富规则 reject,可以看到对端直接回应一个 ICMP 不可达消息包,连接返回 Connect refused.

[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: cockpit dhcpv6-client ssh
ports: 6379/tcp 6380/tcp 6381/tcp 6382/tcp 6383/tcp 6666/tcp 7777/udp 6666/udp 7777/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
     rule family="ipv4" source address="192.168.1.236" reject

富规则 drop,可以看到对端将不做任何响应。本端发起的链接将在缺省重发 5 次 ACK 之后超时结束。

[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: cockpit dhcpv6-client ssh
ports: 6379/tcp 6380/tcp 6381/tcp 6382/tcp 6383/tcp 6666/tcp 7777/udp 6666/udp 7777/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
     rule family="ipv4" source address="192.168.1.236" drop

如果未定义富规则,且端口未开放。如下,注意 ports 里已经没有了 7777/tcp,且富规则也是空的。

[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: cockpit dhcpv6-client ssh
ports: 6379/tcp 6380/tcp 6381/tcp 6382/tcp 6383/tcp 6666/tcp 7777/udp 6666/udp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

 端口未对外开放,外部链接过来返回的就是 No route to host。对外也是响应一个 ICMP 包.

ICMP 对应的格式

host unreachable - admin prohibited filter vs tcp port cbt unreachable

两次 ICMP 响应,对应的 Type 都是 3, 不过 Code 前者是0,后者是3.

  • 0:network unreachable

  • 1:host unreachable

  • 2:protocol unreachable

  • 3:port unreachable

  • 4:fragmentation needed and DF(don’t fragment) set

  • 5: source route failed

firewall-cmd 通过 direct rule 使用 iptables 规则。

firewall-cmd 过滤特定的 flag 包,类似 iptables 的表和链

添加一条规则,一定要指定优先级才行,比如优先级为 10.

irewall-cmd --direct --add-rule ipv4 filter INPUT 10 -s 192.168.1.236 -j ACCEPT 
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 10 -s 192.168.1.236 -j ACCEPT #加 permanent 永久
 

查看规则,使用 firewall-cmd --list-all 不行,需要使用 --direct.

firewall-cmd --direct --get-rules ipv4 filter INPUT
firewall-cmd --permanent --direct --get-all-rules

1 -s 192.168.1.236 -j REJECT

3 -s 192.168.1.236 -j ACCEPT

2 -s 192.168.1.236 -j ACCEPT

复制查看到的任何一条规则,然后再进行删除。

firewall-cmd --direct --remove-rule ipv4 filter INPUT 10 -s 192.168.1.236 -j ACCEPT

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值