一.firewalld 概述

firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙

firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfilter网络过滤子系统(属于内核态)来实现包过滤防火墙功能

firewalld提供了支持网络区域所定义的网络连接以及接口安|全等级的动态防火墙管理工具

二.firewalld与iptables 的区别

1

iptables主要是基于接口,来设置规则,从而判断网络的安全性

firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似

2

iptables在/etc/sysconfig/iptables 中储存配置

firewalld将配置储存在/etc/firewalld/ ( 优先加载)和/usr/lib/ firewalld/ ( 默认的配置文件)中的各种XML文件里

3

使用iptables每一-个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则

使用firewalld却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld可以在运行时间内,改变设置而不丢失现行连接

4

iptables防火墙类型为静态防火墙

firewalld防火墙类型为动态防火墙

三.firewalld 区域概念

firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone)。然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表

firewalld防火墙预定义了9个区域:

  1. trusted (信任区域) : 允许所有的传入流量
  2. public(公共区域): 允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域
  3. external (外部区域) : 允许与ssh预定义服务匹配的传入流量,其余均拒绝。默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络
  4. home (家庭区域) : 允许与ssh、ipp-client、 mdns、samba-client 或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝
  5. internal (内部区域) :默认值时与home区域相同
  6. work (工作区域) :允许与ssh、 ipp-client、dhcpv6-client 预定义服务匹配的传入流量,其余均拒绝
  7. dmz(隔离区域也称为非军事区域):允许与ssh预定义服务匹配的传入流量,其余均拒绝
  8. block (限制区域) :拒绝所有传入流量
  9. drop (丢弃区域) :丢弃所有传入流量,并且不产生包含ICMP的错误响应

    区域介绍:

    区域如同进入主机的安全门,每个区域都具有不同限制程度的规则

    可以使用一个或多个区域,但是任何一个活跃区域至少需要而关联源地址或接口

    默认情况下,public区域是默认区域,包含所有接口(网卡)

四.Firewalld数据处理流程

firewalld对于进入系统的数据包,会根据数据包的源IP地址或传入的网络接口等条件,将数据流量转入相应区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址

五.Firewalld检查数据包的源地址的规则

1.若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则

2.若源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突),则使用传入网络接口的区域并执行该区域所制定的规则

3.若网络接口也未关联到特定的区域(即源地址或接口都没有绑定特定的某个区域),则使用默认区域并执行该区域所制定的规则

六.Firewalld 防火墙的配置方法

1.使用firewalld-cmd 命令行工具

2.使用firewalld-config 图形工具

3.编写/etc/firewalld/中的配置文件

systemctl start firewalld.service

运行时配置

实时生效,并持续至Firewalld重 新启动或重新加载配置

不中断现有连接

不能修改服务配置

永久配置

不立即生效,除非Firewalld重 新启动或重新加载配置

中断现有连接

可以修改服务配置

1.常用的firewalld-cmd 命令选项

--get-default-zone :显示当前默认区域

--set-default-zone= :设置默认区域

--get-active-zones: 显示当前正在使用的区域及其对应的网卡接口

--get-zones :显示所有可用的区域

--get-zone-of-interface= :显示指定接口绑定的区域

--zone= --add-interface= :为指定接口绑定区域

--zone= --change-interface= :为指定的区域更改绑定的网络接口

--zone= --remove-interface= :为指定的区域删除绑定的网络接口

--zone= --add-source= [/] :为指定源地址绑定区域

--zone= --change-source= [/] :为指定的区域更改绑定的源地址

--zone= --remove-source=[/ ] :为指定的区域删除绑定的源地址

--list-all-zones :显示所有区域及其规则

[--zone=] --list-all :显示所有 指定区域的所有规则,省略--zone=时 表示仅对默认区域操作

[--zone=] --list-services :显示指定 区域内允许访问的所有服务

[--zone=] --add-service= :为指定区域设置允许访问的某项服务

[--zone=] --remcve-service= :删除指定区域已设置的允许访问的某项服务

[--zone=] --list-ports :显示指定区域内允许访问的所有端口号

