iptables防火墙(一)

目录

1、Linux防火墙基础

2、iptables的四表五链结构

2.1 iptables的四表五链结构介绍

2.2 四表五链

2.2.1 四表

2.2.2 五链

2.3 包过滤的匹配流程

2.3.1 规则链之间匹配顺序

2.3.2 规则链内部的处理规则

2.3.3 数据包过滤的匹配流程

3、 编写防火墙规则

3.1 iptabes 安装

3.2 iptables 的基本语法

3.2.1 语法构成

3.2.2 数据包的常见控制类型

3.3 iptables 命令的常用管理选项

3.3.1 iptables各字段解读

3.4 编写防火墙规则

3.4.1 添加新的规则

3.4.2 查看规则列表

3.4.3 删除、清空规则

1)删除 -D

2)清空 -F

3)永久性防火墙规则(两种方法)

3.4.4 设置默认策略  -P

3.5 规则的匹配条件

3.5.1 通用匹配

3.5.2 隐含匹配

3.5.3 显式匹配


1、Linux防火墙基础

Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制。属于典型的包过滤防火墙。linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和极高的效率,因此获得广泛的应用。针对IP数据包,体现在对包内的IP地址、端口等信息的处理。

  • netfilter

指的是linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于“内核态”,又称内核空间的防火墙功能体系,称为 linux 中的软防火墙。

  • 内核态:用户使用命令调用资源和硬件;
  • 包过滤工作层次:
    • 主要针对网络层,针对IP数据包;
    • 体现在对包内的IP地址、端口等信息的处理;
  • iptables

指的是用来管理linux防火墙的命令程序,通常位于/sbin/iptables目录下,属于“用户态”,又称用户空间的防火墙管理体系。

制作规则链

  • 用户态:用户在平台下进行操作;
  • iptables的作用是为包过滤机制的实现提供规则,通过各种不同的规则,告诉netfilter对来自某些源,前往某些目的或具有某些协议特征的数据包应该如何处理;
  • 为了更加方便的组织和管理防火墙规则,iptables采用了表和链的分层结构;

总结:iptables制作相应的规则链后,由 netfilter 去完成相应的规则

2、iptables的四表五链结构

2.1 iptables的四表五链结构介绍

iptables 的作用是为包过滤机制的实现提供规则,通过各种不同的规则,告诉netfilter对来自某些源,前往某些目的或具有某些协议特征的数据包应该如何处理,为了更加方便的组织和管理防火墙规则,iptables采用了表和链的分层结构。

所以它会对请求的数据包的包头数据进行分析,根据我们预先设定的规则进行匹配来决定是否可以进入主机。

其中,每个规则表相当于内核空间的一个容器,根据规则集的不同用途划分为默认的四个表,在每个表容器内又包括不同的规则链,根据处理数据包的不同时机划分为五种链。

2.2 四表五链

  • 规则表的作用:容纳各种规则链;
  • 表的划分依据:防火墙规则的作用相似;
  • 规则链的作用:容纳各种防火墙规则;
  • 规则的作用:对数据包进行过滤或处理;
  • 链的分类依据:处理数据包的不同时机
  • 总结:表里有链,链里有规则

2.2.1 四表

raw

主要用来决定是否对数据包进行状态跟踪

包含:OUTPUT、PREROUTING

mangle

修改数据包内容,用来做流量整形的,给数据包设置标记

包含:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING

nat

负责网络地址转换,用来修改数据包中的源、目标IP地址或端口

包含:OUTPUT、PREROUTING、POSTROUTING

filter(默认表)

负责过滤数据包,确定是否放行该数据包(过滤);数据包:进-->出-->转发

包含:INPUT、FORWARD、 OUTPUT

mangle 表和 raw 表的应用相对较少

2.2.2 五链

INPUT 处理入站数据包,匹配目标 IP 为本机的数据包
OUTPUT 处理出站数据包,一般不在此链上做配置
FORWARD 处理转发数据包,匹配流经本机的数据包
PREROUTING 路由前。在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的IP和端口到路由器的外网IP和端口上
POSTROUTING    路由后。在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能现内网主机通过一个公网IP地址上网

2.3 包过滤的匹配流程

数据包到防火墙

规则表应用顺序:raw→mangle→nat→filter

从左往右

2.3.1 规则链之间匹配顺序

主机型防火墙:

数据包直接进入到防火墙所在的服务器的内部某一个应用程序当中,是直接进入到服务

  • 入站数据(来自外界的数据包,且目标地址是防火墙本机):
    • PREROUTING -->INPUT -->本机的应用程序
  • 出站数据(从防火墙本机向外部地址发送的数据包):
    • 本机的应用程序-->OUTPUT-.>POSTROUTING

网络型防火墙:

  • 转发数据(需要经过防火墙转发的数据包):
    • PREROUTING-->FORWARD-->POSTROUTING 

2.3.2 规则链内部的处理规则

  • 上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)要么放行要么丢弃;
  • 若在该链内找不到相匹配的规则,则按该链的默认策略处(未修改的状况下,默认策略为允许);

注:

按第一条规则…..第二条规则的顺序进行匹配处理,遵循 “匹配即停止" 的原则,一旦找到一条匹配规则将不再检查后续的其他规则,如果一直找不到匹配的规则,就按默认规则处理。默认规则用iptables -查看,规则链后面出现(policy ACCEPT)即是默认放行;默认策略不参与链内规则的顺序编排

-F清空链时,默认策略不受影响

2.3.3 数据包过滤的匹配流程

总结:( 此处以nat表为例,以标红的表和链为例 

  • 入站:

来自外界的数据包到达防火墙后,首先被 PREROUTING 链处理(是否修改数据包地址等),然后进行路由选择(判断该数据包应发往何处);如果数据包的目标地址是防火墙本机(如 Internet 用户访问网关的 Web 服务端口),那么内核将其传递给 INPUT 链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序 (如 httpd 服务器)进行响应。 

  • 出站:

防火墙本机向外部地址发送的数据包(如在防火墙主机中测试公网 DNS 服务时),首先进行路由选择,确定了输出路径后,再经由 OUTPUT 链处理,最后再交POSTROUTING 链(是否修改数据包的地址等)进行处理。

  • 转发:

来自外界的数据包到达防火墙后,首先被 PREROUTING 链处理,然 后再进行路由选择;如果数据包的目标地址是其他外部地址(如局域网用户通过网关访 问 QQ 服务器),则内核将其传递给 FORWARD 链进行处理(允许转发或拦截、丢弃), 最后交给 PO

  • 22
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值