CentOS7 防火墙服务 firewalld 基本操作

CentOS 从 7 开始默认防火墙由 iptables 变成了 firewalld,没用过的会觉得非常别扭,所以简单整理一下常用操作。

查看服务状态

[root@htpc ~]# systemctl status firewalld                
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: active (running) since 二 2020-03-01 12:09:46 CST; 1s ago
     Docs: man:firewalld(1)
 Main PID: 23398 (firewalld)
    Tasks: 2
   Memory: 27.8M
   CGroup: /system.slice/firewalld.service
           └─23398 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

当前状态可以通过 systemctl start 启动,systemctl stop 关闭。

查看当前配置

[root@htpc ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources: 
  services: dhcpv6-client ssh
  ports: 3306/tcp 80/tcp 443/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

当前激活 zone 为 public,默认丢弃所有连接,关于九个 zone 的区别直接跳过了,有兴趣的看官方文档吧。

端口配置

例如添加删除 8080 端口:

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --remove-port=8080/tcp

修改完成后通过 firewall-cmd --reload 加载配置。

其它配置

# 开放端口范围
$ firewall-cmd --add-port=8080-18080/tcp --permanent

# 对指定端口开放 8080 端口
$ firewall-cmd --permanent --add-rich-rule='
        rule family="ipv4"
        source address="192.168.3.108/32"
        port protocol="tcp" port="10000" accept'

# 开放全部端口给IP
$ firewall-cmd --permanent --add-rich-rule='
              rule family="ipv4"
              source address="192.168.3.108/32" accept';

# 开放全部端口给网段
$ firewall-cmd --permanent --add-rich-rule='
              rule family="ipv4"
              source address="192.168.0.0/16" accept';

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注