糖衣炮弹 发表于 2008-5-2 22:13:39

世界顶级防火墙LooknStop的配置详解

一. 难以驯服的烈马:LooknStop


网络防火墙的选择一直是众多用户最头痛的问题,放眼看看现在的防火墙市场,大有群雄逐鹿之势,但是用户并不会因为防火墙产品越来越多而感到欢欣,相反,越来越多人逐渐发现自己已经步入了一个选择的难题:哪一款防火墙产品才是最安全牢固的?

尽管防火墙产品众多,可是用户只希望能迅速找到一款适合自己的产品,于是许多权威测试机构诞生了,如Firewall Leak Tester等,这些测试机构通过各种模拟和真实环境严格测试防火墙产品的各项安全系数,最终统计出一款产品的总体分数。因此,我们才得以迅速根据测评结果选择一款能令人安心的产品。


它就是LooknStop,长期位居FLT测评第一名的产品,而且,它还是瑞士银行用以维护自家安全的防火墙系统,其安全性能可见一斑。


但是,这款强大的产品却极少被发现安装于普通用户的机器上,为什么呢?

某公司职员小李偶然发现了这款产品的介绍,抱着试一试的心态,他给自己的机器安装了一份程序,可是他却没能享受这款顶级防火墙给他带来的安全保护,反而,它给他带来了许多噩梦:BitComet不能用了、浩方上不去了、迅雷和FlashGet成了残疾、魔兽争霸成了死机的代名词……这到底是护人还是赶人?小李看了一些资料,发现这款产品需要设置,于是,他打开了设置界面……然而,在一堆专业术语面前,小李彻底崩溃了。


最终,小李决定放弃LooknStop,改用国产防火墙了。


无可否认,LooknStop是一款优秀产品,它提供了强大而全面的网络保护功能、具备灵活的自定义入侵检测规则、系统资源和文件资源占用都很小,甚至,通过设置规则,LooknStop还可以代替一部分Sniffer功能实现网络数据包监控……

但是LooknStop让用户又痛又爱:要使用它,就必须通过最难的一关:防火墙规则设置。这款强大的产品带来了业界公认最麻烦的规则设置,让许多用户面对它的时候,犹如面对着一匹难以驯服的烈马。

难道LooknStop对一般用户来说,就是那么的可望而不可及吗?



二. 原理篇:规则与通信


以前我们介绍过防火墙的原理,在里面,我提到了“防火墙规则”(Firewall Rules),规则是防火墙的思维,它们其实是一条条描述语句,用于设置防火墙行为等,每一条规则都对应了一种特定的行为判断,防火墙根据规则的内容对符合条件(端口、协议类型、甚至包数据)的数据包给予拦截或通行,当然也可以记录数据。众多的规则结合,防火墙工具才得以给我们带来一个牢固而灵活的安全保护体系。

配置防火墙规则往往是网络管理员最头痛的事情,一个防火墙的工作效率、拦截放行、总体安全系数除了要求防火墙的引擎功能强大以外,就全看规则的设置了,如果防火墙引擎不能识别复杂的数据包结构,那么一些描述复杂的规则就不能正常工作,但是一个防火墙越强大,其相应的规则设置也就更复杂,对这种防火墙而言,一条好的规则就比什么都重要了。

规则并不是随便设置的,它围绕着一定的“安全策略”实施,许多防火墙产品在市场上出售时,就已经有了默认规则,而这些规则就是厂商的“安全策略”的实体对象,许多用户安装或购买一个防火墙产品后,就一直没对这些规则做过修改,或者不知道防火墙规则的存在,但是他们依然能得到防火墙的保护,就是因为厂商已经为广大群体套用了“兼容的”规则集合,换句话说,就是用户在接受一款防火墙产品的时候,就已经得到了厂商为大家定制的“安全策略”。但是这种面对大众的策略并不一定适合每一个人,有时候,一些用户会觉得默认规则不太适合自己的实际环境,他们便会根据自己的要求,修改增加这个规则集合,例如一台网站服务器,使用的防火墙默认规则里限制了外部对1024以下低端口号的访问,这显然就和做网站需要开放80端口的要求冲突了,所以网络管理员会修改防火墙规则,去掉这条限制规则或者从规则里除掉80端口的条件。许多用户并不知道,他们删改或增加规则的行为,其实就是自身“安全策略”的实施过程。

但是在把安全策略转化为规则实体之前,我们还必须慎密的思考一件事情,那就是“安全体系结构”。

所谓“安全体系结构”,就是整个防火墙最终为用户带来的安全效果,安全策略可以是片面的,管理员在思考策略的时候不一定要考虑到整体效果,但是当一条条安全策略作为规则集合出现之前,它就必须先转化为面向整体的“安全体系结构”,这是一种考虑全局的策略集,还是上面的网站服务器例子,管理员需要开放基本的80端口,如果有FTP,还要开放21端口,甚至SSL端口443,这个环境的安全策略则可以描述为以下列表:

1. 开放80端口

2. 开放443端口

3. 开放21端口


但是光有这些还不够,管理员必须保证它与已有的规则集合不会发生冲突以及实际环境中的应用效率,例如,实际生活中,防火墙在开放端口的同时还要对数据进行监控,以防止SYN洪水等,另外还要检查防火墙默认规则集合里有没有与之冲突的描述,如果你增加了一条“开放80端口”的规则,但是规则集合里却存在着“限制所有端口连接”的规则,那么其中一条规则就会失效,管理员的预期设想也就得不到正确实施了。

所以管理员在做好自己的安全策略后,还要检查已有的规则集,删除会导致策略冲突的规则,并可能根据实际应用环境做出策略调整,最后得出最终的安全策略列表,这一步就叫做“安全体系结构”:

1. 开放21、80、443端口

2. 在80端口上设置SYN计数防止DoS攻击

3. 继续阻止其他端口访问,如135、139等

4. 允许ICMP回显

5. 允许管理员能从内部网络远程登录配置服务器

6. 更多规则设置列表……


这些策略列表的集合描述,就是“安全体系结构”的具体形态。

管理员决定了整体的安全体系结构后,就要开始着手实施防火墙规则的修改了,但是在“动”规则之前,还有最后一个注意事项——“规则次序”。

“规则次序”是一个不可忽略的配置部分,因为大部分防火墙产品是顺序读取规则设置的,如果发现了一条匹配的规则,那么下面的其他规则描述则被忽略掉,所以规则的排列次序决定着防火墙的运作情况,管理员在配置规则时必须把属于特殊性质而又不容易与其他现存规则发生冲突的规则放到最前面,最大限度防止防火墙在找到一个特殊规则之前与普通规则相匹配,导致管理员精心设置的安全规则失效。

当所有准备工作就绪后,我们就要开始把方案转化为实体了,这就是防火墙规则设定。

前面说过了,防火墙规则就是一条条用于描述防火墙在遇到什么类型的数据包的时候应该怎么做的命令语句,根据防火墙核心能识别的深度差异,不同防火墙的规则定义也不尽相同,但是基本上都离不开这几个基本参数:数据包方向、数据包地址、范围、协议类型、端口号、标志位(TCP)、包类型和代码(ICMP)、以及满足条件时的防火墙动作(通行、拦截、忽略、记录)等,正是这些参数的各种搭配构筑了最终得以保护用户免遭网络攻击的一条条规则,成为用户的安全体系结构,一款防火墙产品核心能识别的数据类型越多,相对应的规则设定就越复杂,这是一种鱼和熊掌不可兼得的事情,因此,学习防火墙规则设置是每个管理员或专业用户都必要的。

防火墙的性能取决于最终的规则设定,稍有疏错,再强大的核心也只能发挥入门级的防御了。

例如,一个用户在设置防火墙规则时取消了低端口访问限制,却遗忘了139端口可能带来的危害,不久后,该用户机器被入侵者成功连接并种植了后门。、

这种情况下,我们该责怪防火墙,还是责怪用户规则设置得不严密呢?

这是个问题。

同样,LooknStop在为用户带来强大防御功能的同时也带来了规则复杂难以设置的代价,许多用户第一次打开它的规则设定界面时,傻了——包括我在内。

正因为这样,许多用户选择了退而求其次的道路,改用了其他防火墙产品。难道LooknStop就真的那么难以驯服吗?

今天,就让我们一起来驯服这匹上好的烈马。


三. 实战:LooknStop防火墙的规则设置


1.概述

LooknStop 作为一款强大的防火墙,其采用的原型是非常严格的,首先,LooknStop先禁止所有本地和远程的网络访问操作,然后才逐项允许,在初始时不信任任何程序和网络操作,正是因为这过于严厉的策略原型,LooknStop才能成为一堵树立在系统和网络之间的“墙”,而也正是因为这样的模型, LooknStop也造成了一部分用户安装完毕后无法连接网络的问题——它把所有数据包都拦截了。所以我们首先要解决的就是大部分用户面对 LooknStop时吃的第一个下马威:无法连接网络。

LooknStop的主界面并不难理解,从左到右分别为“欢迎”、“应用程序过滤”、“互联网过滤”、“日志”、“选项”和“注册”,欢迎界面主要用于显示一些概要信息如连接状态、IP地址、数据包情况等。

