firewall-cmd常用内容

  • Block(阻塞)
    任何对该区域的连接请求都会被以 IPv4 的 icmp-host-prohibited 信息或 IPv6 的 icmp6-adm-prohibited 信息所拒绝。只能从系统内部启动网络连接。
  • Dmz(隔离)
    用于你的隔离区内的电脑,此区域内可公开访问,可以有限地进入你的内部网络,仅仅接收经过选择的连接。
  • Drop(丢弃)
    对进入该区域的所有数据包丢弃,并且不进行任何回包,区域内主动发起连接的流入回程数据包允许通过,允许进行出方向的网络连接。
  • External(外部)
    用于在启用伪装的外部网络上使用,尤其路由器、防火墙认为在这个网络上的其它主机不可信。仅仅接收经过选择的连接。
  • Home(家庭)
    默认其他同区域内主机可信,仅仅接收经过选择的连接。同时默认放行 ssh、mdns、ipp-client、amba-client 与 dhcpv6-client 服务产生的连接。
  • Internal(内部)
    从描述中可以等同于家庭区域。
  • Public(公开)
    公共区域,也是防火墙配置的默认区域,防火墙认为该区域主机不可信。仅仅接收经过选择的连接。同时默认放行 ssh 与 dhcpv6-client 服务产生的连接。
  • Trusted(可信)
    可信区域,防火墙放行一切流量。等同于关闭防火墙功能。
  • Work(工作)
    工作区域,防火墙认为在这个网络上的其它主机不可信。仅仅接收经过选择的连接。同时默认放行 ssh、ipp-client 与 dhcpv6-client 服务产生的连接。

 

查询状态:

# firewall-cmd --state

Running

 

查看当前系统防火墙设置的的区域名列表

# firewall-cmd --get-zones

block dmz drop external home internal libvirt public trusted work

 

查看当前所在的区域:

# firewall-cmd --get-active-zones

home

  interfaces: ens192

libvirt

  interfaces: virbr0

查看防火墙当前的默认区域

#firewall-cmd --get-default-zone

home

 

更改当前的区域

在网卡配置文件中设置:ZONE=【zone】重启网卡控制服务

或者:

firewall-cmd --remove-interface=ens192

firewall-cmd --add-interface=ens192

或者:

# firewall-cmd --change-interface=ens192

Success

 

设置防火墙默认区域:

# firewall-cmd --set-default-zone=public

Success

 

对当前修改过的规则即时保存为永久配置

# firewall-cmd --runtime-to-permanent

Success

 

对后续添加的修改保存为永久配置:

firewall-cmd –permanent –add-port ****  --add-service ****

 

重新加载保存的永久配置(这会使当前的修改更改为系统中保存的配置)

# firewall-cmd --reload

Success

 

查看防火墙是否在panic模式(此模式关闭所有网络通信)

# firewall-cmd --query-panic

No

 

将防火墙设置成panic模式:

# firewall-cmd --panic-on

(网络断开,没有回显)

 

关闭防火墙panic模式:

# firewall-cmd --panic-off

Warning: NOT_ENABLED: panic mode is not enabled(因为已经在关闭所以再关闭会出现这问题)

Success  

 

查看当前区域内被允许的服务

# firewall-cmd --list-services

You're performing an operation over default zone ('public'),

but your connections/interfaces are in zone 'home,libvirt' (see --get-active-zones)

You most likely need to use --zone=home option.

(因为当前的区域和默认的区域不同,此时显示的默认区域被允许的服务)

cockpit dhcpv6-client ssh

 

查看指定区域的服务:

# firewall-cmd --zone=home --list-services

cockpit dhcpv6-client http mdns samba-client ssh

 

列出所有防火墙已经给定的预定义服务名称

# firewall-cmd --get-services

RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testn…………………………

 

开放某一服务

# firewall-cmd --add-service=http

Success

 

开放某一端口

# firewall-cmd --add-port=1000/tcp

success

# firewall-cmd --add-port=1001-1050/tcp

success

# firewall-cmd --add-port=1000/udp

success

# firewall-cmd --add-port=1001-1050/udp

Success

 

添加自定义服务:

# firewall-cmd --permanent --new-service=testserver

Success

向服务中添加端口:

# firewall-cmd --permanent --service=testserver --add-port=8000/tcp

Success

查看添加的服务文件

# cat /etc/firewalld/services/testserver.xml

<?xml version="1.0" encoding="utf-8"?>

<service>

  <port port="8000" protocol="tcp"/>

</service>

 

设置区域默认流量行为

firewall-cmd --zone=zone-name --set-target=<default|ACCEPT|REJECT|DROP>

查看所有富规则: firewall-cmd --list-rich-rules

设置防火墙禁ping:  firewall-cmd --add-rich-rule='rule protocol value=icmp drop'

允许防火墙ping:     firewall-cmd --remove-rich-rule='rule protocol value=icmp drop'

只允许指定网段访问ssh     firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'

允许通过vrrp协议  firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent

posted @ 2021-07-14 17:41  小阿里  阅读(921)  评论(0)    收藏  举报