当前位置:Linux教程 - Linux资讯 - PortSentry实战

PortSentry实战

  简介 1.能够检测到的端口扫描 2.监视模式和处理方式 A.安装 1.编辑portsentry_config.h文件 CONFIG_FILE WRAPPER_HOST_DENY SYSLOG_FACIL99vY SYSLOG_LEVEL 2.编辑PortSentry的配置文件portsentry.conf TCP_PORTS UDP_PORTS ADVANCED_PORT_TCP ADVANCED_PORT_UDP ADVANCED_EXCLUDE_TCP ADVANCED_EXCLUDE_UDP IGNORE_FILEB BLOCKED_FILE HISTORY_FILE BLOCK_UDP BLOCK_TCP KILL_ROUTE KILL_HOST_DENY KILL_RUN_CMD SCAN_TRIGGER PORT_BANNER 3.编辑portsentry.ignore文件 4.编译 B.使用 C.测试 D.输出信息以及记录文件 E.总结 简介 PortSentry是Abacus工程的一个组成部分。Abacus工程的目标是建立一个基于主机的网络入侵检测系统,可以从http://www.psonic.com的到关于Abacus工程更为详细的信息。 1.能够检测的端口扫描 PortSentry主要用来检测外部对主机的端口扫描,它能够对多种扫描方法进行检测,包括: 完全连接扫描 这是最基本的一种扫描方式,使用connect()系统调用,建立完整的TCP连接,如果连接能够建立,就表明目标主机的目标端口打开。 SYN/半公开扫描 因为不用建立完整的TCP连接,所以这种方法通常称为半公开扫描。这种扫描方法不进行三次握手建立TCP连接,只是向目标主机发出一个SYN数据包。然后等待来自目标主机的相应。如果收到SYNACK数据包,表示目标端口打开;如果收到RST数据包就表示端口没开。 FIN扫描 向目标主机发出FIN数据包进行扫描,由Uriel Maimon在Rhrack第49期文15提出。如果收到RST数据包,就表示目标端口关闭;如果没有收到数据包,就表示目标端口可能打开。 NULL扫描 使用这种方法发出的探测包中,所有TCP包头标志都被关闭和圣诞树(xmas)扫描相反 圣诞树扫描 探测包TCP包头的所有标志都被打开,象灯都被打开的圣诞树,够形象吧:) UDP扫描 使用recvfrom()和write()系统调用扫描 以上无法包括的其它类型的扫描 为了便于对PortSentry的使用,本文对一些端口扫描技术做了一些简单的解释,如果想了解更加详细的技术细节请参考http://www.insecure.org/nmap关于nmap的技术文档。 2.监视模式和处理方式 PortSentry可以对一般的TCP、UDP扫描进行监视,使用-tcp、-udp选项;对于隐秘扫描,PortSentry有四种检测模式:-stcp、-atcp、-sudp、-audp。有两种方法设置PortSentry需要监视的端口: 使用预定义端口列表。在配置文件中,指定需要监视的端口列表,一旦发生对这些端口的刺探行为,PortSentry就被激活。 反向端口绑定。你可以指定PortSentry监视某个范围内,除了被系统网络精灵进程绑定端口之外的所有端口,用户也可以指定不需要监视的端口。使用这种配置方法,会使PortSentry对端口扫描行为很敏感,从另一方面看,也会产生大量的误报警,凡事有利则必有弊嘛:)。 如果检测到端口扫描,PortSentry有多种方式应付扫描行为: 使用syslog()系统调用将扫描行为记录到日志中 将发起扫描的主机名加入到/etc/hosts.deny文件中,这种方式需要TCP_Wrappers的配合 自动修改路由表,删除到发起扫描主机的路由,使回应数据包无法返回
[1] [2] [3] 下一页 