我们先解决第一个燃眉之急:如果你不幸成为安装LooknStop后无法成功进行ADSL拨号的用户,请先进入“互联网过滤”界面,然后双击最后一条规则“All other packets”,它就是罪魁祸首,选择“以太网类型”为IP,保存应用即可。

这一故障是LooknStop默认的严格规则造成的,它把所有未在规则里定义的数据包都过滤了,于是计算机向远程MODEM设备发送的PPPoE协议包全部被扼杀在了系统的门口里……由此可见,与某些防火墙比起来,LooknStop是多么的严格!

解决这个问题后,我们回到正题。


2.基于界面的设置

既然LooknStop的规则如此严格,我们也遵循它的规则,严格依照从左到右的顺序讲解吧:P(老勇不许扔鸡蛋!)

首先是“欢迎”界面,这里是作为快捷数据统计而设的,用户可以在这个界面看到基本的数据流量情况以及网络信息,如果网络已经连通,LooknStop会报告你的计算机IP地址,如果这里为0.0.0.0,则说明没有连接网络或者LooknStop没能检测出活动的连接,用户必须自己到“选项”的“网络接口” 里手工选择一个作为LooknStop的监控对象。


其次,是众多软件防火墙都会提供的“应用程序过滤”功能, LooknStop“不信任任何人”的思想在这里又一次得到了发挥,每个程序第一次启动的时候都会被拦截询问,用户允许通过的程序都在里面列举出来,并且在左边出现一个活动列表,可是即使这样,LooknStop仍然为每个程序列表设置了四个不同性质的可以随时中断该程序访问的按钮,分别为“过滤激活”、 “过滤类型”、“进程调用”、“连接记录”。


在“过滤激活”里可以选择两种状态,分别为“启用”和“禁止”,用于告诉防火墙是否允许该应用程序按照后面的规则运行,如果状态为“禁止”,则后面设置的独立应用程序规则不起作用,但是这并不意味着程序能摆脱防火墙的限制——每次这个程序访问网络的时候,防火墙都会再次询问你是否允许这个程序访问网络。


“过滤类型”里提供了3种类型选择,分别为“允许”、“自定义”和“禁止”,如果用户没有为这个程序设置特殊规则,则只会在“允许”和“禁止”两种类型之间选择,否则为三种。直接双击程序名字就可以设置“过滤类型”,里面分别提供了TCP和UDP协议的端口和IP设置,LooknStop强大的灵活设置性能再次体现了出来:单独输入IP或端口,则规定这个程序只能访问用户指定的IP或端口,多个端口之间用分号“;”分隔,IP同上。

看到这里,一些用户可能会想,是不是只能设置允许访问的地址呀?其实不然,LooknStop的强大之处正是在于它能通过尽量少的对话框完成尽量多的操作——要设置程序禁止访问的IP,只需要在同样的设置对话框里设定IP或端口时在前面加一个感叹号“!”即可,可以说,LooknStop把“简洁就是美”的信奉发挥到了极致!


现在让我们来看看“进程调用”,首先我要简单介绍一下“进程调用”的概念,有时候,一个程序要访问网络并不是通过它自身实现的,而是调用了外置的DLL函数,这样的话,最终访问网络的程序就是那个DLL文件而不是程序本身,许多防火墙都认为,通过程序宿主进程启动进而访问网络的模块也是符合条件的,因此不会做任何阻拦,但是LooknStop仍然不信任任何模块,它会忠实的报告并控制每个子进程DLL的网络连接并提示用户,在如今这个“代码插上翅膀”(线程注射)越来越猖獗的年代里,这样的限制是十分有必要的,很多防火墙正因为过于信任程序调用的进程模块,导致一些DLL类型的木马得以搭载顺风车,给用户的系统安全带来威胁。针对这种情况,LooknStop提供了“进程调用”的控制功能,分别为“允许”(双箭头标志)和“禁止”(红色停止标志),一旦某个程序的“进程调用”被设置为禁止,该程序就只能通过自身访问网络了,所有通过它调用的模块都无法突破限制,这个设置对一些经常被后门搭顺风车的系统程序是很有用的,设置禁止后,我们就不用再怕灰鸽子之流通过IEXPLORE.EXE、Svchost.exe等程序突破传统意义的防火墙连接了。


最后,是一个标示为感叹号的设置项,它代表“连接记录”:灰色的点表示不记录,两个感叹号表示记录该程序的所有连接,而单独一个感叹号则是与“过滤激活”配合使用的,如果你把一个程序的“过滤激活”设置为“禁止”,以后这个程序再次请求访问网络的时候就会被LooknStop记录下来,如果一个奇怪的程序频频要求连接网络,那么它是木马的可能性将会很大!


从“应用程序过滤”这一部分就可以看出,LooknStop对程序的控制非常灵活和精巧,仅使用一个界面和一个对话框就能完成对4种程序控制方式,包括多达10个属性36种不同组合的控制能力,其对程序的控制能力可见一斑。

那么,LooknStop对网络协议的控制功能又如何呢?让我们进入“互联网过滤”,这里正是用户噩梦开始的地方。

这里同样是简洁而复杂的界面,简洁在于按钮的稀少,复杂在于太多列表控制的项目,一眼看去,几乎能让人摸不到头脑,但是这里正是所有防火墙思维的起点:防火墙规则集合。

从左到右依次为“启用规则”、“规则模式”、“匹配时记录”、“匹配规则后是否执行后续规则”、“匹配规则时声音或警报提示”。

“启用规则”里提供了3种类型选择,分别为“默认方式启用规则”、“自定义方式启用规则”和“不启用规则”,如果用户没有设置自定义规则,则只能在“默认方式启用规则”和“不启用规则”之间切换。

“自定义方式启用规则”取决于规则里定义的“应用程序”项目,表示该规则只对特定的应用程序起作用,当符合条件的程序启动后,这个暗红色带绿勾标志变为绿色带红勾标志,代表程序已经启动并处于防火墙规则控制之下。


“规则模式”允许两种选择:“拦截”和“允许”,LooknStop通过这里的标识决定符合该规则的程序是该允许访问网络还是被阻止访问网络,与其它防火墙产品对比,这样的设置方法是非常方便的,用户不需要重新进入规则设置便能直接修改规则行为。


“匹配时记录”提供了两个选项,“记录”和“不记录”,顾名思义,当一个满足规则设定的操作发生时,防火墙会根据这里的设置决定是否在日志里记录下这次操作信息。


“匹配规则后是否执行后续规则”是一个非常重要的规则行为标志,它提供两种选择,分别为“不匹配下一规则”和“匹配下一规则”,前面说过LooknStop的思想是阻止所有连接,而这里的规则设定就是其思想的具体实施方案,为了让程序能正常连接网络,同时也为了提高自身的执行效率,LooknStop提出了这个选项,它决定当一个符合防火墙设定的规则被执行后,是否要继续匹配下一条相同性质的规则,在这里我们可以方便的设置一些复杂的规则,例如我们需要增加一条允许本机打开80端口的规则,但是又不想为此开放所有低端口连接,那么就可以添加一条允许80端口的规则,并设置其“后续规则”为“不匹配”,那么就可以在保留原规则不变的同时增加本机开放80端口的功能了。


“匹配规则时声音或警报提示”有3种类型选择,分别为“声音报警”、“可视报警”和“不报警”,这个选项要与选项里的“声音”和“消息框”配合使用,第一种表示规则匹配时发出声音报警,第二种表示规则匹配时弹出消息框并同时发出声音报警,如果你觉得噪音扰民,可以设置为最后一种,还你一个安静的环境。


3.防火墙的灵魂——规则设置

任何防火墙都在各种规则的引导下运行,LooknStop也不会例外,而其恰恰正是因为规则难以配置而“闻名”的,要真正驯服这个强悍的小家伙,就必须理解并解决规则设置,在“互联网过滤”界面里点击“添加”,会弹出一个略显复杂的对话框出来。相对于大部分国内防火墙产品而言,LooknStop提供的可供设置的数据类型和模式多了不少,如果用户对各种协议的概念不是很了解,在面对这部分的时候就会很头痛了,LooknStop在这个设置对话框里提供了8大类设置,分别为“规则名称”、“方向”、“规则说明”、“以太网”、“IP”、“TCP标识”、“来源”和“目标”。

“规则名称”很容易理解,用户就是在这里设置特定规则名称的,“规则说明”则是为了描述这条规则的功能和用途,除了这两个选项不需要特别讲解以外,其他部分请仔细听好!

在开始动手之前,必须先了解一件LooknStop特有的事情,这款防火墙在编辑规则时是中性的,我们不能从这个界面里设置某条规则是给予通行还是拦截,一旦你保存这条规则,LooknStop则默认了此规则是“允许通行”的,要设置为“拦截”的话必须在保存后自行到主界面上相应的“规则模式”里设置为“拦截”。

其次,LooknStop的信任关系是基于IP地址和MAC地址双重检测的,这是一种理想的信任关系模式,IP地址和MAC地址分别都是可以欺骗的,但是如果IP和MAC结合起来,就很难实施欺骗了,而且也正是这种信任模式,它的规则设置才容易让人迷惑,其实只要理解了其思想,对这款防火墙的规则设置就不复杂了。