[--zone=] --add-port= [-]/ :为指定区域设置允许访问的某个/某段端口号(包括协议名)

[--zone=] --remove-port= [-]/ :删除指定区域已设置的允许访问的端口号( 包括协议名)

[--zone=] --list-icmp-blocks :显示指定区域内拒绝访问的所有ICMP 类型

[--zone=] --add- icmp-block= :为指定区域设置拒绝访问的某项ICMP 类型

[--zone=] --remove-icmp-block= :删除 指定区域已设置的拒绝访问的某项ICMP类型

firewall-cmd --get-icmptypes :显示所有ICMP 类型













2.区域管理

(1)显示当前系统中的默认区域

firewall-cmd --get-default-zone

(2)显示默认区域的所有规则

firewall-cmd --list-all

(3)显示当前正在使用的区域及其对应的网卡接口

firewall-cmd --get-active -zones

(4)设置默认区域

firewall-cmd --set-default-zone=home

firewall-cmd --get-default-zone

3.服务管理

(1)查看默认区域内允许访问的所有服务

firewall-cmd --list-service

(2)添加httpd服务到public区域

firewall-cmd --add-service=http --zone=public

(3)查看public区域已配置规则

firewall-cmd --list-all --zone=public

(4)删除public区域的httpd服务

firewall-cmd --remove-service=http --zone=public

(5)同时添加httpd、https 服务到默认区域,设置成永久生效

firewall-cmd --add-service=http --add-service=https --permanent

firewall-cmd --add-service={http, https, ftp} --zone=internal

firewall-cmd --reload

firewall-cmd --list-all

• 添加使用 --permanent选项表示设置成永久生效,需要重新启动firewalld服务或执行firewall-cmd --reload命令

• 重新加载防火墙规则时才会生效。若不带有此选项,表示用于设置运行时规则,但是这些规则在系统或firewalld服务重启、停止时配置将失效

4.端口管理

(1)允许TCP的443端口到internal 区域

firewall-cmd --zone=internal --add-port=443/tcp

firewall-cmd --list-all --zone=internal

(2)从internal区域将TCP的443端口移除

firewall-cmd --zone=internal --remove-port=443/tcp

(3) 允许UDP的2048~2050端口到默认区域

firewall-cmd -- add-port=2048-2050/udp

firewall-cmd --list-all

最新文章

  1. hibernate中表关系为多对多时,如何只删除中间表数据
  2. Nim Game
  3. tomcat作为服务器的配置
  4. MSSQL附加数据库5120错误(拒绝访问)处理方法
  5. 一步一步实现MVC5+EF6+Bootstarp+Autofac+NoSql实现OADemo 之登陆(一) 验证码 Captcha 之大插件小用
  6. 日志分析工具ELK配置详解
  7. GITHUB基础使用教程
  8. Codeforces Gym 100342H Problem H. Hard Test 构造题,卡迪杰斯特拉
  9. daemon not running. starting it now on port 5037 ADB server didn't ACK
  10. Import user's Environment path into Linux cron task
  11. JMeter对Oracle数据库进行压力测试
  12. 【BZOJ3211】【并查集+树状数组】花神游历各国
  13. ASCII Art (English)
  14. List,Set,Map三种接口的区别
  15. javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
  16. Visual Studio Code-批量添加或删除注释行
  17. Python语法注意点
  18. Mysql插入中文的字段内容时乱码的解决方法
  19. 《全栈性能Jmeter》-2性能测试初体验
  20. js call 和 apply方法记录

热门文章

  1. excel VBA一个fuction同时执行多个正则表达式,实现方法
  2. 对volatile的理解--从JMM以及单例模式剖析
  3. Jenkins+SonarQube实现C#代码质量检查
  4. 8、mysql乱码问题及字符集实战
  5. java -jar 运行springboot项目时内存设置
  6. Acunetix引入了Docker支持,扫描统计信息以及将漏洞发送到AWS WAF的功能
  7. 「CF527E」 Data Center Drama
  8. [刘阳Java]_步步窥探JS变量作用域
  9. sublime安装emmet
  10. 8Java设计模式(持续更新)