当前位置:首页 > 行业动态 > 正文

CentOS中如何启用防火墙并配置规则

在CentOS中,防火墙是一种用于保护系统安全的工具,它可以控制进出系统的网络流量,防止未经授权的访问,本文将介绍如何在CentOS中启用防火墙并配置规则。

启用防火墙

1、查看防火墙状态

在开始配置防火墙之前,首先需要查看当前防火墙的状态,可以使用以下命令查看:

sudo systemctl status firewalld

如果防火墙已启用,输出结果类似于:

● firewalld.service firewalld dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 20220103 14:30:00 CST; 1h 5min ago
     Docs: man:firewalld(1)
 Main PID: 12345 (firewalld)
    Tasks: 6 (limit: 4915)
   Memory: 10.0M
   CGroup: /system.slice/firewalld.service
           └─12345 /usr/bin/python3 Es /usr/sbin/firewalld nofork nopid
Jan 03 14:30:00 centos7 systemd[1]: Starting firewalld dynamic firewall daemon...
Jan 03 14:30:00 centos7 systemd[1]: Started firewalld dynamic firewall daemon.

如果防火墙未启用,可以使用以下命令启用:

sudo systemctl start firewalld

2、设置防火墙开机自启

为了确保每次系统启动时防火墙都能自动运行,可以将其设置为开机自启,使用以下命令设置:

sudo systemctl enable firewalld

配置防火墙规则

1、查看默认区域和接口

在配置防火墙规则之前,需要了解当前系统的区域和接口,可以使用以下命令查看:

sudo firewallcmd getactivezones
sudo firewallcmd getdefaultzone
sudo firewallcmd getzones
sudo firewallcmd listallzones
sudo firewallcmd getservices
sudo firewallcmd listallinterfaces

2、添加端口规则

假设我们需要开放TCP协议的80端口(HTTP)和443端口(HTTPS),可以使用以下命令添加规则:

sudo firewallcmd zone=public addport=80/tcp permanent
sudo firewallcmd zone=public addport=443/tcp permanent

zone参数指定区域,addport参数指定要开放的端口和协议,permanent参数表示永久生效,如果要添加UDP协议的端口规则,只需将tcp替换为udp即可。

3、重载防火墙配置

添加完规则后,需要重新加载防火墙配置以使新规则生效,使用以下命令重载:

sudo firewallcmd reload

常见操作命令

以下是一些常用的防火墙操作命令:

命令 功能
systemctl status firewalld 查看防火墙状态
systemctl start firewalld 启动防火墙
systemctl stop firewalld 停止防火墙
systemctl enable firewalld 设置防火墙开机自启
systemctl disable firewalld 取消防火墙开机自启
firewallcmd getactivezones 查看当前活动的区域
firewallcmd getdefaultzone 查看默认区域
firewallcmd getzones 查看所有区域
firewallcmd listallzones 列出所有可用的区域
firewallcmd getservices 查看所有可用的服务
firewallcmd listallinterfaces 列出所有可用的网络接口
firewallcmd zone= b{zone} b addport= b{port}/{protocol} b permanent 添加端口规则(永久生效)
firewallcmd zone= b{zone} b removeport= b{port}/{protocol} b permanent 删除端口规则(永久生效)
firewallcmd reload 重载防火墙配置
firewallcmd completereload 重新加载防火墙配置并重启服务
firewallcmd queryall 查询所有配置信息
firewallcmd listall 列出所有配置的规则
firewallcmd getservice= b{service} b 获取指定服务的配置信息
firewallcmd getport= b{port}/{protocol} b 获取指定端口的配置信息
firewallcmd getzone= b{zone} b 获取指定区域的配置信息
firewallcmd listallzones 列出所有可用的区域
firewallcmd listallinterfaces 列出所有可用的网络接口
firewallcmd listallservices 列出所有可用的服务
firewallcmd listallports 列出所有可用的端口
firewallcmd uninstall 卸载防火墙服务
systemctl uninstall firewalld 卸载防火墙服务并删除相关配置文件
systemctl mask firewalld 禁用防火墙服务,使其无法启动
systemctl listunits type=service 查看系统中的所有服务列表,包括防火墙服务
systemctl isolate {unit}.service 隔离指定的服务,使其只能在当前会话中使用,不随系统启动而启动
systemctl isolate default.target 隔离默认目标,使其只能在当前会话中使用,不随系统启动而启动
systemctl reboot 重启系统,使更改的配置生效
systemctl poweroff 关闭系统,使更改的配置生效
systemctl status firewalld 查看防火墙状态,包括是否启用、是否正在运行等信息
0