image

一、架构图

image

二、防火墙

1、iptables与Netfilter

  • 防火墙是一组规则。当数据包进出受保护的网络区域时,进出内容(特别是关于其来源、目标和使用的协议等信息)会根据防火墙规则进行检测,以确定是否允许其通过。下面是一个简单的例子:

防火墙可以根据协议或基于目标的规则过滤请求。

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

Netfilter模块:

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

两者间的关系

2、四表五链(重要)

四表五链:

一个表----->多个链链

一个链------->多个规则

链就是位置:共有五个:进路由(PREROUTING)、进系统(INPUT)、转发(FORWARD)、出系统(OUTPUT)、出路由(POSTROUTING)

进出路由做数据转换时用到,一般用不到

表就是存储的规则:数据包到了该链接,会去对应表中查询设置的规则,然后决定是否放行、丢弃、转发还是修改等等操作。

在这里插入图片描述

1)、具体的四表

# filter表——涉及FORWARD、INPUT、OUTPUT三条链,多用于本地和转发过程中数据过滤;
# Nat表——涉及PREROUTING、OUTPUT、POSTROUT三条链,多用于源地址/端口转换和目标地址/端口的转换;
# Mangle表——涉及整条链,可实现拆解报文、修改报文、重新封装,可常见于IPVS的PPC下多端口会话保持。
# Raw表——涉及PREROUTING和OUTPUT链,决定数据包是否被状态跟踪机制处理,需关闭nat表上的连接追踪机制。

2)、具体的五链

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

3、iptables语法格式

iptables  [-t 表名] 选项 [链名] [条件] [-j 控制类型 ]

iptables常用参数

-P	设置默认策略 iptable
-F	清空规则链
-L	查看规则链
-A	在规则链的末尾加入新规则
-I	num 在规则链的头部加入新规则
-D	num 删除某一条规则
-s	匹配来源地址 IP/MASK,加叹号“ !”表示除这个IP外
-d	匹配目标地址
-i	网卡名称 匹配从这块网卡流入的数据 入站口
-o	网卡名称 匹配从这块网卡流出的数据 出站口
-p	匹配协议,如tcp,udp,icmp
–dport num	匹配目标端口号
–sport num	匹配来源端口号

4、Iptables流程图

流入本机: A  --->  PREROUTING  --->  INPUT ---> B
流出本机:OUTPUT  --->  POSTROUTING  ---> B
经过本机: A ---> OUTPUT ---> POSTROUTING | ---> PREROUTING ---> FORWARD  ---> POSTROUTING ---> C ---> PREROUTING  ---> INPUT ---> B

filter :  INPUT 、OUTPUT 、FORWARD
nat : PREROUTING 、 OUTPUT、 POSTROUTING
raw : PREROUTING、 OUTPUT
mangle : PREROUTING INPUT FORWARD OUTPUT POSTROUTING

image

posted on 2021-12-24 21:40  耿蜀黍  阅读(178)  评论(0编辑  收藏  举报