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才可以生效。

 

posted @ 2019-08-05 13:49  AGB  阅读(197)  评论(0编辑  收藏  举报