最近,我写了一篇关于
“如何扫描您的Linux-Distro for Root Kits”的文章 。
现在这台机器是 干净的 !我想,一个好东西TO-DO,是 测试我的防火墙(AGAIN!)
好消息是我们可以使用 免费工具 FTester 。
坏消息是, FTester需要配置正确...
所以...让我们上班吧!
什么是 FTester ?
防火墙测试仪(FTester)是一种用于测试防火墙过滤策略和入侵检测系统(IDS)功能的工具。
该工具包含两个perl脚本, 一个数据包注入器(ftest)和 一个监听嗅探器(ftestd) 。
第一个脚本在 ftest.conf中定义的自定义数据包,在数据部分中具有签名,而嗅探器监听这些标记的数据包。
这两个脚本都会为两个脚本写入一个相同形式的日志文件。
两个生成的文件 (ftest.log和ftestd.log)的差异显示了由于过滤规则而无法访问嗅探器的数据包,如果这两个脚本在安装在防火墙两侧的主机上运行。
状态检测防火墙使用 “连接欺骗”选项进行处理。
称为 freport的脚本也可用于自动解析日志文件。
IDS(入侵检测系统)测试功能只能使用ftest
或者通过ftestd的额外支持来处理状态检查IDS,ftest也可以使用常见的IDS逃避技术。
而不是使用当前的配置语法,脚本也可以处理snort规则定义文件。
特征:
- 防火墙测试
- IDS测试
- 对状态检测防火墙和IDS的真实tcp连接进行仿真
- 连接欺骗
- IP分片/ TCP分段
- IDS逃避技巧
要求:
需要以下 perl模块 : Net :: RawIP , Net :: PcapUtils , NetPacket
所以...我们将需要 Net :: RawIP , Net :: PcapUtils和 NetPacket Perl模块。
如果尚未安装 Net :: Pcap模块,则可能需要 Net :: Pcap模块,因为 Net :: PcapUtils模块依赖于它。
如果我们有 CPAN Perl模块 ,我们可以使用以下命令从 shell安装这些模块:
...我们完成了 perl模块 。
下载:
最新版本是 ftester-1.0.tar.gz(2006-Feb-13) 。从 shell运行...
所有版本均可在 http://dev.inversepath.com/ftester上获得 。
提取:
使用tar来解压缩源。从 shell运行...
至今...
我们已经安装了几个perl模块,我们已经下载了 ftester-1.0.tar.gz(2006年2月 - 2月13日)
我们提取了文件并制作了目录 ftester-1.0 。
做得好 !!!
组态:
我们需要创建一个配置文件来告诉它应该生成哪些数据包。
要发送测试的数据包的定义主要是在配置文件 (ftest.conf)中指定的,主要的语法是:
对于 TCP和 UDP数据包,
用于 ICMP数据包。
几个例子:
告诉ftestd我们的测试完成是必需的停止信号,所以使用以下语法:
stop_signal可以是 TCP , UDP或 ICMP数据包,这个数据包会导致
终止嗅探器,以便在stop_signal之后指定每个数据包
ftestd不会看到指令。
现在从 壳 ...
你会看到很多东西在那里...只要评论你不需要的任何东西!我用了...
在启动 ftest之前,我们应该是 root ,然后从 shell启动 ftestd :
从 shell运行 ftest :
最后,我们将两个日志文件复制在同一台主机上,我们使用来自 shell的 freport进行比较:
你会看到像...
这是所有人。
一个好主意是在每次更改防火墙时运行 ftest ,
或者不时地要确保你的防火墙工作!
阅读更多:
人物页(ftester.8)
读我
PS:
我不认为发布我的测试结果是个好主意!
;-)
现在这台机器是 干净的 !我想,一个好东西TO-DO,是 测试我的防火墙(AGAIN!)
好消息是我们可以使用 免费工具 FTester 。
坏消息是, FTester需要配置正确...
所以...让我们上班吧!
什么是 FTester ?
防火墙测试仪(FTester)是一种用于测试防火墙过滤策略和入侵检测系统(IDS)功能的工具。
该工具包含两个perl脚本, 一个数据包注入器(ftest)和 一个监听嗅探器(ftestd) 。
第一个脚本在 ftest.conf中定义的自定义数据包,在数据部分中具有签名,而嗅探器监听这些标记的数据包。
这两个脚本都会为两个脚本写入一个相同形式的日志文件。
两个生成的文件 (ftest.log和ftestd.log)的差异显示了由于过滤规则而无法访问嗅探器的数据包,如果这两个脚本在安装在防火墙两侧的主机上运行。
状态检测防火墙使用 “连接欺骗”选项进行处理。
称为 freport的脚本也可用于自动解析日志文件。
IDS(入侵检测系统)测试功能只能使用ftest
或者通过ftestd的额外支持来处理状态检查IDS,ftest也可以使用常见的IDS逃避技术。
而不是使用当前的配置语法,脚本也可以处理snort规则定义文件。
特征:
- 防火墙测试
- IDS测试
- 对状态检测防火墙和IDS的真实tcp连接进行仿真
- 连接欺骗
- IP分片/ TCP分段
- IDS逃避技巧
要求:
需要以下 perl模块 : Net :: RawIP , Net :: PcapUtils , NetPacket
所以...我们将需要 Net :: RawIP , Net :: PcapUtils和 NetPacket Perl模块。
如果尚未安装 Net :: Pcap模块,则可能需要 Net :: Pcap模块,因为 Net :: PcapUtils模块依赖于它。
如果我们有 CPAN Perl模块 ,我们可以使用以下命令从 shell安装这些模块:
# perl -MCPAN -e "install Net::RawIP"
# perl -MCPAN -e "install Net::Pcap"
# perl -MCPAN -e "install Net::PcapUtils"
# perl -MCPAN -e "install NetPacket"
...我们完成了 perl模块 。
下载:
最新版本是 ftester-1.0.tar.gz(2006-Feb-13) 。从 shell运行...
# wget http://dev.inversepath.com/ftester/ftester-1.0.tar.gz
所有版本均可在 http://dev.inversepath.com/ftester上获得 。
提取:
使用tar来解压缩源。从 shell运行...
# tar -xzf ftester-1.0.tar.gz
至今...
我们已经安装了几个perl模块,我们已经下载了 ftester-1.0.tar.gz(2006年2月 - 2月13日)
我们提取了文件并制作了目录 ftester-1.0 。
做得好 !!!
组态:
我们需要创建一个配置文件来告诉它应该生成哪些数据包。
要发送测试的数据包的定义主要是在配置文件 (ftest.conf)中指定的,主要的语法是:
Source Address:Source Port:Destination Address:Destination Port:Flags:Protocol:Type of Service
对于 TCP和 UDP数据包,
Source Address:Source Port:Destination Address:Destination Port:Flags:ICMP:icmp_type:icmp_pre
用于 ICMP数据包。
几个例子:
# SYN packet to 10.1.7.1 port 80 192.168.0.10:1024:10.1.7.1:80:S:TCP:0 # PSH,ACK reply from 192.168.0.10 192.168.0.10:20:10.1.7.1:1022:AP:TCP:22 # UDP packet 192.168.0.10:53:10.1.7.1:53::UDP:0 # ICMP packet type 3 pre 5 192.168.0.10::10.1.7.1:::ICMP:3:5 # ranges are allowed for source address, source port, destination port # source address can also be specified in CIDR form 192.168.0.1-255:1024:10.1.7.1:22:S:TCP:0 192.168.0.1:1024:10.1.7.1:1-65535:S:TCP:0 192.168.0.1:1-1024:10.7.0.1:20-25:S:TCP:22 192.168.3.0/24:1-1024:10.7.0.1:20-25:S:TCP:0 192.168.0.0/22:1024:10.7.0.1:80:S:TCP:0
告诉ftestd我们的测试完成是必需的停止信号,所以使用以下语法:
stop_signal=192.168.0.1:666:10.1.7.1:666:S:TCP:
stop_signal可以是 TCP , UDP或 ICMP数据包,这个数据包会导致
终止嗅探器,以便在stop_signal之后指定每个数据包
ftestd不会看到指令。
现在从 壳 ...
# vi ftest.conf
你会看到很多东西在那里...只要评论你不需要的任何东西!我用了...
# checking privileged ports (<1025) 192.168.0.10:1025:10.1.7.1:1-1025:S:TCP:0 # checking proxy port 192.168.0.10:1025:10.1.7.1:3128:S:TCP:0 stop_signal=192.168.0.10:80:10.1.7.1:1025:AP:TCP:0
在启动 ftest之前,我们应该是 root ,然后从 shell启动 ftestd :
# ./ftestd -i eth0
从 shell运行 ftest :
# ./ftest -f ftest.conf
最后,我们将两个日志文件复制在同一台主机上,我们使用来自 shell的 freport进行比较:
# ./freport ftest.log ftestd.log
你会看到像...
Authorized packets: ------------------- 21 - 192.168.0.10:1025 > 10.1.7.1:21 S TCP 0 22 - 192.168.0.10:1025 > 10.1.7.1:22 S TCP 0 23 - 192.168.0.10:1025 > 10.1.7.1:23 S TCP 0 25 - 192.168.0.10:1025 > 10.1.7.1:25 S TCP 0 80 - 192.168.0.10:1025 > 10.1.7.1:80 S TCP 0 110 - 192.168.0.10:1025 > 10.1.7.1:110 S TCP 0 113 - 192.168.0.10:1025 > 10.1.7.1:113 S TCP 0 1027 - 192.168.0.10:80 > 10.1.7.1:1025 PA TCP 0
Modified packets (probably NAT): -------------------------------- 443 - 192.168.0.10:1025 > 10.1.7.1:443 S TCP 0 443 - 192.168.0.10:1025 > 10.1.7.5:443 S TCP 0
Filtered or dropped packets: ---------------------------- 1 - 192.168.0.10:1025 > 10.1.7.1:1 S TCP 0 2 - 192.168.0.10:1025 > 10.1.7.1:2 S TCP 0 3 - 192.168.0.10:1025 > 10.1.7.1:3 S TCP 0 ... ... ... 1026 - 192.168.0.10:1025 > 10.1.7.1:3128 S TCP 0
这是所有人。
一个好主意是在每次更改防火墙时运行 ftest ,
或者不时地要确保你的防火墙工作!
阅读更多:
人物页(ftester.8)
读我
PS:
我不认为发布我的测试结果是个好主意!
;-)