Linux--防火墙{Firewalld和Iptables的关系,iptables四表五链,firewalld网络区域以及通过图形工具进行操作}

前言

  • Linux防火墙体系主要工作在传输层,针对TCP、UDP数据段实施过滤和限制,属于典型的包过滤防火墙(或称为传输层防火墙)
  • Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和极高的效率,因此得到广泛的应用

一:Firewalld和Iptables概述

1.1:Firewalld简介

  • 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
  • 支持IPv4,IPv6防火墙设置以及以太网桥
  • 支持服务或应用程序直接添加防火墙规则接口
  • 拥有两种配置模式
    • 运行时配置(一般测试的时候使用)
    • 永久配置

1.2:iptables简介

  • iptables是Linux的防火墙管理工具而已,真正实现防火墙功能的是Netfilter,我们配置类iptables规则后Netfilter通过这些规则来进行防火墙过滤等操作

二:Firewalld和Iptables的关系

2.1:netfilter

  • 位于Linux内核中的包过滤功能体系
  • 称为Linux防火墙的“内核态”

2.2:Firewalld、iptables

  • CentOS 7默认的管理防火墙规则的工具(Firewalld)
  • 称为Linux防火墙的“用户态”

2.3:netfilter和Firewalld,iptables关系

只有iptables才能和内核态进行交互
在这里插入图片描述

2.4:Firewalld和iptables的区别

Firewalld iptables
配置文件 /usr/lib/firewalld,/etc/firewalld /etc/sysconfig/iptables
对规则的修改 不需要全部刷新策略,不丢失现行连接 需要全部刷新策略,丢失链接
防火墙类型 动态防火墙 静态防火墙

2:5:CentOS 6 和CentOS 7 防火墙的区别

  • centos7有firewalld,iptables

    centos6是iptables

  • 图形化管理工具 firewall-config

    命令管理工具:iptables(操作复杂) firewall-cmd

三:Iptables详解

3.1:Netfilter模块概念

  • netfilter是主要的工作模块,位于内核中,在网络层的五个位置(就是防火墙四表五链中的五链)注册了一些函数,用来抓取数据包
  • 将数据包的信息拿出来匹配各个链位置在对应表中的规则:匹配之后,进行相应的处理ACCEPT,DROP等等

3.2:Netfilter与iptables之间的关系

在这里插入图片描述

3.3:规则链

规则的作用:对数据包进行过滤或处理
链的作用:容纳各种防火墙规则
链的分类数据:处理数据包的不同时机

3.4:规则表

表的作用:容纳各种规则链
表的划分依据:防火墙规则的作用相似

3.5:四表五链

  • 链就是位置:共有五个
    • 进路由(PREROUTING)
    • 进系统(INPUT)
    • 转发(FORWARD)
    • 出系统(OUTPUT)
    • 出路由(POSTROUTING)
  • 表就是存储的规则
    • 数据包到了该链处,会去对应表中查询设置的规则,然后决定是否放行,丢弃,转发还是修改等操作

3.5.1:何为四表

  • filter表——过滤数据包(filter是默认的表,在使用iptables命令进行配置规则的时候,不特指其他的表就会默认filter)
  • Nat表——用于网络地址转换(IP,端口)
  • Mangle表——修改数据包的服务类型,TTL,并且可以配置路由实现QOS
  • Raw表——决定数据包是否被状态跟踪机制处理

3.5.2:何为五链

  • INPUT链——进来的数据包应用此规则链中的策略
  • OUTPUT链——外出的数据包应用此规则链中的策略
  • FORWARD链——转发数据包时应用此规则链中的策略
  • PREROUTING链——对数据包做路由选择前应用此规则链中的规则(所有的数据包进来的时候都先由这个链处理)
  • POSTROUTING链——对数据包作路由选择后应用此规则链中的规则(所有的数据包出来的时候都先由这个链处理)

3.5.3:四表五链之间的关系

  • 表包含链

  • 链包含规则

3.6默认的表、链结构示意图

在这里插入图片描述

3.7:数据包过滤的匹配流程

规则表之间的顺序
●raw> mangle- > nat- > filter
规则链之间的顺序
●入站: PREROUTING→INPUT
●出站: OUTPUT→POSTROUTING
●转发: PREROUTING→FORWARD→POSTROUTING
规则链内的匹配顺序
●按顺序依次检查,匹配即停止(LOG策略例外)
●若找不到相匹配的规则,则按该链的默认策略处理
总结:PREROUTING→INPUT→FORWARD→OUTPUT→POSTROUTING
匹配流程示意图
在这里插入图片描述

3.8:iptables语法格式与常用参数

  • iptables语法格式
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
如果不指定表名,则会默认指定filter表
  • 注意事项
不指定表名时,默认指filter表
不指定链名时,默认指表内的所有链
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写
  • 数据包的常见控制类型
ACCEPT:允许通过
DROP:直接丢弃,不给出任何回应
REJECT:拒绝通过,必要时会给出提示
LOG:记录日志信息,然后传给下一条规则继续匹配
  • 常用管理选项汇总
    在这里插入图片描述

