预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

开源入侵预防工具开源入侵预防工具生产环境中的Apache HTTP服务器可能会遭到各种不同方式的攻击。攻击者可能采用蛮力攻击或执行恶意脚本,企图访问未经授权的目录或禁止访问的目录。一些恶意机器人程序可能会扫描你的网站,查找任何可能存在的安全漏洞,或者收集电子邮件地址或网站表单,以便发送垃圾邮件。Apache HTTP服务器随带全面的日志功能,可以捕获及记录表明此类攻击的异常事件。不过,系统性地分析详细的Apache日志,并迅速应对潜在攻击(比如禁止/取消禁止冒犯性的IP地址)仍然很重要。这时候fail2ban派得上用场,可以简化系统管理员的工作。fail2ban是一款开源入侵预防工具,可以根据系统日志来检测各种各样的攻击,并且自动采取预防行动,比如说使用iptables禁止IP地址,通过/etc/hosts.deny阻止连接,或者通过电子邮件通知事件。fail2ban随带一组预先定义的“jail”(暂译“监狱”),这些jail使用针对特定应用程序的日志过滤器来检测常见攻击。你还可以编写自定义的jail,阻止针对任意应用程序的任何特定的攻击。我在本教程中将演示你如何可以配置fail2ban,以保护ApacheHTTP服务器。我假设你事先已经安装好了Apache HTTP服务器和fail2ban。至于fail2ban的安装,请参阅另一篇教程:。fail2banJail是什么?首先允许我比较详细地介绍一下fail2ban jail。jail定义了针对特定应用程序的.策略,fail2ban根据该策略来触发保护某个应用程序的行动。针对Apache、Dovecot、Lighttpd、MySQL、Postfix和SSH之类的流行应用程序,fail2ban随带几个在/etc/fail2ban/jail.conf中预先定义的jail。每个jail依靠针对特定应用程序的日志过滤器(位于/etc/fail2ban/fileter.d)来检测常见攻击。不妨看一个示例性的jail:SSH jail。[ssh]enabled=trueport=sshfilter=sshdlogpath=/var/log/auth.logmaxretry=6banaction=iptables-multiport这个SSHjail的配置由几个参数来定义:[ssh]:jail的名称,带方括号。enabled:该jail是不是激活。port:要保护的端口号(数字编号或公共名)。filter:用来检测攻击的分析日志的规则。logpath:要仔细分析的日志文件。maxretry:禁止之前最多失败次数。banaction:禁止动作。jail配置中定义的任何参数将覆盖对应的适用整个fail2ban范围的默认参数。反过来,任何遗漏的参数会被赋予在[DEFAULT]部分中定义的默认值。预先定义的日志过滤器位于/etc/fail2ban/filter.d,可用的动作位于/etc/fail2ban/action.d。如果你想覆盖fail2ban默认参数或者定义任何自定义的jail,只要通过创建/etc/fail2ban/jail.local文件就能实现。我在本教程中将使用/etc/fail2ban/jail.local。启用预先定义的ApacheJail默认安装的fail2ban为ApacheHTTP服务器提供了几种预先定义的jail和过滤器。我准备启用那些内置的Apache jail。由于Debian配置和红帽配置略有差异,我为它们单独提供了fail2banjail配置。在Debian或Ubuntu上启用ApacheJail想在基于Debian的系统上启用预先定义的Apachejail,就要创建/etc/fail2ban/jail.local,如下所示。$sudovi/etc/fail2ban/jail.local#检测密码验证失败[apache]enabled=trueport=http,httpsfilter=apache-authlogpath=/var/log/apache*/*error.logmaxretry=6#检测搜索安全薄弱环节和php漏洞的潜在行为[apache-noscript]enabled=trueport=http,httpsfilter=apache-noscriptlogpath=/var/log/apache*/*error.logmaxretry=6#检测Apache溢出企图[apache-overflows]enabled=trueport=http,httpsfilter=apache-overflowslogpath=/var/log/apache*/*error.logmaxretry=