目录
一、防火墙
1.1 防火墙的分类
按保护范围划分:
-
主机防火墙:服务范围为当前一台主机(input、output链)
-
网络防火墙:服务范围为防火墙一侧的局域网(forward链)
按实现方式划分:
-
硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为, 山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet, Cisco, Checkpoint, NetScreen(Juniper2004年40亿美元收购)等
-
软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront
按网络协议划分:
-
网络层防火墙:OSI模型下四层,又称为包过滤防火墙,通过协议、端口、ip、mac来过滤流量
-
应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层,通过协议、端口、ip、mac、真实数据来过滤流量
1.2 防火墙基本认识
Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中。
Netfilter 是Linux 2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性,提供扩展各种网络服务的结构化底层框架。Netfilter与IP协议栈是无缝契合,并允许对数据报进行过滤、地址转换、处理等操作。
1.3 常见防火墙工具
iptables和firewalld都是工作在用户空间的防护墙工具,CentOS7的默认工具为firewalld
二、防火墙工具——iptable
2.1 四表五链介绍
四个表table:filter、nat、mangle、raw
表的作用:规定了如何处理数据包
filter很常用、nat相对常用filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表,决定了数据是否通过 input output forward
nat:地址转换规则表prerouting、postrouting
mangle:是否标记数据流量,修改数据标记位规则表
raw:是否跟踪数据流量,关闭启用的连接跟踪机制,加快封包穿越防火墙速度
五个链chain:input、output、forward、prerouting、postrouting
链的作用:什么时候处理
input:处理进入主机前的数据
output:处理从主机出来后的数据
forward:处理被本机转发的流量
prerouting:处理路由判断前的数据,不明确发给谁前就处理
postrouting:处理路由判断后的数据,明确给谁后处理
2.2 三种报文流向与iptables表结构
流入本机:PREROUTING --> INPUT-->用户空间进程(访问本机服务,用户空间处理)
流出本机:用户空间进程 -->OUTPUT--> POSTROUTING(穿过本机)
转发:PREROUTING --> FORWARD --> POSTROUTING(分摊流量,内核处理转发)
优先级由高到低的顺序为:
security --> raw --> mangle --> nat --> filter
2.3 通用匹配
iptables --version #检查是否安装iptables
systemctl stop firewalld #先关闭Centos7自带的firewalld
systemctl disable --now firewalld #关闭开启自启
yum install -y iptables iptables-service
systemctl enable --now iptables #开启开机自启
基本语法:
iptables -t 表名 -[A、D、I、R] 链名 -s 源IP地址 -j 处理动作(DROP,ACCEPT,REJECT)
注意:
若不指定 -t 则使用默认表明filter
不指定链名时,默认指表内的所有链
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写
iptables -vnL --line-numbers #查看所有规则及规则序号
序号越靠前的优先级越高
通用匹配选项:
管理选项 | 用法示例 |
---|---|
-A | 在指定链末尾追加一条 iptables -A INPUT (操作) |
-I | 在指定链中插入一条新的,未指定序号默认作为第一条 iptables -I INPUT (操作) |
-i | <