分类: 网络软件运维

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';

Recent Posts

Docker 容器非 root 用户监听 80 端口

起因是基于 CentOS 的 …

2 年 之前

基于 Docker 定时打印文件

先说背景,喷墨打印机有个很大的…

3 年 之前

Java 运行时反射获取来自继承的泛型

背景 正常情况下 Java 的…

3 年 之前

Java 基于 ByteBuddy 重写系统当前时间

背景 一般单元测试时总会有些代…

3 年 之前

华硕 B450F-Gaming 主板 I211-AT 网卡驱动安装

事情起因是买了块华硕的 ROG…

3 年 之前

PHP 安装 Memcached 扩展

登录服务器挨步执行: # su…

4 年 之前