防火墙是网络安全中至关重要的组成部分,它能够监控和控制进出网络的流量,保护系统免受未经授权的访问,在CentOS 7系统中,默认使用firewalld作为防火墙管理工具,提供了灵活的策略配置和易于管理维护的特点,下面将详细介绍如何查看、开启、关闭、配置防火墙规则以及防火墙的其他操作:
一、查看防火墙状态
1、查看防火墙状态:可以使用以下命令来查看防火墙的运行状态。
systemctl status firewalld
如果显示“active (running)”则表示防火墙正在运行,如果显示“inactive (dead)”则表示防火墙已经关闭。
2、查看防火墙版本:可以通过以下命令查看firewalld的版本信息。
firewallcmd version
3、查看防火墙帮助信息:可以查看firewallcmd的帮助信息,了解其支持的命令和参数。
firewallcmd help
4、查看防火墙状态:使用以下命令可以查看当前防火墙的状态(运行或未运行)。
firewallcmd state
二、开启和关闭防火墙
1、开启防火墙:如果防火墙处于关闭状态,可以使用以下命令来开启防火墙。
sudo systemctl start firewalld
2、关闭防火墙:如果需要关闭防火墙,可以使用以下命令。
sudo systemctl stop firewalld
3、设置开机启用防火墙:要设置开机时自动启用防火墙,可以使用以下命令。
sudo systemctl enable firewalld
4、设置开机禁用防火墙:要设置开机时自动禁用防火墙,可以使用以下命令。
sudo systemctl disable firewalld
5、重启防火墙服务:在修改了防火墙规则后,可以通过重启防火墙服务使更改生效。
sudo systemctl restart firewalld
三、配置防火墙规则
1、查看防火墙规则:使用以下命令可以查看当前防火墙规则。
firewallcmd listall
2、添加开放端口:要添加开放SSH端口22,可以使用以下命令。
sudo firewallcmd addport=22/tcp permanent sudo firewallcmd reload
第一条命令将端口添加到永久规则中,第二条命令重新加载防火墙规则使更改生效。
3、删除开放端口:要删除开放的80端口,可以使用以下命令。
sudo firewallcmd removeport=80/tcp permanent sudo firewallcmd reload
4、查询端口是否开放:要查询80端口是否开放,可以使用以下命令。
sudo firewallcmd queryport=80/tcp
5、批量添加开放端口:要批量添加开放一段端口90019100,可以使用以下命令。
sudo firewallcmd permanent addport=90019100/tcp sudo firewallcmd reload
6、允许指定IP访问所有流量:要允许IP地址192.168.43.88访问所有流量,可以使用以下命令。
sudo firewallcmd permanent addrichrule="rule family=\"ipv4\" source address=\"192.168.43.88\" accept" sudo firewallcmd reload
7、允许指定IP访问指定端口:要允许IP地址10.168.186.25连接端口22,可以使用以下命令。
sudo firewallcmd permanent addrichrule="rule family=\"ipv4\" source address=\"10.168.186.25\" port protocol=\"tcp\" port=\"22\" accept" sudo firewallcmd reload
8、允许指定IP访问指定协议:要阻止ICMP包,可以使用以下命令。
sudo firewallcmd permanent addrichrule="rule protocol value=\"icmp\" drop" sudo firewallcmd reload
9、允许特定地址通过ICMP:要允许特定地址120.12.23.136通过ICMP,可以使用以下命令。
sudo firewallcmd permanent addrichrule="rule family=\"ipv4\" source address=\"120.12.23.136\" protocol value=\"icmp\" accept" sudo firewallcmd reload
10、允许指定IP访问指定服务:要允许特定地址10.168.186.25访问SSH服务,可以使用以下命令。
sudo firewallcmd permanent addrichrule="rule family=\"ipv4\" source address=\"10.168.186.25\" service name=\"ssh\" accept" sudo firewallcmd reload
11、移除某个服务规则:要从允许通过防火墙的列表里移除SSH服务,可以使用以下命令。
sudo firewallcmd removerichrule="rule family=\"ipv4\" source address=\"10.168.186.25\" service name=\"ssh\" drop" sudo firewallcmd reload
四、其他操作
1、信任级别配置:firewalld通过Zone的值指定信任级别,不同的Zone有不同的信任级别和规则,常见的Zone包括drop、block、public、external、dmz、work、home、internal和trusted,drop Zone丢弃所有进入的包,而不给出任何响应;block Zone拒绝所有外部发起的连接,允许内部发起的连接;public Zone允许指定的进入连接等。
2、配置IP地址伪装:IP地址伪装用于路由转发,要查看是否开启了IP地址伪装,可以使用以下命令。
firewallcmd zone=external querymasquerade
打开IP地址伪装的命令如下:
firewallcmd zone=external addmasquerade
关闭IP地址伪装的命令如下:
firewallcmd zone=external removemasquerade
3、端口转发:端口转发用于将一个端口的流量转发到另一个端口,要将TCP端口22的流量转发到TCP端口3753,可以使用以下命令。
firewallcmd zone=external addforwardport=22:port=tcp:toport=3753
正确配置和使用防火墙可以有效地保护系统的安全性和稳定性,避免未经授权的访问、攻击和数据泄露等问题,在使用防火墙时,需要根据实际需求进行规则的添加和删除,以提高服务器的安全性,定期检查和更新防火墙规则也是非常重要的,以确保防火墙始终处于最佳状态。
六、相关问答FAQs
Q1: 如何在CentOS 7中永久添加一个开放的TCP端口?
A1: 要在CentOS 7中永久添加一个开放的TCP端口,可以使用以下命令,要永久添加开放TCP端口8080,可以使用以下命令:
sudo firewallcmd permanent addport=8080/tcp sudo firewallcmd reload
这样,即使重启系统后,该端口仍然保持开放状态。
Q2: 如何在CentOS 7中允许特定IP访问指定服务?
A2: 要在CentOS 7中允许特定IP访问指定服务,可以使用以下命令,要允许IP地址10.168.186.25访问SSH服务,可以使用以下命令:
sudo firewallcmd permanent addrichrule="rule family=\"ipv4\" source address=\"10.168.186.25\" service name=\"ssh\" accept" sudo firewallcmd reload
这样,只有来自指定IP地址的流量才能访问指定的服务。