防火墙对服务器起到必定的保护做用,因此了解一些相关的操做是颇有必要的。html
在CentOS 7.x中,有了一种新的防火墙策略,FireWall , 还记得在6.x中用的仍是iptables。bash
这几天一直在本身的服务器上瞎搞,因为关于这个防火墙的命令尚未烂熟于心,每次都须要google一下,因此就本身动手整理了一下,方便从此的使用也同时增强记忆。服务器
在CentOS 7.x中,防火墙的基本命令是 firewall-cmdtcp
先经过man firewall-cmd
来简单看看它的帮助文档。ide
具体的使用方法能够用 firewall-cmd -h
来进行查询。post
要用防火墙,天然是须要知道防火墙有没有启动。google
能够经过查询防火墙的当前状态来肯定服务器是否开启了防火墙spa
firewall-cmd --state
若是终端输出running就表示防火墙已经开启了,反之就没有。3d
也可使用下面的命令来查询code
systemctl status firewalld
输出的信息中,会告诉你是否处于活动状态
当得知防火墙没有被开启时,就须要手动将其开启。
systemctl start firewalld
执行上述命令后,是没有任何输出信息的。没有提示信息对咱们来讲就是个好消息,说明咱们的防火墙起来了。
这个时候在经过查询防火墙状态的命令就能看到它已经跑起来了。
许多状况下是须要查看服务器是否开启了端口的。好比我添加了一个站点,用的端口是8080,在服务器能正常访问,可是外面却访问不了,这个时候的第一反应应该就是防火墙的8080端口尚未对外开放。
firewall-cmd --list-ports
执行上面的命令后,就能够查看全部开放的端口了。
因为Catcher还开放了除80之外的其余端口,因此对其余端口打了码。
这一步的操做就比如在Windows上的防火墙中新建一个入站规则。
只添加一个单独的端口(示例为81)
firewall-cmd --zone=public --add-port=81/tcp --permanent
添加一组连续的端口(示例为82到85)
firewall-cmd --zone=public --add-port=82-85/tcp --permanent
当添加成功以后,发现并无看到刚才添加的端口。
此时咱们应该要从新启动防火墙,让其生效。
firewall-cmd --reload
执行这条命令后,会输出success的字样表示已经重启成功了。
此时在去查看端口的状况就能够发现81端口已经成功添加进去了。
查询指定的端口是否已经开放
firewall-cmd --zone=public --query-port=81/tcp
执行上面的命令后,若是指定的端口已经开放就会输出yes,反之就输出no
经过zones下面的xml文件来查看
在 /etc/firewall/zones
目录下面有一个名为public.xml
的文件。这里存放着这个zone相关的信息,不仅是端口!
cat /etc/firewall/zones/public.xml
firewall-cmd --zone=public --remove-port=81/tcp --permanent
一样的,关闭端口以后也是要重启才能生效。
systemctl stop firewalld.service