前言
防火墙对服务器起到一定的保护作用,所以了解一些相关的操作是很有必要的。
在CentOS 7.x中,有了一种新的防火墙策略,FireWall , 还记得在6.x中用的还是iptables。
这几天一直在自己的服务器上瞎搞,由于关于这个防火墙的命令还没有烂熟于心,每次都需要google一下,所以就自己动手整理了一下,方便今后的使用也同时加强记忆。
基本命令
在CentOS 7.x中,防火墙的基本命令是 firewall-cmd
先通过man firewall-cmd
来简单看看它的帮助文档。
具体的使用方法可以用 firewall-cmd -h
来进行查询。
状态查询
要用防火墙,自然是需要知道防火墙有没有启动。
可以通过查询防火墙的当前状态来确定服务器是否开启了防火墙
firewall-cmd --state
如果终端输出running就表示防火墙已经开启了,反之就没有。
也可以使用下面的命令来查询
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
原文地址:http://blog.51cto.com/xiaogongju/2087254