`

linux iptables - iptables流程

阅读更多
【基本介绍】
iptables 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

【参数介绍】


1. filter是默认的表,包含input(数据发往本地)forward(数据包通过路由)output(本地生成的数据)
2. nat新的数据包遇到的时候,包含PREROUTING(当数据要进来的时候改变)OUTPUT(改变本地的数据在路径选择前)POSTROUTING(数据要出去的时候改变)
3. mangle专门用来修改数据,包含PREROUTING(改变要进来的数据在路径选择前)OUTPUT(改变本地的数据在路径选择前)FORWARD(改变数据在路径选择的时候)POSTROUTING(改变数据要出去的时候)
4. raw地址转换和数据包的链接跟踪处理,包含PREROUTING(数据包来自任何地方)OUTPUT(本地生成的数据)

【流程】



基本步骤如下:
1. 数据包到达网络接口,比如 eth0。
2. 进入 raw 表的 PREROUTING 链,这个链的作用是赶在连接跟踪之前处理数据包。
3. 如果进行了连接跟踪,在此处理。
4. 进入 mangle 表的 PREROUTING 链,在此可以修改数据包,比如 TOS 等。
5. 进入 nat 表的 PREROUTING 链,可以在此做DNAT,但不要做过滤。
6. 决定路由,看是交给本地主机还是转发给其它主机。

到了这里我们就得分两种不同的情况进行讨论了,一种情况就是数据包要转发给其它主机,这时候它会依次经过:
7. 进入 mangle 表的 FORWARD 链,这里也比较特殊,这是在第一次路由决定之后,在进行最后的路由决定之前,我们仍然可以对数据包进行某些修改。
8. 进入 filter 表的 FORWARD 链,在这里我们可以对所有转发的数据包进行过滤。需要注意的是:经过这里的数据包是转发的,方向是双向的。
9. 进入 mangle 表的 POSTROUTING 链,到这里已经做完了所有的路由决定,但数据包仍然在本地主机,我们还可以进行某些修改。
10. 进入 nat 表的 POSTROUTING 链,在这里一般都是用来做 SNAT ,不要在这里进行过滤。
11. 进入出去的网络接口。完毕。

另一种情况是,数据包就是发给本地主机的,那么它会依次穿过:
7. 进入 mangle 表的 INPUT 链,这里是在路由之后,交由本地主机之前,我们也可以进行一些相应的修改。
8. 进入 filter 表的 INPUT 链,在这里我们可以对流入的所有数据包进行过滤,无论它来自哪个网络接口。
9. 交给本地主机的应用程序进行处理。
10. 处理完毕后进行路由决定,看该往那里发出。
11. 进入 raw 表的 OUTPUT 链,这里是在连接跟踪处理本地的数据包之前。
12. 连接跟踪对本地的数据包进行处理。
13. 进入 mangle 表的 OUTPUT 链,在这里我们可以修改数据包,但不要做过滤。
14. 进入 nat 表的 OUTPUT 链,可以对防火墙自己发出的数据做 NAT 。
15. 再次进行路由决定。
16. 进入 filter 表的 OUTPUT 链,可以对本地出去的数据包进行过滤。
17. 进入 mangle 表的 POSTROUTING 链,同上一种情况的第9步。注意,这里不光对经过防火墙的数据包进行处理,还对防火墙自己产生的数据包进行处理。
18. 进入 nat 表的 POSTROUTING 链,同上一种情况的第10步。
19. 进入出去的网络接口。完毕。

【修改保存】
通过命令行修改的rules,等下次重启iptables的时候就会被丢弃
可以通过/etc/init.d/iptables save 保存

通过配置文件修改的rules,可以restart iptables使之生效

【简单实例】
[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target       prot opt source                 destination        
Chain FORWARD (policy ACCEPT)
target       prot opt source                 destination        
Chain OUTPUT (policy ACCEPT)
target       prot opt source                 destination 
什么规则都没有.

开启80端口.
[root@tp ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
匹配新的链接的时候开启80端口
[root@tp ~]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80-j ACCEPT
允许icmp包通过,也就是允许ping,
[root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT
允许ip的所有访问
[root@tp ~]# iptables -A INPUT -s 0.0.0.0-j ACCEPT

【参考】
http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html
http://blog.chinaunix.net/uid-10915175-id-3381754.html
http://www.cyberciti.biz/faq/rhel-fedorta-linux-iptables-firewall-configuration-tutorial/
http://www.cyberciti.biz/tips/linux-iptables-examples.html
  • 大小: 146.2 KB
  • 大小: 68.1 KB
分享到:
评论

相关推荐

    Linux实战-2小时玩转iptables

    文档提供了iptables工作流程的一个清晰框架图,以便读者理解数据包如何在不同阶段被处理。该图展示了数据包从进入系统到离开系统的整个过程,包括以下几个关键步骤: 1. **PREROUTING** - 在数据包到达目标主机之前...

    centos6 iptables常用操作

    在Linux系统中,`iptables`是一款强大的工具,用于管理网络流量并控制数据包过滤规则。CentOS 6作为一款广泛使用的服务器操作系统,其内置的`iptables`功能可以帮助用户实现网络安全性的提升。本文将详细介绍CentOS ...

    配置 Linux-iptables

    ### 配置 Linux-iptables详解 #### 一、iptables的基本理论 **1. 规则(Rules)** 规则是网络管理员定义的条件集合,用于判断数据包是否符合特定标准。这些规则存储在内核空间的信息包过滤表中,并且包含了各种...

    linux iptables防火墙配置

    ### Linux iptables防火墙配置详解 #### 一、iptables与Linux防火墙的演进 Linux系统自诞生以来,其防火墙功能经历了多个阶段的发展。在2.0版内核时代,包过滤机制由`ipfw`承担,配套的管理工具为`ipfwadm`;到了...

    Linux系统Iptables规则执行顺序详细讲解

    Iptables是采用规则堆栈的方式来进行过滤,当一个封包进入网卡,会先检查Prerouting,然后检查目的IP判断是否需要转送出去,接着就会跳到INPUT或Forward进行过滤,如果封包需转送处理则检查Postrouting,如果是来自...

    linux ebtables iptables关联图

    很强大的linux协议栈ebtables\iptables数据处理流程图

    Linux网络安全讲义Netfilter机制与iptables工具.pdf

    Netfilter机制是Linux操作系统内核中的一个框架,它提供了一种机制,允许内核模块在数据包的处理流程中的特定点插接(hook)点进行操作。Netfilter的主要功能包括数据包过滤、NAT(包括源地址转换和目的地址转换)、...

    Linux Testlink-mantis安装说明

    ### Linux Testlink-mantis安装说明 #### Linux系统安装与配置 **Linux系统版本:** RHEL6 ...这不仅适用于初学者, 对于有一定基础的用户也非常有帮助, 可以帮助他们更好地理解Linux环境下的测试工具部署流程。

    Linux下使用Iptables配置NAT防火墙

    Linux下使用Iptables配置NAT防火墙 分析防火墙技术原理和防火墙类别,结合校园网实际设计使用Linux下的Iptables 防火墙NAT 方案,能够实现NAT和对网络进行用户管理和信息过滤,并能防范一定的网络攻击手段和防病毒 ...

    鸟哥的 Linux--架站.rar

    10. **系统安全与防火墙**:讨论了Linux系统的安全策略,如用户权限最小化、文件权限保护,以及iptables防火墙的配置和规则设定。 《鸟哥的Linux私房菜》这本书以其通俗易懂的语言和丰富的实例,为初学者提供了一条...

    linux-一键部署deployKubernetesv1150

    同时,网络配置也很重要,特别是对于跨主机通信的设置,如iptables规则和端口开放。 6. **部署流程**: - **初始化Master节点**:安装Kubernetes控制平面组件,如kube-apiserver、kube-scheduler、kube-controller...

    iptables语法

    ### iptables语法详解 #### IPFW与Netfilter的数据包传输机制 ##### IPFW数据包传输 IPFW(ipfwadm 和 ipchains)是早期Linux系统中使用的防火墙工具,其核心设计围绕着对数据包进行过滤。在IPFW中,数据包通过三...

    iptables防火墙应用指南

    为了帮助读者更好地理解iptables的工作流程,我们可以通过一张简化的流程图来进行说明: 1. 当数据包进入主机时,首先经过NAT表的PREROUTING链。 2. 然后,如果是发往主机的数据包,会通过FILTER表的INPUT链;如果...

    linux学习-很适合初学者兼管理员常用命令,系统环境的搭建

    1. **系统安装**:Linux有多种发行版,如Ubuntu、CentOS、Fedora等,每种都有自己的安装流程。 2. **网络配置**:包括IP地址、子网掩码、网关等设置,确保系统能正常上网。 3. **用户与权限管理**:理解用户组的概念...

    通过iptables实现端口转发和内网共享上网.docx

    iptables是一个Linux下的优秀的nat+防火墙工具,可以配置灵活强劲的防火墙+nat系统。 首先,需要说明的是,iptables操作的是2.4以上内核的netfilter。因此,需要Linux的内核在2.4以上。其功能与安全性远远比其前辈...

    linux-memo-Linux备忘手册

    4. **网络配置**:了解网络接口的配置(`ifconfig`)、路由规则(`route`)、网络服务(`sshd`, `httpd`等)的管理和防火墙规则(`iptables`)设置。 5. **软件安装与管理**:学习使用包管理器(如`apt`或`yum`)...

    让Linux操作系统NAT服务器支持UpnP

    2. 创建iptables的软链接,以便Linux IGD可以调用iptables命令: ``` cd /usr/sbin ln -s /sbin/iptables ./iptables ``` 3. 启动UPnP服务: ``` upnpd ppp0 eth0 ``` 4. 通过查看系统日志确认UPnP服务是否...

    Linux面试题目

    5. **Linux启动流程**: - BIOS加载硬件信息,读取MBR引导加载器 - 加载操作系统核心,驱动硬件 - `init`程序执行系统初始化脚本 - 启动核心模块 - 执行`/etc/rc.d/rc.local`,启动用户登录程序 - 用户登录后...

    ebtables/iptables interaction on a Linux−based bridge

    本文档旨在探讨在基于Linux的桥接环境中,ebtables与iptables过滤表之间的交互机制。为了实现这种桥接防火墙功能,在2.4.x内核上通常需要对内核源码进行补丁处理。而2.6内核中已经集成了ebtables和br-nf代码,因此...

Global site tag (gtag.js) - Google Analytics