明白这两个基本概念后,我们正式开始吧。


首先是“以太网:类型”区,这部分到底表达了什么,笔者最初也是头痛了很久,经过多次试验后终于发现,这里其实是让防火墙知道你的机器环境是在局域网内还是互联网中的独立机器,或者说,控制某条规则是适合在局域网中使用还是在单机环境中使用。

这个区域里提供了4种选择,分别是“全部”、“IP”、“ARP”和“其它”,“全部”表示包含后面三种类型的协议,一般很少用到,除非你的机器所处的网络环境非常复杂,有多种系统一起运作,否则只需要选择“IP”类型即可,这是一种最兼容最常用的类型。

“ARP”类型只能在局域网内使用,也就是专为局域网环境设定的,由于它涉及MAC地址,故脱离了局域网环境就无效了,除非你是在局域网内使用机器,否则不要选择这个类型。


其次是“IP”区,这里又分为3个小区,最左边的“协议”用于为当前规则指定协议,LooknStop提供了9种选择,除了“全部”以外,几乎包含了各种常见协议类型,一般只需要设置TCP、UDP或ICMP其中之一即可,虽然曾经有过IGMP Nuke,可是现在也基本上没有人用Windows 98作为工作环境了吧,所以连IGMP防御都可以免了……

右侧的“碎片偏移”和“碎片标志”分别用于更详细的检测过滤IP头部的偏移位和标志位,可以用于防止特定标志位的碎片数据报攻击,不过对于普通用户来说,我们并不需要特别指定这里的内容,一般选择“全部”即可。


然后到“TCP标识”区,这里其实不是只有一个功能设定的,它还可以变为“ICMP”区或“IGMP”区,视前一个“IP”区的协议类型而定,用户只有选择了TCP协议以后才能进入TCP标识里设置要具体控制的TCP标志位,里面一共有URG、ACK、PSH、RST、SYN和FIN这6种标志位供用户选择,主要针对一些有特殊TCP要求的用户,例如某台机器被用作Internet网关时,如果想阻止局域网内的某台机器通过TCP协议连接某个外部端口,则可把TCP标志位设置为ACK,阻止远程连接传回的应答请求,该连接自然就无法成功建立,最终达到拦截的目的。


现在到“来源”区,许多人觉得LooknStop难以配置,除了“以太网类型”难以理解以外,最容易混淆的就是“来源”区和旁边的“目标”区,要成功配置 LooknStop,首先要弄清楚一件事情:在LooknStop的规则设置里,“来源”完全表示本地,“目标”则表示远程,而不管实际的连接请求或者数据包方向是从哪里发出的。所有与本机网络有关的设置如开放本地某个端口、允许或阻止本地网络的某个IP,都是在“来源”里设置的,这里通常是和“目标”区搭配使用的,例如配置开放本机的80端口,那么就不应该去管“目标”区的任何设置,除非你要限制对方IP范围或端口范围那就另当别论。要开放本机80端口,首先应该在“来源”区的“IP:地址”里选择“等于本机在”,“TCP/UDP:端口”里选择“等于”,下面的第一个选项里输入端口80,第二个选项置空即可。如果要开放一段连续的端口,则在第二个选项里填入另一个数字,然后把“全部”改为“在A:B范围内”即可,需要提醒一点,普通的开放本机端口操作在“目标”区里不用填写任何东西!其他更多的选项可以根据这个举一反三。


最后是“目标”区,这里和“来源”区相反,它表示远程主机连接的参数,无论你在“方向”里选了什么,这个地方出现的都必须是远程机器的数据,永远不要出现你的本地数据!

“目标”区主要是作为限制本机对远程访问数据而设置的,例如阻止本机程序访问任何外部地址的8000端口,则在“目标”区里设置“IP:地址”为“全部”,“TCP/UDP:端口”为“8000”即可,而“来源”区里完全不用设置任何东西。


在上面几个大区之外,还有个名为“应用程序”的按钮,这里用于设置特定的程序规则,其中可供选择的程序在右边列出的已经被记录访问过网络的程序列表中选择添加,以后此条规则就专门针对这个列表里的程序使用了,LooknStop这种思想大大增加了应用程序访问规则的灵活性


4. 监视的窗口——防火墙日志

这里是LooknStop的数据显示窗口,如果你在规则里设置了日志记录,这里就会报告出来,显示当前阻止和允许的连接数量和内容,还可以直接双击列表直接查看详细的数据类型,甚至完整的数据内容,在这一点上,LooknStop甚至可以替代Sniffer成为网络抓包工具!

糖衣炮弹 发表于 2008-5-2 22:21:23

Look ’n’ stop (LNS)防火墙的安装、使用、全局规则编辑

2008-0324 爱罗忧

  LNS界面简单明了,占用系统资源极少,防御功能强大,兼容性还可以。坏毛病也不少,毕竟才出来没好久,比如ADSL用户安装了常常上不了网,对中文支持不行(特别是中文名的文件夹),对程序的控制不够,需要点网络知识(当然也可用别人现成的规则)。结合插件,LNS可以防范ARP攻击、碎片攻击、洪水攻击等。
Ⅰ。主界面。
  安装先不说,直接看界面:

  主界面没什么需要关注的,如果没连接,IP地址不会出现。还有就是注意版本号。
Ⅱ。程序过滤。

  左边是当前使用网络的程序列表。右边是程序规则。
  1。端口和IP地址可以用“n”或“n-n”或者“!n”或“!n-n”来设定,多个设定间用分号隔开,叹号表示禁止,比如:20-80;!23。
  2。未设定时该程序只受网络过滤规则影响,假设只设定了某个程序TCP中的80端口,则该程序可使用TCP访问任何地址80端口以及使用UDP协议访问任何地址任何端口。一旦指定了允许的端口或IP地址,该程序就只能使用设定的端口和IP地址。
  3。√启用程序过滤:如果去掉此处的√,所有程序只受网络过滤规则的限制。
  4。程序所在路径含有非英文数字半角符号的字,LNS会记不住该程序的规则。
  LNS的程序控制的功能很弱,真正体现LNS强大的是LNS防外攻击的网络过滤设定。LNS对于本机连接网络的过滤应该是这样:本机程序→程序规则过滤→网络规则过滤→访问出去。即使允许了某个程序访问80端口,如果网络过滤不允许访问80端口,该程序还是无法访问,反之也不行。如果嫌麻烦可以不用管程序规则,对于SVCHOST.EXE建议还是加以设置,TCP只允许80,443(XP更新),UDP只允许53(DNS)和123(时间校正),主要是因为它经常被病毒利用,其它的软件不大信认的建议还是加以设置一下。
Ⅲ。网络过滤。

  1。载入:就是使用某个规则包。LNS规则包文件扩展名是.RLS,载入后即使用该文件,而不是把它复制到自己文件夹下,所以不要再移动了。
  2。导出导入:就是导出导入某个规则包中的某一条或几条规则。对应文件的扩展名.RIE。也可以直接把RLS改名成RIE然后来导入其中的某一条。
  3。启用网络过滤:和启用程序过滤类似,取消后等同于没有防火墙(虽然程序可能还受程序过滤的限制)。
  4。添加删除编辑:添加一条规则,删除……
  5。上移下移:注意,LNS对于一个数据是从上而下的方式来过滤的,如果某个数据符合上面的规则设置,就放行或拦截,而不再用下面的规则来过滤,不符合才再往下走,所以规则的顺序很重要。另外,可以直接用剪切粘贴来移动。
  6。应用保存:规则修改添加删除后点应用才生效,点保存才存储到规则包中。
  7。规则名、描述:随便。不过LNS对某些中文字体不支持,比如“服”,描述中填写这个字,下次打开LNS该规则“服”字及其后面的字全部都是乱码。
  8。网络过滤中的规则对于任何程序都是平等的(哪怕指定了软件,也只是启用时间上的问题而已)。
  制定具体的规则比较麻烦,后面再说。
Ⅳ。日志。

  双击即可查看详细内容,包括方向(出还是进),协议,来源地址和目的地址MAC以及IP和端口(如果是进,目的一般都是本机)。初期建立规则一般都要根据日志来建立。右键点击某条日志,可添加两种规则:一是建立一个该协议进出站的本机←→所有地址:该日志的端口 的规则。二则是 本机:该日志的端口←→所有地址(说实话,LNS这个功能不好用)。
Ⅴ。选项设置。

  1。网络接口:多网卡应注意LNS是否选择正确,ADSL拨号则应选择WAN那个,如果LNS没有选择正确,将自动选择去掉,手工选。
  2。声音:网络过滤中如果有需要发声的,这里指定一个声音就可以了。但是程序过滤中指定了出现日志的,也将发声(好烦)。
  3。消息框:不想乱跳窗口出来的还是不选为妙。
  4。解析:将IP地址解析成例如WWW.SINA.COM这样的地址,端口80解析成WEB。无多大作用建议不选。
  5。启动方式:无:不自动启动;系统:它会在注册表中设置一个启动项;服务:以XP服务的方式启动,这种方式的好处是可以发现开机就活动的网络程序。
  6。注册表项:对于程序过滤和选项设置,LNS是保存到注册表中的,额外保存意思是LNS会将这些设置备份到C:\Documents and Settings\你的系统的用户名\Local Settings\Application Data\looknstop\LNS.REG 文件中。“每个用户”和“用户公用”的设置好像有点问题。
