`

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系统Iptables规则执行顺序详细讲解

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

    linux ebtables iptables关联图

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

    Linux下使用Iptables配置NAT防火墙

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

    鸟哥的 Linux--架站.rar

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

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

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

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

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

    Linux面试题目

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

    haproxy透明代理配置TPROXY1

    Linux路由查找流程: 在Linux中,路由查找遵循以下顺序: - local表:包含本地接口的路由,优先级最高。 - main表:默认路由表,包含手动添加的静态路由和通过DHCP、RADVD等获取的动态路由。 - default表:如果在...

    Linux教程PPT课件(shell命令、Apache服务器配置、iptables防火墙等等).zip

    Linux具有如下优点: ...Linux引导流程解析; Linux用户及用户组管理; Linux服务与进程管理; Linux文件系统管理; shell命令; Apache服务器配置;; iptables防火墙; gvim编辑器使用; dns域名服务器等等。

    Linux完整教程-学习linux的必备书籍

    3. **Linux安装与启动流程**:学习如何安装Linux操作系统,理解GRUB引导加载器和启动过程。 4. **文件系统与文件管理**:熟悉Linux文件系统的结构,学会使用ls、cd、mkdir、rm、cp、mv等命令进行文件和目录的操作。...

    iptable常用命令

    iptables 是 Linux 中重要的访问控制手段,是俗称的 Linux 防火墙系统的重要组成部分。这里记录了iptables 防火墙规则的一些常用...如果对 iptables 的工作流程不太了解,可以先读读这篇 iptables 工作流程的通俗理解。

    linux葵花宝典-之经典版

    8. **安全与防火墙**:理解Linux的用户权限模型,设置SSH安全,配置iptables或firewalld防火墙,是保障系统安全的基本措施。 9. **Linux内核与模块**:深入学习内核原理,了解如何编译定制内核,以及加载和卸载内核...

    linux环境VNC服务安装、配置

    Linux 环境 VNC 服务安装和配置 Linux 环境中安装和配置 VNC 服务是非常重要的,VNC(Virtual Network Computing)是一种远程桌面协议,允许用户从远程计算机访问 Linux 服务器的桌面环境。在本节中,我们将详细...

    基于WEB的LINUX防火墙管理系统的设计与实现.pdf

    iptables用来管理内核包过滤规则,而netfilter实现包处理和过滤的流程。netfilter/iptables系统提供了命令工具iptables,用于建立和管理防火墙规则和链。 基于netfilter/iptables框架的Linux防火墙实际上就是对...

    鸟哥的Linux 私房菜-基础篇(最新)

    15. **Shell脚本编程**:学习编写简单的Shell脚本,包括变量、条件语句、循环、函数等,实现自动化工作流程。 通过《鸟哥的Linux私房菜-基础篇》的学习,读者能够建立起对Linux系统的全面认识,掌握日常管理和运维...

    iptables原理与实战.pptx

    介绍了iptables的原理与使用方式,希望对大家有用。iptables是一个用来对包过滤规则进行管理的用户态程序; ...基于netfilter框架实现,本质上是linux内核包处理流程中的一系列钩子(hook)函数;

    Linux rpm包制作.docx

    在Linux系统中,RPM(Red Hat Package Manager)是一种广泛使用的软件包管理器,用于安装、升级、查询和卸载软件。...同时,这也为软件的分发和维护提供了标准化的流程,确保了不同环境下的软件一致性。

    linux基础课件

    3. **Linux安装与启动流程**:学习如何在虚拟机或实体机上安装Linux,了解系统的启动过程,包括BIOS、GRUB引导加载器等。 4. **Linux文件系统**:理解Linux文件系统的层次结构,学习目录和文件的管理,如创建、删除...

    上海Linux运维工程师-面试题-个人总结).pdf

    22. **Linux开机流程**:包括BIOS自检、加载GRUB启动器、内核加载、初始化系统、运行init进程、启动服务等步骤。 23. **Cacti安装**:涉及安装依赖、配置网络监控、安装图形界面等步骤。 24. **Cacti与Nagios的...

    linux 2.6 iptable分析

    本文将深入探讨 iptables 在 Linux 2.6.28.10 内核中的实现细节,包括用户空间的处理流程以及内核中的数据结构。 **用户空间的iptables处理流程** 1. **解析命令行参数**:iptables 命令行工具首先解析用户输入的...

Global site tag (gtag.js) - Google Analytics