基于Linux系统的包过滤防火墙(1)(转)

基于Linux系统的包过滤防火墙(1)(转)[@more@]

  第1 章、基于路由器的包过滤防火墙

  1.1 包过滤防火墙的一般概念

  1.1.1 什么是包过滤防火墙

  包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能会决定丢弃(DROP)这个包,可能会接受(ACCEPT)这个包(让这个包通过),也可能执行其它更复杂的动作。

  在Linux系统下,包过滤功能是内建于核心的(作为一个核心模块,或者直接内建),同时还有一些可以运用于数据包之上的技巧,不过最常用的依然是查看包头以决定包的命运。

  1.1.2 包过滤防火墙的工作层次

  包过滤是一种内置于Linux内核路由功能之上的防火墙类型,其防火墙工作在网络层。

  1.1.3 包过滤防火墙的工作原理

  (1)使用过滤器。数据包过滤用在内部主机和外部主机之间,    过滤系统是一台路由器或是一台主机。过滤系统根据过滤规则来决定是否让数据包通过。用于过滤数据包的路由器被称为过滤路由器。

  数据包过滤是通过对数据包的IP头和TCP头或UDP头的检查来实现的,主要信息有:

  * IP源地址

  * IP目标地址

  * 协议(TCP包、UDP包和ICMP包)

  * TCP或UDP包的源端口

  * TCP或UDP包的目标端口

  * ICMP消息类型

  * TCP包头中的ACK位

  * 数据包到达的端口

  * 数据包出去的端口

  在TCP/IP中,存在着一些标准的服务端口号,例如,HTTP的端口号为80。通过屏蔽特定的端口可以禁止特定的服务。包过滤系统可以阻塞内部主机和外部主机或另外一个网络之间的连接,例如,可以阻塞一些被视为是有敌意的或不可信的主机或网络连接到内部网络中。

  (2)过滤器的实现。数据包过滤一般使用过滤路由器来实现,这种路由器与普通的路由器有所不同。

  普通的路由器只检查数据包的目标地址,并选择一个达到目的地址的最佳路径。它处理数据包是以目标地址为基础的,存在着两种可能性:若路由器可以找到一个路径到达目标地址则发送出去;若路由器不知道如何发送数据包则通知数据包的发送者“数据包不可达”。

  过滤路由器会更加仔细地检查数据包,除了决定是否有到达目标地址的路径外,还要决定是否应该发送数据包。“应该与否”是由路由器的过滤策略决定并强行执行的。

  路由器的过滤策略主要有:

  * 拒绝来自某主机或某网段的所有连接。

  * 允许来自某主机或某网段的所有连接。

  * 拒绝来自某主机或某网段的指定端口的连接。

  * 允许来自某主机或某网段的指定端口的连接。

  * 拒绝本地主机或本地网络与其它主机或其它网络的所有连接。

  * 允许本地主机或本地网络与其它主机或其它网络的所有连接。

  * 拒绝本地主机或本地网络与其它主机或其它网络的指定端口的连接。

  * 允许本地主机或本地网络与其它主机或其它网络的指定端口的连接。

  1.1.4 包过滤器操作的基本过程

  下面做个简单的叙述:

  (1)包过滤规则必须被包过滤设备端口存储起来。

  (2)当包到达端口时,对包报头进行语法分析。大多数包过滤设备只检查IP、TCP、或UDP报头中的字段。

  (3)包过滤规则以特殊的方式存储。应用于包的规则的顺序与包过滤器规则存储顺序必须相同。

  (4)若一条规则阻止包传输或接收,则此包便不被允许。

  (5)若一条规则允许包传输或接收,则此包便可以被继续处理。

  (6)若包不满足任何一条规则,则此包便被阻塞。

  1.1.5 包过滤技术的优缺点

  (1)优点:

  →对于一个小型的、不太复杂的站点,包过滤比较容易实现。

  →因为过滤路由器工作在IP层和TCP层,所以处理包的速度比代理服务器快。

  →过滤路由器为用户提供了一种透明的服务,用户不需要改变客户端的任何应用程序,也不需要用户学习任何新的东西。因为过滤路由器工作在IP层和TCP层,而IP层和TCP层与应用层的问题毫不相关。所以,过滤路由器有时也被称为“包过滤网关”或“透明网关”,之所被称为网关,是因为包过滤路由器和传统路由器不同,它涉及到了传输层。

  →过滤路由器在价格上一般比代理服务器便宜。

  (2)缺点:

  →一些包过滤网关不支持有效的用户认证。

  →规则表很快会变得很大而且复杂,规则很难测试。随着表的增大和复杂性的增加,规则结构出现漏洞的可能 性也会增加。

  →这种防火墙最大的缺陷是它依赖一个单一的部件来保护系统。如果这个部件出现了问题,会使得网络大门敞开,而用户其至可能还不知道。

  →在一般情况下,如果外部用户被允许访问内部主机,则它就可以访问内部网上的任何主机。

  →包过滤防火墙只能阻止一种类型的IP欺骗,即外部主机伪装内部主机的IP,对于外部主机伪装外部主机的IP欺骗却不可能阻止,而且它不能防止DNS欺骗。

  虽然,包过滤防火墙有如上所述的缺点,但是在管理良好的小规模网络上,它能够正常的发挥其作用。一般情况下,人们不单独使用包过滤网关,而是将它和其他设备(如堡垒主机等)联合使用。

  1.2 Netfilter/iptables架构

  1.2.1 Linux下的包过滤防火墙管理工具

  从1.1内核开始,Linux系统就已经具有包过滤功能了,随着Linux内核版本的不断升级,Linux下的包过滤系统经历了如下3个阶段:

  → 在2.0的内核中,采用ipfwadm来操作内核包过滤规则。

  → 在2.2的内核中,采用ipchains来控制内核包过滤规则。

  → 在2.4内核中,采用一个全新的内核包过滤管理工具—iptables.

  Linux因其健壮性、可靠性、灵活性以及几乎无限范围的可定制性而在IT界变得非常受欢迎。Linux具有许多内置的能力,使开发人员可以根据自己的需要定制其工具、行为和外观,而无需昂贵的第三方工具。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,所要用到的一种内置能力就是针对网络上Linux系统的防火墙配置。可以在Netfilter/iptables IP信息包过滤系统(它集成在2.4.x版本的Linux内核中)的帮助下运用这种能力。Netfilter/iptables是与最新的2.4.x版本 Linux内核集成的IP信息包过滤系统。

  与ipfwadm和ipchains这样的Linux信息包过滤方案相比,Netfilter/iptables信息包过滤系统是最新的解决方案,使用户更易于理解其工作原理,也具有更为强大的功能。对于Linux系统管理员、网络管理员以及家庭用户(他们想要根据自己特定的需求来配置防火墙、在防火墙解决方案上节省费用和对IP信息包过滤具有完全控制权)来说,Netfilter/iptables系统十分理想,且更容易被使用。

  1.2.2 新一代的Netfilter网络底层架构

  Netfilter是一种内核中用于扩展各种网络服务的结构化底层构架。Netfilter的设计思想是生成一个模块结构使之能够比较容易的扩展。新的特性加入到内核中并不需要重新启动内核。这样,可以通过简单的构造一个内核模块来实现网络新特性的扩展。为底层的网络特性扩展带来了极大的便利,使更多从事网络底层研发的人员能够集中精力实现新的网络特性。

  事实上,我们可以将Netfilter视为网络协议堆栈中可以让其它模块操作网络数据包的一系列“钩子”,在数据包通过协议堆栈的某些特定的点上, Netfilter框架允许一个模块转发或丢弃数据包、通过某种方式改变数据包、在用户空间(非内核模式)对包进行排队,当然也可以根本不去干涉它。

  (1)Netfilter/iptables系统的含义。Linux 2.4内核中Netfilter是新的用来实现防火墙的过滤器。 iptables是用来指定Netfilter规则的用户工具。

  Iptables只是一个管理内核包过滤的工具,它为用户配置防火墙规则提供了方便。

  Iptables可以加入、插入或删除核心包过滤表格(链)中的规则。实际上真正来执行这些规则的netfilter及其相关模块(如iptables模块和nat模块等)。

  因此,要使用Netfilter/iptables系统,必须首先有2.4版本内核的相关支持,同时必须安装iptables软件包。在Red Hat 9.0发行版中,此系统是默认的配置。

  (2)使用Netfilter/iptables替代ipchains的原因:

  →连接跟踪

  →自动碎片重装

  →改良的匹配规则

  →增强的日志功能

  →允许撕裂包中的任何信息

  →用户队列允许用户空间对包进行编程

  →支持内置包转发而舍弃了IPMASQANDM

  (3)Netfilter/iptables系统的主要功能

  →状态包过滤(连接跟踪)

  →各种网络地址翻译

  →灵活、易扩展的急智机制

  →大量的增强型补丁包

  (4)Netfilter/iptables的用途

  →建立Internet防火墙和基于状态的包过滤

  →用NAT和伪装(masquerading)共享上网

  →用NAT实现透明代理

  →用修改IP包头的ToS字段来实现更复杂的功能

  →和tc+iprouter2配合使用可以实现QoS路由

  (5)Netfilter/iptables系统的优点。Netfilter/iptables的最大优点是它可以配置有状态的防火墙,这是 ipfwadm和ipchains等以前的工具都无法提供的一种重要功能。有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。防火墙可以从信息包的连接跟踪状态获得该信息。在决定新的信息包过滤时,防火墙所使用的这些状态信息可以增加其效率和速度。有4种有效状态,名称分别为 ESTABLISHED、INVALID、NEW和RELATED。其中:

  →状态ESTABLISHED指出该信息包属于已建立的连接,该连接一直用于发送和接收信息包并且完全有效。

  →状态INVALID指出该信息包与任何已知的流或连接都不相关联,它可能包含错误的数据或头。

  →状态NEW意味着该项信息包已经或将启动新的连接,或者它与尚味用于发送和接收信息包的连接相关联。

  →状态RELATED表示该信息包正在启动新连接,以及它与已建立的连接相关联。

  Netfilter/iptables的另一个重要优点是,它使用户可以完全控制防火墙配置和信息包过滤。您可以定制自己的规则来懑足您的特定需求,从而只允许您想要的网络流量进入系统。

  此外,Netfilter/iptables是免费的,这对于那些想要节省费用的人来说十分理想,它可以代替昂贵的防火墙解决方案。

  总之,最新的Linux内核2.4.x具有Netfilter/iptables系统这种内置的IP信息包过滤工具,它使配置防火墙和信息包过滤变得便宜且方便。Netfilter/iptables系统使其用户可以完全控制防火墙配置和信息包过滤。它允许为防火墙建立可定制化的规则来控制信息包过滤。它还允许配置有状态的防火墙。

  1.2.3 Netfilter/iptables的内核空间和用户空间

  虽然netfilter/iptables IP信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter和iptables组成。

  (1)内核空间。Netfilter组件也称为内核空间(KernelSpace),是内核的一部分,由一些“表”(table)组成,每个表由若干“链”组成,而每条链中可以有一条或数条规则(rule)。

  (2)用户空间。Iptables组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。

  1.2.4 Netfilter/iptables过滤系统是如何工作的

  Netfilter/iptables IP信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做包过滤决定时所遵循的依据。这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤表中,规则被分组在链(chain)中。

  (1)用户使用iptables命令在用户空间设置过滤规则。通过使用用户空间可以构建用户自己的定制过滤规则,这些规则存储在内核空间的信息包过滤表中。这些规则具有目标,它们告诉内核对来自某些源、前往某些目的地或具有某些协议类型的信息包做些什么。如果某个信息包与规则匹配,那么使用目标 ACCEPT允许该信息包通过。还可以使用目标DROP或REJECT来阻塞并杀死信息包。对于可对信息包执行的其它操作,还有许多其它目标。

  根据规则所处理的信息包的类型,可以将规则分组在链中。

  →处理入站信息包的规则被添加到INPUT链中。

  →处理出站信息包的规则被添加到OUTPUT链中。

  →处理正在转发的信息包的规则被添加到FORWARD链中。

  这3个链是系统默认的表(filter)中内置的3个默认主链。每个链都有一个策略,它定义默认目标,也就是要执行的默认操作,当信息包与链中的任何规则都不匹配时,执行此操作。

  (2)内核空间接管过滤工作。当规则建立并将链放在filter表之后,    就可以开始进行真正的信息包过滤工作了。这时内核空间从用户空间接管工作。

  包过滤工作要经过如下的步骤:

  1)路由。当信息包到达防火墙时,内核先检查信息包的头信息,尤其是信息包的目的地。我们将这个过程称为路由。

  2)根据情况将数据包送往包过滤表(filter)的不同的链。

  →如果信息包源自外界并且数据包的目的地址是本机,而且防火墙是打开的,那么内核将它传递到内核空间信息包过滤表的INPUT链。

  →如果信息包源自系统本机,并且此信息包要前往另一个系统,那么信息包被传递到OUTPUT链。

  →信息包源自广域网前往局域网或相反方向的信息包被传递到FORWARD链。

  3)规则检查。将信息包的头信息与它所传递到的链中的每条规则进行比较,看它是否与某条规则完全匹配。

  →如果信息包与某条规则匹配,那么内核就对该信息包执行由该项规则的目标指定的操作。

  &如果目标为ACCEPT,则允许该信息包通过,并将该包发给相应的本地进程处理。

  &如果目标为DROP或REJECT,则不允许该信息包通过,并将该包阻塞并杀死。

  →如果信息包与这条规则不匹配,那么它将与链中的下一条规则进行比较。

  →最后,如果信息包与链中的任何规则都不匹配,那么内核将参考该链的策略来决定如何处理该信息包。理想的策略应该告诉内核DROP该信息包。

  1.2.5 Red Hat linux 9中的Netfilter/iptables

  Red Hat linux 9使用2.4版本的内核,并且内核的编译选项中包含对Netfilter的支持,同时iptables软件包是被默认安装的,所以可以直接使用。

  另外,为了完成转发功能,必须打开系统内核的IP转发功能。使Linux变成路由器。

  在Red Hat中有两种方法:

  (1)修改内核变量ip_forward

  #echo “1”>;/proc/sys/net/ipv4/ip_forward

  (2)修改脚本/etc/sysconfig/network。

  将FORWARD_IPV4=false

  改为FORWARD_IPV4=true

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-955584/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752019/viewspace-955584/