Ⅵ。高级设置。

  1。高级选项中,应该启用日志防止溢出,不然日志满了要炸的。
  2。排除的IP段:这里设定的IP地址将不受规则限制。它用了省略方式来写的,10标识10.*.*.*的地址。
  3。插件:打√才会启用。RAW规则就是用的PluginEditRawRule.DLL来支持的。
  4。DLL:如果启用了DLL过滤,某个程序调用某个DLL访问网络也将受限制,不过控制很简单:允许/拦截,记不记录日志。启用了DLL检测后LNS会自动发现哪些DLL并询问后自动添加进去。
---------------------------------------------------
Ⅶ。规则编辑和创建:

  也不是传说中的那样难,只需明白下面几点:
  1。程序访问网络是有本机发出信息→目标(出站),以及目标传回信息→本机(入站)的。
  2。程序访问网络是靠IP地址和端口来的。当然就有源地址端口和目标地址端口之分了。
  3。协议分ARP、IP(包括TCP、UDP、ICMP、IGMP)。IPV4和IPV6都是IP协议,IPV6现在国内好像还没开始用,不用管,一般选IP或IPV4即可。至于TCP管什么、UDP管什么一般不用了解,一切看日志。
  4。MAC地址,那是比IP地址更原始的东西,每个网卡都有且只有一个世界上唯一的MAC地址。MAC其实和IP地址差不多,当成IP地址那样来编辑规则即可。
Ⅶ-1。规则编辑举例1。
  光说是比较难的,编辑个规则来熟悉更简单。就IE访问网页来说,来制定一个允许访问网页的全局规则:
  首先要知道访问网页是 本机IP地址使用TCP协议的系统常用的1024~5000之间的端口传至网页地址的80端口,然后对方使用TCP协议的80传送信息给本机原先使用的1024~5000间的某个端口,另外,不可能只访问一个网站吧,所以目标的IP地址是不能确定的,简写下来就是:TCP,本机:常用←→任何IP地址:80
  1。添加一条规则。如图:

  2。规则名随便。描述随便。
  3。因为访问网站使用的是TCP协议,所以上面选IP(也可以选IPV4),下面选TCP(也可以选TCP/UDP,不过那样就会允许UDP了,不好)。
  4。来源IP地址:因为是本机→网站,所以这里IP地址选择“等于本机”(LNS会自动套用本机的IP地址)。
  5。来源端口:因为访问网站都是本机用1024~5000端口范围内的空闲端口来访问,且不定,所以这里直接选“本地常用内”。
  6。目标IP地址:除非你想只能访问一个网站。
  7。目标端口:大多数网站都是80,所以这里填80。
  8。方向:因为是双向的,且IP地址和端口都没变,所以选“出站和入站”。
  注意:
  1)。当方向是出站时,来源方指发起端,一般是本机。入站时来源也是发起端,但是是从外传进来的,本机是接收,所以目的端一般才是本机。当双向时,来源方想成都是本机即可。
  2)。新添加的规则默认是拦截,所以建该规则后需点击图标改成放行。
  3)。新添加的规则都是在最上面,应根据规则性质移动到合适位置,上面那条是TCP协议,放在TCP协议那一堆规则中,且应在拦截所有TCP数据这条规则的上面(不然TCP的都拦截了,下面放行的TCP规则有何用)。再应用即可。
  4)。对于加密网站(网址是以https开头,比如工行网站),他们的端口是443,而不是80,可以将上面那条规则延伸一下,目的端口设置成“等于 或”,下方填入80和443即可。
Ⅶ-2。规则编辑举例2。
  再来看一条规则,该规则是实现局网文件共享功能其中的一条规则:

  该规则建立之初是根据日志来的,当访问局网共享时,没成功,查看日志发现拦截了很多137和138的东东,一个个添加后得到得局网共享需要放行的规则,下面是其中的一条:
  1。允许 UDP,192.168.1.56:137→192.168.1.77:137 的数据进入本机。
  2。允许 UDP,192.168.1.56:137→192.168.1.255:137 的数据进入本机。
  3。允许 UDP,192.168.1.56:138→192.168.1.255:138 的数据进入本机。
  其中,192.168.1.56是局网共享的那台计算机的IP地址。192.168.1.77是本机IP地址。192.168.1.255是局网范围内的一个广播地址,如果发出的数据目的地址是它,在局网中的其它所有计算机都可以接收到该数据。以上3条可合并后就成为:允许,进入,IPV4,UDP,来源=局网机IP地址:137或138,目的=本机、广播:137或138。
  以上只是举一个例子,上面那样设定后会多出来允许局网137或138访问本机138,这里只是因为在制定局网共享的规则,所以有那样的漏洞也是允许的,如果是其它规则应注意漏洞对于安全的影响。
---------------------------------------------------
Ⅶ-3。关于 ETH地址(MAC地址)和IP地址:
  两个不能同时填,会造成规则无效。比如想只允许一个数据中附带了网关MAC同时带了网关IP地址的数据进出,用LNS默认的规则编辑器是不行的。这个时候只能依靠RAW编辑器了。但是也可以做两条规则来实现,第一条允许MAC到MAC,第二条允许IP到IP,然后将第一条的那个黄色↓带一横的图标点掉,就可以了(数据需接受第一条的检查后还必须接受第二条的检查),这也正体现了LNS的精细。
---------------------------------------------------
Ⅶ-4。关于RAW编辑器:
  LNS默认一条规则只能同意2个独立的端口或一个端口范围,IP也一样,MAC和IP不能同时指定,不能对数据包进行过滤(想防范碎片攻击)这些功能要想实现必须依靠LNS的插件:RAW编辑器。以后再说RAW。
---------------------------------------------------
Ⅷ。关于安装:
  安装时注意如果系统提示什么的按允许确定即可,安装完先不重启,复制插件文件和汉化文件覆盖原文件后再重启,已重启的就退出LNS,复制后再打开。用算号器算出注册码直接填进序列号窗口,按验证后如果验证按钮变灰了就表示注册成功了(注册码是与本机绑定的,只能自己用)。
  如果上不了网,取消程序过滤的√和网络过滤的√,然后就可以上网了则是规则原因,还是不能上网则手工选网卡看看。确定是规则的原因后打开网络过滤,把禁止的都打上允许日志,然后查看日志查找原因,或者直接依次点“添加”“确定”“取消禁止图标”“允许日志”,建立出一个全允许规则,再慢慢找原因。网上提供的那些规则一般都需要自己更改与网关有关的规则的。
---------------------------------------------------
  搞了一个晚上,写了好多啊,才发现自己特儿写得,至于RAW规则,和其它防御规则,今天不想写了,改天。唉。。。还不是有个损友,催我写点东西,他好转贴,最近我又没啥写的,就拿这个开刀了。其实我自己都还云里雾里的,自从导入了那个P大的规则包,想搞清楚里面那些规则的意思,我是到处翻资料,把TCP数据什么结构啦,标志啦,都拿来看,结果是越整越糊涂。
------------------------------------------------------------------------------------------------------
Ⅸ。今天开始继续说规则。关于RAW编辑模式。
  RAW编辑需要LNS的一个插件,复制PluginEditRawRule.DLL文件到LNS安装到的文件夹中,点开LNS的高级选项的插件设置,勾选它,即可在网络过滤规则界面的添加和编辑中多一个“>”出来,可选用RAW来编辑规则了。为了方便说明,举一个例子,用RAW建立一个包含4个端口的规则(见下图描述),首先创建一个如图的规则,见图:
http://image7.x5dj.com/Picture/200803/633421682161781250.gif

然后用RAW来编辑,如果不作修改,那下方的RAW规则和上方的普通规则是完全一样的:
http://image7.x5dj.com/Picture/200803/633421682162718750.gif
  “允许,拦截,记录”3个可以在全局规则中选择,其它嘛一旦用RAW更改了就只能用RAW来更改,RAW使用字段的方式来设置各个不同的值,字段本身无意义,字段的值才有意义。

http://image7.x5dj.com/Picture/200803/633421682163187500.gif
  如图,字段2和字段3设置的是本机IP和端口,由于LNS可以直接选择本机IP和常用端口,所以右上的字段值没有显示,无需手工设置。

http://image7.x5dj.com/Picture/200803/633421682164437500.gif
  注意红色框内的信息,如图字段4,21、80明显就是我们设置的目的端口,字段5中,未应用,表示该字段没有使用,其后的也都是这个,也就是说这条RAW规则只设置了0~4字段。

  我们现在来修改,使之达到4个端口的目的,见图:
