关于 centos7 防火墙 firewalld 服务开墙服务,博主之前写过手动命令添加

​​centos7 关于firewalld 与 iptables 防火墙的 “爱恨情仇”​​

​​Linux防火墙放行端口​​


今天分享通过配置文件批量添加


文章目录

  • ​​1.先看效果​​
  • ​​2.再操作​​
  • ​​2.0查看防火墙状态​​
  • ​​2.1防火墙 禁用、启用、开启、关闭、重启​​
  • ​​2.2查看防火墙已放行的端口列表(防火墙开着的前提下)​​
  • ​​2.3查看 firewall 防火墙规则配置文件​​
  • ​​2.4通过 sed 写入要放行的端口到配置文件中​​
  • ​​2.5再次查看一下 firewall 防火墙 规则 配置文件​​
  • ​​2.6重新加载 防火墙 firewall (或重启防火墙)​​
  • ​​2.7查看防火墙已放行的端口列表(防火墙开着的前提下)​​

1.先看效果

[root@localhost ~]# echo "配置文件开墙"
配置文件开墙
[root@localhost ~]# firewall-cmd --list-ports
10000/tcp 20000/tcp
[root@localhost ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="ssh"/>
<service name="mdns"/>
<service name="dhcpv6-client"/>
<port port="10000" protocol="tcp"/>
<port port="20000" protocol="tcp"/>
</zone>
[root@localhost ~]# echo "开始配置"
开始配置
[root@localhost ~]# sed -i 's#</zone># <port port="30000-30100" protocol="tcp"/>\n&#' /etc/firewalld/zones/public.xml
[root@localhost ~]#
[root@localhost ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="ssh"/>
<service name="mdns"/>
<service name="dhcpv6-client"/>
<port port="10000" protocol="tcp"/>
<port port="20000" protocol="tcp"/>
<port port="30000-30100" protocol="tcp"/>
</zone>
[root@localhost ~]# firewall-cmd --state
running
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --state
running
[root@localhost ~]# firewall-cmd --list-ports
10000/tcp 20000/tcp 30000-30100/tcp
[root@localhost ~]#

2.再操作

2.0查看防火墙状态

  • 方式1(防火墙是否开启都可以查看)

    ​systemctl status firewalld​

  • 方式2(在防火墙开着的前提下查看)

    ​firewall-cmd --state​

2.1防火墙 禁用、启用、开启、关闭、重启

  • 禁用

    ​systemctl disable firewalld​

  • 启用

    ​systemctl enable firewalld​

  • 开启

    ​systemctl start firewalld​

  • 关闭

    ​systemctl stop firewalld​

  • 重启

    ​systemctl restart firewalld​

2.2查看防火墙已放行的端口列表(防火墙开着的前提下)

​firewall-cmd --list-ports​

2.3查看 firewall 防火墙规则配置文件

​cat /etc/firewalld/zones/public.xml​

2.4通过 sed 写入要放行的端口到配置文件中

​sed -i 's#</zone># <port port="30000-30100" protocol="tcp"/>\n&#' /etc/firewalld/zones/public.xml​

解释一下

​sed -i 's#指定内容#要追加的内容\n&#' filename​

  • sed是处理文件行的快速工具,不需要借助Vim编辑器即可完成
  • \n在shell中是换行符号
  • &这个是与符号
  • 指定字符前面添加

    ​sed -i 's/指定的字符/需要添加的字符&/' 文件名称​

  • 指定字符后面添加

    ​sed -i 's/指定的字符/&需要添加的字符/' 文件名称​

  • 当然,通过 Vim 编辑器 编辑配置文件也可,这没什么问题

2.5再次查看一下 firewall 防火墙 规则 配置文件

​cat /etc/firewalld/zones/public.xml​

2.6重新加载 防火墙 firewall (或重启防火墙)

​firewall-cmd --reload​

2.7查看防火墙已放行的端口列表(防火墙开着的前提下)

​firewall-cmd --list-ports​


我们下期见,拜拜!