Linux包过滤防火墙概述 文章目录一、Linux包过滤防火墙概述1.1.netfilter1.2.iptables1.3 包过滤工作层次二、iptables的表、链结构2.1 规则链2.2五链2.3 规则链之间的顺序(重要 )2.4规则链内部各防火墙规则之间的顺序2.5.规则表2.6.四表2.7.规则表之间的顺序(重要)2.8.规则链内的匹配顺序三、使用iptables工具3.1.iptables安装3.2.iptables的基本语法3.3添加新的规则3.4查看规则列表3.5 **设置默认策略**四、规则的匹配条件4.1.匹配类 阅读详情

相关推荐

Linux包过滤防火墙

Linux包过滤防火墙 Netfilter 位于linux内核中的包过滤功能体系 称为linux防火墙的“内核态” Iptables 位于/sbin/iptables,用来管理防火墙规则的工具 称为linux防火墙的“用户态” 包过滤工作层次 主要是网络层,针对IP数据包 体现在针对包内的IP地址,端口等信息的处理上 Iptables的表,链结构 规则链 规则的作用:对数据包进行过滤或处理 链...

橙子的博客 1823

Linux包过滤防火墙的设计与实现

应经做好了的文档,包括文字格式在内都已经设置好,功能全,很详细,可参考