http://image7.x5dj.com/Picture/200803/633421682165218750.gif
  先修改4,注意蓝色部分,把“字段检查标准”更改成“值1值2或掩码”,使之可以在“字段值”中设置3个值(这里说明一下,这里的值1值2或掩码,其实那个掩码的意思是值3)。然后再在掩码框中填入第3个端口号,那第4个8080端口又怎么办呢?直接增加一个字段即可,也就是说将字段5设置出来。
  字段5的设置中,偏移量和IP类型、字段大小参见字段4设置,字段检查标准影响能设设置几个字段值,这里只需设置一个8080,所以选择等于值1即可,再在字段值中填上8080。到这里差不多了。还有些需要注意的。
  因字段4和字段5在逻辑上是:目的端口=21或80或443或8080,所以这里需要修改一下字段4的“与下一个字段的运算符”(意思就是本字段与下一个字段的关系),更改成“或”。字段5后面没有了,所以不用更改成或。

  然后确定即可,在网络过滤中看不出来的,不过已经是用RAW编辑过的了,现在这条规则就是本机:常用←→网站的21、80、443、8080了。

---------------------------------------------------
Ⅸ-2。再来细说RAW编辑中各个按钮的意思。
  1。RAW规则是基于检查数据包内容的规则,它会按照规则一一检查数据中指定位置的数据与规则中是否相同,全部相同才符合该规则,允许或拦截。某一个不同则不符合该规则,数据交由下一个网络过滤中的规则检查。这和普通规则是一样的。
  2。字段:因为一条规则可能要检查IP地址、端口等很多条件,一个字段表示一个条件。
  3。方向:和普通规则一样,一个规则只能有一个方向,而不是一个字段设定一个方向。
  4。偏移量类型:分为ETH、IP、TCP,这里不是普通规则中的那些ETH、IP、TCP,他们是不同的,等以后我说数据包结构的时候再说这个。
  5。入站和出站:这里填的数字代表位置,单位是字节。上面说了RAW是检查数据来看规则的,比如本机发送了一个数据包,内容是98BFA2B0D3577F2E98BFA2B0D3577F2E,规则中说要看目的端口是不是80,那检查哪里呢?就由这里来指定位置。因每个网络中传输的数据都有固定格式,这里填6,则代表检查出站或入站数据的第6字节开始的数据是否等于80,这里只是指定了从何位置开始,何位置结束是由下方的字段大小来指定的。至于哪个位置是端口、哪个位置是IP地址,以后再说。
  6。字段大小:比如这里指定成2,配合上方就是从数据第6字节开始的2个字节范围内(第6、7字节中的内容),如果是80,则符合该条件。端口都是2字节,IP地址是4字节,MAC地址是6字节。
  7。IPV4、IPV6、任意:一般不用管,如果非要管的话,就编辑规则时,IP地址那里都选IPV4,其余都选任意。
  8。“与”和“或”:假设都是与,则每个条件都必须符合,如果是或,则设置了“或”的条件和下一个条件可以任意一个符合即可,其它条件还是都必须符合。或是优先的,比如A与B与C或D与F或G或H与I,设置出来就是:A与B与(C或D)与(F或G或H)与I,不能达到这样的目的:(A与B)或(C与D)。
  9。值显示模式:这只是为了方便设置,不影响实际值,除非你选择了16进制而又输入的是十进制看到的值,比如端口80,都是10进制,如果选择16进制字节分隔来输入个80,那其实你输入的是128。再比如192.168.1.1,那是10进制字节分隔看到的样子,MAC地址,则是16进制字节分隔看到的样子。所以为了避免输入错误,输入前确认一下是不是选对了的。
  10。SPF:这个是另外一个插件提供的。这里暂时不讲(其实是我还没明白SPF模式,嘿嘿)。
Ⅸ-3。其它说明:
  1。字段间的顺序:没有关系,不过应保证逻辑性,以便日后修改和查看。另外,如果修改一个规则,将某一个字段修改成未使用,保存后,其它字段会自动靠前。
  2。本机IP和本机MAC地址可以不用设置字段值,但好像有个问题,反正编辑时注意就行了,就是选择有关本机IP和MAC时,应先选择字段大小,因为一旦选择了后字段大小就不能更改了,好像如果没更改,生成的规则就有问题,实际是不是这样我没心思去试。
  3。一旦选择本机IP和MAC后就不能再在本字段设置其它IP和MAC了,想并列的就使用“或”吧。
  4。入站出站位置在选择了单方向后好像另外一个就不起作用了。不过一般的设置方法都是将另外一个设置成一样。当然如果选择的是两者则必须两个单独设置。具体的方法以后再说。
  5。掩码。其实这个和IP地址的掩码是一样的,掩码的计算需要把设置值翻译成2进制来看才行,以后再说。
  改天再说实际运用。

---------------------------------------------------
Ⅹ。从数据包的角度来理解RAW模式。
  一个发送到网络中的数据格式是有规定的,哪个位置应该填端口哪个位置是IP地址都是固定了的。看下表(纵向的): ETH头位置
(位)位置
(字节)作用说明00~070Destination
接收方MAC地址08~15116~23224~31300~07408~15516~236Source
发送方MAC地址24~31700~07808~15916~231024~311100~0712Length/Ethertype
以太网类型IP=2048(0x0800)
ARP=2054(0x0806)08~1513EHT之后-ARP头位置EHT之后-IP头作用说明(位)(字节)作用说明类型以太网Ethernet=100~030Version
版本号04~07Header Length
报头长度4~60字节081Type of Service
服务类型(TOS)不用091011最小时延12吞吐量13可靠性14最小代价15不用协议IP=204816~232Total Length
总长度1~65535(字节)24~313MAC长度00~074Identification
标识号(ID)IP长度08~155操作码Request查询=1
Reply回应=2166Flags
片标志不用17DF不分片18MF更多分片19Fragment Offset
偏移(数据分片后后
续的数据用来它
来表示位置)2021222324725262728293031发送方MAC地址00~078Time to Live
生存时间08~159Proctol
协议类型ICMP=1;IGMP=2;
TCP=6;UDP=1716~2310Header Checksun
报头校验和24~311100~0712Source Address
来源IP地址08~1513发送方IP地址16~231424~311500~0716Destination Address
目标IP地址08~1517接收方MAC地址16~231824~311900~0720Options
选项08~152116~232224~3123接收方IP地址00~072408~152516~232624~3127EHT-IP之后-TCP头位置EHT-IP之后-UDP头作用说明(位)(字节)作用说明Source Port
发送方端口00~070Source Port
发送方端口08~151Destination Port
接收方端口16~232Destination Port
接收方端口24~313Initial Sequence Number
序列号(初始连接请求号SEQ)00~074Length协议头和IP数据08~15516~236ChecksumIP、UDP协议头和数据位24~317Next Expected SEQ Number
确认序列号00~078以下为Data数据08~15916~231024~3111Data Offset
数据偏移0012010203Reserved Bites
保留位04050607081309FlagsURG10ACK11PSH12RST13SYN14FIN15Window
窗口大小16~231424~3115CheckSum
校验和00~071608~1517Urgent Pointer
紧急指针16~231824~3119选项00~072008~152116~232224~3123
  一个发送出去或进来的网络数据,是由上面表格中各个位置的数据组合而成的,正因他们的格式都是固定的,所以我们才可以通过检查某个位置的数据与设置的是否相同从而得出此数据是否符合规则,LNS因有了RAW而变的异常强大。
  比如一个访问网页的数据,都是由上面ETH+IP+TCP段构成,这里可以简单的理解成直接是将他们按次序凑在一起。EHT段负责MAC地址,IP段负责IP地址等,TCP段负责端口以及实际数据内容等。比如本机发送出这一段数据(我乱写的):
98BFA2B0D3577F2ED2D29F8F0800F9974……8905C0A8013745678567……
|--------------------| |--------------------| |-----|……   ……|------------| |------------|
 接收方MAC  发送方MAC    类型           来源IP  目标IP ……

  将上面那串数字对应位置翻译出来就是(还好有计算器帮忙):
接收方MAC地址=98BFA2B0D357=98.BF.A2.B0.D3.57
发送方MAC地址=7F2ED2D29F8F=7F.2E.D2.D2.9F.8F
类型=0800=2048=类型是IP
来源IP地址=C0A80137=192.168.1.55
目标IP地址=45678567=69.103.133.103

  如果想允许本机发送上面那条数据出去,则创建规则如下:
1。检查类型是否为IP,因本数据所在位置属于ETH段,所以字段偏移量类型选ETH,出站位置对照数据包格式ETH图是在12字节开始,它的大小是2字节,所以字段大小=2,字段值等于值1=2048(十进制)
2。检查发送方MAC是否为本机,字段偏移量是在ETH数据段,出站6,大小6,等于本机MAC。
3。检查接收方MAC,ETH,出站0,大小6,等于98.BF.A2.B0.D3.57(十六进制字节分隔)
4。检查来源IP是否为本机,本数据所在位置属于IP数据段了,所以字段偏移量选IP,出站12,大小4字节,等于本机IP。
5。检查目标IP,IP段,出站***小4,等于值1=69.103.133.103。
6。以上都要检查,所以“与下一字段的运算符”都是“与”。
  嘿嘿,是不是很简单啊。理论上来说,检查的越多,则规则越严密,不过我们制定规则并不需要每一个位置的数据都检查,通常来说如果是ARP数据,则只检查ETH段的3项以及ARP中的来源以及目的MAC和IP地址(防ARP攻击),UDP和TCP数据则只检查ETH段中的类型,以及IP段中的IP地址,TCP或UDP中的端口即可。即上表中深绿色的部分,浅绿色的用的比较少。
  关于方向,如果是两者,因为有出有进,在出的时候,假设如上来源是本机MAC,则出站位置是6,而当对方送回信息时,本机MAC成为目的地址,即为0,所以本机MAC在两者时入站0出站6。

