扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:杰克·沃伦 来源:techrepublic.com 2008年8月7日
关键字: 系统安全 PktFilter Windows Windows xp
作者:杰克·沃伦
PktFilter是一个开放源代码的包过滤防火墙,可以支持Windows 2000/XP/2003等操作系统。它功能强大,可以提高基于Windows系列操作系统的个人电脑的整体安全性。
-------------------------------------------------------------------------------------------
个人电脑的安全是一个变幻莫测但又持之以恒的话题。对于绝大部分用户来说,采用的都是默认应用,但在很多情况下,这样的处理是远远是不够的。根据我多年的经验来看,很多用户使用的Windows安全工具,不是太少,就是功能太弱,提供不了足够的安全保护。
但这也并不意味着一定是这样。实际上,还是存在很多比Windows操作系统默认安全工具更好更方便的选择。我就发现了一个这样的工具:PktFilter,它是以开放源代码的形式出现(支持BSD授权)。作为以命令行方式运行的安全工具,它可以支持用户对Windows 2000、Windows XP和Windows Server 2003操作系统中的IPv4过滤驱动程序进行配置。
PktFilter的使用由你自己确定,可以很简单也可以很复杂。如果希望把它作为自己最喜欢的开放源代码工具的话,你也可以编辑一个文本文件来配置你自己独有的规则。PktFilter非常有用。下面,我们就来看看,如何安装、配置和使用它。
本文也提供了PDF格式的选择。你可以到TechRepublic下载区进行下载。
获取和安装
你需要做的第一件事就是到相关的网站下载ZIP格式的PktFilter安装文件。下载完毕以后,你就可以对文件进行解压,准备开始下一步的安装。
将安装文件解压后,会得到一个命名为PktFilter的新文件夹。它包含了pktctl和pktfltsrv两个子文件夹和一个说明文件。pktfltsrv文件夹中包含了可执行文件,pktctl文件夹中包含了可以用来进行编辑的rules.txt文件。
一旦完成解压,就可以准备开始安装了。首先,你需要打开一个终端窗口。因为PktFilter是以命令行方式工作的,所以需要进入\PktFilter\pktfltsrv文件夹中,进行设置,以保证程序可以正常运行。
首次运行
最先开始的运行只是一个测试,确认是否可以安装这项服务。因为并不存在实际的测试工具,所以运行的是一个真正的PktFilter实例。在pktfltsrv文件夹中输入下面的命令(需要注意的:你是否改变命令取决于PktFilter所在的位置)
C:Program FilesPktFilterpktfltsrv> pktfltsrv -i "C:Program FilesPktFilterpktctlrules.txt" "C:Program FilesPktFilterpktctlPktFilter.log"
在这里需要特别注意的是日志文件。这是关键,只有在这里,你才能查看数据包的监测情况,以及掌握整个监测过程的进展情况。
现在,你可以利用PktFilter来查看应用程序的运行情况了。下面是相关的命令内容:
C:Program FilesPktFilterpktctl pktctl -I
上述命令将显示类似下面内容的结果:
eth0: <SiS 900 PCI Fast Ethernet Adapter>: 192.168.1.102
现在你了解到需要进行配置的网络情况是在eth0语句的后面。
策略
通过设定PktFilter的策略,可以让系统实现绝对的安全。值得庆幸的是,PktFilter的策略设置起来很方便。在默认的情况下,PktFilter会自动切断所有的数据流,下面是相关的rules.txt的内容:
# default behavior = deny everything
block in on eth0 all
block out on eth0 all
你可以看到两个相关的策略。每一个都有具体的关键字。PktFilter可以支持一些具体的关键字(你可以在PktFilter安装包的PktFilter.pdf文件中找到一个完整的清单)。策略中的关键字包括了:block、in、out和eth0。举例来说,如果你想容许所有流出的数据包的话,可以在策略中设置“out”的内容:
pass out on eth0 all
如果你需要制定允许外部机器访问FTP服务器的话,可以设定类似下面的策略:
pass in on eth0 from EXTERNAL.IP.ADDRESS port 20
pass in on eth0 from EXTERNAL.IP.ADDRESS port 21
EXTERNAL.IP.ADDRESS就是可以通过的实际外部IP地址。
你也可以容许同一台外部机器访问1024以内的所有端口。相关的设置方法是,在rules.txt进行如下的操作:
pass in on etho0 from EXTERNAL.IP.ADDRESS port <= 1024
你也可能需要域名系统DNS对一个域名进行解析,那就需要下面的命令了:
pass out on eth0 proto udp from PC.GATEWAY.ADDRESS port > 1023 to DNS.NAMESERVER.ADDRESS port = 53
pass in on eth0 proto udp from DNS.NAMESERVER.ADDRESS port=53 to PC.GATEWAY.ADDRESS port > 1023
PC.GATEWAY.ADDRESS是网关的地址(如果没有网关的话,就是系统的地址),DNS.NAMESERVER.ADDRESS就是域名系统服务器的实际地址。
显然,这些都是一些很基本的策略,但使用起来非常灵活方便。网络需求和配置将决定rules.txt文件的设置深度。
坚持
一旦设定了相关的策略,就需要保证在任何时间它都是有效的。在经过了所有的测试以后,就可以利用PktFilter运行新策略了。这个时间,需要确保的就是在系统每一次重新启动的时间,策略都在被执行。为了保证这一点,下面的几点需要被重视:
一、打开服务管理器,查找和PktFilter有关的内容。
二、打开PktFilter的属性设置,并将其调整为自启动。
最后的思考
在Windows操作系统急需安全工具的时间,PktFilter填补了这方面的空白。作为一个开放源代码的包过滤命令行工具,它高度可配置,使用简单可靠。对于为了保证网络安全而不断战斗的任何网络管理员来说,没有选择它都是愚蠢的行为。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者