当前位置:首页 > 叨叨念念 > Centos7防火墙基本介绍

Centos7防火墙基本介绍

叨叨念念 / 星之宇 / 2021-8-13 8:00 / 浏览:2925 / 评论:0

相对于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 条评论

    • 昵称
    • 邮箱
    • 网址