Linux网络防火墙的实现

防火墙作为一种网络或系统之间强制实行访问控制的机制,是确保网络安全的重要手段。针对不同的需求和应用环境,可以量身定制出不同的防火墙系统。防火墙大到可由若干路由器和堡垒主机构成,也可小到仅仅是网络操作系统上一个防火墙软件包所提供的包过滤功能。

在众多网络防火墙产品中,Linux操作系统上的防火墙软件特点显著。首先是Linux操作系统作为一个类Unix网络操作系统,在系统的稳定性、健壮性及价格的低廉性方面都独具优势。更为重要的是,Linux不但本身的源代码完全开放,而且系统包含了建立Internet网络环境所需要的所有服务软件包,如Apache Web服务器、DNS服务器、Mail服务器、Database服务器等。同样,基于Linux的防火墙软件不但具有强大的功能,而且大部分都是开放软件。

随着Internet的飞速发展,安全问题越来越重要。利用Linux构建企业网深受中小企业的青睐,而利用Linux构建企业网的防火墙系统也成为众多中小企业的理想选择。

Linux内核从1.1版本开始,就已经具备包过滤功能。在2.0内核中,开始采用Ipfwadm来操作内核的包过滤规则。到2.2版本时,Linux内核采用了Ipchains来控制内核的包过滤规则。发展到2.4.x时,Ipchains被一个全新的包过滤管理工具Iptables所替代。新发布的 2.6版内核也在安全方面进行了改进。因此,无论拥有哪个版本的Linux内核,无论选择哪个版本的Linux来构建自己的企业网,都可以利用现有的系统构建出一个理想实用的防火墙。

防火墙系统可分为包过滤型、应用级网关(也叫代理服务器型防火墙)和电路级网关三种基本类型。Linux提供的防火墙软件包内置于Linux内核中,是一种基于包过滤型的防火墙实现技术。其中心思想是根据网络层IP包头中的源地址、目的地址及包类型等信息来控制包的流向。更彻底的过滤则是检查包中的源端口、目的端口以及连接状态等信息。

本文主要介绍Linux提供的IPFW、Ipchains、Iptables这三种非常实用的防火墙和具体实现。

IPFW防火墙

IPFW是比较老的Linux内核版本提供的防火墙软件包。该软件包的全称是Ipfwadm。Ipfwadm程序包提供了建立规则的能力,根据这些规则来确定允许什么样的包进出本网络。简单说来,防火墙就是一对开关,一个开关允许包通过,另一个开关禁止包通过。现代防火墙系统一般都会附加审计跟踪、加密认证、地址伪装和VPN等多种功能。作为一个安全开关,防火墙可定义的安全策略有两个:

(1)一切未被允许的都被禁止;

(2)一切未被禁止的都被允许。

显然,策略1的安全性明显高于策略2,但它是以牺牲灵活性和可访问资源为代价来提高安全性的。Ipfwadm系统同样提供IP封装,它允许用户使用Internet上的一个公共IP地址空间。

下面以Red Hat系统为例,说明Linux系统上IPFW防火墙的实现。

在Red Hat系统上(在其它系统上一样)安装Ipfwadm防火墙,需要以root用户登录,然后执行如下命令:

#rpm -ivh /mnt/cdrom/RedHat/RPMS/ Ipfwadm-2.3.0-5.i386.rpm

在安装好Ipfwadm后,就可以交互方式指定Ipfwadm的包过滤规则。过滤规则对每一个进入系统的IP包进行检查,从而决定哪些包允许通过防火墙,哪些包则禁止通过。Ipfwadm命令的一般格式为:

/sbin/ ipfwadm category commands parameters [options]

Ipchains(IP链)和IP伪装

在更新版本的Linux内核中,Ipchains替代Ipfwadm,提供了更为严格的包过滤控制机制。Ipchains提供完整的防火墙功能,包括包过滤、地址伪装、透明代理。