3.9:规则的匹配条件

■通用匹配
	●可直接使用,不依赖于其他条件或扩展
	●包括网络协议、IP地址、 网络接[等条件
■隐含匹配
	●要求以特定的协议匹配作为前提
	●包括端口、TCP标记、ICMP类型等条件
■显式匹配
	●要求以"-m扩展模块"的形式明确指出类型
	●包括多端口、MAC地址、IP范围、 数据包状态等条件
■常见的通用匹配条件
	●协议匹配: -p 协议名
	●地址匹配: -s 源地址、-d 目的地址
	●接口匹配: -i 入站网卡、-o出站网卡
■常用的隐含匹配条件
	●端口匹配: --sport 源端口、--dport 目的端口
	●ICMP类型匹配: --icmp-type ICMP类型
■常用的显式匹配条件
	●多端口匹配: -m multiport --sports源端口列表
				-m, multiport --dports目的端口列表
	●IP范围匹配:-m iprange --src-range IP范围
	●MAC地址匹配: -m mac --mac-source MAC地址
	●状态匹配: -m state --state连接状态

■常用管理选项汇总
在这里插入图片描述

四:Firewalld网络区域

4.1:区域介绍

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

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

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

  • iptables没有区域的概念

  • 外部流量通过规则进入相应的区域接口(网卡)
    在这里插入图片描述
    firewalld数据处理流程

  • 检查数据来源的源地址

    • 若源地址关联到特定的区域,则执行该区域所指定的规则
    • 若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则
    • 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定的规则
区域 描述
drop(丢弃) 任何接收的网络数据包都会被丢弃,没有任何回复。仅能有发送出去的网络连接
block(限制) 任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒绝
public(公共) 在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的链接
external(外部) 特别是为路由器启动了伪装功能的外部网。您不能信任来自网络的其他计算,不能相信他们不会对您的计算机造成危害,只能接收经过选择的连接
dmz(非军事区) 用于您的非军事区内的电脑,此区域内可公开访问,可以有限的进入您的内部网络,仅仅接收经过选择的连接
work(工作) 用于工作区,您可以基本相信网络内的其他电脑不会危害您的电脑,仅仅接收经过选择的连接
home(家庭) 用于家庭网络,您可以基本信任网络内的其他计算器不会危害您的计算机,仅仅接收经过选择的连接
internal(内部) 用于内部网络,您可以基本上信任网络内的其他计算机不会威胁您的计算机,仅仅接受经过选择的连接
trusted(信任) 可接收所有的网络连接

五:Firewalld防火墙的配置方法

  • 运行时配置
    • 实时生效,并持续至firewalld重新启动或重新加载配置
    • 不中断现有连接
    • 不能修改服务配置
  • 永久配置
    • 不立即生效,除非firewalld重新启动和重新加载配置
    • 中断现有连接
    • 可以修改服务配置
  • firewall-config图形工具(用的少)
  • firewall-cmd命令行工具(用的多)
  • /etc/firewalld/中的配置文件
    • firewalld会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/lib/firewalld/中的配置
    • /etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/lib/firewalld/中拷贝
    • /usr/lib/firewalld/:默认配置文件,不建议修改,若恢复至默认配置,可以直接删除/etc/firewalld/中的配置

六:Firewall-config图形工具

6.1:打开防火墙图形界面

[root@localhost ~]# firewall-config		'//在终端输入,不要远程'

在这里插入图片描述

6.2:运行时配置/永久配置

在这里插入图片描述

6.3:重新加载防火墙

  • 更改永久配置并生效
    在这里插入图片描述

在runtime时需要先设定为永久配置,在进行重载防火墙

6.4:关联网卡到指定区域

在这里插入图片描述

6.5:修改默认区域

在这里插入图片描述

6.6:连接状态

在这里插入图片描述

6.7:“区域”选项卡

在这里插入图片描述

  • “服务”子选项卡
  • “端口”子选项卡
  • “协议”子选项卡
  • “源端口”子选项卡
  • “伪装”子选项卡
  • “端口转发”子选项卡
  • “ICMP过滤器”子选项卡

6.8:“服务”选项卡

在这里插入图片描述

  • “模块”子选项卡

  • “目标地址”子选项卡

七:Firewalled防火墙案例

7.1:实验环境

两台vm虚拟机,一台做客户机,一台做linux服务器

7.2:需求描述

  • 禁止主机ping服务器

  • 只允许20.0.0.47主机访问SSH服务

  • 允许所有主机访问Apache服务

分析:

在这里插入图片描述

7.3:实验过程

1.选择work,点击来源,点击添加

在这里插入图片描述

2.在work区域中勾选ssh和http,关闭dhcpv6

在public区域中勾选http,关闭ssh和dhcpv6

在这里插入图片描述

3.在work区域,选择ICMP过滤器,勾选echo-request

在public区域,勾选echo-reply

这样就把ICMP关闭掉了
在这里插入图片描述

4.安装apache服务

yum install httpd -y

systemctl start httpd

猜你喜欢

转载自blog.csdn.net/m0_47219942/article/details/107698753
今日推荐