Centos7防火墙基本介绍

相对于Centos6防火墙使用的是iptables,而Centos7使用的是filewall,它底层还是使用 iptables 对内核命令动态通信包过滤的,简单理解就是firewall是centos7下管理iptables的新命令。


一、systemctl命令操作防火墙

1、启动防火墙:systemctl start firewalld.service

2、关闭防火墙:systemctl stop firewalld.service

3、重启防火墙:systemctl restart firewalld.service

4、显示防火墙状态:systemctl status firewalld.service

5、开机启动防火墙:systemctl enable firewalld.service

6、开机禁用防火墙:systemctl disable firewalld.service

7、查看防火墙是否开机启动:systemctl is-enabled firewalld.service


二、Firewall区域管理

firewall引入了zone区域概念,firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别:

  • block (阻塞区域)拒绝所有外部发起的连接,返回icmp-host-prohibited,允许内部发起的连接
  • dmz (隔离区域)允许受限制的进入连接
  • drop (丢弃区域)丢弃所有进入的包,而不给出任何响应
  • external (外部区域)只有指定的连接会被接受,一般用于路由转发
  • home (家庭区域)允许受信任的计算机被限制的进入连接,类似 homegroup
  • internal (内部区域)信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。
  • public (公共区域)不相信网络上的任何计算机,只有选择接受传入的网络连接。
  • trusted(信任区域)信任所有连接
  • work (工作区域)允许受信任的计算机被限制的进入连接,类似 workgroup

1、显示支持的区域列表:firewall-cmd --get-zones

2、查看域详情列表:firewall-cmd --list-all-zones

3、查看默认区域:firewall-cmd --get-default-zone

4、设置默认区域firewall-cmd --set-default-zone=home

5、查看某个区域列表:firewall-cmd --zone=home --list-all

6、查看活动的区域:firewall-cmd --get-active-zones

7、创建自己的区域:firewall-cmd --permanent --new-zone=myself

8、删除区域:firewall-cmd --permanent --delete-zone=myself


三、Firewall务端口管理

以下带有--permanent生效的策略记录(除查看执行行"--reload"后才能立即生效,否则要重启后再生效。不带--permanent的命令立即生效,但是reload或者restart后失效。

1、显示防火墙状态:firewall-cmd --state


2、显示服务列表:firewall-cmd --get-services (查看已被firewall提供的一些常用服务)


3、查看某域的服务:firewall-cmd --zone=public --permanent --list-services 

PS:(1)加了--permanent 表示永久服务,不加显示所有服务,包含临时服务。(2)--zone表示默认区域


4、添加某域的服务:firewall-cmd --zone=public --permanent --add-service=http

5、移除某域的服务:firewall-cmd --zone=public --permanent --remove-service=http

PS:(1)不加--permanent表示临时增加reload或者restart后效。2--zone表示默认区域


6、添加端口:firewall-cmd --zone=home --permanent --add-port=5000/tcp

7、删除端口:firewall-cmd --zone=home --permanent --remove-port=5000/tcp

8、多口添加firewall-cmd --zone=home --permanent --add-port=5000-5005/tcp

PS:(1)不加--permanent表示临时增加reload或者restart后效。(2)--zone表示默认区域。(3)端口后面tcp和udp表示协议


9、查看区域端口情况:firewall-cmd --zone=public --permanent --list-ports

PS:(1)加了--permanent 表示永久服务,不加显示所有服务,包含临时服务。


10、查询服务是否被允许:firewall-cmd --zone=public --query-service=ssh

PS:(1)--zone表示默认区域。


11、端口转发

将80端口的流量转发至8080:firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080

将80端口的流量转发至192.168.1.1:firewall-cmd --permanent --zone=public  --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.1 

将80端口的流量转发至192.168.1.1的8080端口:firewall-cmd --permanent --zone=public  --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.1:toport=8080

PS:(1)不加ip地址,默认转发到本地的端口。(2)--zone表示默认区域。(3)不加--permanent表示临时增加reload或者restart后效。


12、手动编写服务

可以将某个程序需要的端口写在一个自己编写的服务里,然后直接添加这个服务就可以了,这样会很方便。

/usr/lib/firewalld/services创建自己的服务,格式可以拷贝/etc/firewalld/services任意一个服务的。

<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Myself Service</short>
<description>This is a myself service</description>
<port protocol="tcp" port="5000"/>
<port protocol="tcp" port="5001"/>
<port protocol="tcp" port="9095"/>
</service>

查找服务:firewall-cmd --get-services |grep myself


13、重新加载配置:firewall-cmd --reload

  • 下载列表

目前有 0 条评论

提交
订阅