iptables详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
iptables的管理选项5-5
常用管理选项汇总
类别
添加新的规则 -I -L -n 查看规则列表 -v --line-numbers -D 删除、清空规则 -F 设置默认策略 -P 清空所有的规则 为指定的链设置默认规则 在链的开头(或指定序号)插入一条规则 列出所有的规则条目 以数字形式显示地址、端口等信息 以更详细的方式显示规则信息 查看规则时,显示规则的序号 删除链内指定序号(或内容)的一条规则
raw:PREROUTING mangle:PREROUTING nat:PREROUTING
路 由 选 择
mangle:FORWARD filter:FORWARD 转发数据流向
mangle:POSTROUTING nat:POSTROUTING
iptables的基本语法2-1
语法构成
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
iptables的表、链结构3-2
规则表
表的作用:容纳各种规则链 表的划分依据:防火墙规则的作用相似 mangle表:为数据包设置标记 nat表:修改数据包中的源、目标IP地址或端口 filter表:确定是否放行该数据包(过滤)
默认包括3个规则表
iptables的表、链结构3-3
netfilter是Linux核心中的一个通用架构,它提供 了一系列的“表”(tables),每个表由若干“链” (chains)组成,而每条链可以由一条或数条“规 则”(rules)组成。实际上,netfilter是表的容器, 表是链的容器,而链又是规则的容器。
1.规则(rules) 规则(rules)其实就是网络管理员预定义的条件, 规则一般的定义为“如果数据包头符合这样的条件,就 这样处理这个数据包”。规则存储在内核空间的信息包 过滤表中,这些规则分别指定了源地址、目的地址、传 输协议(如TCP、UDP、ICMP)和服务类型(如HTTP 、FTP和SMTP)等。当数据包与规则匹配时,iptables 就根据规则所定义的方法来处理这些数据包,如放行( accept)、拒绝(reject)和丢弃(drop)等。配置防火 墙的主要工作就是添加、修改和删除这些规则。
iptables
—— 上述2种称呼都可以表示Linux防火墙
Linux包过滤防火墙概述2-2
包过滤的工作层次
主要是网络层,针对IP数据包 体现在对包内的IP地址、端口等信息的处理上
应用层 传输层 网络层 链路层 外部网络
应用代理 传输层 网络层 链路层 网络层防火墙
应用层 传输层 网络层 链路层 受保护网络
iptables的管理选项5-3
删除、清空规则
-D:删除链内指定序号(或内容)的一条规则 -F:清空所有的规则
[root@localhost ~]# iptables -D INPUT 3 [root@localhost ~]# iptables -n -L INPUT Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 [root@localhost ~]# iptables -F [root@localhost ~]# iptables -t nat -F [root@localhost ~]# iptables -t mangle -F [root@localhost ~]# iptables -t raw -F 清空所有表的所有链
选项、链名、控制类型使用大写字母,其余均为小写
iptables的基本语法2-2
பைடு நூலகம்
数据包的常见控制类型
ACCEPT:允许通过 DROP:直接丢弃,不给出任何回应 REJECT:拒绝通过,必要时会给出提示 LOG:记录日志信息,然后传给下一条规则继续匹配
iptables的管理选项5-1
2.链(chains) 链(chains)是数据包传播的路径,每一条链其实 就是众多规则中的一个检查清单,每一条链中可以有一 条或数条规则。当一个数据包到达一个链时,iptables就 会从链中第一条规则开始检查,看该数据包是否满足规 则所定义的条件。如果满足,系统就会根据该条规则所 定义的方法处理该数据包;否则iptables将继续检查下一 条规则,如果该数据包不符合链中任一条规则,iptables 就会根据该链预先定义的默认策略来处理数据包。 数据包传递过程中,不同的情况下所要遵循的规则组合 形成了链。规则链可以分为以下两种。 ●内置链(Build-in Chains)。 ●用户自定义链(User-Defined Chains)。
添加新的规则
-A:在链的末尾追加一条规则 -I:在链的开头(或指定序号)插入一条规则
[root@localhost ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT [root@localhost ~]# iptables -I INPUT -p udp -j ACCEPT [root@localhost ~]# iptables -I INPUT 2 -p icmp -j ACCEPT -p 用来指定协议
3.表(tables) 表(tables)提供特定的功能,iptables内置了3个表,即 filter表、nat表和mangle表,分别用于实现包过滤,网络地址 转换和包重构的功能。 (1).filter表 主要用于过滤数据包,该表根据系统管理员预定义的一组规 则过滤符合条件的数据包。对于防火墙而言,主要利用在filter 表中指定的规则来实现对数据包的过滤。Filter表是默认的表, 如果没有指定哪个表,iptables就默认使用filter表来执行所有命 令。 (2).nat表 主要用于网络地址转换NAT (3).mangle表 主要用于对指定数据包进行更改
选项
-A 在链的末尾追加一条规则
用途
规则的匹配条件5-2
常见的通用匹配条件
协议匹配:-p 协议名 地址匹配:-s 源地址、-d 目的地址 接口匹配:-i 入站网卡、-o 出站网卡
[root@localhost ~]# iptables -I INPUT -p icmp -j DROP [root@localhost ~]# iptables -A FORWARD -p ! icmp -j ACCEPT [root@localhost ~]# iptables -A FORWARD -s 192.168.1.11 -j REJECT 叹号 ! 表示条件取反 [root@localhost ~]# iptables -I INPUT -s 10.20.30.0/24 -j DROP [root@localhost ~]# iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP [root@localhost ~]# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP [root@localhost ~]# iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP 外网接口
filter 表
第1条规则 第2条规则 第3条规则 ……
INPUT 链
…… FORWARD 链 …… OUTPUT 链
…… FORWARD 链
数据包过滤的匹配流程2-1
规则表之间的顺序
manglenatfilter 入站:PREROUTINGINPUT 出站:OUTPUTPOSTROUTING 转发:PREROUTINGFORWARDPOSTROUTING 按顺序依次检查,匹配即停止(LOG策略例外) 若找不到相匹配的规则,则按该链的默认策略处理
iptables防火墙
iptables的表、链结构 Linux防火墙基础 数据包控制的匹配流程 iptables防火墙(一) 基本语法、控制类型 编写防火墙规则
添加、查看、删除规则
规则的匹配条件
Linux包过滤防火墙概述2-1
netfilter
位于Linux内核中的包过滤功能体系 称为Linux防火墙的“内核态” 位于/sbin/iptables,用来管理防火墙规则的工具 称为Linux防火墙的“用户态”
iptables的管理选项5-2
查看规则列表
-L:列出所有的规则条目 -n:以数字形式显示地址、端口等信息 -v:以更详细的方式显示规则信息 --line-numbers:查看规则时,显示规则的序号
[root@localhost ~]# iptables -L INPUT --line-numbers [root@localhost ~]# iptables -n -L INPUT Chain INPUT (policy ACCEPT) Chain INPUT (policy ACCEPT) num target prot opt source destination -n -L 可合写为 -nL target prot opt source destination 1 ACCEPT udp -- anywhere anywhere ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT icmp -- anywhere anywhere ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 3 REJECT icmp -- anywhere anywhere reject-with icmp-portREJECT icmp -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-portunreachable unreachable 4 ACCEPT tcp -- anywhere anywhere ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
默认的表、链结构示意图
raw 表
…… PREROUTING 链 …… OUTPUT 链
mangle 表
…… PREROUTING 链 …… POSTROUTING 链 …… INPUT 链 …… OUTPUT 链
nat 表
…… PREROUTING 链 …… POSTROUTING 链 …… OUTPUT 链
规则链之间的顺序
规则链内的匹配顺序
数据包过滤的匹配流程2-2
匹配流程示意图
网络A
本机的应用进程
路 由 选 择
网络B
raw:OUTPUT mangle:OUTPUT
入站数据流向
mangle:INPUT filter:INPUT
nat:OUTPUT filter:OUTPUT
出站数据流向
[root@localhost ~]# iptables -t filter -I INPUT -p icmp -j REJECT
几个注意事项
不指定表名时,默认指 filter表 C:\Users\Administrator> ping 192.168.4.254 正在 Ping 192.168.4.254 具有 32 字节的数据: 不指定链名时,默认指表内的所有链 来自 192.168.4.254 的回复: 无法连到端口。 除非设置链的默认策略,否则必须指定匹配条件 来自 192.168.4.254 的回复: 无法连到端口。 阻止ping测试 ……
iptables的管理选项5-4
设置默认策略
-P:为指定的链设置默认规则
[root@localhost ~]# iptables -t filter -P FORWARD DROP [root@localhost ~]# iptables -P OUTPUT ACCEPT 默认策略要么是 ACCEPT、要么是DROP
iptables的表、链结构3-1
规则链
规则的作用:对数据包进行过滤或处理 链的作用:容纳各种防火墙规则 链的分类依据:处理数据包的不同时机
默认包括5种规则链
INPUT:处理入站数据包 OUTPUT:处理出站数据包 FORWARD:处理转发数据包 POSTROUTING链:在进行路由选择后处理数据包 PREROUTING链:在进行路由选择前处理数据包