AgnitumOutpostFirewallPro是一个受到越来越多用户喜爱和关注的优秀防火墙,占用资源相对较小,设置灵活方便,稳定强悍,可以算得上个人防火墙中的佼佼者了。东西虽好,可是很多人在使用中只是让软件的默认设置在发挥作用,而防火墙的默认设定往往更侧重于兼容性方面的考虑,想让防火墙更好的发挥作用,就需要你根据自己的网络情况作出调整和配置。正好官方论坛中有一篇相关文章,编译出来和大家一起学习交流。特此感谢原作者和Outpost论坛。文中涉及到的Outpost选项的中文名称出自Silence的2.7.485.5401(412)版汉化。导论:本文是为了帮助Outpost防火墙的用户建立一个更安全、对微机的流出数据监控更加严密的网络连接。随着越来越多的软件喜欢在用户不知情的情况下向“老家”传送信息以及花样翻新层出不穷的木马和病毒企图把它们的活动伪装成正常的网络通讯,对网络的流出信息进行监控和限制逐渐与对流入企图进行限制处在了同等重要的地位。因为本文涉及到了对默认规则的调整,用户最好事先对Outpost防火墙已经有一定熟悉度(按:并且最好对一些基本的网络知识和术语也有所了解)。安全性和方便性永远无法两全,这就需要你根据自己的实际情况做出取舍-下文中一些改动可能需要你完成大量的调整工作,也会让你的某些行为(如更换ISP)变得困难的多。某些(尤其是商业/企业的)网络环境可能会导致文中某些部分出现问题,请在实施改动前详细阅读各个项目的优点和缺点-如果有疑问可以试着每次只进行一项改动然后进行详尽的测试,分析Outpost的相关日志(尤其是被禁止连接的日志),以便做出进一步的决策。本文中的推荐更多是基于安全性而不是方便性的考虑。最后,请注意本文档并不是出自Agnitum公司,Agnitum公司也不对本文进行技术支持,相关问题和讨论请在Outpost防火墙论坛提出,而不要与Agnitum公司直接联系。Outpost免费版用户注意:文中涉及的设置没有在免费版中进行测试,某些部分(如关于全局规则设置的D小节)也无法部署(由于免费版中全局规则只能被禁用而无法修改),而某些特性(如组件控制)也是在OutpostProv2以后才出现的,然而文中涉及的方法仍然会对此类用户系统安全性的提高起到一定的参考作用。A-局域网设置(位于“选项/系统/局域网设置/设置”)改动收益:通过限制特权用户的连接来提高安全性。付出代价:需要进行更多的设置和维护工作,尤其是对大型局域网来说。本设置指定哪些IP段需要被认定为“可信用户”。从安全性的角度来说,这里列出的IP段越少越好,因为对这些地址流入流出的数据可能会漠视所有应用程序规则和全局规则而得以通行。(请查阅OutpostRulesProcessingOrder获知详情)对非局域网用户来说,本部分没有考虑的必要。这种情况下可以去掉对“自动检测新的网络设置”的钩选以防止Outpost自动添加默认设置。本部分设置只须处于如下环境的微机加以考虑:●位于局域网(LAN)中,并且带有需要共享的文件或者打印机的微机;●位于局域网中并且需要通过网络应用程序进行连接,但是无法通过应用程序规则设定完成工作的微机;●位于互联网连接共享网关上的微机,其应将每一个共享客户端的IP地址列为可信任地址。请查阅LANandDNSsettingsforV2获知详情。上述任一种情况下由Outpost提供的默认网络设置都是过于宽松的,因为它总是假设同一网络中的任何微机都应该被包括在内。步骤:●取消钩选“自动检测新的网络设置”以防止Outpost自动添加新的设置。注意如果日后安装了新的网卡,在此项禁止的情况下新的地址需要手动添加进去。●逐个添加每个PC的地址(所添加项随后会以带网络掩码255.255.255.255的形式出现)。互联网地址绝不应该出现在该位置。●钩选涉及到文件/打印机共享的微机后面的“NetBIOS”选项。●钩选涉及到网络应用程序的微机后面的“信任”选项。如果你位于一个大型局域网内,逐个列出每个微机就是不太现实的了,此时一个可用的方案就是用Blockpost插件列出IP段然后屏蔽该IP段中不需要的地址(Blockpost插件允许用户定义任意IP段,这是Outpost现阶段还做不到的)。请注意局域网内的网络活动可能被“入侵检测”插件曲解为攻击行为。如果你遇到此问题(尤其是Windows网络中存在BrowseMaster和DomainController的情况下),请在本文F4部分查找通过插件设置避免问题的详细内容。B–ICMP设置(位于“选项/系统/ICMP/设置”)ICMP(InternetControlMessageProtocol)是用于传送诊断信息与出错信息的一部分网络端口。详情请查阅RFC792-InternetControlMessageProtocol。该部分默认设置允许如下活动:●通过Ping命令进行的基本网络连接测试(由EchoRequestOut和EchoReplyIn实现)-对本机进行的Ping将被拦截以掩藏本机的在线状态。●对探测者显示本机网络地址不可用(由DestinationUnreachableInandOut实现)。●对探测者显示本机地址无法连接(由流入数据超时而引起),该类连接由Tracert命令发起-进入类跟踪路由企图将被拦截以掩藏本机在线状态。本项的默认设置对绝大部分用户而言已是足够安全的。然而允许DestinationUnreachable数据包流出在某些特定类型的扫描中会暴露你微机的存在(绝大部分已被Outpost拦截),所以对该项的改动可以让你的微机的隐匿性更强。改动收益:使你的微机逃过某些可以避开Outpost检测的扫描。付出代价:在某些情况下(如缓慢的DNS回应)DestinationUnreachables信息的传送是合法的,此时就会显示为被屏蔽,结果就是可能导致一些网络应用程序的延迟和超时(如P2P软件)。步骤:●取消对“DestinationUnreachable”Out的钩选。如果你在运行Server程序,那么对Ping和Tracert命令的响应可能就是需要的。一些互联网服务提供商(ISP)可能也会要求你对它们的Ping做出回应以保持在线连接。这些情况下可以参考如下步骤。改动收益:允许用户检查与Server之间的连接和网络性能,这些可能是某些ISP要求实现的。付出代价:让你的系统处于被Denial-of-Service(DoS)攻击的危险之中。步骤:●钩选“EchoReply”Out和“EchoRequest”In选项以允许对Ping的响应。●钩选“DestinationUnreachable”Out和“TimeExceededforaDatagram”Out选项以允许对Tracert的响应。可选步骤:上述做法会使本机对任意地址的Ping和Tracert命令做出响应,还有一个可选的方案是用一个全局规则来实现只允许来自可信任地址的ICMP信息-但是这样会导致其漠视Outpost的ICMP设置而允许所有的ICMP信息流通。然而当特定地址已知时,这样做也未尝不可。通过如下步骤实现:●创建一个如下设置的全局规则:AllowTrustedICMP:指定的协议IP类型ICMP,指定的远程主机填入受信IP地址,允许注意该规则不要定义方向(流入和流出的数据都需要获得权限)。C-防火墙模式(位于“选项/系统/防火墙模式”)保持默认设定“增强”,不建议作改动。D-系统和应用程序全局规则(位于“选项/系统/系统和应用程序全局规则”)D1-指定DNS服务器地址DNS(DomainNameSystem)是通过域名来确定IP地址的一种方法(如otupostfirewall.com的IP地址是216.12.219.12。详情请查阅RFC1034-Domainnames-conceptsandfacilities)。因为连接网站时DNS信息必须通过防火墙以实现IP地址查询,一些木马以及泄漏测试就试图把它们的通讯伪装成DNS请求。然而通过把DNS通讯地址限定为你的ISP所提供的DNS服务器,这种伪DNS请求就可以被有效的拦截。有两种方法可以完成这项任务:(a).“全局DNS”设置-把你的ISP的DNS服务器地址加入到全局规则中改动收益:通过少量工作即可完成上述任务。付出代价:如果你通过多家ISP上网,那么所有的服务器地址都需要被添加进去-如果你更换了ISP或者ISP更改了它们的服务器地址,那么你就需要把新的地址更新进规则中去。如果你有程序或者网络环境需要应用反复式DNS查询(Windows环境下通常使用递归式查询,反复式通常是应用于DNS服务器之间),那么配置这条规则就可能会出现问题。步骤:●找到你的ISP使用的DNS服务器地址。最简单的方法就是在命令行窗口中使用“ipconfig–all”来查询,Windows9x/Me/Xp的用户也可以在开始菜单的“运行”对话框中使用winipcfg得到相关信息。●把这些地址作为远程主机地址加入到“AllowDNSResolving”全局规则中。Windows2000/XP用户还应该把这些地址加到应用程序规则中services.exe/svchost.exe的相关项目中(详情参见E2部分)。(b).“应用程序DNS”设置-移除全局规则,逐个给每个程序添加DNS规则改动收益:如此一来新添加的程序通常需要两项规则(DNS规则和程序自身需要的规则)来减少可疑程序在意外情况下的通行。试图与“老家”通讯的恶意程序现在就面临着寻找必要IP地址的额外手续,这样它们会误认为现在无网络连接从而进入休眠状态直到被侦测到。只通过DNS端口通讯的这类木马程序现在就必须通过额外规则才可以通行,这也是现在唯一可以屏蔽DNShell以及类似泄漏测试的方法。付出代价:需要完成繁琐的多的工作-每一个程序都需要添加一条额外的规则。更换ISP后需要把所有规则更新为新的DNS地址。步骤:●在Windows2000和XP环境下,关掉“DNS客户服务”(通过开始/控制面板/管理选项/服务)。这会强迫每个程序发出自己的DNS请求,而不是通过services.exe(Win2000)和svchost.exe(WinXP)发出。●停用或者删除“系统和应用程序全局规则”中的“AllowDNSResolving”规则。●对每一个程序添加一个新规则,使用下列关键字:软件名DNSResolution:指定协议UDP,远程端口53,远程主机你的ISP的DNS服务器地址,允许可以通过设定本规则为预设规则来简化工作。步骤如下:断开网络,退出Outpost,打开preset.lst文件(位于Outpost程序文件夹中)并在文件末尾添加下列规则:;ApplicationDNSResolution[ApplicationDNSResolution]VisibleState:1RuleName:ApplicationDNSResolutionProtocol:UDPRemotePort:53RemoteHost:加入你的ISP的DNS服务器地址,如有多个用逗号分隔AllowIt添加该预设规则后,日后碰到添加规则向导提示的时候只要选定该预设规则导入即可(如果你想允许该程序通行的话)。这种情况下,IP地址在“选项/程序”中将以附带(255.255.255.255)子网掩码的形式出现,此即指明了一个条目的IP地址范围,其与单独一个IP地址所起作用相同。注意此时“工具/自动检查升级”选项应该被禁用,因为对preset.lst的改动可能被自动更新的文件覆盖掉(虽然“自动更新”在覆盖文件以前会提示),一个比较好的办法是手动备份该文件,然后再进行更新,更新完毕后如有必要再把备份文件覆盖回去。注意-两种DNS设置都需要的规则不管选择上述两种设置中的哪一种,都需要考虑到一种情况-DNS查询使用更多的是UDP(UserDatagramProtocol)协议而不是TCP(TransportControlProtocol)协议。查询使用到TCP协议的