自动修改本地包过滤程序的配置,丢弃来自恶意主机的数据包 A.安装 如果你经常使用源代码安装软件,可能会习惯于./configure、make、make install的方式。但是,PortSentry到目前为止还没有configure脚本,只能手工对一些选项进行配置,然后再进行编译安装。使用这种安装方式很容易造成编译错误,或者即使编译通过,安装后因为无法找到配置文件等原因,而使PortSentry程序无法执行。下面将详细介绍起安装过程。 1.编辑portsentry_config.h文件 portsentry_config.h文件中定义了一些很重要的信息,对于portsentry能否正常运行至关重要。 CONFIG_FILE PortSentry配置文件的路径 WRAPPER_HOST_DENY tcp_wrappers的hosts.deny文件所在的路径,PortSentry能够使用tcp_wrappers应付扫描行为,它将发起扫描的主机放到hosts.deny文件中,tcp_wrappers就会拒绝从这个主机发起的连接。 SYSLOG_FACIL99vY PortSentry使用的syslog facility。它使用的默认syslog facility是LOCAL_DAEMON,使用这个syslog facility,syslogd一般会把PortSentry的警告信息记录在/var/log/messages文件中,这取决于/etc/syslog.conf文件。 系统中,如果某个精灵程序不使用自己的日志文件,那么它的日志信息将被syslogd记录到/var/log/messages文件,造成这个文件的信息非常庞大、杂乱,不容易阅读。因此用户希望指定PortSentry自己的日志文件,专门保存PortSentry发出的警告信息。 可以按照以下步骤设置PortSentry自己使用的日志文件: 修改portsentry_config.h文件 修改PortSenry_config.h文件的SYSLOG_FACIL99vY一行,就可以改变PortSentry使用的日志FACIL99vY: SYSLOG_FACIL99vY LOG_LOCAL0 /*LOG_LOCAL0-7都可以*/ 修改/etc/syslog.conf文件 在/etc/syslog.conf文件中加入下面一行,设置PortSentry使用的日志文件。你也可以选择自己喜欢的日志文件名。^_^ local0.* /usr/local/psionic/portsentry/portsentry.log 做了以上的修改后,syslogd将把PortSentry产生的报警信息同时记录到/usr/local/psinic/portsentry/portsentry.log和/var/log/messages两个文件。如果想避免这种情况,还要继续修改/etc/syslog.conf文件。在这个文件有一行: *.info;mail.none;news.none;authpriv.none; /var/log/messages 把它改为: *.info;mail.none;news.none;authpriv.none;local0.none /var/log/messages 重新启动syslogd程序 # /etc/init.d/syslog restart SYSLOG_LEVEL 警告信息的sylog级别。一般不必修改。 2.编辑PortSentry的配置文件portsentry.conf PortSentry使用portsentry.conf文件作为自己的配置文件。用户可以编辑这个配置文件设置PortSentry的各项功能,用户也可以在编译安装完成后的使用过程中,根据自己的实际情况进行调整。 TCP_PORTS 在TCP监视模式(-tcp)下使用,指定需要PortSentry监听的端口号。端口号使用逗号分开,中间不能有空格。PortSentry会对端口进行绑定,绑定的数量默认是64,在源代码的portsentry.h文件中定义#define MAXSOCKS 64。目前还没有配置选项对其进行设置置,如果想使用其它值,需要修改源代码。 如果使用隐秘扫描检测模式,PortSentry不会对端口进行绑定,而是使用RAW套接字,在套接字层对连接进行监视。 UDP_PORTS 在UDP监视模式(-udp)下使用,指定要监视的UDP端口。你应该慎重使用UDP模式,稍有不慎就会给攻击者以可乘之机,对系统进行拒绝服务攻击。攻击者可以在数据包中伪造一个端口范围,诱使PortSentry阻塞主机的这些端口,达到拒绝服务攻击的目的。如果你的站点是一个比较出名的站点,访问量很大,最好不要使用UDP监视模式。
上一页 [1] [2] [3] 下一页 

ADVANCED_PORT_TCP 设置要监视的最大TCP端口号。PortSentry会对小于这个值的端口号进行监视。默认值为1024,最大可以是65535。建议不要超过1024,因为如果超过这个值,PortSentry就会产生大量的误报警。使用-atcp参数启动PortSentry时,会用到这个值。 ADVANCED_PORT_UDP 设置PortSentry监视的最大UDP端口号。使用-audp参数启动PortSentry时用到。 ADVANCED_EXCLUDE_TCP 和ADVANCED_PORT_TCP配合使用。设置在TCP高级监视模式(-atcp)下,不需要PortSentry监视的端口。在一些普通的端口上,一些远程客户程序的错误会造成PortSentry发出误报警信息,可以使用这个配置选项去掉这些端口,例如:ident、SSL。 ADVANCED_EXCLUDE_UDP 和ADVANCED_PORT_UDP配合使用。设置不用

(出处:http://www.sheup.com)


上一页 [1] [2] [3] 

ADVANCED_PORT_TCP 设置要监视的最大TCP端口号。PortSentry会对小于这个值的端口号进行监视。默认值为1024,最大可以是65535。建议不要超过1024,因为如果超过这个值,PortSentry就会产生大量的误报警。使用-atcp参数启动PortSentry时,会用到这个值。 ADVANCED_PORT_UDP 设置PortSentry监视的最大UDP端口号。使用-audp参数启动PortSentry时用到。 ADVANCED_EXCLUDE_TCP 和ADVANCED_PORT_TCP配合使用。设置在TCP高级监视模式(-atcp)下,不需要PortSentry监视的端口。在一些普通的端口上,一些远程客户程序的错误会造成PortSentry发出误报警信息,可以使用这个配置选项去掉这些端口,例如:ident、SSL。 ADVANCED_EXCLUDE_UDP 和ADVANCED_PORT_UDP配合使用。设置不用

(出处:http://www.sheup.com/)


上一页 [1] [2] [3] [4]