Linux 2.2内核中提供的Ipchains,通过四类防火墙规则列表来提供防火墙规则控制,这些列表称为防火墙链。它们分别是IP input链(IP输入链)、IP output链(IP输出链)、IP forward链(IP转发链)和user defined链(用户定义链)。一个链实际上就是一个规则表。所谓规则,即当被检测的包头符合规则的定义时,就按预先的设定对该包进行某种处理。输入链是指对内连接请求的过滤规则;输出链是对外连接请求的过滤规则;转发链是对内部与外部通信包转发的过滤规则;用户定义链是用户自己定义的规则。

当一个数据包进入Linux防火墙系统时,Linux内核使用输入链决定对这个包的操作;如果这个包不被丢弃,内核则使用转发链来决定是否将这个包转发到某个出口;当这个包到达一个出口被发出前,内核使用输出链最后确定是丢弃该包还是转发该包。在上面的过程中,如果输入链已经决定处理这个包,则核心需要决定下一步包应该发到什么地方,即进行路由。假如此时该数据包是发到另一台主机的,则核心就运用转发链;如果没找到匹配的设置,则这个包就需要进入目标值指定的下一条链,此时目标值有可能是一条用户自定义链,也有可能是一个特定的值。例如:

ACCEPT 允许通过。

DENY 直接丢弃。

REJECT 丢弃并通过ICMP回复通知发送者包被丢弃。

MASQ 通知核心将该包伪装,该值只对转发链和用户自定义链起作用。

REDIRECT 通知核心将包改送到一个本地端口,该值只对输入链和用户自定义链起作用,并且只有UDP和TCP协议才可以使用该值。 RETURE 通知内核将该包跳过所有的规则,直接到达所有链的链尾。

时间: 2024-09-13 21:41:32

Linux网络防火墙的实现的相关文章

实现Linux网络防火墙

防火墙作为一种网络或系统之间强制实行访问控制的机制,是确保网络安全的重要手段.针对不同的需求和应用环境,可以量身定制出不同的防火墙系统.防火墙大到可由若干路由器和堡垒主机构成,也可小到仅仅是网络操作系统上一个防火墙软件包所提供的包过滤功能. 在众多网络防火墙产品中,Linux操作系统上的防火墙软件特点显著.首先是Linux操作系统作为一个类Unix网络操作系统,在系统的稳定性.健壮性及价格的低廉性方面都独具优势.更为重要的是,Linux不但本身的源代码完全开放,而且系统包含了建立Internet

一款Linux的防火墙实例

Astaro Security Linux防火墙用于管理内部网络与外部网络间的数据流量. 管理员可以控制每一个协议, 阻挡或允许对任何一个内部网络.服务器.服务与用户群的访问. 防火墙对所有网上信息 (包头) 以及应用信息 (有效载荷) 进行检查, 以发现并阻挡可疑的数据流量.防火墙被安装在一个单独的标准PC设备中, 并且他必须作为内部网络的唯一出口存在, 这样才能起到安全门卫的作用. 防火墙功能描述: 状态检测包过滤 (Stateful Packet Inspection) Astaro Se

Linux免费防火墙试用手记

作为一个网管,为了保护你的网络,你可以花数万元来对流入流出的信息进行控制,也可以分文不花而达到同样的目的.听起来是不是觉得不太可能?下面就让我们来试一试吧!不试怎么知道行不行呢?24小时在线的宽带Internet连接的优点是显而易见的,它快速.便宜.方便.不过,它潜在的危险相对来说,则不易为人们所注意.事实上,如果没有合适的保护,这种不间断的连接将使你公司的服务器和数据时刻处于危险之中.一个带有防火墙功能的路由器可以有效地消除这些危险.你可以花很多的钱去买一个路由器,也可以把钱省下来,完全使用L

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