Linux防火墙

一、安全技术和防火墙 1.安全技术 (1)入侵检测系统(Intrusion Detection Systems) 特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署(默默的看着你)方式 (2)入侵防御系统(Intrusion Prevention System) 以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以

lltyyds的博客 4423

基于Linux包过滤防火墙设计与实现

Linux下,基于netfilter框架设计的包过滤防火墙。该防火墙分为用户空间和内核空间两个部分的内容。

TMOS系统之Packet Filters

Packet Filters简介 Packet Filters也称为包过滤器,它在BIG-IP中的作用为数据包过滤器通过指定 BIG-IP ®系统接口是否应根据指定的标准接受或拒绝某些数据包来增强网络安全性。数据包过滤器对传入流量实施访问策略。它们仅适用于传入流量。 可以通过使用 BIG-IP 配置实用程序创建数据包过滤规则来实施数据包过滤。数据包过滤规则的主要目的是定义用户希望 BIG-IP 系统过滤数据包时使用的标准。可以在数据包过滤器规则中指定的条件示例包括: 数据包的源IP地址 .

安余生的博客 952

防火墙技术

1,概述 防火墙(Firewall)是一种将内部网络和外部网络分开的方法,是提供信息安全服务,实现网络信息系统安全的重要基础设施,主要用于限制被保护的内部网络与外部网络之间进行的信息存取及信息传递等操作。 防火墙是一个分离器,一个限制器,也是一个分析器,可有效地监控内部网络和外部网络之间的任何活动,保证内部网络的安全。 防火墙作用是阻断来自外部网络对内部网络的威胁和入侵,提供保护网络安全和审计的第一道关卡。 防火墙是位于被保护网络和外部网络之间执行访问控制策略的一个或一组系统,包括硬件和软件。 防火墙

