CentOS 7 的防火墙规则配置和管理主要通过firewalld
实现,以下是关于 CentOS 7 防火墙规则的详细介绍:
一、firewalld 简介
firewalld 是 CentOS 7 中的动态防火墙管理器,它使用基于区域(zone)的概念来管理网络接口和服务的访问权限,与传统的 iptaBLes 相比,firewalld 提供了更直观的命令和灵活的配置方式。
二、基本概念
区域(Zone):定义网络接口所属的安全区域,每个区域有一组预定义的规则。
服务(Service):定义允许通过防火墙的服务,每个服务都与一个或多个端口相关联。
端口(Port):允许或拒绝流入或流出的数据包,可通过端口号或服务名指定。
源地址(Source Address):控制从特定 IP 地址或 IP 范围访问的规则。
三、常用命令
1、查看当前防火墙状态:
sudo firewallcmd state
2、查看已定义的区域:
sudo firewallcmd getactivezones
3、查看某个区域的详细信息:
sudo firewallcmd zone=public listall
4、添加端口到防火墙规则:
临时添加:
firewallcmd zone=public addport=80/tcp
永久添加:
firewallcmd permanent zone=public addport=80/tcp
重新加载防火墙配置以应用新的规则:
firewallcmd reload
5、删除规则:
临时删除:
firewallcmd zone=public removeport=80/tcp
永久删除:
firewallcmd permanent zone=public removeport=80/tcp
6、定义新的区域:
sudo firewallcmd permanent newzone=myzone
7、将接口添加到新的区域:
sudo firewallcmd zone=myzone addinterface=eth1 permanent
8、允许特定源地址访问:
sudo firewallcmd zone=myzone addsource=192.168.1.0/24 permanent
四、高级用法
1、限制连接数量:
sudo firewallcmd direct addrule ipv4 filter INPUT 0 p tcp syn source 0/0 destination 0/0 limit 1/s limitburst 5 j ACCEPT
2、使用富规则(rich rules):
添加允许规则:
firewallcmd permanent addrichrule='rule family="ipv4" source address="your_source_IP" destination address="172.16.0.0/16" forwardport port="any" protocol="all" accept'
添加拒绝规则:
firewallcmd permanent addrichrule='rule family="ipv4" source address="36.7.83.122" reject'
五、防火墙日志和高级设置
1、启用防火墙日志:
sudo firewallcmd setlogdenied=all
日志将保存在/var/log/firewalld
目录下。
firewalld 作为 CentOS 7 的默认防火墙管理工具,提供了强大而灵活的规则配置方式,通过理解和合理配置防火墙规则,可以有效提升服务器的网络安全性,希望本文对你在 CentOS 7 上进行防火墙设置时有所帮助。
七、FAQs
Q1: 如何在 CentOS 7 中永久关闭防火墙?
A1: 要永久关闭防火墙,可以使用以下命令:
sudo systemctl disable firewalld sudo systemctl stop firewalld
这将停止并禁用 firewalld 服务,使其在系统启动时不会自动运行。
Q2: 如何更改 CentOS 7 防火墙的默认区域?
A2: 要更改防火墙的默认区域,可以使用以下命令:
sudo firewallcmd setdefaultzone=trusted
这将把系统的默认区域设置为trusted
,你可以根据需要更改为其他区域,如public
,work
,home
等。