firewalld防火墙基础

目录

一、安全技术

1、不同的安全技术

二、Linux防火墙的介绍

1、Netfilter

2、防火墙的工具

三、firewalld服务

1、什么是firewalld

2、firewalld支持划分区域zone,每个zone可以设置独立的防火墙规则

3、firewalld中zone 分类

四、命令行配置

1、基础命令

2、区域管理

3、服务管理

4、端口管理


一、安全技术

1、不同的安全技术

·入侵检测系统(Intrusion Detection Systems)︰特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类似于监控系统一般采用旁路部署(默默的看着你)方式。

·入侵防御系统〈(Intrusion Prevention System):以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以阻断,主动而有效的保护网络的安全,一般采用在线部署方式。(必经之路)

·防火墙(FireWall )︰隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ(demi

·防水墙:广泛意义上的防水墙:防水墙(waterwa11),与防火墙相对,是一种防止内部信息泄漏的安全产品。网络、外设接口、存储介质和打印机构成信息泄漏的全部途径。防水墙针对这四种泄密途径,在事前、事﹐中、事后进行全面防护。其与防病毒产品、外部安全产品一起构成完整的网络安全体系。

firewalld防火墙基础

2、防火墙的分类方法

主要有以下6种:

1、软、硬件形式分类:软件防火墙、硬件防火墙、芯片级防火墙。

2、防火墙技术分类:包过滤型防火墙、应用代理型防火墙 。

3、防火墙结构分类:单一主机防火墙、路由器集成式防火墙、分布式防火墙。

4、防火墙的应用部署位置分类:边界防火墙、个人防火墙、混合防火墙。

5、防火墙性能分类:百兆级防火墙、千兆级防火墙。

6、防火墙使用方法分类:网络层防火墙、物理层防火墙、链路层防火墙。

----------------------------------------------------------------------------------------------------

1、按保护范围分:

·主机防火墙:服务范围为当前一台主机

·网络防火墙:服务范围为防火墙一侧的局域网

2、按实现方式划分:

·硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为,山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet, Cisco, Checkpoint,

NetScreen(luniper2004年40亿美元收购)等

·软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows防火墙ISA -->ForefrontTMG

3、按网络协议划分:

·网络层防火墙:OSI模型下四层,又称为包过滤防火墙

·应用层防火墙/代理服务器: proxy代理网关,OSl模型七层

二、Linux防火墙的介绍

1、Netfilter

firewalld防火墙基础

Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中

Netfilter 是Linux 2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性,提供扩展各种网络服务的结构化底层框架。Netfilter与IP协议栈是无缝契合,并允许对数据报进行过滤、地址转换、处理等操作

Netfilter官网文档: https://netfilter.org/documentation/

2、防火墙的工具

1Iptables

由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包

firewalld防火墙基础

2firewalld

从CentOS 7 版开始引入了新的前端管理工具

软件包:

firewalld

firewalld-config

管理工具:

firewall-cmd 命令行工具

firewall-config 图形工作

3、nftables

此软件是CentOS 8新特性,Nftables最初在法国巴黎的Netfilter Workshop 2008上发表,然后由长期的netfilter核心团队成员和项目负责人Patrick McHardy于2009年3月发布。它在2013年末合并到Linux内核中,自2014年以来已在内核3.13中可用。

它重用了netfilter框架的许多部分,例如连接跟踪和NAT功能。它还保留了命名法和基本iptables设计的几个部分,例如表,链和规则。就像iptables一样,表充当链的容器,并且链包含单独的规则,这些规则可以执行操作,例如丢弃数据包,移至下一个规则或跳至新链。

从用户的角度来看,nftables添加了一个名为nft的新工具,该工具替代了iptables,arptables和

ebtables中的所有其他工具。从体系结构的角度来看,它还替换了内核中处理数据包过滤规则集运行时评估的那些部分。

3netfilter中五个勾子函数和报文流向

Netfilter在内核中选取五个位置放了五个hook(勾子)function(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具(iptables)向其写入规则 由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上

 

firewalld防火墙基础

三种报文流向

·流入本机:PREROUTING –> INPUT–>用户空间进程(访问我的服务)

·流出本机:用户空间进程 –>OUTPUT–> POSTROUTING(穿过我)

·转发:PREROUTING –> FORWARD –> POSTROUTING(分摊流量)

链chain:

内置链:每个内置链对应于一个钩子函数

自定义链:用于对内置链进行扩展或补充,可实现更灵活的规则组织管理机制;只有Hook钩子调用自定义链时,才生效。

INPUT,OUTPUT,FORWARD , PREROUTING,POSTROUTING

五个表tble: filter、nat、mangle、raw、security

filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表

nat: network address translation地址转换规则表

mangle:修改数据标记位规则表

raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度

security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现

security -->raw-->mangle-->nat-->filter

三、firewalld服务

1、什么是firewalld

firewalld是CentOS 7.0新推出的管理netfilter的用户空间软件工具,也被ubuntu18.04版以上所支持(apt install firewalld安装即可)

firewalld是配置和监控防火墙规则的系统守护进程。可以实iptables,ip6tables,ebtables的功能firewalld服务由firewalld包提供

2、firewalld支持划分区域zone,每个zone可以设置独立的防火墙规则

1. 已经存在了zone区域

2. 使用firewall,就是将特定的流量关联到某个zone中

-  通过源网段关联zone

-  通过网卡关联zone区域

-  如果两者都没有关联的数据报文,那就会去default zone

3.进入到zone以后,开始匹配zone内的规则 

3、firewalld中zone 分类

firewalld防火墙基础

 

四、命令行配置

1、基础命令

firewall-cmd [OPTIONS...]
firewall-cmd  
#基础命令
--permanent
#设置永久生效
--add-port=端口号/协议(tcp/udp)
设置端口号和协议
--reload
#重新加载防火墙设置
--remove
#移除规则
--get-zones 列出所有可用区域
--get-default-zone 查询默认区域
--set-default-zone=<ZONE> 设置默认区域
--get-active-zones 列出当前正使用的区域
--add-source=<CIDR>[--zone=<ZONE>] 添加源地址的流量到指定区域,如果无--zone= 选项,使用
默认区域
--remove-source=<CIDR> [--zone=<ZONE>] 从指定区域删除源地址的流量,如无--zone= 选项,
使用默认区域
--add-interface=<INTERFACE>[--zone=<ZONE>] 添加来自于指定接口的流量到特定区域,如果无--
zone= 选项,使用默认区域
--change-interface=<INTERFACE>[--zone=<ZONE>] 改变指定接口至新的区域,如果无--zone=
选项,使用默认区域
--add-service=<SERVICE> [--zone=<ZONE>] 允许服务的流量通过,如果无--zone= 选项,使用默
认区域
--add-port=<PORT/PROTOCOL>[--zone=<ZONE>] 允许指定端口和协议的流量,如果无--zone= 选
项,使用默认区域
--remove-service=<SERVICE> [--zone=<ZONE>] 从区域中删除指定服务,禁止该服务流量,如果
无--zone= 选项,使用默认区域
--remove-port=<PORT/PROTOCOL>[--zone=<ZONE>] 从区域中删除指定端口和协议,禁止该端口
的流量,如果无--zone= 选项,使用默认区域
--reload 删除当前运行时配置,应用加载永久配置
--list-services 查看开放的服务
--list-ports   查看开放的端口
--list-all [--zone=<ZONE>] 列出指定区域的所有配置信息,包括接口,源地址,端口,服务等,如
果无--zone= 选项,使用默认区域

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 --reload

   firewall-cmd --list-al1

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

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

--runtime-to-permanent   :将当前的运行时配置写入规则配置文件中,使之成为永久性配置。

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

上一篇:firewalld实现指定IP访问sshd端口25601


下一篇:K8s 通过 firewalld 放行端口