文章目录
前言
一、Linux 防火墙基础
1.1、Linux 包过滤防火墙概述
netfilter
位于Linux内核中的包过滤功能体系
称为Linux防火墙的"内核态"
iptables
位于/sbin/iptables,用来管理防火墙规则的工具
称为Linux防火墙的"用户态"
——以上两种称呼都可以表示Linux防火墙
包过滤的工作层次
主要是网络层,针对IP数据包
体现在对包内的IP地址、端口等信息的处理上
1.2、iptables 的表、链结构
iptables的作用是为包过滤机制的实现提供规则,通过不同的规则,告诉netfilter对来自某些源、前往某些目的或具有某些协议特征的数据包应该如何处理。为了更加方便地组织和管理防火墙规则,iptables采用了“表”和“链”的分层结构。
其中,每个规则“表”相当于内核空间的一个容器,根据规则集的不同用途划分为默认的四个表;在每个“表”容器内包括不同的规则“链”,根据处理数据包的不同时机划分为五种链;而决定是否过滤或处理数据包的各种规则,按先后顺序存放在各规则链中。
1.2.1、规则表
规则表
表的作用:容纳各种规则链
表的划分依据:防火墙规则的作用相似
默认包括4个规则表
raw表:确定是否对该数据包进行状态追踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标IP地址或端口
filter表:确定是否放行该数据包(过滤)(核心,默认定义filter表)
1.2.2、规则链
规则链
规则的作用:对数据包进行过滤或处理
链的作用:容纳各种防火墙规则
链的分类依据:处理数据包的不同时机
默认包括5中规则链
INPUT:处理入站数据包(进防火墙的时候就会读这个链)
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING链:在进行路由选择后处理数据包
PREROUTING链:在进行路由选择前处理数据包
1.3、数据包过滤的匹配流程
(1)规则表之间的顺序
raw → mangle → nat → filter
(2)规则链之间的顺序
入站:PREROUTING → INPUT
出站:OUTPUT → POSTROUTING
转发:PREROUTING → FORWARD → POSTROUTING
(3)规则链的匹配顺序
按顺序依次检查,匹配即停止(LOG策略例外)
若找不到相匹配的规则,则按该链的默认策略处理
匹配流程示意图
二、编写防火墙规则
2.1、iptables 安装
关闭firewalld防火墙
CentOS 7默认使用firewalld防火墙,若想使用iptables防火