Ymm的博客 1万+

包过滤防火墙配置和应用

实验目的:在linux系统下,包过滤防火墙配置及其应用。 实验环境:装linux系统环境(一台:配置包过滤防火墙)和安装Windows2003系统环境(一台:作客户端)。其中一台机器(linux系统)的网络名为:wcs.cloud.com;IP为:192.168.100.20,(配置防火墙在这台机器上);另一台机器(Windows系统)的网络名分别为:hh.cloud.com;IP为:192.168.100.55; 实验内容: 在linux系统下,安装iptables组件 设置策略、保存、恢复 ..

lalalalala~~ 3159

基于Linux系统包过滤防火墙

1 章、基于路由器的包过滤防火墙 1.1 包过滤防火墙的一般概念 1.1.1 什么是包过滤防火墙 包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能会决定丢弃(DROP)这个包,可能会接受(ACCEPT)这个包(让这个包通过),也可能执行其它更复杂的动作。 在Linux系统下,包过滤功能是内建于核心的(作为一个核心模块,或者直接内建),同时还有一些可

天行健 2931

Linux个人防火墙的设计与实现()

Linux个人防火墙的设计与实现()[@more@]一、防火墙概述 网络防火墙技术是一种用来加强网络之间访问控制,防止外部网络用户以非法手段通过外部网络进入内部网络,访问内部网络资源,保护内部网络操作环境的特殊网络互联设备。它...