Ⅹ-2。关于各个数据段中的类型。
  我没去找相关资料来看,不过照我的理解是指下一段数据的类型,比如ETH段中,如果类型值是2048(即IP),则接着的数据段是IP段,IP段中的类型如果是TCP,则接着的数据段就是TCP数据。如果ETH中类型指定是ARP,则不会接着的是IP数据段,除非是非法数据包攻击。
  也就是说ARP数据只有ETH+ARP,而TCP数据则是ETH+IP+TCP,UDP则是ETH+IP+UDP。他们之间是组合来的,至于组合之间有没有其它数据这个我没去研究啦。。。制定规则时应正确指定字段偏移量中的类型,否则出错哦。

附:ETH头中以太网类型值表:
Ethertype协议类型(16进制)0x0000-0x05DCIEEE 802.3 长度0x0101-0x01FF实验0x0600XEROX NS IDP0x0660、0x0661DLOG0x0800网际协议(IP)0x0801X.75 Internet0x0802NBS Internet0x0803ECMA Internet0x0804Chaosnet0x0805X.25 Level 30x0806地址解析协议(ARP : Address Resolution Protocol)0x0808帧中继 ARP (Frame Relay ARP) 0x6559原始帧中继(Raw Frame Relay) 0x8035动态DARP(DRARP:Dynamic RARP)
反向地址解析协议(RARP:Reverse Address Resolution Protocol)0x8037Novell Netware IPX0x809BEtherTalk0x80D5IBM SNA Services over Ethernet0x80F3AppleTalk 地址解析协议(AARP:AppleTalk Address Resolution Protocol)0x8100以太网自动保护开关(EAPS:Ethernet Automatic Protection Switching)0x8137因特网包交换(IPX:Internet Packet Exchange)0x814C简单网络管理协议(SNMP:Simple Network Management Protocol)0x86DD网际协议v6 (IPv6,Internet Protocol version 6)0x880B点对点协议(PPP:Point-to-Point Protocol)0x880C通用交换管理协议(GSMP:General Switch Management Protocol)0x8847多协议标签交换(单播)MPLS:Multi-Protocol Label Switching <unicast>)0x8848多协议标签交换(组播)(MPLS, Multi-Protocol Label Switching <multicast>)0x8863以太网上的 PPP(发现阶段)(PPPoE:PPP Over Ethernet <Discovery Stage>)0x8864以太网上的 PPP(PPP 会话阶段)(PPPoE,PPP Over Ethernet<PPP Session Stage>) 0x88BB轻量级访问点协议(LWAPP:Light Weight Access Point Protocol)0x88CC链接层发现协议(LLDP:Link Layer Discovery Protocol)0x8E88局域网上的 EAP(EAPOL:EAP over LAN)0x9000配置测试协议(Loopback)0x9100VLAN 标签协议标识符(VLAN Tag Protocol Identifier)0x9200VLAN 标签协议标识符(VLAN Tag Protocol Identifier)0xFFFF保留

[ 本帖最后由 糖衣炮弹 于 2008-5-2 23:29 编辑 ]

糖衣炮弹 发表于 2008-5-2 22:22:47

Ⅺ。关于规则的合并。
  在制定LNS规则时,特别是用RAW时,可以将多条规则合并成一条,只要不出现特别严重的漏洞。网上说防ARP的规则必须有2条,经过俺多次实验,将两条ARP规则合并成了一条,ARP规则原理如下:
1。本机MAC→广播MAC地址(用于查询网关)
2。网关MAC→广播MAC地址(用于查询局网机子)
3。本机MAC→网关MAC地址(用于本机与网关通迅)
4。网关MAC→本机MAC地址(用于本机与网关通迅)
  网上的方法是将1、3合并成1条,2、4合并成一条,其实我们可以这样看2和4:2:广播←网关MAC;4:本机←网关MAC。
  也就是说,其实可以将以上规则合并成一条:本机、广播←→网关、广播。这样做的漏洞只有:广播→网关,广播→广播,广播→本机。来源为广播地址的是否对本机有害我不知道,如果有害,可以将来源为广播地址的这条规则与来源是本机MAC地址的规则合并即可。


---------------------------------------------------
Ⅻ。关于掩码。
  在P大的规则包中关于防御碎片攻击的,有几个涉及到掩码,其实掩码的计算很简单,用IP地址来举例,一个允许的计算机IP地址中使用了掩码方式:192.168.1.0,掩码255.255.255.0,将这些十进制的数字转换成二进制,并上下对齐,则是:
地址:11000000.10101000.00000001.00000000
掩码:11111111.11111111.11111111.00000000
  允许的IP地址是凡是掩码为1的地方必须与上面的地址相同,掩码为0的地方可以不同,则允许的计算机IP地址范围就是:192.168.1.0~192.168.1.255
  如果掩码是255.255.255.192呢?则结果不同,前三段肯定是必须相同的了,我们只看最后一段:
00000000
11000000
  则允许的只能是000000~111111的IP地址范围,翻译出来结果就是192.168.1.0~192.168.1.63。192.168.1.64的IP地址中64翻译出来是1000000,对照掩码来看:
01000000
11000000
  64这个地址掩码比照后第7位所处位置与提供的地址第7位数字不同,前面要求的第7位必须是0,而这里第7位是1,即表示64这个地址不包括在这个范围内了,当然及其以后的IP地址肯定也不在这个范围内了。有兴趣的可以用此方法来验证一下P大的规则中关于保留位的掩码为什么设置成4032。
  (二进制就是逢2进1,和逢10进1是一样的,1+1肯定就是10了)


---------------------------------------------------
13。使用SPF。
  SPF的作用:
  SPF提供了一个很特殊的功能,可以这样来理解SPF的功能:
  自己打电话给某个客户,拨号后,在2秒后与对方接通,然后开始交流,这一个过程就算完成了。假设拨号后,一直没人接,直到等了1分钟后,提示无人接听,自己才挂了电话,这个过程才算完成。如果在拨号后,等了30秒,一个外人跑过去接了那个电话,那个人假冒是那个客户,于是乎……。如果我们对自己加一个限制,在拨号后如果10秒无人接就挂电话,那就不会发生刚才的情况。
  SPF就是基于那样的设置,如果本机发出了一个信息后,在设定时间内没有收到相应的信息那就认为后续进来的数据不符合规则(像上面那个假冒的打电话过来就不行)。比如,一个SPF设置本机发出一条数据中包含了本机、网关的信息,如果0.5秒后没有收到包含本机、网关的数据则网关再发过来的数据都不符合ARP查询的规则,哪怕0.6秒后网关发出了一条应答本机的消息,也会被拦截。

  数据检查过程:
  一个数据发出→接受LNS规则检查→发现符合规则A→该规则设置了SPF“添加”,序列号为10→SPF记录下有个数据符合规则,设置其序列号为10→发送出去。
  收到一个数据→接受LNS规则检查→发现符合规则B→该规则设置了SPF“检查”,序列号为10→检查有没有序列号为10的“添加”记录→有,检查是否符合“添加”中的条件→符合→根据其设置,删除10的“添加”记录→接收数据。
  收到一个数据→接受LNS规则检查→发现符合规则B→该规则设置了SPF“检查”,序列号为10→检查有没有序列号为10的“添加”记录→无(上面删了)→拦截!

  SPF设置:(同时参考数据包结构图和RAW来理解)
