3、Tcpdump
tcpdump可能是检查网络通讯原始数据构成最著名的应用程序了,Debian用户可以通过apt-get install tcpdump来获取,tcpdump文件就是著名的pcap文件,因为pcap是实现包捕获的库。
在这个例子中,我们dump来自源端口53或目标端口53的所有通讯,意味着,所有的DNS通讯,我使用的-n参数,如果你想更详细一点,你可以使用src port 53或者dst port 53,除此之外,tcpdump尝试ip地址到域名的解析,以便于打印出比较友好的名字,那些DNS请求也将在我们的捕获中显示出来:
# tcpdump -n ’port 53’ tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 11:19:58.302298 IP 192.168.0.8.1037 > 192.168.128.1.53: 36224+ A? www.slashdot.org. (34) 11:19:58.360227 IP 192.168.128.1.53 > 192.168.0.8.1037: 36224 1/5/5 A 66.35.250.151 (239) ...
在其他事情中,snort能存储tcpdump格式的捕获数据,你需要用-r <文件名>和-w <文件名>参数来读取和写入存储的文件。
4、Snort
snort是一款最重要的开源网络入侵检测系统,基本上意味着它留意坏的通讯并给你提供警告,它始终保存你读取原始tcpdump内容的输出,Debian用户可以通过apt-get install snort来获取它,默认情况下,它将网络接口设置为混杂模式,也就是说,所有在线路上的数据包都被检查。
如果你正在尝试保护一个网络,通常你的snort传感器应该放在主路由器的SPAN端口上,这样它就能查看到所有经过那个路由器的网络通讯内容。(SPAN端口提供了所有经过路由器的通讯的一个总和)如果你正在尝试保护一个单独的主机,只需要在主机上简单地按照它即可。
Snort依靠一个规则数据库来检查数据包,/etc/snort/rules/bad-traffic.rules中有一个例子标记出了一个tcp端口号为0的无效通讯:
alert tcp $EXTERNAL_NET any <> $HOME_NET 0 (msg:"BAD-TRAFFIC tcp port 0 traffic"; flow:stateless; classtype:misc-activity; sid:524; rev:8;)
snort将它的警告信息记录到一个文件中,典型地是/var/log/snort/alert,看起来象是这样,表明一个策略规则已经生效,因为来自Google Desktop用户代理的web通讯被观察到了:
[**] [1:2002801:3] BLEEDING-EDGE WEB Google Desktop User-Agent Detected [**] [Classification: Potential Corporate Privacy Violation] [Priority: 1] 11/02-11:27:58.855143 10.0.0.82:3449 -> 66.35.250.209:80 TCP TTL:128 TOS:0x0 ID:35935 IpLen:20 DgmLen:399 DF ***AP*** Seq: 0x847921EE Ack: 0x1A7D5C20 Win: 0xFFFF TcpLen: 20 [Xref => http://news.com.com/2100-1032_3-6038197.html] Snort也能被配置为记录匹配tcpdump格式的数据包,如下: # log_tcpdump: log packets in binary tcpdump format # ------------------------------------------------- # The only argument is the output file name. # output log_tcpdump: tcpdump.log
当上面的选项生效后,snort将记录与tcpdump文件匹配的数据包并将其保存到警告文件中,这样就允许你更容易地判断哪个警告是需要担心的哪个警告是错误的警告,你可以象下面这样来阅读它们:
# tcpdump -r /var/log/snort/tcpdump.log.1161106015 reading from file /var/log/snort/ ↪tcpdump.log.1161106015, link-type EN10MB (Ethernet) 06:37:50.839942 IP 10.0.0.82.1410 > 10.10.218.95.www: P 2352360050:2352360119(69) ack 1723804156 win 65535 06:53:07.792492 IP 10.0.0.82.1421 > 10.10.218.95.www: P 2124589760:2124589829(69) ack 2684875377 win 65535 ...
如果你象查看数据包的内容,使用-X参数,tcpdump –X –r /var/log/snort/tcpdump.log.1161106015,snort也有一些功能来中断基于规则匹配(灵活的响应)的连接,也有许多第三方的规则,可以在http://www.bleedingthreats.net/找到。
上一页 1 2 3 4 下一页 |