欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOCX文档下载
 

IPTables下防火墙的研究和实现

  • 资源ID:66916139       资源大小:550.35KB        全文页数:33页
  • 资源格式: DOCX        下载积分:26积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要26积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

IPTables下防火墙的研究和实现

Hunan Vocational Institute of Safety Technology设计(论文)题目:IPTables下防火墙的研究与实现32 / 33摘 要计算机网络的迅速发展给人类社会带来了前所未有的飞跃,极大的提高了工作效率,丰富了人们的精神生活,而与此同时也带来了一个日益严峻的问题-网络安全。防火墙作为 一种行之有效的网络安全机制,已经得到广大用户的接受和认同。另一方面,网络应用的日益广泛使得各种不同的应用层协议不断涌现,这些协议在方便使用网络的同时也带了各种问题。例如P2P 协议在有多个用户同时进行下载的情况下会占用大量的网络资源,严重影响 网络的正常服务。因此,如何识别这些协议并在需要的时候对其加以过滤具有很高的实用价值。作者在研究包过滤、代理服务、状态检测等防火墙基本实现技术的基础上,提出一种基于应用层协议过滤的iptables 防火墙解决方案。关键词:Linux;网络安全;防火墙;iptablesABSTRACTWiththerapiddevelopmentofcomputer network,theproblem of network security is becoming increasingly serious. As an effective way to guarantee the safety of network, firewall has been widely accepted and used. In the meantime, the wide use of computer network has result in more and more application protocols been introduced. These protocols make it easy for people to obtain information, but also cause inconvenience. For example, although P2P protocol makes download efficient, network bandwidth will be exhausted quickly if manypeopleuse P2P download simultaneously, which will make network service degrade. Therefore, it is important to identify these protocols and filter them. On the basis of the studies of firewall, such as package filter, application gateway, status inspection, the author introduced a solution of iptables firewall system based on layer7-filter.Keywords: Linux; network security; firewall; iptables; 目 录摘要I第一章 Linux防火墙概述41.1防火墙简介41.1.1 防火墙的功能41.1.2 防火墙的发展史41.1.3 防火墙的分类51.2 Linux 包过滤防火墙的架构61.3 Linux防火墙是安装,启动和关闭7第二章 IPTables 简介92.1 IPTables的基本概念92.2 IPTables数据包的传输过程102.3 激活IP包转发功能10第三章 IPTables的使用123.1 IPTables的基本格式123.2 IPTables命令的使用13第四章IPTables实现NAT功能184.1 NAT服务概念184.2 利用 IPTables服务实现NAT服务19第五章 IPTables技巧实例245.1 禁止访问不健康的245.2 禁止某些客户上网245.3 禁止客户使用某些服务255.4 禁止使用ICMP协议255.5 过滤265.6 利用IPTables的定时功能275.7 利用IPlimit参数设置最接数28结论30参考文献31致32第一章 Linux防火墙概述1.1防火墙简介1.1.1 防火墙的功能防火墙是位于不同网络(如可信的企业部网和不可信的公共网)或网络安全域之间,对网络进行隔离并实现有条件通信的一系列软件/硬件设备的集合。它通过访问控制机制确定哪些部服务允许外部访问,以与允许哪些外部请求可以访问部服务。其基本功能是分析出入防火墙的数据包,根据IP结合防火墙的规则,来决定是否接收或允许数据包通过。防火墙系统可以由一台路由器,也可以由一台或一组主机组成。它通常被放置在网络入口处,所有外部网络通信数据包都必须经过防火墙,接受防火墙的检查,只有符合安全规则的数据才允许通过。通过使用防火墙可以实现以下功能:保护部网络中易受攻击的服务。控制外网之间网络系统的访问。隐藏部网络的IP地址与结构的细节,提高网络的性。对网络存取和访问进行监控和审计。集中管理网的安全性,降低管理成本。1.1.2 防火墙的发展史第一代防火墙第一代防火墙技术几乎与路由器同时出现,采用了包过滤(Packet filter)技术。下图1.1表示了防火墙技术的简单发展历史。图1.1第二、三代防火墙1989年,贝尔实验室的Dave Presotto和Howard Trickey推出了第二代防火墙,即电路层防火墙,同时提出了第三代防火墙应用层防火墙(代理防火墙)的初步结构第四代防火墙1992年,USC信息科学院的BobBraden开发出了基于动态包过滤(Dynamic packet filter)技术的第四代防火墙,后来演变为目前所说的状态监视(Stateful inspection)技术。1994年,以色列的CheckPoint公司开发出了第一个采用这种技术的商业化的产品。第五代防火墙1998年,NAI公司推出了一种自适应代理(Adaptive proxy)技术,并在其产品Gauntlet Firewall for NT中得以实现,给代理类型的防火墙赋予了全新的意义,可以称之为第五代防火墙。1.1.3 防火墙的分类根据动作方式的不同,通常把防火墙分为包过滤型和应用级网关两大类。(1)包过滤防火墙(Packet Filter) 包过滤防火墙通常安装在路由器或者安装了网络操作系统的主机上。它在网络层根据配置好的包过滤规则对数据包进行过滤,其工作方式为:包过滤规则存储对应的包过滤设备端口,检查出入该防火墙端口的每一个IP数据和TCP头或UDP头来决定是否允许数据包通过。包过滤防火墙的优点是它对于用户来说是透明的,处理速度快,而且由于工作在网络层和传输层,与应用层无关,因此不用改动客户机和主机上的应用程序,易于安装和维护。缺点是非法访问一旦突破防火墙,即可对主机上的软件和配置漏洞进行攻击。(2)应用级网关(Application-level Gateway) 应用级网关又称代理服务器。它针对特定的网络应用服务协议使用指定的数据过滤逻辑,并在过滤的同时,对数据包进行必要的分析、登记和统计,形成报告,当发现被攻击迹象时会向网络管理员发出警报,并保留攻击痕迹。应用级网关比单一的包过滤更为可靠,而且会详细地记录所有的访问状态信息。其不足之处是访问速度慢,因为它不允许用户直接访问网络,其次应用级网关需要对每一个特定的因特网服务安装相应的代理服务软件。1.2 Linux 包过滤防火墙的架构IPTables是一个免费的包过滤防火墙,它伴随着核的发展而逐渐演变,大致经历了下面4个阶段: 在1.1核中,采用ipfw来操作核包过滤规则。在2.0核中,采用ipfwadm来操作核包过滤规则。在2.2核中,采用ipchains来控制核包过滤规则。在2.4核中(如Red Hat 9.0、RHEL),采用一个全新的核包过滤管理工具IPTables。 IPTables只是防火墙与用户之间的接口,真正起到防火墙作用的是Linux核中运行的netfilter。Linux平台下的包过滤防火墙由netfilter组件和IPTables组件组成,其中netfilter运行在核态,而IPTables运行在用户态,用户通过IPTables命令来调用netfilter来实现防火墙的功能。(1)netfilter组件netfilter是Linux核中的一个用于扩展各种网络服务的结构化底层框架。该框架定义了包过滤子系统功能的实现,提供了filter、nat和mangle3个表,默认使用的是filter表。每个表中包含有若干条建的链(chains),用户可在表中创建自定义的链。在每条链中,可定义一条或多条过滤规则(rules)。每条规则应指定所要检查的包的特征以与如何处理与这对应的包,这被称为目标(target)。目标值可以是用户自定义的一个链名,也可以是ACCEPT、DROP、REJECT、RETURN等值。(2)IPTables组件IPTables组件是一个用来指定netfilter规则和管理核包过滤的工具,用户通过它来创建、删除或插入链,并可以在链中插入、删除和修改过滤规则。IPTables仅仅是一个包过滤工具,对过滤规则的执行则是通过netfilter和相关的支持模块来实现的。1.3 Linux防火墙是安装,启动和关闭IPTables防火墙置于RedHat系统核中,所以它是随系统的安装而自动安装的。可使用如下命令检查是否已安装(如下图):图1.2 检查IPTables是否安装安装RHEL 4 AS时系统会提示是否开启防火墙,默认情况下将开启防火墙。由于系统的防火墙功能是使用IPTables实现的,因此系统会根据用户的设置在IPTables中添加相应的规则。如果在安装时选择禁用防火墙,则在安装完成后可在终端命令窗口中执行“setup”命令将弹出“配置应用程序” 窗口(如下图1-3)。图1.3“配置应用程序”窗口选择Firewall configuration选项,则会进入防火墙配置窗如图1.4图1.4 “防火墙配置”窗口图1.5“防火墙配置定制”窗口 完成以上配置后,可在终端命令窗口中执行如下命令启动IPTables防火墙如图:图1.6 启动IPTables防火墙第二章 IPTables 简介2.1 IPTables的基本概念在使用IPTables之前我们先要理解规则、链、表这3个概念以与IPTables传输数据包的过程。规则 规则(rules)就是网络管理员预先定义的条件,每条规则的定义方式一般是“如果封包符合这样的条件就这样处理该数包”。链 链(chains)是数据包传输的路径,每一条链中可以有一条或数条规则。表 IPTables置了filter表、nat表和mangle表用于实现包过滤、网络地址转换和包重构的功能。(1)filter表filter表是IPTables默认的表,如果没有指定使用哪个表,IPTables默认使用filter表来执行所有的命令。filter表根据系统管理员预定义的一组规则过滤符合条件的数据包。在filter表中只允许对数据包进行接收、丢弃的操作,而无法对数据包进行更改。(2)nat表nat表主要是用于网络地址转换NAT,该表可以实现一对一、一对多、多对多等NAT工作。NAT表包含了PREROUTING链、OUTPUT链和POSTROUTING链。其中PREROUTING链用于处理刚刚进入网络层未进行路由判断的数据包,OUTPUT链用于处理在路由之前本地生成的数据包,POSTROUTING链处理在路由判断之后即将通过网卡发送出去的数据包。(3)mangle表某些特殊应用可能需要改写数据包的一些传输特性,例如更改数据包的TTL和TOS等,mangle表主要用于对指定包的传输特性进行修改。2.2 IPTables数据包的传输过程数据包通过IPTables的具体流程如图2-1所示。图2.1IPTables数据包传输的过程由图可知,当一个数据包进入计算机的网络接口时,数据首先进入POSTROUTING链,然后核根据路由表决定数据包的目标。若数据包的目的地址是本机,则将数据包送往INPUT链进行规则检查,当数据包进入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执行如下命令: rootlocal # sysctl -p即可让系统启动后自动打开核的包转发功能。上述操作也可以通过执行下列命令来实现相应功能:rootlocal # sysctl -w net.ipv4.ip_forward=”1”rootlocal # sysctl -p还可以/etc/sysconfig/network配置文件中,通过以下配置项来开启核的包转发功能:FORWARD_IPV4true第三章 IPTables的使用3.1 IPTables的基本格式IPTables用于创建、维护和检查Linux核的IP包过滤规则,利用该命令可创建、删除或更名链,在链中创建或删除规则,设置链的策略等,功能很强大,用法也比较多,其命令基本格式为:IPTables -t 表名 命令选项 链 匹配选项 操作选项1. 表名选项“-t表名”用来选择要操作的表,表名可以是 filter,nat,mangle三者之一,如该参数缺省则默认为filter表。2. 命令选项命令选项用来指定对链或规则的操作,包括插入、删除、添加规则等。 IPTables的主要命令选项如表3.1所示。表3-1 IPTables的主要命令选项3. 链名选项“链”指定要操作的链名,除使用系统定义的链名外,用户也可自定义链名。4. 匹配选项匹配选项指定数据包与规则匹配所应具有的特征,包括源地址、目的地址、传输协议和端口号等。主要的匹配选项如表3.2所示。表3-2 IPTables的主要匹配选项5. 操作选项操作选项用于指定对匹配过滤规则的数据包所进行的处理。其形式为“-j target/jump”,其中“target”是对包的处理动作,“jump”代表一个用户自定义的链名,用于跳转到该链进行规则检查。对数据常用的处理动作如表3.3所示。3-3 IPTables的主要目标动作选项3.2 IPTables命令的使用1. 对链的操作(1)查看链命令用法:IPTables -L 链命令功能:列出指定表的全部链与其规则例:列出filter表的全部规则链。rootlocal # IPTables -L 若要列出nat表的全部规则链,则操作命令为:rootlocal # IPTables -t nat -L(2)创建新链命令用法:IPTables -N 链名命令功能:以指定的名称创建一个新链例:创建一个名为mychain的新链。rootlocal # IPTables -Nmychain(3)删除链命令用法:IPTables -X 链名命令功能:删除指定的用户自定义链例:删除新建的mychain链。rootlocal # IPTables -Xmychain2. 对规则的操作(1)添加规则 命令用法:IPTables-t 表名 -A 链名匹配选项-j动作 命令功能:向指定链的添加一条规则,该规则将会增加到规则列表的最后一行。 例:向filter表的INPUT链添加一条规则,将来自IP地址为192.168.1.1这台主机的数据包都丢弃。 rootlocal # IPTables -t filter -A INPUT -s 192.168.1.1 -j DROProotlocal # IPTables -t filter -L INPUT(2)插入规则命令用法:IPTables-t 表名 -I 链名规则号匹配选项-j动作 命令功能:在指定的规则号的前面插入一条规则,原规则将自动后移。若未指定规则号,则默认为1,即插入在所有规则的前面。 例:在第3条规则前插入一条规则,其容是禁止192.168.2.0子网段的所有用户访问本机TCP协议的80端口。rootlocal # IPTables -I INPUT 3 -s 192.168.2.0/24 -p tcp -dport 80 j DROProotlocal # IPTables -L INPUT例:在第4条规则前插入一条规则,拒绝所有主机PING本机。rootlocal # IPTables I INPUT 4 s 0/0p icmp -icmp-type echo-request j DROProotlocal # IPTables -L INPUTChain INPUT (policy ACCEPT)target prot opt source destinationRH-Firewall-1-INPUT all - anywhere anywhereDROP all - 192.168.1.1 anywhereDROP tcp - 192.168.2.0/24 anywhere tcp dpt: DROP icmp - anywhere anywhere icmp echo-requestACCEPT all - 192.168.1.1 anywhere 在该命令中,“-s 0/0”用于指定源地址为所有主机,“-icmp-type”用于指定icmp包的类型,“echo-request”代表ping包。(3)替换规则 命令用法:IPTables-t 表名 -R 链名规则号匹配选项-j动作 命令功能:将指定编号的规则替换为新的规则。 例:将上例中的第3条规则替换为允许192.168.2.0子网段的所有用户访问本机TCP协议的80端口。rootlocal # IPTables -I INPUT 3 -s 192.168.2.0/24 -p tcp -dport80 j ACCEPTrootlocal # IPTables -L INPUT(4)删除规则 命令用法:IPTables-t 表名 -D 链名匹配选项-j动作 或:IPTables-t 表名 -D 链名规则号 命令功能:删除指定的规则或指定编号的规则 例:删除上例中被替换的第3条规则。rootlocal # IPTables -D INPUT -s 192.168.2.0/24 -p tcp -dport 80 -jACCEPT或:rootlocal # IPTables -D INPUT 3(5)设置链的默认策略 命令用法:IPTables -t 表名 -P 链名 目标动作 命令功能:定义指定链的默认策略,即设置所有过滤规则都不满足的数据包的默认处理方式。 例:将INPUT、FORWARD和OUTPUT链的默认策略设置为ACCEPT。rootlocal # IPTables -P INPUT ACCEPTrootlocal # IPTables -P FORWARD ACCEPTrootlocal # IPTables -P OUTPUT ACCEPT(6)清除规则链中的所有规则 在新建规则时往往需要清除原有的规则,以免它们影响新设定的规则。如果规则比较多,一条条删除就会十分麻烦这时可以使用IPTables提供的清除规则选项达到快速删除所有规则的目的。 命令用法:IPTables -t 表名 -F 链名 命令功能:删除指定链中的全部规则,若未指定链,则删除表中所有链中的规则。 例:清除filter表中INPUT链中的全部规则。rootlocal # IPTables -F INPUT(7)归零包计数器 命令用法:IPTables -t 表名 -Z 命令功能:将指定表中的包计数器和流量计数器清零,如不指定表,则默认为filter表。 例:将filter表中的所有包计数器清零。rootlocal # IPTables -Z 若要将nat表中的所有包计数器清零,则实现命令为:rootlocal # IPTables -t nat -Z3. 保存与恢复过滤规则用上述方法所建立的规则会被保存到核中,在重启系统时,会丢失这些规则。所以如果用户将没有错误且有效的规则集添加到数据包过滤表,则时希望在重启系统之后再次使用这些规则,必须将该规则集保存在文件中。其命令为: rootlocal # IPTables-save >/etc/sysconfig/IPTables将数据包过滤表中的所有规则保存到/etc/sysconfig/IPTables脚本文件中以后,无论何时重启系统,都可以使用IPTables-restore命令将规则集从该脚本文件恢复到数据包过滤表。其命令为:rootlal # IPTables-restore </etc/sysconfig/IPTables如果用户希望在每次启动系统时自动恢复该规则集,可以将上面指定的这条命令放到任何一个初始化shell脚本中,或如下的命令来保存规则:rootlocal # service IPTables save第四章IPTables实现NAT功能4.1 NAT服务概念1. 什么是NATNAT(Network Address Translation,网络地址转换)是一个根据RFC1631开发的IETF标准。NAT就是用来将IP报文头中的目的或源私有地址修改成公有地址的一种设备,利用NAT可实现私有地址与公网地址的相互转换。它还可以和防火墙技术结合使用,将特定的IP地址隐藏起来使外部网络无法直接访问部网络的特定主机。2. NAT的工作原理图4.1NAT工作原理NAT的工作原理如图4-1所示。当客户机(192.168.1.2)访问公网上的Web服务器(202.205.11.70)时,客户端会随机选择一个大于1024的端口来与服务器的80端口建立连接,分设客户端使用的端口是1029,则从客户端发出的数据源socket(IP加端口)192.168.1.2:1029,目的socket为202.205.11.70:80。当数据包从eth0进入NAT设备后,NAT对数据包的源socket进行修改,将源IP地址替换为eth1的IP地址,源端口保持不变。若该端口已被占用,则替换使用另一个端口,并将该替换的对应关系保存在NAT表中。经过NAT替换修改后的数据包, 其源socket谈为210.29.160.120:1029,目的socket保持不变,此时的数据包具有了公网IP地址,就可以访问Internet中的Web服务器了。同时,Web服务器的响应数据源socket为202.205.11.70:80,目的socket为210.29.160.120:1029,NAT收到该响应包后,利用NAT表中保存的对应关系,交响应包的目的socket替换修改为192.168.1.2:1029,源socket保持不变,这样Web服务器的响应包就顺利进入网,送达192.168.1.2的客户机了。3. NAT的类型NAT可分为以下3种类型静态SNAT:SNAT使用一个静态的IP地址映射表来替换修改数据包的源地址或源端口。在NAT网关中维护一个静态的地址映射表,用来把私有的IP地址映射到公有的IP地址上去。反向NAT(DNAT):即把外部访问IP地址转换成部IP地址,把部网络提供的服务映射到一个公有的IP地址和端口上供外部网络访问。动态地址NAT(Pooled NAT):使用动态的IP地址映射表来改变数据的源地址或端口。4.2 利用 IPTables服务实现NAT服务1. 利用IPTables实现SNAT服务网络拓扑图如图4-2所示。利用RedHat linux提供的IPTables配置NAT网关,外网网卡为eth1(218.28.21.100),网网卡为eth0(192.168.1.1),所有部网络中的机器全部配置为私有地址192.168.1.0/24段。由于实验环境,我们用ping命令来验证我们的配置是否成功。配置前保证如下:部机器(pc1)RedHat Linux(server)公网机器(pc2)192.168.1.2eth0:218.28.21.100eth1:192.168.1.1218.28.21.200pc1 ping server能通,pc2 ping server能通,但pc1不能ping通pc2。我们的目的就是利用IPTables来配置SNAT,使部转化为处部IP从而可以访问公网的机器。步骤如下:分别为pc1、pc2、server配置IP。图4.2 pc1的网卡配置图4.3pc2的网卡配置图4.4server的双网卡配置编写脚本snat.sh,其容如下;#!/bin/shmodprobe ip_nat_ftpIPTables FIPTables t nat FIPTables P PORWARD ACCEPTIPTables A FORWORD i eth1 d 192.168.1.0/24 p tcp syn j DROPIPTables t nat A POSTROUTING s 192.168.1.0/24 o eth1 j SNAT -to-source 218.28.21.100设置脚本snat.sh具有可执行权限,使配置生效。、rootlocal #chmod 755 snat.shrootlocal #./snat.sh测试SNAT的功能。我们用ping命令来测试结果如图。图4.5 用部机器ping公网机器2. 利用IPTables实现DNAT服务DNAT就是改变数据包的目的地址或端口的网络地址转换,它经常用在开放网中特定服务的情况。使外部网来访问部网络的资源。配置网、公网和server的IP同SNAT实验。目的是让公网机器pc2通过80端口来访问部机器pc1。编写脚本dnat.sh,其容如下;#!/bin/shmodprobe ip_conntrack_ftpmodprobe ip_nat_ftpPTables FIPTables t nat FIPTables t nat A PREROUTING i eth1 d 192.168.1.0/24 p tcp syn j DROPIPTables t nat A PREROUTING i eth1 p tcp dport 80 j DNAT to 192.168.1.2:80设置脚本dnat.sh具有可执行权限,使配置生效。rootlocal #chmod 755 dnat.shrootlocal #./dnat.sh测试DNAT的功能。我们在pc2上通过浏览器来访问pc1,如图4.6所示。图4.6第五章 IPTables技巧实例5.1 禁止访问不健康的为了保证本地机器和部网络的安全,可以禁止访问某些不健康的,例:我们禁止用户访问“”这个站点,或禁止“218.28.21.200”这个IP地址,则可以在filter表中的FORWARD链中加入如下规则如图5-1所示。图5.1 禁止访问的站点或IP地址5.2 禁止某些客户上网当要禁止部分用户上网时,我们也可以使用IPTables实现。如我们要禁止218.28.21.100这个用户和192.168.1.0/24这个段的所有用户上网可以在filter表中的FORWARD链中加入如下规则如图5.2所示。图5.2配置规则5.3 禁止客户使用某些服务在实际应用中,经常要禁止用户访问Internet上的某些服务,如web、ftp、ssh等。这个用IPTables也是非常容易实现的。例如,我们要禁192.168.1.0子网里的所有使用ftp服务,则可以在filter表中的FORWARD链中加入如下规则如图5-3所示。图5.3禁止子网的所有用户使用21端口5.4 禁止使用ICMP协议ICMP协议经常被用于发动DOS攻击,所以为了安全起见有是我们要禁用ICMP协议。例如,我们要禁止server去ping192.168.1.2这台机器,同时也让这台机器不能去ping server机,则可以在filter表中的INPUT链中加入如下规则如图5.4所示。图5.4filter表中加入规则图5.5 配置IPTables之后5.5 过滤在日常工作中,有时员工会在上班时间打开视频,这样会大大影响工作带宽。作为网络的管理人员我们就可以利IPTables来做一些安全策略来禁止访问这些视频,在这里我们用字符串匹配来达到这种过滤视频的效果。命令如下:rootlocal # IPTables -A FORWARD  -m string string “ku6.” algo bm -j DROProotlocal # IPTables -A FORWARD  -m string string “tudou.” algo bm -j DROProotlocal # IPTables -A FORWARD  -m string string “ouou.” algo bm -j DROP其中各项参数的意义如下:-m string使用string功能,string是IPTables的一个module,也就是做字符串匹配的。string “xxxx”定义字符串容,可以是URL里任意字符,如果是需要block下载某些类型的文件或请求,这个有很大的发挥空间,可自由想象喔。algo bm设置字符匹配的查询算法,一般默认使用bm算法效果就可以了,另外还可以设置kmp算法,那是一种更复杂的算法,详细容可自行参见高等数学里的资料。(bm = Boyer-Moore, kmp = Knuth-Pratt-Morris)-j DROP设置符合此条件的包的处理方式,DROP即是丢弃,也是reject的意思。其它:我没有设置-p的参数,那么默认就包括所有协议的package处理。如果需要的话,也可以针对性对设置-p tcp或-p udp等等指定协议种类。如果有必要,我想也可以针对这个应用放到对im软件、p2p软件的一些目标的过滤。5.6 利用IPTables的定时功能当公司需要在特定的时间允许上网时,我们同样可以使用IPTables来达到这个目的。例:我们只允许在周一到周五的早上八点到下午六点开放网络,则命令如下:rootlocl# IPTables -A INPUT -m time -timestart 8:00 -timestop 18:00 -days Mon,Tue,Wed,Thu,Fri -j ACCEPT rootlocal# IPTables -list  Chain INPUT (policy ACCEPT) target     prot opt source           destination ACCEPT     all  -  anywhere         anywhere        TIME from 8:0 to 18:0 on Mon,Tue,Wed,Thu,Fri  Supported options for the time match are : -timestart value -> minimum HH:MM -timestop value -> maximum HH:MM -days listofdays -> a list of days to apply, from (case sensitive)  Mon  Tue  Wed  Thu  Fri  Sat  Sun 首先需要说明的是,这里所需要的time参数,在发行版的IPTables里是没有的,只有在extensions里才有,而这些extensions由不同的开发者提供,可以从网上下载安装。5.7 利用IPlimit参数设置最接数1. 下载并安装最新的核源码  kenrel-source-2.4.20-13.7-i386.rpm。  rpm -Uvh kenrel-source-2.4.20-13.7-i386.rpm  2. 进入/usr/include目录,执行以下操作:  root# mv asm asm_old  root# mv linux linux_old  root# mv scsi scsi_old  root#ln -s /usr/src/linux-2.4/include/asm ./asm root#ln -s /usr/src/linux-2.4/include/linux ./linux  root# ln -s /usr/src/linux-2.4/include/scsi ./scsi  3.下载patch-o-matic-20030107.tar.tar并执行以下操作:  root#export KERNEL_DIR="/usr/src/linux-2.4"  root#./runme extra  按提示只需要安装自己想要的那些扩展功能补丁,这里只选择了iplimit。  4. 执行make mrproper用make menuconfig设置核选项,依次进入"Networking options"->"IP: Netfilter Configuration",选择刚才加入的扩展功能,在这里只要把iplimit选定成M模式就可以了。然后:  root#make dep  root#make bzImage  root#make install  root#make modules  root#make modules_install    安装完成,iplimit就可以使用了,例:我们让同一个IP到服务器的SSH的连接数不能超过3个。则命令如下:  root#IPTables -A INPUT -p tcp -dport 22 -syn -m iplimit -iplimit-above 3 -j REJECT  这样,从同一个IP到服务器的SSH的连接就只不能超过3个了。 这个功能如果应用在上限制某些人下载容是很有帮助的,比apache加载连接数限制模块的方法要有效得多。结论 网络技术的发展,动态端口的应用日益增加对防火墙的数据包识别能力提出了新的要求。本文所设计的基于Iptables的Linux防火墙具有使用简单,配置容易,功能强大等特点,可以满足中小型企业网络安全防护功能。若将功能近一步扩展,如添加VPN等功能,即可成为成为具有大型企业级功能的防火墙。参考文献1 .Linux系统与网络管理.:中国铁道出版,2009;p20p22;2 江华.Linux服务器安全策略详解.:电子工业,2009;p202p204.3 陆昌辉,文龙.网络服务器组建、配置和管理Linux篇. :电子工业,2008;p32p34.4 Mark G.Sobell.Red Hat Linux指南基础与系统管理篇. :人民邮电,2008;p108p110.5 鸟哥.鸟哥的Linux私房菜服务器架设篇. :人民邮电,2008;p90p93.6 晓辉,洪彬.Red Hat Linux服务器管理与配置实战详解. :化学工业,2010;p211p212.7 Linux时代:.8 Linux伊甸园:.linuxeden.致本次毕业设计最终得以完成,很感我的同学给我的帮助,一个人的知识是有限的,但两个人的智慧加起来就是无限的。当我遇到不会的地方,我的同学总能和我一起来讨论,在网上找解决的办法,没有你们的帮助,我的毕业设计不能这么顺利的完成,你们!在本次毕业设计的过程中自己也对以前的知识进行了一次重新的梳理,对之前掌握不牢固的知识点又进行了强化练习。同时自己也养成了在网上搜索解决问题方法的习惯,我们本是计算机人就应当要利用好网络来为我们服务。在这里我还要非常感我的指导老师匡老师,您的教学和指导是让我学好的一个最主要原因,您!最后,我祝愿我们所有的同学都能有一个自己喜欢的工作,从而去热爱自己的工作,热爱生活!

注意事项

本文(IPTables下防火墙的研究和实现)为本站会员(xx****m)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!