Linux下iptables网络防火墙的研究和实现

上传人:re****.1 文档编号:487887871 上传时间:2023-02-01 格式:DOC 页数:40 大小:729.50KB
返回 下载 相关 举报
Linux下iptables网络防火墙的研究和实现_第1页
第1页 / 共40页
Linux下iptables网络防火墙的研究和实现_第2页
第2页 / 共40页
Linux下iptables网络防火墙的研究和实现_第3页
第3页 / 共40页
Linux下iptables网络防火墙的研究和实现_第4页
第4页 / 共40页
Linux下iptables网络防火墙的研究和实现_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《Linux下iptables网络防火墙的研究和实现》由会员分享,可在线阅读,更多相关《Linux下iptables网络防火墙的研究和实现(40页珍藏版)》请在金锄头文库上搜索。

1、摘 要Linux2.4 核中Netfilter/Iptables的出现,为构建Linux 下防火墙提供了很好的平台。Iptables 是在Linux 操作系统下基于2.4之上核版本的集成网络安全工具包。该工具通过编程可以实现多种网络安全功能,如:数据包过滤、状态保持、NAT(Network Address Translation,网络地址转换)以与抵抗攻击等等。本文主要是针对Linux下iptables的的应用进行学习与研究,结构上可以分为三个部分:Linux防火墙的概述,iptables的的简介以与如何使用iptables来为我们的日常工作所服务。例如在我们的日常工作中的应用到的过滤网址、I

2、P,禁用端口、协议等等。利用iptables这个工具在Linux服务器上实现安全稳定、功能强大的防火墙。目前这也是被企业和高校广泛采用的一种比较成熟的技术。本次毕设课题研究的实验环境均在虚拟机上实现,使用RHEL 4 AS系统和CentOS 4系统。关键词:Linux,防火墙,iptables,规则,过滤目 录第一章 Linux防火墙概述11.1防火墙简介11.2 Linux包过滤防火墙的架构41.3 Linux防火墙的安装、启动和关闭5第二章 iptables简介92.1 iptables的基本概念92.2 iptables数据包的传输过程102.3 激活IP包转发功能11第三章 iptab

3、les的使用133.1 iptables的命令格式133.2 iptables命令的使用15第四章 iptables实现NAT服务214.1 NAT服务概述214.2 利用iptables实现NAT服务23第五章 iptables技巧实例295.1 禁止访问不健康的295.2 禁止某些客户上网295.3 禁止客户使用某些服务305.4 禁止使用ICMP协议305.5 利用字符串匹配过滤视频325.6 利用iptables的定时功能345.7 利用iplimit参数设置最接数35第六章致37参考文献38 / 第一章 Linux防火墙概述1.1防火墙简介1. 防火墙的功能防火墙是位于不同网络(如可

4、信的企业部网和不可信的公共网)或网络安全域之间,对网络进行隔离并实现有条件通信的一系列软件/硬件设备的集合。它通过访问控制机制确定哪些部服务允许外部访问,以与允许哪些外部请求可以访问部服务。其基本功能是分析出入防火墙的数据包,根据IP结合防火墙的规则,来决定是否接收或允许数据包通过。防火墙系统可以由一台路由器,也可以由一台或一组主机组成。它通常被放置在网络入口处,所有外部网络通信数据包都必须经过防火墙,接受防火墙的检查,只有符合安全规则的数据才允许通过。通过使用防火墙可以实现以下功能: 保护部网络中易受攻击的服务。 控制外网之间网络系统的访问。 隐藏部网络的IP地址与结构的细节,提高网络的性。

5、 对网络存取和访问进行监控和审计。 集中管理网的安全性,降低管理成本。2. 防火墙的发展史第一代防火墙第一代防火墙技术几乎与路由器同时出现,采用了包过滤(Packet filter)技术。下图(1-1)表示了防火墙技术的简单发展历史。图1-1第二、三代防火墙1989年,贝尔实验室的Dave Presotto和Howard Trickey推出了第二代防火墙,即电路层防火墙,同时提出了第三代防火墙应用层防火墙(代理防火墙)的初步结构。第四代防火墙1992年,USC信息科学院的BobBraden开发出了基于动态包过滤(Dynamic packet filter)技术的第四代防火墙,后来演变为目前所说

6、的状态监视(Stateful inspection)技术。1994年,以色列的CheckPoint公司开发出了第一个采用这种技术的商业化的产品。第五代防火墙1998年,NAI公司推出了一种自适应代理(Adaptive proxy)技术,并在其产品Gauntlet Firewall for NT中得以实现,给代理类型的防火墙赋予了全新的意义,可以称之为第五代防火墙。3.防火墙的分类根据动作方式的不同,通常把防火墙分为包过滤型和应用级网关两大类。(1)包过滤防火墙(Packet Filter) 包过滤防火墙通常安装在路由器或者安装了网络操作系统的主机上。它在网络层根据配置好的包过滤规则对数据包进行

7、过滤,其工作方式为:包过滤规则存储对应的包过滤设备端口,检查出入该防火墙端口的每一个IP数据和TCP头或UDP头来决定是否允许数据包通过。包过滤防火墙的优点是它对于用户来说是透明的,处理速度快,而且由于工作在网络层和传输层,与应用层无关,因此不用改动客户机和主机上的应用程序,易于安装和维护。缺点是非法访问一旦突破防火墙,即可对主机上的软件和配置漏洞进行攻击。(2)应用级网关(Application-level Gateway) 应用级网关又称代理服务器。它针对特定的网络应用服务协议使用指定的数据过滤逻辑,并在过滤的同时,对数据包进行必要的分析、登记和统计,形成报告,当发现被攻击迹象时会向网络管

