欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

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

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

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

    -作者xxxx-日期xxxxLinux个人防火墙的设计与实现【精品文档】Linux个人防火墙的设计与实现学生姓名:xxx 指导老师:xxx摘 要 防火墙在配置上能够防止来自“外部”世界未经授权的交互式登录。这大大有助于防止破坏者登录到你网络中的计算机上。本课程设计介绍基于Netfilter/Iptables的包过滤防火墙的实现原理。对Linux系统、TCP/IP的相关知识及Iptables语法做了介绍。详细介绍了Iptables命令的使用举例,通过实例介绍了基于Netfilter/Iptables的包过滤防火墙的配置过程。关键词 网络操作系统;包过滤;Iptables;Netfilter;防火墙Design and Implement The Personal Firewall of LinuxStudent name: YU Ming-yin Advisor:Hou Li-juanAbstract In the configuration on the firewall to prevent from the "external" world of interactive unauthorized login. This will significantly help prevent spoilers to log in to your computer network. Based on the curriculum design, introduced Netfilter / Iptables firewall packet filtering of the realization of the principle. On Linux systems, TCP / IP knowledge and Iptables syntax is introduced. Iptables command described in detail the use of, for example, through an example based on the Netfilter / Iptables firewall's packet filtering configuration process.Key words Network OS; Packet Filter; Iptbles;Netfilter;Firewall1 引 言1.1 课程设计的意义对于因特网上的系统,不管是什么情况,首先我们要明确一点:网络是不安全的。虽然创建一个防火墙并不能保证系统100%安全7,但却是绝对有必要的。防火墙的目的就是将破坏网络安全的人挡在你的网络之外,使你可以顺利完成自己的工作。LINUX是近几年突出的一种操作系统,以其公开的源代码、强大稳定的网络功能和大量的免费资源受到业界的普遍赞扬。LINUX防火墙其实是操作系统本身所自带的一个功能模块。通过安装特定的防火墙内核,LINUX操作系统会对接收到的数据包按一定的策略进行处理。随着Linux系统被越来越多地使用,安全问题成了关键。Linux防火墙技术也在不断的发展,经历了Ipfw、Ipchains等过程。Iptables作为Linux防火墙的新一代继承人,当然也针对骇客不断推陈出新的探测技术拟出一些因应之道,那就是对封包的联机状态,作出更详细的分析,透过这样的分析能对一些可能被骇客利用的弱点加以阻隔,另外也开发出真正的封包改写能力,不需要透过其它程序的协助来仿真网址转译,除此之外,Iptables也获得系统核心的直接支持,不需要像Ipchains那样需要自行重新编译核心。Iptables优越的性能使它取代了Ipchains,成为网络防火墙的主流,而Ipchains并未被淘汰,目前Ipchains已经转型成单机防火墙,在安装新版Linux时,会自动被安装启用,以保护单机上未被使用的通讯端口1。总之,目前大部分国内金融、商业等企业都采用Linux系统,因此在Linux上配置防火墙有极其重要的意义,同时可以学习这一先进的技术与熟悉一个优秀的操作平台。1.2 课程设计的目的本课程设计设主要目的是在Linux操作系统下完成基于Netfilter/Iptables的包过滤防火墙的设计与实现。Internet等网络服务给人们的生活带来极大便利的同时也存在很多隐患,学会基于Netfilter/Iptables的包过滤防火墙的配置就能在一定程度上有效地抵御来自网络上的攻击。通过完成课程设计的过程,学习包过滤防火墙的相关知识,同时也深化对这学期Linux课程的学习。1.3 Linux防火墙的背景知识Linux是一个类UNIX的操作系统5,它是由芬兰赫尔辛基大学的学生Linus Torvalds于1991年创建并在因特网上发布,任何人只要遵守GPL版权,都可以免费使用和修改Linux。实际上,GPL要求的是完全的软件共享,你可从中获利,但你不能占为己有。经过因特网上的千千万万的志愿者对其的不断修改,八年后的今天,Linux已经变得强大无比!特别是去年下半年以来,IBM、Intel、Oracle、Sysbase、Borland,HP,SUN,Corel等商业软件6厂商纷纷表示对Linux进行商业开发和技术支持,更使得Linux的商业价值越来越高。同时Linux将在两个方向发展,即微型设备的嵌入式操作系统和桌面操作系统。IDC预测Linux将成为Windows NT后的第二大操作系统3。Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的UNIX特性,具有多任务、多用户的功能。Linux可在GNU(“不是UNIX”工程的缩写)公共许可权限下免费获得,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows一样,允许我们使用窗口、图标和菜单对系统进行操作。包过滤防火墙用软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能丢弃(DROP)这个包,可能接受(ACCEPT)这个包,也可能执行其它更复杂的动作。Linux因其健壮性、可靠性、灵活性以及好象无限范围的可定制性而在IT界倍受欢迎。Linux具有许多内置的功能,使开发人员可以根据自己的需要定制其工具、行为和外观而无需昂贵的第三方工具。Netfilter/Iptables IP 信息包过滤系统是最新的解决方案,而且也是第一个集成到 Linux内核的解决方案。对于Linux系统管理员、网络管理员以及家庭用户(他们想要根据自己特定的需求来配置防火墙,在防火墙解决方案上节省费用和对IP信息包过滤具有完全控制权)来说,Netfilter/Iptables系统十分理想。Iptables是与最新的2.4.x版本Linux内核集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。Iptables组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易2。Iptables是复杂的,它集成到Linux内核中。用户通过Iptables可以对进出你的计算机的数据包进行过滤。通过Iptables命令设置来把守你的计算机网络-哪些数据允许通过,哪些不能通过,哪些通过的数据进行记录。2 Netfilter/Iptables介绍2.1 配置防火墙的filter表(1)查看本机关于IPTABLES的设置情况rootlocalhost root# iptables -L n(2)清除原有规则 不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter8的所有规则。rootlocalhost root# iptables -F 清除预设表filter中的所有规则链的规则。rootlocalhost root# iptables -X 清除预设表filter中使用者自定链中的规则。(3)设定预设规则rootlocalhost root# iptables -p INPUT DROProotlocalhost root# iptables -p OUTPUT ACCEPTrootlocalhost root# iptables -p FORWARD DROP(4)添加规则首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链。为了能采用远程SSH登陆,我们要开启22端口rootlocalhost root# iptables -A INPUT -p tcp -dport 22 -j ACCEPTrootlocalhost root# iptables -A OUTPUT -p tcp -sport 22 -j ACCEPT如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链:rootlocalhost root# iptables -A OUTPUT -p tcp -sport 80 -j ACCEPT如果做了WEB服务器,开启80端口rootlocalhost root# iptables -A INPUT -p tcp -dport 80 -j ACCEPT如果做了邮件服务器,开启25110端口rootlocalhost root# iptables -A INPUT -p tcp -dport 110 -j ACCEPTrootlocalhost root# iptables -A INPUT -p tcp -dport 25 -j ACCEPT如果做了FTP服务器,开启21端口rootlocalhost root# iptables -A INPUT -p tcp -dport 21 -j ACCEPTrootlocalhost root# iptables -A INPUT -p tcp -dport 20 -j ACCEPT如果做了DNS服务器,开启53端口rootlocalhost root# iptables -A INPUT -p tcp -dport 53 -j ACCEPT2.2 配置防火墙的NAT表(1)查看本机关于NAT的设置情况rootlocalhost root# iptables -t nat L(2) 添加规则添加基本的NAT8地址转换,我们只添加DROP链.因为默认链全是ACCEPT。防止外网用内网IP欺骗roottp sysconfig# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROProottp sysconfig# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROProottp sysconfig# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROPDROP非法连接rootlocalhost root# iptables -A INPUT -m state -state INVALID -j DROProotlocalhost root# iptables -A OUTPUT -m state -state INVALID -j DROProotlocalhost root# iptables-A FORWARD -m state -state INVALID -j DROP允许所有已经建立的和相关的连接rootlocalhost root#iptables-A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPTrootlocalhost root#iptables-A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPTrootlocalhost root# iptables-A OUTPUT -m state -state ESTABLISHED,RELATED -j ACCEPTrootlocalhost root# /etc/rc.d/init.d/iptables save这样就可以写到/etc/sysconfig/iptables文件里,写入后把防火墙重起一下,才能起作用。rootlocalhost root# service iptables restart2.3 Iptables的结构Iptables一般由指定表(table)、指定链(chains)、指定操作命令(command)、指定规则匹配器(matcher)、指定目标动作(target)等构成,如图2.1所示。图2.1 Iptables结构图Iptables的指令结构如图2.2所示。图2.2 Iptables的指令结构图2.4 Iptables的规则要素一条Iptables规则基本上应该包含5个要素:1、指定表(table)2、指定操作命令(command)3、指定链(chains)4、指定规则匹配器(matcher)5、指定目标动作(target)2.5 Iptables工具的调用语法Iptables的语法通常可以简化为下面的形式:Iptables-t tableCMDchainrule-matcher-j target其中:tables为表名,CMD为操作命令,chain为链名,rule-matcher为规则匹配器,target为目标动作。Iptables软件包提供了两个命令分别用于保存和恢复规则集。可以使用下在的命令转储在内存中的内核规则集。其中/etc/sysconfig/Iptables是Iptables守护进程调用的默认规则集文件:#/sbin/Iptables-save > /etc/sysconfig/Iptables 要恢复原来的规则库,需使用命令:#/sbin/Iptables-restore < /etc/sysconfig/Iptables为了使得用Iptables命令配置的规则在下次启动机器时还能被使用,有两种方法:1、使用Iptables的启动脚本实现。Iptables的启动脚/etc/rc.d/init.d/Iptables每次启动时都使用/etc/sysconfig/Iptables所提供的规则进行规则恢复,并可以使用如下的命令保存规则:#service Iptables save2、在自定义脚本中用Iptables命令直接创建规则集。可以直接用Iptables命令编写一个规则脚本,并在启动时执行这个脚本。例如:若规则脚本的文件名为/etc/fw/rules,则可以在启动脚本/etc/rd.d/init.d/rc.local中加入下面的代码:if-x/etc/fw/rules;then/etc/fw/rules;fi;这样,机器每次启动时即可执行该规则脚本。如果使用此种方式,建议使用ntsysv命令关闭系统的Iptables守护进程。2.6 Iptables的优点1、Iptables允许建立状态(stateful)防火墙,就是在内存中保存穿过防火墙的每条连接。这种模式对于有效地配置FTP和DNS以及其它网络服务是必要的。2、Iptables能够过滤TCP标志任意组合报文,还能够过滤MAC地址。3、系统日志比ipchains更容易配置,扩展性也更好。4、对于网络地址转换(Network Address Translation)和透明代理的支持,Netfilter更为强大和易于使用。5、Iptables能够阻止某些DOS攻击,例如SYS洪泛攻击。3 防火墙的配置及操作命令3.1 链的基本操作1、清除所有的规则。通常在开始配置包过滤防火墙之初清除所有的规则,重新开配置,以免原有的规则影响新的设定。使用如下命令9进行:清除预设表filter中所有规则链中的规则:Iptables F清除预设表filter中使用者自定义链中的规则:Iptables X将指定链所有规则的包字节记数器清零:Iptables Z2、设置链的默认策略。一般地,配置链的默认策略有两种方法。(1)允许所有的包,然后再禁止有危险的包通过防火墙。即“没有被拒绝的都允许”。这种方法对于用户而言比较灵活方便,但对系统而言,容易引起严重的安全问题。为此,应该使用如下的初始化命令:#Iptables -P INPUT ACCEPT#Iptables -P OUTPUT ACCEPT#Iptables -P FORWARD ACCEPT(2)禁止所有的包,然后再根据需要的服务允许特定的包通过防火墙。即“没有明确允许的都被拒绝”。这种方法最安全,但不太方便。为了使得系统有足够的安全性,一般采用此种策略进行Iptables防火墙10的配置。为此,应该使用如下的初始化命令:#Iptables -P INPUT DROP#Iptables -P OUTPUT DROP#Iptables -P FORWAED DROP列出表/链中的所有规则。包过滤防火墙只使用filter表,此表为默认的表,因此可以使用下面的命令列出filter表中所有规则:Iptables L使用上面的命令时,Iptables将逆向解析IP地址,这将发费很多时间,从而造成信息出来的非常慢。为了解决这个问题,可以使用下面的带有-n参数的命令(-n参数用于显示数字化的地址和端口):Iptables -L n向链中添加规则。下面的语句用于开放网络接口:#Iptables -A INPUT -i lo -j ACCEPT#Iptables -A OUTPUT -o lo -j ACCEPT#Iptables -A  INPUT -i  eth0 -j ACCEPT#Iptables -A OUTPUT -o eth0 -j ACCEPT#Iptables -A FORWARD -i eth0 -j ACCEPT#Iptables -A FPRWAED -o eth0 -j ACCEPT使用用户自定义链。下面是一个用户自定义链的创建、修改和调用的简单命令序列:#Iptables -N custom#Iptables -A custom -s 0/0 -d 0/0 -p icmp -j DROP#Iptables -A INPUT -s 0/0 -d 0/0 -j custom首先使用带-N参数的Iptables命令新建了一个名为custom的用户定义链。然后使用带-A参数的命令添加了一条用户自定义的堵截规则,该规则丢弃全部的ICMP包。最后向默认的INPUT链加入一条规则,使所有的包都由custom自定义链处理。结果全部的ICMP包都将被丢弃。3.2 设置基本的规则匹配下面举例说明Iptables的基本规则匹配(忽略目标动作):指定协议匹配#Iptables -A INPUT -p tcp匹配指定协议之外的所有协议#Iptables -A INPUT -p !tcp指定地址匹配指定匹配的主机#Iptables -A INPUT -s 192.168.136.3指定匹配的网络#Iptables -A INPUT -s 192.168.136.0/24匹配指定主机之外的地址。#Iptables -A FORWARD -s ! 192.168.136.1匹配指定网络之外的网络#Iptables -A FORWARD -s ! 192.168.136.0/24指定网络接口匹配。指定单一的网络接口匹配。#Iptables -A INPUT -i eth0#Iptables -A FORWARD -o eth0指定同类型的网络接口匹配#Iptables -A FORWARD -o ppp+指定端口匹配指定单一的端口匹配。#Iptables -A INPUT -p tcp-sport www#Iptables -A INPUT -p tcp-sport 80#Iptables -A INPUT -p tcp-sport 53#Iptables -A INPUT -p udp-dport 53匹配指定端口之外的端口。#Iptables -A INPUT -p tcp-dport ! 22匹配指定端口的范围。#Iptables -A INPUT -p tcp-soprt 22:80匹配ICMP端口和ICMP类型。#Iptables -A INPUT -p icmp -icmp-type 8指定ip碎片在TCP/IP通信过程中,每一个网络接口都有一个最大的传输单元(MTU),这个参数定义了可以通过的数据包的最大尺寸。如果一个数据包大于这个参数值时,系统会将其划分成更小的数个数据包(称之为ip碎片)来传输,而接收方则对这些ip碎片9再进行重组以还原整个包。但是在进行包过滤的时候,ip碎片会导致这样一个问题:当系统将大数据包划分成ip碎片传送时,第一个碎片含有完整的包头信息(IP+TCP、UDP和ICMP),但是后续的碎片只有包头的部分信息(如源地址、目的地址)。因此,检查后面的ip碎片的头部(就像有TCP、UDP和ICMP一样)是不可能的。假如有这样一条规则:#Iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.2.100 -dport 80 -j ACCEPT并且这时的FORWARD的策略(policy)为DROP时,系统只会让第一个ip碎片通过,而丢掉其余的ip碎片,因为第一个碎片含有完整的包头11信息,可以满足该规则的条件,而余下的碎片因为包头信息不完整而无法满足规则定义的条件,因而无法通过。可以通过-fragment/-f选项来指定第二个及其以后的ip碎片,以上面的例子为例,我们可以再加上这样一条规则来解决这个问题:#Iptables -A FORWARD -f -s 192.168.1.0/24 -d 192.168.2.100 -j ACCEPT但是需要注意的是,现在已经有许多进行ip碎片攻击的实例(例如向Win98 NT4SP5,6 Win2K发送大量的ip碎片进行DOS攻击),因此允许ip碎片通过是有安全隐患的,对于这一点可以采用Iptables的匹配扩展来进行限制。3.3 设置扩展的规则匹配要获得匹配的简要说明,可以使用如下的命令:#Iptables -m name_of_match help下面举例说明Iptables的扩展规则匹配(忽略目标动作):匹配多个源端口。#Iptables -A INPUT -p tcp -m multiport-source-port 22,53,80,110匹配多个目的端口#Iptables -A INPUT -p tcp -m multiport-destionation-port 22,53,80,110匹配多个端口(无论源源端口还是目的端口)。#Iptables -A INPUT -p tcp -m multiport -port 22,53,80,110指定TCP匹配扩展通过使用-tcp-flags选项可以根据tcp包的标志位进行过滤,该选项后接两个参数:第一个参数为要检查的标志位,可以是SYN、ACK、FIN、URG、PSH的组合,可以用ALL指定所有标志位:第二个参数是标志位值为1的标志#Iptables -A INPUT -p tcp-tcp-flags SYN,FIN,ACK SYN表示SYN、ACK、FIN的标志都要被检查,但是只有设置了SYN的才匹配。#Iptables -A INPUT -p tcp-tcp-flags ALL SYN,ACK表示ALL(SYN,ACK,FIN,RST,URG,PSH)的标志都要被检查,但是只有设置了SYN和ACK的才匹配。选项-syn是以上的一种特殊情况,相当于“-tcp-flags SYN,RST,ACK SYN“的简写。#Iptables -p tc-synlimit速率匹配扩展指定单位时间内允许通过的数据包的个数。单位时间可以是/second、/minute、/hour、/day或使用第一个字母。例如:#Iptables -A INPUT -m limit-limit 300/hour表示限制每小时允许通过300个数据包。指定触发事件的阀值。使用-limit-burst指定触发事件的阀值(默认是5),用来比对瞬间大量数据包的数量。#Iptables -A INPUT -m limit-limit-burst 10上面的例子是用来比对一次同时涌入的封包是否超过10个,超过此上限的包将被直接丢弃。同时指定速率限制和触发阀值。#Iptables -A INPUT -p icmp -m limit-limit 3/m-limit-burst 3假设均匀通过,平均每分钟3个,那么触发阀值burst保持为3个,如果每分钟通过的包的数目小于3,那么触发阀值burst将在每个周期(若每分钟允许通过3个,则周期数为20秒)后加1,但最大值为3。每分钟要通过的包的数量如果超过3,那么触发阀值burst将减掉超出的数值,例如第二分钟有4个包,那么触发阀值burst变成2,同时4个包都可以通过,第三分钟有6个包,则只能通过5个,触发阀值burst将变成0。之后,每分钟如果包数小于等于3,则触发阀值burst将加1,如果每分钟包数大于3,触发阀值burst将逐渐减小最终维持为0。即每分钟所允许的最大包数量为限制速率(本例为3)加上当前的触发阀值burst数。在任何情况下,都可以保证3个包通过,触发阀值burst相当于是允许额外的包数量。基于状态的匹配扩展 每个网络连接包括以下信息:源地址、目的地址、源端口、目的湍口,称为套接字对(socket pairs);协议类型、连接状态(TCP协议)和超时时间等。防火墙把这些信息称为状态(stateful),能够检测每个连接状态的防火墙叫作状态包过滤防火墙。它除了能够完成简单包过滤防火墙的包过滤工作外,还在自己的内存中维护一个跟踪连接状态的表,比简单包过滤防火墙具有更大的安全性。Iptables与ipchains的不同之处在于Iptables可以使用连接状态信息,创建基于包的状态的规则匹配。Iptables -m state-state !state state,state,state其中,state表是一个用逗号分割的列表,用来指定的连接状态可以是如下的4种:NEW:该包想要开始一个连接(重新连接或将连接重定向)。RELATED:该包是属于某个已经建立连接4所建立的新连接。例如:FTP的数据传输连接和控制连接之间就是RELATED关系。ESTABLISHED:该包属于某个已经建立的连接。INVALID:该包不匹配于任何连接,通常这些包会被DROP。例如:在INPUT链添加一条规则,匹配已经建立的连接或由已经建立的连接所建立的新连接。即匹配所有的TCP回应包。#Iptables -A INPUT -m state-state RELATED,ESTABLISHED在INPUTP链添加一条规则,匹配所有从非eth0接口来的连接请求包。#Iptables -A INPUT -m state-state NEW -i ! eth0又如,对于ftp连接可以使用下面的连接跟踪:被动ftp连接模式。#Iptables -A INPUT -p tcp-sport 1024: -dport 1024: -m state-state ESTABLES -j ACCEPT#Iptables -A OUTPUT -p tcp-sport 1024: -dport 1024: -m state-state ESTABLISHED,RELATED -j ACCEPT主动ftp连接模式。#Iptables -A INPUT -p tcp-sport 20 -m state-state ESTABLISHED,RELATED -j ACCEPT -m state-state ESTABLISHED -j ACCEPTToS匹配扩展所有数据包的首部都有一个称为服务类型的专用字段。该字段用于当数据包经过路由器时区分优先顺序。使用ToS字段,可以使用某种类型的数据包优先于其它的数据包。有标记的数据包在路由器中进行不同的处理。设置ToS字段的工作是在网络层进行的。有关ToS的具体工作过程请参专考RFC1349。在数据包中设置ToS字段的主要原因是:对不同类型的数据包加以区分,从而在流量较高的网络上减少网络拥塞。数据包的ToS字段用一个字节表示。此字节的高3位舍弃不用,最低位使用固定值0,因此,有效位共有4个。有效位分别用来控制数据包的最小延时,最大吞吐量,最大可靠度和最小成本。其中最小延时:用于减少数据包从路由到达主机的时间。最大吞吐量:用于提高数据传输量。适用于FTP数据端口,HTTP大文件传输和大量的POP3传输。最大可靠度:用来试图减少数据重传。最小成本:通常只在商业产品中使用。要创建与ToS字段匹配的规则,可以使用下面的语法:Iptables -t tableCMDchain-m tos tos_value -j target,其中tos_value可以是0x02、0x04、0x06、0x08、0x10。3.4 设置目标扩展要获得目标的简要说明,可以使用如下的命令:#Iptables -j name_of_TARGET-help目标扩展由内核模块组成,而且Iptables的一个可选扩展提供了新的命令行选项。在几个扩展是包含在默认netfilter发布中的。1、设置包的ToS值。为了设置数据包的ToS值,需要使用ToS目标扩展。设置ToS的值,只能对FORWARD、OUTPUT和PREROUTING链进行。语法如下:Iptables -t tableCMDchainrule-matcher-j TOS-set-tos tos_value其中tos_value可以是0x02、0x04、0x06、0x08、0x10。2、日志记录,Iptables使用新的目标扩展LOG来实现日志记录。LOG目标用syslogd记录此包并继续传播。LOG目标扩展还可以使用如下的一些参数:log-level-跟踪一个级别名称或数字。合适的名字是debug、info、notice、warning、err、crit、alert和emerg,相当于数字7到0。参考syslog.conf的手册可获取这些级别的说明。默认是warning。log-prefix跟踪一个最多29个字符的字符串,它被写入到log信息的开始处,这样可以方便地使用grep对日志进行过滤。另外,在使用LOG目标扩展的同时,还可以使用limit match,这样可以使记录有用日志的同时确保日志记录不会变得冗长。下面是使用LOG目标扩展的一些例子:#Iptables -A FORWARD -m tcp -p tcp -j LOG#Iptables -A FORWARD -m icmp -p icmp-sport echo-reply -j LOG4 防火墙的设计与实现4.1 网络结构假设内部网有有效的Internet地址。为了将内部网段192.168.136.0/24与Internet隔离,在内部网络和Internet之间使用了包过滤防火墙。防火墙的网接口是eth1(192.168.136.254),防火墙的Internet接口是eth0(192.168.137.254)。加外,内网中有3台服务器对外提供服务,如图4.1所示。分别为:WWW服务器:IP地址为198.168.136.251FTP服务器:IP地址为198.168.136.252E-mail服务器:IP地址为198.168.136.253图4.1 网络拓扑图4.2 防火墙的实现要求1、允许网络接口相连接的网络之间相互通信。2、从网络发往internet的数据包被伪装成IP地址192.168.137.254。3、网络上的任何主机可以使用internet的任何服务(Web,E-mail,Ftp等)。4、拒绝从防火墙的internet接口(eth0)进行的欺骗攻击(即黑客把防火墙作为默认网关,伪装成内部网IP,进入内部网络),并进行日志记录。5、拒绝全部从eth0进入的ICMP通信。6、允许internet用户访问网络中的DNS服务、WEB服务、FTP服务(其它服务禁止如telnet等)。4.3 防火墙的实现原理包过滤器操作的基本过程如下,器工作流程图如图4.2所示:包过滤规则必须被包过滤设备端口存储起来。当包到达端口时,对包报头进行语法分析。大多数包过滤设备只检查IP、TCP、或UDP报头中的字段。包过滤规则已特殊的方式存储。应用于包的规则的顺序与包过滤器规则存储顺序必须相同。若一条规则阻止包传输或接收,则此包不被允许。(1) 若一条规则允许包传输或接收,则此包可以被继续处理。(2) 若包不满足任何一条规则,则此包被阻止。图4.2 包过滤操作流程图数据包在Filter表中的流程图如图4.3所示,数据包的过滤过程如图4.4所示。有数据包进入系统时,系统首先根据路由表决定将数据包发给哪一条链,则可能有3种情况:(1) 如果数据包的目的地址是本机,则系统将数据包送往INPUT链,如果通过规则检查,则该数据包发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢弃。(2) 如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往FORWARD链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢弃。(3) 如果数据包是由本地系统进程产生的,则系统将其送往OUTPUT链,如果通过规则检查,则该包

    注意事项

    本文(Linux个人防火墙的设计与实现.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开