firewalld学习--维护命令
启动
systemctl start firewalld
停止
systemctl stop firewalld
重启
systemctl restart firewalld
查询状态
systemctl status firewalld
另外,对于firewalld来说还可以使用自身的firewall-cmd工具来查询运行状态
firewall-cmd --state
启用开机自启动
systemctl enable firewalld
禁用开机自启动
systemctl disable firewalld
查看自动启动状态
systemctl is-enabled firewalld
更新规则
直接使用firewall-cmd修改的规则是不需要更新就可以直接生效的,但是如果加了--permanent
参数,或者直接编辑xml文件之后就需要我们手动reload了,
firewall-cmd提供了两个更新规则的参数:--reload和--complete-reload,
前者只是更新需要更新规则,而且更新的过程中不会影响现有的连接,
而后者在更新时会将所有的规则清除掉然后重建,而且为了安全考虑,在更新之前首先会将策略设置为DROP,等更新完成之后再恢复为ACCEPT,这样就会对现有连接造成影响,所以如果没有特殊需求我们应该尽量使用前者。具体命令如下
firewall-cmd --reload firewall-cmd --complete-reload
策略操作
对于firewalld来说最重要的就是策略操作了,策略操作主要有三种方法:使用firewall-config操作、使用firewall-cmd操作和直接编辑xml文件,firewall-config是图形化工具,firewall-cmd是命令行工具。
firewall-cmd中关于规则的命令非常多,但是有四大类使用频率非常高的命令:--add-xxx、--remove-xxx、--query-xxx、--get-xxx以及--list-xxx,这里前两个非常容易理解,一个是添加一个是删除。
--query-xxx主要用于布尔值的查询,比如
#这个命令用于查询在public这个zone中是否包含ssh这个服务。 firewall-cmd --zone=public --query-service=ssh
--get-xxx主要用于获取特定的内容,比如
firewall-cmd --get-zones #这样就可以获取到预设的zones,默认情况下返回结果为 block dmz drop external home internal public trusted work
--list-xxx主要用于按一定条件进行查询(不过有的list命名也不需要条件),比如
#这个命令可以返回public这个zone中所包含的services。 firewall-cmd --zone=public --list-services
特殊参数 --permanent
表示是否将修改后的规则保存下来,如果不加这个参数,那么所做的修改当时会立即生效,但是在firewalld重启之后就会丢失,而加上这个参数后所做的修改就会永久保存下来,不过这时的修改不会立即生效而是需要reload后才可以生效。其实这个也非常容易理解,当不加--permanent
修改规则时firewalld
会实际修改运行时的规则,而如果加了这个参数firewalld
其实是去修改的xml配置文件,和我们直接编辑xml文件一样,所以就需要reload才可以生效。