防火墙是网络安全的重要组成部分,它通过设置规则来控制进出网络的数据流,从而保护系统免受未经授权的访问和攻击。firewallcmd是Linux系统中firewalld服务的命令行工具,它提供了丰富的功能来配置和管理防火墙规则。
一、查看防火墙状态
1.查看firewalld服务状态:
使用以下命令可以查看firewalld服务的运行状态:
bash
systemctl status firewalld
如果服务正在运行,会显示“running”;如果未运行,则显示“not running”。
2.查看防火墙区域及规则:
firewalld使用区域(zones)来定义不同的安全策略。使用以下命令可以查看所有可用的区域:
bash
firewallcmd getzones
要查看特定区域(如public区域)的所有规则,可以使用:
bash
firewallcmd zone=public listall
二、开放或限制端口
1.开放端口:
要开放某个端口(例如8080端口),可以使用以下命令:
bash
firewallcmd zone=public addport=8080/tcp permanent
其中,`permanent`选项表示永久生效,即使系统重启后也会保持设置。之后,需要重新加载防火墙配置以使更改生效:
bash
firewallcmd reload
可以使用以下命令验证端口是否已开放:
bash
firewallcmd zone=public queryport=8080/tcp
2.限制端口:
要关闭之前开放的端口,可以使用类似的命令,但将`addport`替换为`removeport`:
bash
firewallcmd zone=public removeport=8080/tcp permanent
firewallcmd reload
3.批量操作端口:
firewallcmd还支持批量开放或限制端口。例如,要开放从10000到10100的端口范围,可以使用:
bash
firewallcmd zone=public addport=1000010100/tcp permanent
firewallcmd reload
三、开放或限制IP地址
1.限制IP地址访问:
可以使用rich规则来限制特定IP地址对特定端口的访问。例如,要禁止IP地址为172.19.8.90的机器访问3679端口,可以使用:
bash
firewallcmd permanent addrichrule=rule family=ipv4 source address=172.19.8.90 port protocol=tcp port=3679 reject
firewallcmd reload
2.解除IP地址限制:
要解除之前的限制,可以使用类似的命令,但将`reject`替换为`accept`:
bash
firewallcmd permanent addrichrule=rule family=ipv4 source address=172.19.8.90 port protocol=tcp port=3679 accept
firewallcmd reload
3.限制IP地址段:
可以限制整个IP地址段的访问。例如,要禁止192.168.172.0/24网段的机器访问443端口,可以使用:
bash
firewallcmd permanent addrichrule=rule family=ipv4 source address=192.168.172.0/24 port protocol=tcp port=443 reject
firewallcmd reload
四、其他操作
1.添加或移除服务:
firewallcmd还支持添加或移除服务。服务通常是一组预定义的端口和协议。例如,要永久添加HTTP服务到public区域,可以使用:
bash
firewallcmd zone=public addservice=http permanent
firewallcmd reload
2.查看当前所有开放的端口:
使用以下命令可以查看当前系统所有开放的端口:
bash
firewallcmd zone=public listports
3.端口转发:
firewallcmd还支持端口转发功能。例如,要将到本机3306端口的访问转发到另一台服务器的13306端口,可以使用:
bash
firewallcmd permanent addmasquerade 开启伪装IP(注意:此命令可能有误,应为firewallcmd addmasquerade,但通常不需要单独开启伪装,除非有特殊需求)
firewallcmd permanent addforwardport=port=3306:proto=tcp:toaddr=192.168.1.2:toport=13306
firewallcmd reload
注意:在实际操作中,端口转发可能需要更复杂的配置,包括确保目标服务器能够接受来自防火墙的转发流量。
综上所述,firewallcmd是一个功能强大的防火墙配置工具,它提供了丰富的选项来管理和控制进出网络的数据流。通过合理使用这些选项,可以有效地保护系统免受未经授权的访问和攻击。