CentOS 防火墙(firewalld)
CentOS 7及更高版本中,默认的防火墙管理工具是firewalld
。firewalld
提供了动态的管理防火墙的能力,支持网络区域、服务、端口和源地址等配置,并且可以在不重启防火墙服务的情况下实时应用规则,本文将详细介绍firewalld
的基础概念、常用命令及其实例操作。
一、`firewalld`基础概念
1、区域(Zone):firewalld
将网络接口分组到不同的区域中,每个区域可以定义一组预定义的安全规则,公共网络(puBLic)、家庭网络(home)、内部网络(internal)、工作网络(work)等,每个区域都有其特定的安全策略,如接受或拒绝来自不同来源的流量。
2、服务(Service):服务是一组预定义的规则集合,可以通过名称来指代一组特定的端口和协议,HTTP服务通常使用端口80,HTTPS服务通常使用端口443。
3、端口(Port):端口是用于标识网络服务的数字,每个网络服务都会监听特定的端口以便于通信,防火墙可以通过允许或者拒绝端口的访问来控制网络流量。
二、常用命令
查看防火墙状态
在开始操作之前,需要先确认防火墙的状态,可以使用以下命令查看:
systemctl status firewalld
如果显示“active (running)”则表示防火墙正在运行,如果显示“inactive (dead)”则表示防火墙已经关闭。
启动/停止/重启Firewalld服务
启动:
systemctl start firewalld
停止:
systemctl stop firewalld
重启:
systemctl restart firewalld
查看所有区域
firewallcmd getactivezones
查看指定区域的规则
firewallcmd zone=public listall
开放端口
要允许外部访问特定服务,需要在防火墙上开放相应的端口,开放SSH(默认端口22)和HTTP(端口80)服务:
sudo firewallcmd permanent addservice=ssh sudo firewallcmd permanent addport=80/tcp
执行上述命令后,需要重载防火墙规则以应用更改:
sudo firewallcmd reload
删除规则
同样地,如果您想阻止特定端口或服务,可以使用removeservice或removeport选项:
sudo firewallcmd permanent removeservice=https sudo firewallcmd permanent removeport=22/tcp sudo firewallcmd reload
三、实例操作
开放SSH访问(端口22)
sudo firewallcmd permanent addservice=ssh sudo firewallcmd reload
开放HTTP和HTTPS服务
sudo firewallcmd permanent addservice=http sudo firewallcmd permanent addservice=https sudo firewallcmd reload
将网络接口从默认的public区域移动到trusted区域
sudo firewallcmd permanent changeinterface=eth0 zone=trusted sudo firewallcmd reload
禁止Ping请求
sudo firewallcmd permanent addrichrule='rule family="ipv4" source address="0.0.0.0/0" service name="icmp" accept' sudo firewallcmd reload
允许特定IP访问SSH端口
sudo firewallcmd permanent addrichrule='rule family="ipv4" source address="192.168.1.100" port port="22" protocol="tcp" accept' sudo firewallcmd reload
四、配置文件路径
firewalld
的配置文件位于/etc/firewalld/
目录下,其中主要的配置文件有:
1、firewalld.conf
:firewalld
的主要配置文件。
2、zones
:每个区域的配置文件都在这个目录下,例如public.xml
,internal.xml
等。
3、services
:包含每个服务的XML文件,例如http.xml
,ssh.xml
等。
通过本文的学习,你应该对CentOS防火墙有了更深入的了解,并能够使用firewalld
命令来配置和管理服务器的网络连接,记得根据实际需求和安全策略,及时更新防火墙规则,以确保服务器的安全性和稳定性,掌握这些基础操作后,建议进一步探索其高级特性,以满足更加复杂的网络安全需求,定期审查和更新防火墙规则是维护系统安全的重要环节。