firewallcmd是一个用于管理防火墙规则的命令行工具,它是firewalld服务的主要命令行接口,允许系统管理员动态地添加、删除和修改防火墙规则,以保护系统的网络安全。以下是关于firewallcmd在防火墙设置和查看方面的详细介绍:
一、firewallcmd的基本用法
firewallcmd的基本语法为:`firewallcmd [选项]命令`。其中,选项用于控制firewallcmd的行为,而命令则指定了要执行的操作,如添加、删除、查询规则等。
二、查看防火墙状态与规则
1.查看防火墙状态:
使用`systemctl status firewalld`命令可以查看firewalld服务的运行状态。如果服务正在运行,则表示防火墙已启用。
2.查看当前活动的防火墙规则:
使用`firewallcmd listall`命令可以列出当前活动的防火墙规则,包括区域、服务、端口等信息。
3.查看特定区域的规则:
使用`firewallcmd zone=<区域名> listall`命令可以查看指定区域的防火墙规则。例如,`firewallcmd zone=public listall`将列出public区域的所有规则。
三、设置防火墙规则
1.开放或限制端口:
开放端口:使用`firewallcmd zone=<区域名> addport=<端口号>/<协议> permanent`命令可以永久开放指定端口。例如,`firewallcmd zone=public addport=8080/tcp permanent`将永久开放public区域的TCP 8080端口。之后需要使用`firewallcmd reload`命令重新加载防火墙配置以使设置生效。
限制端口:使用`firewallcmd zone=<区域名> removeport=<端口号>/<协议> permanent`命令可以永久限制指定端口。例如,`firewallcmd zone=public removeport=8080/tcp permanent`将永久限制public区域的TCP 8080端口。同样需要使用`firewallcmd reload`命令重新加载防火墙配置。
2.允许或禁止服务:
允许服务:使用`firewallcmd zone=<区域名> addservice=<服务名> permanent`命令可以永久允许指定服务。例如,`firewallcmd zone=public addservice=http permanent`将永久允许public区域的HTTP服务。之后需要使用`firewallcmd reload`命令重新加载防火墙配置。
禁止服务:使用`firewallcmd zone=<区域名> removeservice=<服务名> permanent`命令可以永久禁止指定服务。例如,`firewallcmd zone=public removeservice=http permanent`将永久禁止public区域的HTTP服务。同样需要使用`firewallcmd reload`命令重新加载防火墙配置。
3.设置IP访问控制:
限制IP地址访问:使用`firewallcmd permanent zone=<区域名> addrichrule=<规则`命令可以添加富规则以限制特定IP地址的访问。例如,`firewallcmd permanent zone=public addrichrule=rule family=ipv4 source address=172.19.8.90 port protocol=tcp port=3679reject`将拒绝来自172.19.8.90的TCP 3679端口的访问。之后需要使用`firewallcmd reload`命令重新加载防火墙配置。
解除IP地址限制:使用`firewallcmd permanent zone=<区域名> addrichrule=<规则`命令可以添加富规则以解除特定IP地址的访问限制。例如,将上述拒绝规则更改为接受规则即可。
四、注意事项
在使用firewallcmd时,通常需要root权限。如果不是root用户,需要在命令前添加`sudo`。
使用`permanent`参数设置的规则在重新加载防火墙后生效,如果不使用该参数,则规则仅在当前会话中有效。
在较新的Linux发行版中,firewalld服务通常默认安装并激活。但在一些情况下,系统可能使用其他防火墙管理工具,如iptables。因此,在设置防火墙规则时,需要确认当前系统使用的防火墙管理工具。
综上所述,firewallcmd是一个功能强大的防火墙规则管理工具,通过熟练掌握其用法,可以有效地保护系统的网络安全。