开源入侵预防工具

开源入侵预防工具

  生产环境中的Apache HTTP服务器可能会遭到各种不同方式的攻击。攻击者可能采用蛮力攻击或执行恶意脚本,企图访问未经授权的目录或禁止访问的目录。一些恶意机器人程序可能会扫描你的网站,查找任何可能存在的安全漏洞,或者收集电子邮件地址或网站表单,以便发送垃圾邮件。

  Apache HTTP服务器随带全面的日志功能,可以捕获及记录表明此类攻击的异常事件。不过,系统性地分析详细的Apache日志,并迅速应对潜在攻击(比如禁止/取消禁止冒犯性的IP地址)仍然很重要。这时候fail2ban派得上用场,可以简化系统管理员的工作。

  fail2ban是一款开源入侵预防工具,可以根据系统日志来检测各种各样的攻击,并且自动采取预防行动,比如说使用iptables禁止IP地址,通过/etc/hosts.deny阻止连接,或者通过电子邮件通知事件。fail2ban随带一组预先定义的“jail”(暂译“监狱”),这些jail使用针对特定应用程序的日志过滤器来检测常见攻击。你还可以编写自定义的jail,阻止针对任意应用程序的任何特定的攻击。

  我在本教程中将演示你如何可以配置fail2ban,以保护Apache HTTP服务器。我假设你事先已经安装好了Apache HTTP服务器和fail2ban。至于fail2ban的安装,请参阅另一篇教程:。

  fail2ban Jail是什么?

  首先允许我比较详细地介绍一下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 = true

  port = ssh

  filter = sshd

  logpath = /var/log/auth.log

  maxretry = 6

  banaction = iptables-multiport

  这个SSH jail的配置由几个参数来定义:

  [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。

  启用预先定义的Apache Jail

  默认安装的fail2ban为Apache HTTP服务器提供了几种预先定义的jail和过滤器。我准备启用那些内置的Apache jail。由于Debian配置和红帽配置略有差异,我为它们单独提供了fail2ban jail配置。

  在Debian或Ubuntu上启用Apache Jail

  想在基于Debian的系统上启用预先定义的Apache jail,就要创建/etc/fail2ban/jail.local,如下所示。

  $ sudo vi /etc/fail2ban/jail.local

  # 检测密码验证失败

  [apache]

  enabled = true

  port = http,https

  filter = apache-auth

  logpath = /var/log/apache*/*error.log

  maxretry = 6

  # 检测搜索安全薄弱环节和php漏洞的潜在行为

  [apache-noscript]

  enabled = true

  port = http,https

  filter = apache-noscript

  logpath = /var/log/apache*/*error.log

  maxretry = 6

  # 检测Apache溢出企图

  [apache-overflows]

  enabled = true

  port = http,https

  filter = apache-overflows

  logpath = /var/log/apache*/*error.log

  maxretry = 2

  # 检测未能在服务器上找到主目录的活动

  [apache-nohome]

  enabled = true

  port = http,https

  filter = apache-nohome

  logpath = /var/log/apache*/*error.log

  maxretry = 2

  由于上述没有一个jail指定动作,所有这些jail被触发后将执行默认动作。想弄清楚默认动作,寻找/etc/fail2ban/jail.conf中[DEFAULT]部分下面的“banaction”。

  banaction = iptables-multiport

  在这个情况下,默认动作是iptables-multiport(在/etc/fail2ban/action.d/iptables-multiport.conf中定义)。该动作使用iptables以及multiport模块禁止IP地址。

  启用jail后,你必须重启fail2ban,以便装入jail。

  $ sudo service fail2ban restart

  在CentOS/RHEL或Fedora上启用Apache jail

  想在基于红帽的系统上启用预先定义的Apache jail,就要创建/etc/fail2ban/jail.local,如下所示。

  $ sudo vi /etc/fail2ban/jail.local

  # 检测密码验证失败

  [apache]

  enabled = true

  port = http,https

  filter = apache-auth

  logpath = /var/log/httpd/*error_log

  maxretry = 6

  # 检测搜索电子邮件地址的垃圾邮件机器人程序

  [apache-badbots]

  enabled = true

  port = http,https

  filter = apache-badbots

  logpath = /var/log/httpd/*access_log

  bantime = 172800

  maxretry = 1

  #检测搜索安全薄弱环节和php漏洞的潜在行为vulnerabilities

  [apache-noscript]

  enabled = true

  port = http,https

  filter = apache-noscript

  logpath = /var/log/httpd/*error_log

  maxretry = 6

  # 检测Apache溢出企图

  [apache-overflows]

  enabled = true

  port = http,https

  filter = apache-overflows

  logpath = /var/log/httpd/*error_log

  maxretry = 2

  # 检测未能在服务器上找到主目录的活动

  [apache-nohome]

  enabled = true

  port = http,https

  filter = apache-nohome

  logpath = /var/log/httpd/*error_log

  maxretry = 2

  # 检测未

能执行与几种流行Web服务

  # (比如webmail,phpMyAdmin,WordPress)

  # 有关的不存在脚本

  port = http,https

  filter = apache-botsearch

  logpath = /var/log/httpd/*error_log

  maxretry = 2

相关文章

跑步走的动作要领是什么

跑步和走是我们每天都会进行的,但是很多人无论是跑步的姿势还是走的姿势都比较难看,而且很不标准,那么跑步走的动作要领是什么呢?了解了这些,以后我们在跑步和走路的时候就能注意一下,这样也不容易摔跤了,接下...
资料大全2018-07-08
跑步走的动作要领是什么

石参的功效与作用 药用价值

中药在治疗某些疾病上往往有着出人意料的效果,因此对中药选择可以放心进行,不过在选择中药的时候,需要对药物进行认识,这样治疗疾病的时候,才会知道什么样的药是最佳之选,下面我们就来介绍一下中药石参。【别名...
资料大全2019-05-05
石参的功效与作用 药用价值

苏轼:和子由渑池怀旧

《和子由渑池怀旧》作者:苏轼人生到处知何似?恰似飞鸿踏雪泥。泥上偶然留指爪,鸿飞哪复计东西?老僧已死成新塔,坏壁无由见旧题;往日崎岖还记否,路长人困蹇驴嘶。赏析:人生在世,总是到处流浪漂泊,这像什么呢...
资料大全2014-03-05
苏轼:和子由渑池怀旧

体育学期的教学计划

光阴迅速,一眨眼就过去了,老师们的教学工作又将有新的目标,让我们一起来学习写教学计划吧。为了让您不再为做教学计划头疼,以下是小编收集整理的体育学期的教学计划(通用5篇),欢迎阅读与收藏。体育学期的教学...
资料大全2019-07-09
体育学期的教学计划

男生暗恋女生会有哪些表现

单身的女孩们,想知道是否有男生在暗恋你呢?看周围男生有没有这以下的表现就知道。表现一:忍不住把他令人刮目相看的那一面告诉你他还会忍不住得意地在他的哥们面前提到你。在你面前,他似乎很健谈,告诉你有关他和...
资料大全2011-09-06
男生暗恋女生会有哪些表现

mw是什么单位_单位知识

"Mw”在很多地方都会用到,那么MW是什么单位呢?以下是PINCAI小编整理的关于MW关内容,欢迎阅读和参考! mw是什么单位_单位知识 "Mw”代表“兆瓦”即' million watt '的缩写。在...
资料大全2013-06-08
mw是什么单位_单位知识