(注:此图只是为了便于说明,正式编辑规则时“添加”与“检查”不能同时使用)

  添加条目配置:大多数应该用在检查发出去的数据包的规则上。比如ping,那以下的设置就应该在ping发出的规则中设置。
  激活:就是使用SPF,不√就没用。
  参考:就是序列号。任意。可以假设整个LNS所有规则中的SPF都记录在一个地方,所有不相关的SPF规则要设置不同的序列号。
  超时:单位毫秒。这就是上边举例中的那个挂电话限制时间。一个数据符合SPF时被记录下来,等到了此设定时间该记录就被删除。
  字段数量:就是检查几个条件,比如想检查来源IP和来源端口,那就需要2个字段。最多4个。
  直接添加:一个ping会发送4个数据包,如果用直接添加,SPF就记4个记录,除非超时,收1个应答包删1个记录,收4个才删完。
  尚未存在时添加:不管有几个符合SPF条件的数据发出,都只记录1个。比如开机时本机发出的局域网查询广播,那有十来个,不能都记录下来吧~~,再说,收到得回应数据包只有那两三台机子发出得,其它记录得就只有等到超时自动删除了~~。
  字段:根据字段数量而定这里可以填几列的条件,一列是一个条件,从左到右共4列可设置4个条件。
  偏移量类型:和RAW规则中的字段偏移量类型一样,只是那里直接是ETH、IP、TCP,这里改成了数字,ETH=0,IP=1,TCP=2。(ARP同样=1,UDP同样=2)。
  第一个数据包偏移量:和RAW中的入站出站类似,这里填你要检查的数据在哪个位置,比如TCP(上面偏移量类型为1)的来源端口,这里就填0。
  匹配条件数据包偏移量:就是应答数据包中“第一个数据包偏移量”中的值出现在该应答数据包哪个位置。本机发出去时本机端口在0,收到时本机端口是目的端口那这里就应该是2。
  大小:和RAW的字段大小一样,即该数据好长。要检查MAC地址就是6,IP就是4,端口就是2。
  检查条目配置:应该用在接收数据包的规则上。比如ping,那以下设置应该在接受ping回显的规则上编辑。
  激活:就是启用。不启用就没用。
  参考:应该和相关的那个规则中的参考序列号一样。比如在ping第一条规则中那里设置为11,这里也要设置11。SPF检查时才会与记录中的11号数据来匹配检查。
  移除条目:一个数据符合时就删除SPF中记录的该序列号的“一条”记录。
  保留条目:即使符合也不删除。像上面说的那个局网查询广播,就可以这样。添加中设置为尚未存在时添加,那就只有1条记录,然后这里选这个,就可以让很多个应答包进来。然后等到超时自动删除记录。

  举例:(就ping命令来说)
发出时:来源IP=本机IP,目的IP=目的IP
接收时:本机IP=目的IP,来源IP=目的IP。
  要使用SPF,必须有两条相关的规则,一条过滤发出数据,一条过滤接收数据,而且两条规则必须有同样的数据,比如PING,一条允许发出ICMP8发出,一条允许ICMP0进入。这两条规则中都含有本机IP、目标IP地址,有此条件才可以使用SPF。
  首先对第一条PING命令(允许本机发出ICMP8)添加SPF设置,首先用RAW打开,然后点击SPF(V4):
  1。激活:肯定要了三。
  2。参考:这是我们整个LNS规则中的第一条SPF规则,设置为1即可。
  3。超时:PING命令默认4000毫秒超时,而一般情况下ping一个网站几十毫秒就能收到对方回应,这里填1000足够了。
  4。字段数量:我们要检查2个条件,1出去的和进来的有没有本机IP,2有没有目标IP,所以这里选2字段。
  5。直接添加:只4个数据包,不多,所以选这个。
  6。偏移量类型:看RAW就知道了,本机IP是在IP段,这里当然填1。当然也可以看数据包结构图。
  7。第一个数据包偏移量:看RAW就知道了,本机IP在出站为12,这里填12。
  8。匹配数据包偏移量:即 对方应答本机的数据中上面第一个数据包偏移量的那个值在这里的位置,上面是填的是本机IP,在应答数据包本机IP肯定是在目的地IP的位置,即16。
  9。字段大小:IP地址长度为4。
  10。第二列的偏移量类型:同样为IP,为1。
  11。第一个…:发出时的目的IP,位置为16。
  12。匹配…:上面目的IP回来时位置为14。
  13。字段大小:4。
  14。确定。保存。
  再对第二条PING命令(允许ICMP0进入)添加SPF设置,用RAW打开然后SPF:
  1。检查条目下方的激活:√。
  2。参考:就是第一条SPF中的序列号,1。
  3。移除或保留:当然选移除,因为上面我们选的是4个都记录,每收到一个就应该删除1条记录,留着这些记录也没啥用。
  4。确定。保存。

  其它:
  1。SPF是RAW插件中的一个功能,要使用SPF必须使用RAW模式打开规则。

  2。关于字段大小的猜想:像ARP中,来源MAC和IP,目的MAC和IP是连在一起的,那这里就可以填10罗?嘿嘿。不过作用不大,4个字段已经足够用了,而且像这种连在一起的也比较少,再者ARP中来源MAC、IP并非就一定和目的MAC、IP相匹配。大家当没看见这段话哈(其实是我嫌关于SPF写的太少,充数来着^-^)。

  3。如何在一条双向规则中使用SPF:要想使用SPF,必须2条(我试验了在一条中同时设置添加和检查,无效)。我把一条复制成另一条,然后上面那一条设置“添加”,下面那一条设置“检查”,可以了,但不知道有没有负面影响~~~。希望下一个版本可以允许双向规则的SPF。

  4。关于超时:这个只能查相关资料了,最好的办法就是查看日志,比如一个DNS查询,如果日志中显示的都是在同一秒内就收到了应答包,那设置成1000应该就可以了。

  5。SPF用在什么地方:什么地方都可以用啊。^_^,其实我也不知道用哪里好啊~~~。

糖衣炮弹 发表于 2008-5-2 22:36:50

lns能玩到如此地步真的不容易,对系统、网络安全感兴趣可以挑战一下,
在此附上lns2.06一个,感觉比2.05的好……

晕死,附件上传不了,等我传到网盘……
网好卡啊,怀念教研室的网络……

现在那帮小子上课网速稍微好点,NND,网管这会儿就si了,当初封我帐号的时候就那么利索
91files网盘下载

[ 本帖最后由 糖衣炮弹 于 2008-5-3 18:52 编辑 ]

糖衣炮弹 发表于 2008-5-2 22:54:10

LnS的SPF规则官方说明简体中文一般的解析:
       SPF引擎的作用是只有在检测到之前曾被定义的第一个数据包时才允许相应一个数据包通过。例如只有在检测到之前电脑曾发出过第一个的PING请求数据包时才允许接收一个PING的响应数据包。对于任何需要请求/响应的协议类型(DNS,DHCP,...)都一样适用。这是运用SPF表去实现的,该SPF表包含一些公开定义的伪连接(由于这种SPF是针对非连接协议的)。
   
       要使用SPF需要两条规则:
       第一条规则负责检测请求,同时保存一些与预期数据包匹配的信息。这条规则将在SPF表添加一条记录。
       第二条规则负责检测响应,检查在SPF表里是否有与之匹配的记录。
   
       添加一条新的SPF记录需要填写如下的信息:
       1、一个独有的参考标志
       2、一个被保存在SPF表的记录的超时时长
       3、两个数据包进行对比的字段数量(最大值为4)
       4、给每个字段进行对比的描述:在字段里对当前和期待数据包的字段偏移量,大小进行对比。IP地址或者当前协议的ID(例如DNS协议里的ID)是典型的字段。偏移量类型定义如下:
            0定义为数据包的开头
            1定义为Ethernet payload (or IP start)
            2定义为IP payload (or TCP/UDP/ICMP start)
       注释:和RAW规则中的字段偏移量类型一样,只是那里直接是ETH、IP、TCP,这里改成了数字,ETH=0,IP=1,TCP=2。
       5、一个选择标记,用于选择如果存在有一条相似的记录时是否再添加一条新纪录。(这是针对UDP流的,第一条记录可以用于该数据流的所有数据包,所以没有必要再创建新的记录)
   
       检验一个数据包是否跟SPF表里面的一条记录匹配需要如下信息:
       1、参考标志
       2、一个选择标记,用于选择当一个数据包能匹配该记录后,是否移除该记录。(类似创造一个请求的标记:将只会用于UDP流)

PING的例子
       在检测ICMP请求数据包的一般设定情况下,SPF Ping Req规则包含了如下设置:
      http://w.886.cn/4QyX/96095870/96095870_9467.jpg

       这表示,当一个Ping Req被检测到,一条参考标志为1,超时为1秒,只有一个包含电脑的IP地址描述字段会被检查的记录将被创建到SPF表里。不需要检查该记录是否已经存在 ("Direct Add")。
       在检测ICMP响应数据包的一般设定情况下,SPF Ping Resp规则包含了如下设置:
       http://w.886.cn/4QyX/96095905/96095905_61704.jpg

       这表示,当一个Ping Resp被检测到,一条带有参考标志为1的记录将被在SPF表里面进行查找,它的字段将根据上面给予的描述进行对比(关于IP地址),如果全部都匹配(包括参考标志和所有字段),则该数据包将被允许,最后该记录会在SPF表里删除。


       注:以上是根据looknstop官网对SPF的说明进行的翻译,加入了一些注释,由于时间仓促,翻译水平较低,难免出现错误,请大家帮忙改正,希望大家能看明白。
      同时希望大家结合2&3楼airayuu的Look n Stop 使用、规则编辑进行理解,写的比较通俗易懂。

[ 本帖最后由 糖衣炮弹 于 2008-5-3 19:08 编辑 ]

糖衣炮弹 发表于 2008-5-2 22:57:05

looknstop规则包大全

鉴于最近比较多新人用上LNS,所以特别发一个规则包大全供大家下载参考,希望对大家有帮助,其中有很多软件和网游的独立规则,自己选择导入就可以了。
http://w.886.cn/4QyX/96668849/96668849_4987.jpg

[ 本帖最后由 糖衣炮弹 于 2008-5-5 12:04 编辑 ]

糖衣炮弹 发表于 2008-5-2 23:22:47

LnS 所有 Plugin 和 一些知識