8、理员发出警报,并保留攻击痕迹。应用级网关比单一的包过滤更为可靠,而且会详细地记录所有的访问状态信息。其不足之处是访问速度慢,因为它不允许用户直接访问网络,其次应用级网关需要对每一个特定的因特网服务安装相应的代理服务软件,另外也不是所有的因特网应用软件都可以使用代理服务器。 1.2 Linux包过滤防火墙的架构iptables是一个免费的包过滤防火墙,它伴随着核的发展而逐渐演变,大致经历了下面4个阶段: 在1.1核中,采用ipfw来操作核包过滤规则。 在2.0核中,采用ipfwadm来操作核包过滤规则。 在2.2核中,采用ipchains来控制核包过滤规则。 在2.4核中(如Red Hat 9.

9、0、RHEL),采用一个全新的核包过滤管理工具iptables。 iptables只是防火墙与用户之间的接口,真正起到防火墙作用的是Linux核中运行的netfilter。Linux平台下的包过滤防火墙由netfilter组件和iptables组件组成,其中netfilter运行在核态,而iptables运行在用户态,用户通过iptables命令来调用netfilter来实现防火墙的功能。(1)netfilter组件netfilter是Linux核中的一个用于扩展各种网络服务的结构化底层框架。该框架定义了包过滤子系统功能的实现,提供了filter、nat和mangle3个表,默认使用的是fil

10、ter表。每个表中包含有若干条建的链(chains),用户可在表中创建自定义的链。在每条链中,可定义一条或多条过滤规则(rules)。每条规则应指定所要检查的包的特征以与如何处理与这对应的包,这被称为目标(target)。目标值可以是用户自定义的一个链名,也可以是ACCEPT、DROP、REJECT、RETURN等值。(2)iptables组件iptables组件是一个用来指定netfilter规则和管理核包过滤的工具,用户通过它来创建、删除或插入链,并可以在链中插入、删除和修改过滤规则。iptables仅仅是一个包过滤工具,对过滤规则的执行则是通过netfilter和相关的支持模块来实现的。

11、1.3 Linux防火墙的安装、启动和关闭iptables防火墙置于RedHat系统核中,所以它是随系统的安装而自动安装的。可使用如下命令检查是否已安装(如下图):图1-2 检查iptables是否安装安装RHEL 4 AS时系统会提示是否开启防火墙,默认情况下将开启防火墙。由于系统的防火墙功能是使用iptables实现的,因此系统会根据用户的设置在iptables中添加相应的规则。如果在安装时选择禁用防火墙,则在安装完成后可在终端命令窗口中执行“setup”命令将弹出“配置应用程序” 窗口(如下图1-3)。图1-3 “配置应用程序”窗口选择Firewall configuration选项,则

12、会进入防火墙配置窗口如图1-4。图1-4 “防火墙配置”窗口图1-5 “防火墙配置定制”窗口 完成以上配置后,可在终端命令窗口中执行如下命令启动iptables防火墙如图1-6:图1-6 启动iptables防火墙第二章 iptables简介2.1 iptables的基本概念在使用iptables之前我们先要理解规则、链、表这3个概念以与iptables传输数据包的过程。 规则 规则(rules)就是网络管理员预先定义的条件,每条规则的定义方式一般是“如果封包符合这样的条件就这样处理该数包”。 链 链(chains)是数据包传输的路径,每一条链中可以有一条或数条规则。 表 iptables置了

13、filter表、nat表和mangle表用于实现包过滤、网络地址转换和包重构的功能。(1)filter表filter表是iptables默认的表,如果没有指定使用哪个表,iptables默认使用filter表来执行所有的命令。filter表根据系统管理员预定义的一组规则过滤符合条件的数据包。在filter表中只允许对数据包进行接收、丢弃的操作,而无法对数据包进行更改。(2)nat表nat表主要是用于网络地址转换NAT,该表可以实现一对一、一对多、多对多等NAT工作。NAT表包含了PREROUTING链、OUTPUT链和POSTROUTING链。其中PREROUTING链用于处理刚刚进入网络层未

14、进行路由判断的数据包,OUTPUT链用于处理在路由之前本地生成的数据包,POSTROUTING链处理在路由判断之后即将通过网卡发送出去的数据包。(3)mangle表某些特殊应用可能需要改写数据包的一些传输特性,例如更改数据包的TTL和TOS等,mangle表主要用于对指定包的传输特性进行修改。2.2 iptables数据包的传输过程数据包通过iptables的具体流程如图2-1所示。图2-1iptables数据包传输的过程由图可知,当一个数据包进入计算机的网络接口时,数据首先进入POSTROUTING链,然后核根据路由表决定数据包的目标。若数据包的目的地址是本机,则将数据包送往INPUT链进行

15、规则检查,当数据包进入INPUT链后,系统的任何进程都会收到它,本机上运行的程序可以发送该数据包,这些数据包会经过OUTPUT链,再POSTROUTING链发出;若数据包的目的地址不是本机,则检查核是否允许转发,若允许,则将数据包送FORWARD链进行规则检查,若不允许,则丢弃该数据包。若是防火墙主机本地进程产生并准备发出的包,则数据包被送往OUTPUT链进行规则检查。2.3 激活IP包转发功能如果要把Linux配置成网关防火墙,核必须打开IP包转发功能(即路由功能),这样一个数据包才能被送到FORWARD链进行规则检查,否则与防火墙相连的两边的网络是完全隔离的。打开Linux核包转发功能,可使用以下命令来实现 rootlocal # echo “1” /proc/sys/net/ipv4/ip_forward 上述命令只是一次性有效,为了让主机每次开机后都自动激活IP数据包转发功能,可以采用编辑配置文件/etc/sysctl.conf的方法,将其中的语句:net.ipv4.ip_forward=0 更改为net.ipv4.ip_forward=1执行如下命令:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号