iptables
PREROUTING链
…… OUTPUT链
……
PREROUTING链 …… POSTROUTING链 ……
……
PREROUTING 链 …… POSTROUTING 链 …… OUTPUT 链
INPUT 链 ……
FORWARD 链 …… OUTPUT 链
INPUT 链
…… OUTPUT 链
……
6
防火墙的分类
状态检测型防火墙:可以动态地根据实际应用需 求,自动生成或删除包过滤规则 这种防火墙不但能根据数据包的源地址、目标地 址、协议类型、源端口、目标端口等对数据包进 行控制,而且能记录通过防火墙的连接状态,直 接对包里的数据进行处理
7
防火墙的分类
状态检测型防火墙:
8
防火墙体系结构
网关防火墙:
设置规则内容:
-A:在链尾追加一条新的规则 [root@localhost ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT -I:在指定位置(或链首)插入一条新的规则 [root@localhost ~]# iptables -I INPUT -p udp -j ACCEPT
按顺序依次进行检查,找到相匹配的规则即停止 (LOG策略会有例外) 若在该链内找不到相匹配的规则,则按该链的默认策 略处理
18
数据包过滤匹配流程
网络A 本机的应用进程
路 由 选 择
网络B raw:OUTPUT mangle:OUTPUT
入站数据流向
mangle:INPUT filter:INPUT
默认的5种规则链
INPUT:处理入站数据包 OUTPUT:处理出站数据包 FORWARD:处理转发数据包 POSTROUTING链:在进行路由选择后处理数据包 PREROUTING链:在进行路由选择前处理数据包
15
iptables的规则表、链结构
规则表
具有某一类相似用途的防火墙规则,按照不同处理时 机区分到不同的规则链以后,被归置到不同的“表” 中 规则表是规则链的集合
28
隐含条件匹配
TCP标记匹配
使用“--tcp-flags 检查范围 被设置的标记”的形式 如“--tcp-flags SYN,RST,ACK SYN”表示检查SYN、 RST、ACK这3个标记,只有SYN为1时满足条件
[root@localhost ~]# iptables -I INPUT -i eth1 -p tcp - -tcp-flags SYN,RST,ACK SYN -j REJECT [root@localhost ~]# iptables -I INPUT -i eth1 -p tcp - -syn -j REJECT
19
管理和设置iptables规则
iptables命令的语法格式
iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目 标动作或跳转]
几个注意事项
不指定表名时,默认表示filter表 不指定链名时,默认表示该表内所有链 除非设置规则链的缺省策略,否则需要指定匹配条件
20
iptables命令的管理选项
列表查看规则
num target
1 2 3
-L:列表查看各条规则信息 prot opt source destination --line-numbers :查看规则信息时显示规则的行号 ACCEPT udp -- anywhere anywhere -n:以数字形式显示 IP地址、端口等信息 ACCEPT icmp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere -v:显示数据包个数、字节数等详细信息
4
防火墙的分类
代理型防火墙:主要工作在OSI的应用层。代理 服务在确认客户端连接请求有效后接管连接,代 为向服务器发出连接请求 代理型防火墙可以允许或拒绝特定的应用程序或 服务,还可以实施数据流监控、过滤、记录和报 告功能
Internet
防火墙 局域网
5
防火墙的分类
代理服务器通常具有高速缓存功能 代理型防火墙的最大缺点是速度较慢
[root@localhost ~]# iptables -A INPUT -i eth0 -p icmp --icmp-type EchoRequest -j DROP [root@localhost ~]# iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT
-N:创建一条新的规则链 [root@localhost ~]# iptables -t raw -L -X:删除自定义的规则链
Chain PREROUTING (policy ACCEPT)
其他 ……
……
Chain OUTPUT (policy ACCEPT) -h :查看 iptables 命令的使用帮助 Chain TCP_PACKETS (0 references) target prot opt source destination
24
通用条件匹配
协议匹配
使用“-p 协议名”的形式 协议名可使用在“/etc/protocols”文件中定义的名称 常用的协议包括tcp、udp、icmp等
地址匹配
使用“-s ~]# 源地址”、 “-d -p 目标地址”的形式 [root@localhost iptables -I INPUT icmp -j REJECT
系统管理员Ⅲ
配置IPTABLES防火墙
知识要点
Linux防火墙的概念 iptables的规则链 iptables工作流程 iptables的命令语法 iptables的脚本编写 iptables实现SNAT和DNAT ssh端口转发
3
防火墙的分类
包过滤型防火墙:工作在OSI参考模型的网络层 ,它根据数据包头源地址、目的地址、端口号和 协议类型等标志确定是否允许数据包通过
[root@localhost ~]# iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
使用“-i 网络接口名”、 “-o 网络接口名”的形式, [root@localhost ~]# iptables -A FORWARD -o eth1 -d 61.35.4.3 -j DROP 分别对应接收、发送数据包的网络接口
默认的4个规则表
raw表:确定是否对该数据包进行状态跟踪 mangle表:为数据包设置标记 nat表:修改数据包中的源、目标IP地址或端口 filter表:确定是否放行该数据包(过滤)
16
iptables的规则表、链结构
iptables 防火墙默认的规则表、链结构
raw 表 mangle 表 nat 表 filter 表 第1条规则 第2条规则 第3条规则 ……
FORWARD 链
17
数据包过滤匹配流程
规则表间的优先顺序
依次为:raw、mangle、nat、filter
规则链间的匹配顺序
入站数据:PREROUTING、INPUT 出站数据:OUTPUT、POSTROUTING 转发数据:PREROUTING、FORWARD、 POSTROUTING
规则链内的匹配顺序
22
小结
请思考:
iptables包含了哪几个规则表,各自的作用是什么? iptables使用了哪几种规则链,各自的含义是什么? iptables在转发数据包时,经过了哪几个表、哪几种链 内的规则进行匹配? iptables命令的基本语法格式包括哪些组成部分? 设置iptables规则时,若未指定表名,默认对应的是哪 个规则表?
26
阶段实验1
需求描述
配置入站链默认拒绝,其它链都是允许 允许入站接口是本地回环接口的任何数据 允许所有客户机访问Linux服务器的samba共享 允许响应所有客户机的dns请求 只允许一台客户机ping通服务器
27
隐含条件匹配
ICMP类型匹配
使用“--icmp-type ICMP类型”的形式 ICMP类型可以使用类型字符串或者对应的数值,例如 Echo-Request、Echo-Reply
—— 习惯上,上述2种称呼都可以代表Linux防火墙
13
Linux防火墙概述
包过滤防火墙工作在TCP/IP的网络层
客户程序
上层程序
服务程序
应用层
传输层 网络层
应用代理
传输层 网络层
应用层
传输层 网络层
链路层
外部网络
链路层
网络层防火墙
链路层
受保护网络
14
iptables的规则表、链结构
规则链
规则的作用在于对数据包进行过滤或处理,根据处理 时机的不同,各种规则被组织在不同的“链”中 规则链是防火墙规则/策略的集合
21
iptables命令的管理选项
清除规则
-D:删除指定位置或内容的规则 [root@localhost ~]# iptables -D INPUT 2 -F:清空规则链内的所有规则 [root@localhost ~]# iptables -F
[root@localhost ~]# iptables -t nat -F 自定义规则链 [root@localhost ~]# iptables -t raw -N TCP_PACKETS
地址可以是单个 IP地址、网络地址(带掩码长度) [root@localhost ~]# iptables -A FORWARD -p ! icmp -j ACCEPT
[root@localhost 接口匹配 ~]# iptables -A FORWARD -s 192.168.1.11 -j REJECT