LnS 所有 Plugin 和 一些知识
LnS 所有 Plugin 和 一些知识
UDP规则位置 :
UDP 规则可放在 ‘+Anti-IP Spoofing’ 或‘+ACK-URG’ 之下 , 两者也没有分别 .


TCP规则位置 :
如果是服务器规则 ( server rule ) , 应该放在 +TCP:Block Incoming Connections 之上
如果是服务器规则 ( client rule ) , 应该放在 +TCP:Block Incoming Connections 之下


P.S. 是以 Phant0m rule set 作准则


====================================================


Multi-Port Banlist (24.5 KB)
Description: This little different, you can create rules containing up-to 7 specified ports, any TCP or UDP inbound packets with source-ports specified will trigger the rule.


描述: 这一点不同, 您能创造规则包含7个 指定的TCP 或 UDP 端口 , 任何一个 TCP 或 UDP 入站小包与来源端口被指定将触发规则。

Multi-MAC Banlist (27.5 KB)
Updated last: Monday, January 15, 2007 (v1.01)
Description: Permits a single rule on the Internet filtering screen to block multiple MAC addresses up-to 10 entries.

描述: 允许一个唯一规则在互联网过滤的屏幕阻拦多个MAC 地址 ( 最多10个 )。

Multi-IP Banlist (24.0 KB)
Updated last: Sunday, January 14, 2007 (v1.01)
Description: Permits a single rule on the Internet filtering screen to block multiple IP addresses up-to 10 entries

描述: 允许一个唯一规则在互联网过滤的屏幕阻拦多个IP 地址 ( 最多10个 )

Ruleset Validator (8.0 KB)   {本人没用过}
Description: Ensures your current Ruleset hasn’t been emptied or maliciously tampered, the checks are always performed as Look ‘n’ Stop loads

描述: 保证您当前的Ruleset 未被倒空或恶意地窜改, 当LnS装载时便会执行检查

====================================================

有关 PluginEditRawRule.dll

What is it? And what does it offer me?
This is a Plug-In for Look ‘n’ Stop; it adds extended capabilities for rules creations, you can filter at a raw-level (lowest level possible), filter by anything in the entire packet header...

These are the basics what we must know;
---
A raw rule is defined by:
- The rule name
- The rule description
- The packet direction to which the rule applies: inbound, outbound or both
- 1 to 10 fields
An Ethernet packet that goes through the Internet filtering matches a rule if all fields of the rule match the corresponding packet fields.
A field is defined by:
- The field identifier: 0 to 9
- The field size: 1 to 6 bytes
- The field offset type: Ethernet, IP, TCP
- The field offset for inbound packets (relative to offset type)
- The field offset for outbound packets (relative to offset type)
- The field criteria
- The field Value1, Value2 and Mask.
About the field offset type:
If the offset type is Ethernet, the field offset (inbound or outbound) starts "0 bytes" after the Ethernet packet first byte.
If the offset type is IP, the field offset (inbound or outbound) starts "18 bytes" after the Ethernet packet first byte.
If the offset type is TCP, the field offset (inbound or outbound) starts "34+4+IHL bytes" after the Ethernet packet first byte. (IHL = IP Header Length).
The field criteria may be one of these:
- NA: Not Applicable field (default)
- EQUAL_VALUE1: Field equals to Value1
- NOTEQUAL_VALUE1: Field not equal to Value1
- RANGE_IN: Field is in the Value1:Value2 range
- RANGE_OUT: Field is out the Value1:Value2 range
- MASK_VALUE1: (Field and Mask) equal to Value1
- NOTMASK_VALUE1: (Field and Mask) not equal to Value1
- RANGE_IN_REV: Field is in the Value1:Value2 range (reverse byte order)
- RANGE_OUT_REV: Field is out of the Value1:Value2 range (reverse byte order)
- EQUAL_VALUE1OR2: Field equals to Value1 or Value2
- NOTEQUAL_VALUE1AND2: Field different from both Value1 and Value2
- EQUAL_MY_IP: Field equal to IP address of the PC
- NOTEQUAL_MY_IP: Field not equal to IP address of the PC
The value display mode allows displaying fields according to their type (example : "hexa-byte split" for MAC address)

它是什么? 并且它提供什么我? 这是一个 LnS 的plugin ; 它增加延长的能力为规则创作, 您可能过滤在未加工级(最低的水平可能), 过滤器由任何东西在整个小包倒栽跳水... 这些是基本什么我们必须知道; --- 一个未加工的规则被定义: - 规则名字- 规则描述- 规则适用的小包方向: 入站, 向外去或两个- 1 个到10 个领域 审阅因特网过滤的比赛规则的以太网小包如果所有规则的领域匹配对应的小包调遣。 领域被定义:
- 领域标识符: 0 到9
- 领域大小: 1 个到6 个字节
- 领域垂距类型: 以太网, IP, TCP
- 领域垂距为入站小包(相对垂距型)
- 领域垂距为向外去小包(相对垂距型)
- 领域标准- 领域Value1 、Value2 和面具。
关于领域垂距类型: 如果垂距型是以太网, 领域垂距(入站或向外去) 开始"0 字节" 在以太网小包第一个字节以后。
如果垂距型是IP, 领域垂距(入站或向外去) 开始"18 个字节" 在以太网小包第一个字节以后。
如果垂距型是TCP, 领域垂距(入站或向外去) 开始"34+4+IHL 字节" 在以太网小包第一个字节以后。(IHL = IP 标头长度) 。
领域标准也许是这些的当中一个:
- NA: 不可适用的领域(缺省)
- EQUAL_VALUE1: 领域均等对Value1
- NOTEQUAL_VALUE1: 领域不相等与Value1
- RANGE_IN: 领域是在Value1:Value2 范围
- RANGE_OUT: 领域是在Value1:Value2 范围之外
- MASK_VALUE1: (领域和面具) 均等对Value1
- NOTMASK_VALUE1: (领域和面具) 不是均等对Value1
- RANGE_IN_REV: 领域是在Value1:Value2 范围(反向字节次序)
- RANGE_OUT_REV: 领域是超出Value1:Value2 范围(反向字节次序)
- EQUAL_VALUE1OR2: 领域均等对Value1 或Value2
- NOTEQUAL_VALUE1AND2: 领域与Value1 和Value2 不同
- EQUAL_MY_IP: 领域相等与个人计算机的IP 地址
- NOTEQUAL_MY_IP: 领域不相等与个人计算机的IP 地址 价值显示方式允许显示域根据他们的型(例子: "六字节被分裂" 为机器地址)

(未完) 有时间再整理
P.S. 转贴请注明 卡饭虾米仔原创http://bbs.kafan.cn/viewthread.php?tid=94699&highlight=lns

[ 本帖最后由 糖衣炮弹 于 2008-5-5 12:45 编辑 ]

糖衣炮弹 发表于 2008-5-2 23:24:23

LNS在计算机中的工作层次

LNS在计算机中的工作层次
一直想知道LNS在计算机中的工作层次,这两天研究QQ,用抓包软件抓包的过程中,发现一些数据包被LNS拦截了,但仍被抓包软件抓到,使我产生了一个疑问,LNS工作在计算机中的哪个层面上呢?LNS和抓包软件都是网卡驱动级的程序,哪一个工作在前呢?它们和应用程序的关系是怎么样的呢?请看图
   http://w.886.cn/4QyX/96678664/96678664_29872.jpg
tu2.jpghttp://w.886.cn/4QyX/96678665/96678665_63871.jpg
LNS拦截UDP数据包日志图
   tu3.jpghttp://w.886.cn/4QyX/96678666/96678666_23992.jpg
抓包软件抓到的UDP数据包图(注意,只出不进)
以下是对TCP数据包的实验图:
tu4.jpghttp://w.886.cn/4QyX/96678667/96678667_17195.jpg

LNS拦截UDP数据包规则图
tu1.jpghttp://w.886.cn/4QyX/96678664/96678664_29872.jpg
tu6.jpghttp://w.886.cn/4QyX/96678668/96678668_29181.jpg
LNS拦截UDP数据包日志图
http://w.886.cn/4QyX/96678669/96678669_9983.jpg
抓包软件抓到的UDP数据包图(注意:只出不进)
tu8.jpghttp://w.886.cn/4QyX/96678670/96678670_21478.jpg
以下是QQ的IP图(只有与网关和QQ服务器地址219.133.49.167有数据来往,其它地址是只出不进)
http://w.886.cn/4QyX/96678366/96678366_53696.jpg
结论:数据包在计算机中的流程是:应用程序(QQ,IE)=》抓包软件=》LNS=》网卡=》网线。由此可以看出LNS工作在应用程序和网卡之间,它的拦截是很有效果的,数据出去是计算机最后一道防线。数据进来是计算机的最前的一道防线。

上文选自www.looknstop.net.cn

[ 本帖最后由 糖衣炮弹 于 2008-5-5 13:06 编辑 ]

糖衣炮弹 发表于 2008-5-2 23:25:03

占座

糖衣炮弹 发表于 2008-5-2 23:25:22

占坑
页: [1] 2 3 4
查看完整版本: 世界顶级防火墙LooknStop的配置详解