摘 要 防火墙是网络安全研究的一个重要内容,数据包捕获是包过滤型防火墙的前提,本文对基于Linux主机的个人防火墙的数据包捕获模块进行了研究,重点论述数据包捕获模块的结构.组成以及功能.首先对信息安全及防火墙的重要性进行论述,并给出防火墙的详细分类:然后分析了基于Linux主机的个人防火墙总体设计及软硬件平台原理,接着论述Linux下的数据包捕获模块结构与原理,并详述其具体实现步骤. 关键词 防火墙 Linux 数据包捕获模块 包过滤 一.防火墙概述 网络防火墙技术是一种用来加强网络之间访问控制

如何制作软盘版的 Linux系统防火墙教程

Linux下的防火墙(firewall)从诞生到现在,防火墙主要经历了四个发展阶段:第一阶段:基于路由器的防火墙;第二阶段用户化的防火墙工具套;第三阶段:建立在通用操作系统上的防火墙;第四阶段:具有安全操作系统的防火墙.目前世界上大多数防火墙供应商提供的都是具有安全操作系统的软硬件结合的防火墙,象着名的NETEYE.NETSCREEN.TALENTIT等.在Linux操作系统上的防火墙软件也很多,有些是商用版本的防火墙,有的则是完全免费和公开源代码的防火墙.大多数Linux教程都提到了如何在Li

软盘版的Linux系统防火墙制作教程

Linux下的防火墙(firewall)从诞生到现在,防火墙主要经历了四个发展阶段:第一阶段:基于路由器的防火墙;第二阶段用户化的防火墙工具套;第三阶段:建立在通用操作系统上的防火墙;第四阶段:具有安全操作系统的防火墙.目前世界上大多数防火墙供应商提供的都是具有安全操作系统的软硬件结合的防火墙,象着名的NETEYE.NETSCREEN.TALENTIT等.在Linux操作系统上的防火墙软件也很多,有些是商用版本的防火墙,有的则是完全免费和公开源代码的防火墙.大多数Linux教程都提到了如何在Li

Linux网络文件系统的数据备份、恢复及同步机制

本文将详细介绍针对该网络文件系统的数据备份.恢复及同步机制在内核的具体实现,给广大系统管理员和研发人员提供技术参考.网络文件系统(NFS)协议是由 Sun MicroSystem 公司在 20 世纪 80 年代为了提供对共享文件的远程访问而设计和实现的,它采用了经典的客户机/服务器模式提供服务.为了达到如同 NFS 协议通过使用 Sun 公司开发的远在本机上使用本地文件系统一样便捷的效果,NFS 通过使用远程过程调用协议(RPC Protocol)来实现运行在一台计算机上的程序来调用在另一台远程

linux系统防火墙iptables命令规则及配置

防火墙概述: 在互联网上我们的主机随时都有被攻击的可能,因此我们需要用到防火墙机制来保护我们互联网上的主机,在我们主机上面,防火墙主要是通过一些规则来限制一些不安全因素的网络信息传输,准确的说,防火墙就是制定一些有顺序的规则,来管理所负责的范围内的主机数据封包的一种机制,通过防火墙我们能够分析和过滤进出主机或者网络的封包数据,从而将一些不安全因素的包隔离开. iptables与netfilter: Linux上的防火墙是由iptables/netfilter组成,iptables是基于netfi

你必须了解的基础的Linux网络命令

摘要:有抱负的 Linux 系统管理员和 Linux 狂热者必须知道的.最重要的.而且基础的 Linux 网络命令合集. 在 It's FOSS 我们并非每天都谈论 Linux 的"命令行方面".基本上,我更专注于 Linux 的桌面端.但你们读者中的一些人在内部调查(仅面向 It's FOSS newsletter 订阅者)中指出,你们也想学些命令行技巧.速查表也受大部分读者所喜欢和支持. 为此,我编辑了一个 Linux 中基础网络命令的列表.它并不是一个教你如何使用这些命令的教程,