Linux防火墙之介绍

Linux提供了一个非常优秀的防火墙工具,即Netfilter/iptables(http://www.netfilter.org/)。它完全是免费的,并且可以在一台低配置的老机器上很好地运行。Netfilter/iptables功能强大,使用灵活,并且可以对流入和流出的信息进行细化控制。

事实上,每个主要的Linux版本中都有不同的防火墙软件套件,iptables(Netfilter)应用程序被认为是Linux中实现包过滤功能的第4代应用程序。

Netfilter/iptables系统如何工作

Netfilter/iptables IP信息包过滤系统是一种功能强大的工具,可用于添加,编辑和除去规则。这些规则是在决定信息包过滤时防火墙所遵循和组成的,这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤表中,规则被分组放在所谓的链(chain)中。虽然Netfilter/iptables IP信息包过滤系统称为“单个实体”,但它实际上由两个组件即Netfilter和iptables组成。Netfilter组件也称为“内核空间(kernel space)”,是内核的一部分。它由一些信息包过滤表组成,这些表包含了内核用来控制信息包过滤处理的规则集。iptables组件是一种工具,也称为“用户空间(User space)”,它使插入,修改和除去信息包过滤表中的规则变得容易。通过使用用户空间可以构建自己的定制规则,这些规则存储在内核空间的信息包过滤表中。这些规则具有目标,它们告诉内核来自某些源,前往某些目的地或如何处理具有某些协议类型的信息包。如果某个信息包与规则匹配,那么使用目标ACCEPT允许该信息包通过,还可以使用目标DROP或REJECT来阻塞并杀死信息包。对于信息包执行的其他操作,还有许多其他目标。

根据规则所处理的信息包的类型,可以将规则分组在链中。处理入站信息包的规则被添加到INPUT链中;处理出站信息包的规则被添加到OUTPUT链中;处理正在转发的信息包的规则被添加到FORWARD链中,这3个链是基本信息包过滤表中内置的默认主链。另外,还有其他许多可用的链的类型 (如PREROUTING和POSTROUTING),以及用户定义链。每个链都可以有一个策略,它定义“默认目标”,即要执行的默认操作,当信息包与链中的任何规则都不匹配时执行此操作。

建立规则并将链放在适当的位置之后,就可以开始进行真正的信息包过滤工作了,这时内核空间从用户空间接管工作。当信息包到达防火墙时,内核先检查信息包的头信息,尤其是信息包的目的地,这个过程称为“路由”。

如果信息包源自外界并前往系统,而且防火墙是打开的,那么内核将其传递到内核空间信息包过滤表的INPUT链(过滤所有目标地址是本机的数据包----对进入本机数据包的过滤)。如果信息包源自系统内部或系统所连接的内部网上的其他源,并且此信息包要前往另一个外部系统,那么信息包被传递到OUTPUT链(过滤所有本机产生的数据包----对源地址的数据包的过滤)。类似的,源自外部系统并前往内部系统的信息包被传递到FORWARD链(过滤所有路过本机的数据包----源地址和目标地址都不是本机的数据包)。

接下来,将信息包的头信息与其所传递到的链中的每条规则进行比较,看它是否与某条规则完全匹配。如果信息包与某条规则匹配,那么内核就对该信息包执行由该规则的目标指定的操作; 如果信息包与这条规则不匹配,那么它将与链中的下一条规则进行比较。如果信息包与链中的任何规则都不匹配,那么内核将参考该链的策略来决定如何处理该信息包。理想的策略是应该告诉内核丢弃(DROP)该信息包。

分类:RedHat Enterprise Linux 7 时间:2015-05-12 人气:295
本文关键词:
分享到:

相关文章

iOS 开发

Android 开发

Python 开发

JAVA 开发

开发语言

PHP 开发

Ruby 开发

搜索

前端开发

数据库

开发工具

开放平台

Javascript 开发

.NET 开发

云计算

服务器

Copyright (C) codeweblog.com, All Rights Reserved.

CodeWeblog.com 版权所有 闽ICP备15018612号

processed in 0.178 (s). 10 q(s)