CONTENTS
1 Linux防火墙
1.1 防火墙概述
防火墙是整个数据包进入主机前的第一道关卡,是一种应用于网络上的过滤机制。
从保护对象上可分为:主机防火墙、网络防火墙;从物理上可分为:硬件防火墙、软件防火墙;
防火墙主要通过Netfilter与TCP Wrappers两个机制来管理的(主要介绍Netfilter)。
1)Netfilter:数据包过滤机制
2)TCP Wrappers:程序管理机制
关于数据包过滤机制(Netfilter)有两个软件:firewalld与iptables
1.2 netfilter过滤机制
(1)netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
(2)三表五链机制
三表:
- filter #对包进行过滤,即定义允许或者不允许的
- nat #进行地址转换/端口转发
- mangle #对数据包进行修改
实际上还有raw和security表,常用到的只有filter和nat表
raw #一般是为了不再让iptables对数据包进行跟踪,提高性能
security #用于强制访问控制(MAC)网络规则
五链:
INPUT #数据包入口;作用于输入本机的数据包
FORWARD #转发不同网络;作用于与本机无关的数据包
OUTPUT #数据包出口;作用与本机输出的数据包
PREROUTING #路由之前
POSTROUTING #路由之后
1.3 SNAT和DNAT
这边简要提一下SNAT和DNAT,本博客不详细介绍这个功能。
- SNAT 在路由之后 做源地址转换 (postrouting)
- DNAT 在路由之前 做目的地地址转换 (prerouting)
SNAT:
内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,
将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外