cent7 下用firewall-cmd命令来管理防火墙
cent7 下用firewall-cmd命令来管理防火墙
背景
Cent 6.x中用来管理防火墙的iptables在cent7中已经被firewalld来代替,取而代之的命令行管理工具为firewall-cmd
通常,我们的需求比较简单, 也就是说启用或禁用某些著名端口(比如80,443,8080), 当然项目中也引入了其他的端口,比如my-micro-service的8085端口
可行的方法
那么,我们的需求就转化为 如何用firewall-cmd来启用这些端口.
-
方法1: 直接启用端口
# enable my-micro-service tcp port 8085 sudo firewall-cmd --zone=public --permanent --add-port=8085/tcp
注:上述命令行中的–zone=public代表的是cent7中缺省打开的zone是public。 zone的概念也是在cent7中新引入的,详细参考最下面的链接。
-
方法2: 添加自定义的firewalld的service, 在service里映射这些端口号,然后启用service
# define a firewalld service for my-micro-service sudo vi /etc/firewalld/services/my-micro-service.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>my-micro-service</short> <description>My Micro Service.</description> <port protocol="tcp" port="8085"/> </service> # reload this new service sudo firewall-cmd --reload # enable this service sudo firewall-cmd --zone=public --add-service=my-micro-service --permanent
-
方法3: 自定义一个zone。 比较麻烦,不做介绍了
方法2比较优雅,又相对简单
修改想要立即生效,可以运行 sudo firewall-cmd --reload
参考
Written on March 28, 2019