IPTABLES简介
- 格式:ppt
- 大小:279.50 KB
- 文档页数:18


iptables 原理
介绍
iptables是一个用于配置Linux内核防火墙的工具。它是在Linux操作系统中实现防火墙功能的重要组件。通过iptables,我们可以定义一系列的规则,来过滤网络数据包并进行转发。本文将深入探讨iptables的原理和工作流程。
iptables 工作原理
iptables的工作原理可以分为三个步骤:输入、处理和输出。当一个数据包进入防火墙时,iptables首先根据一系列的规则进行输入过滤,然后对数据包进行处理,最后再根据规则进行输出过滤。下面将对每个步骤进行详细说明。
输入过滤
输入过滤是iptables的第一步。当一个数据包进入防火墙时,iptables会按照预定义的规则表对数据包进行匹配。规则表是由多个链组成的,每个链包含多条规则。如果数据包与某个规则匹配,那么iptables会根据规则定义的动作来处理数据包,比如允许数据包通过或者丢弃数据包。如果数据包与规则表中的规则都不匹配,那么iptables会根据默认策略来处理数据包。
处理数据包
处理数据包是iptables的第二步。在这一步,iptables会根据规则表中的匹配规则对数据包进行处理。处理过程中,iptables会修改数据包的头部信息,比如源IP地址、目的IP地址、源端口、目的端口等。iptables也可以对数据包进行连接追踪,以便后续的数据包可以根据连接状态进行处理。
输出过滤
输出过滤是iptables的最后一步。当经过处理后的数据包准备离开防火墙时,iptables会在输出链中寻找匹配的规则。如果找到匹配的规则,iptables会根据规则定义的动作来处理数据包。如果没有找到匹配的规则,那么iptables会根据默认策略来处理数据包。 iptables 规则表
iptables规则表由多个链组成,每个链由一系列规则构成。根据数据包的流向和处理过程,iptables定义了几个重要的链,包括INPUT、FORWARD、OUTPUT等。下面将对这些链进行详细介绍。
iptables经典设置
举例:
iptables 使用时的样板
在设定 iptables 的封包过滤规则时,有几个样板的动作,若先熟悉它们,往后就可自行套用,依此类推,很快地,您就可以进入这个天地之中。
观察目前的设定
作法如下∶
iptables -L -n
iptablse -t nat -L -n
定义变数
FW_IP="163.26.197.8"
打开核心 forward 功能
作法如下∶
###-----------------------------------------------------###
# 打开 forward 功能
###-----------------------------------------------------###
echo "1" > /proc/sys/net/ipv4/ip_forward
清除所有的规则
一开始要先清除所有的规则,重新开始,以免旧有的规则影响新的设定。作法如下∶
###-----------------------------------------------------###
# 清除先前的设定
###-----------------------------------------------------###
# 清除预设表 filter 中,所有规则链中的规则
iptables -F
# 清除预设表 filter 中,使用者自订链中的规则
iptables -X
# 清除mangle表中,所有规则链中的规则
iptables -F -t mangle
# 清除mangle表中,使用者自订链中的规则
iptables -t mangle -X
# 清除nat表中,所有规则链中的规则
iptables -F -t nat
# 清除nat表中,使用者自订链中的规则
iptables -t nat -X
选定预设的政策
Iptables规则的应用:
Iptables命令的管理控制选项
-A(append) 在指定链的末尾添加一条新的规则
-I (insert)在指定链中插入一条新规则,为指明插入位置
-D(delete)删除制定链里的某条规则
-R (replace)修改、替换指定链的某条规则,按序号或内容确定要替换的规则
-L (list)列出指定链中所有规则进行查看
-F (flush)清空指定链中的所有规则
-N 新建一条用户自己定义的规则链
-X(delete-chain)删除指定表中用户自己定义的规则链
-P 设置指定链的默认策略
-V 查看iptables命令工具的版本(--version)信息
-v 查看规则列表时显示详细(--verbose)的信息
-h 查看命令帮助信息(--help)
-n 使用数字形式(--number)显示输出结果,如显示主机的ip地址而不是主机名
--line-number 查看规则列表时,同时显示规则在链中的顺序号
Iptables命令的匹配条件选项
Ip地址:
来源地址:—s (source)。
目标地址:—d (destination)。
端口(port):
来源端口:——sport。
目标端口:——dport。
协议:—p。
个服务的端口和协议:
服务名称 协议 端口
Web Tcp 80
ftp Tcp 21,20
ssh tcp 22
Smtp,pop3,imap tcp 110,25,143
dns Tcp,udp 53
增加编号:
Iptablies —L ——line—number 。
添加SNAT规则:
Iptables —t nat —A POSTROUTING —s 内网的网段 —o 防火墙的外网卡 —j
SNAT ——to—source 外网卡的ip地址 。
添加DNAT规则:
iptables -t nat -A PREROUTING -i 防火墙的外网卡 -d 防火墙外网卡的ip地址 -p tcp
iptables经典设置
举例:
iptables 使用时的样板
在设定 iptables 的封包过滤规则时,有几个样板的动作,若先熟悉它们,往后就可自行套用,依此类推,很快地,您就可以进入这个天地之中。
观察目前的设定
作法如下∶
iptables -L -n
iptablse -t nat -L -n
定义变数
FW_IP="163.26.197.8"
打开核心 forward 功能
作法如下∶
###-----------------------------------------------------###
# 打开 forward 功能
###-----------------------------------------------------###
echo "1" > /proc/sys/net/ipv4/ip_forward
清除所有的规则
一开始要先清除所有的规则,重新开始,以免旧有的规则影响新的设定。作法如下∶
###-----------------------------------------------------###
# 清除先前的设定
###-----------------------------------------------------###
# 清除预设表 filter 中,所有规则链中的规则
iptables -F
# 清除预设表 filter 中,使用者自订链中的规则
iptables -X
# 清除mangle表中,所有规则链中的规则
iptables -F -t mangle
# 清除mangle表中,使用者自订链中的规则
iptables -t mangle -X
# 清除nat表中,所有规则链中的规则
iptables -F -t nat
# 清除nat表中,使用者自订链中的规则
iptables -t nat -X
选定预设的政策