1577

Linux内核防火墙包过滤机制

<br />Linux网络安全防护<br />从Linux Kernel 2.4开始,新的网络包过滤框架Netfilter/Iptables替代了原来的Ipchains/Ipfwadm系统,成为Linux系统新一代的内核级防火墙。作为内核网络协议的一个扩展集,Netfilter可以在内核内部高效地进行包过滤网络地址(NAT)和包重组。对于网络安全防护来讲,主要用到的是Netfilter的包过滤功能,本节也将就这一主题展开描述。<br />1Linux内核防火墙包过滤机制<br />通过包过滤

激情成就梦想--关注移动互联网 2367

Linux 防火墙包过滤基础

防火墙是保护网络安全的关键组件,分为主机防火墙和边界防火墙,采用包过滤、状态检测等技术实现安全防护。Linux防火墙基于netfilter框架,支持有状态/无状态过滤及NAT功能。包过滤规则基于IP/TCP/UDP头部信息,推荐默认拒绝策略(DROP)。入站过滤需重点防范源IP欺骗、非法目标地址,并利用TCP状态检测(如ESTABLISHED状态)阻止外部主动连接。同时应防御端口扫描、禁用源路由选项,通过有序规则构建安全边界。防火墙需与其他安全措施协同工作,状态检测是其核心能力。

2401_82583394的博客 1083

Linux内核--基于Netfilter的内核级包过滤防火墙实现

知识基础:本防火墙的开发基于对Linux内核网络栈有个良好的概念,本人对网络栈的分析是基于早期版本(Linux 1.2.13),在明确了网络栈架构的前提下,上升一步分析高级版本内核中的Netfilter防火墙实现原理,然后进行模块或内核编程,开发一款基于包过滤的个人防火墙包过滤防火墙包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能会决定丢弃

wangpengqi的专栏 3183

linux中的防火墙的基本设置---firewlld、iptables

1 防火墙介绍: 1.1 防火墙的分类 ()包过滤防火墙 数据包过滤(packet Filtering)技术是在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,称为访问控制表(access control lable,ACL)。通过检查数据流中每个数据包的源地址和目的地址,所用的端口号和协议状态等因素,或他们的组合来确定是否允许该数据包通过。 包过滤防火墙的优点是它对用户来说是透明的...

ly2020_的博客 2万+

运维安全03,防火墙包过滤介绍及其作用

防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网 之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。防火墙既可以是一个具体的硬件防火墙,可以是一套软件,即软件防火墙。在网络安全中起着非常重要 的作用。

yyz13862243的博客 1025

Linux包过滤防火墙(SNAT,DNAT)

文章目录一、Linux包过滤防火墙概述二、iptables的表,链结构三、数据包过滤的匹配流程四、iptables的基本语法五、设置默认策略六、数据包的常见类七、规则的匹配条件1、匹配类2、常见的通用匹配条件3、常见的隐含匹配条件4、常用的显式匹配条件 一、Linux包过滤防火墙概述 netfilter 位于Linux内核中的包过滤功能体系 称为Linux防火墙的“内核态” iptables 位于/sbin/iptables,用来管理防火墙规则的工具 称为Linux防火墙的”用户态“ 包过

liuqingyunCSDN的博客 911

Linux系统——防火墙

防火墙 iptables的具体介绍

一坨小橙子的博客 5004
上一篇: 基于Linux系统的包过滤防火墙(3)(转)
下一篇: 基于Linux系统的包过滤防火墙(2)(转)
ciya3282
博客等级 码龄10年 25粉丝 807原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值