宝塔面板安装fail2ban保护nginx服务器

前面几篇文章都是在写研究访问日志文件。总想把服务器的防护做到最好,因为穷,所以只能自己动手折腾了。以前不研究日志文件,总觉得里面密密麻麻的看到就头痛。一旦看入迷了,每天都想看看到底网站有什么来爬过。来做了些什么。日志文件一目了然。

因为安装了宝塔面板,所以最开始都是通过宝塔面板来屏蔽恶意IP(段),后来发现这真是个体力活,每天都有不同的IP来扫描,每天这样手动添加效率真的太低下了。“你的精力在哪里,收获就在哪里”这句话真的一点没错。终于在网上发现fail2ban可以用来监视日志,通过配置可以对服务器起到安全防护的作用。

这里要感谢大鸟博客明月登楼落格博客,他们的博客让我受益匪浅。通过他们文章的学习,才让问知道了fail2ban框架,也让我学会了如何安装、设置fail2ban。

我的环境是:宝塔面板 + Centos7.* + LNMP


fail2ban介绍

fail2ban 是 Linux 上的一个著名的入侵保护的开源框架,它会监控多个系统的日志文件(例如:/var/log/auth.log 或者 /var/log/secure)并根据检测到的任何可疑的行为自动触发不同的防御动作。事实上,fail2ban 在防御对SSH服务器的暴力密码破解上非常有用。

我是这样理解的,首先是要有日志文件,然后fail2ban监听日志文件,就像过安检一样,遇到可疑操作IP,就是ban掉,将这个IP拒之门外。


安装fail2ban

由于CentOS内置源并未包含fail2ban,需要先安装epel源,但是宝塔面板默认安装好了epel源,所以无需再安装epel源。直接安装fail2ban即可。

fail2ban有关命令

apt-get install fail2ban
#安装fail2ban
yum -y install fail2ban

我还是把安装epel源命令写出来

#CentOS安装epel源
yum -y install epel-release

只要修改配置文件,我们就需要重启fail2ban服务。

在 Debian, Ubuntu 或 CentOS/RHEL 6:

service fail2ban restart

在 Fedora 或 CentOS/RHEL 7:

systemctl restart fail2ban

为了验证fail2ban成功运行,使用参数’ping’来运行fail2ban-client 命令。 如果fail2ban服务正常运行,你可以看到“pong(嘭)”作为响应。

`Server replied: pong`

安装成功后fail2ban配置文件位于/etc/fail2ban,其中jail.conf为主配置文件,相关的匹配规则位于filter.d目录,其它目录一般很少用到,我们也就不讲了。

fail2ban安装

fail2ban安装


监狱配置

也就是 Fail2Ban 的监控模块,其实默认配置中就已经写好了很多配置,当然我们需要手动来启动它们。我的版本是V0.9.7。对于Nginx服务器来说也自带了很多配置。 简单介绍/etc/fail2ban/目录下文件的作用 fail2ban.conf :配置文件里面定义了fail2ban记录的日志等级、日志文件的位置以及socket。 jail.conf 里面定义了对那些服务进行监控,以及使用的一些策略。 jail.conf 里面开头是默认全局配置块[DEFAULT]。 默认配置规则说明简单说明下:

[DEFAULT]

# 忽略哪些IP,可以是具体IP、CIDR类型的地址,多个IP用空格或都好分开,这里相当于ip地址白名单,还需要注意把自己的IP加入白名单,动态IP的可以绑定一个白名单域名,这样防止防止自己不小心测试或者什么的,被BAN了,自己的服务器都连接不上
ignoreip = 127.0.0.1/8

# 设置IP被锁住的时间,单位为秒
bantime  = 600

# 检测时间,在此时间内超过规定的次数会激活fail2ban ,单位为秒
findtime  = 600

# 尝试的次数
maxretry = 5

默认配置文件是:/etc/fail2ban/jail.conf

请不要直接编辑 jail.conf 这个文件,因为在升级软件包时,会覆盖这个文件,使配置失效。我们应该创建一个新文件jail.local,在jail.local定义的值会覆盖jail.conf中的值。

Fail2ban可以自己自由配置监狱,但是需要新建 .local文件(jail.local)。Fail2Ban 会先自动读取 .local 文件的配置,然后再增量地读取 conf 配置,这样就避免了更新它时你辛辛苦苦写好的配置被覆盖掉了。

意思就是:jail.conf文件里面有的配置无需再写了,如果需要新增配置,请放到 jail.local 文件,Fail2ban会先读取jail.local 文件,然后再增加jail.conf里面的配置合在一起。

可能有些版本中没有内置nginx配置,只有Apache配置监狱。此版本(我用的是V0.9.7)下自带了如下2个配置监狱

[nginx-limit-req]
port    = http,https
logpath = /www/wwwlogs/access.log

[nginx-botsearch]

port     = http,https
logpath  = /www/wwwlogs/access.log
maxretry = 2

如果要新建监狱配置,请先创建jail.local文件,在这个文件里面添加监狱配置

vi  /etc/fail2ban/jail.local

使用宝塔的用户,可以直接在宝塔面板/etc/fail2ban/目录下新建jail.local

请注意,每一个监狱配置在/etc/fail2ban/filter.d 目录下必须有对应的 .conof 文件。

人已赞赏
宝塔面板技术分享

宝塔面板配置fail2ban规则后重启失败的问题

2019-7-20 10:39:54

宝塔面板

请不要再宝塔面板计划任务里面随意添加任务

2019-8-5 22:16:31

2 条回复 A文章作者 M管理员
  1. […] 宝塔面板安装fail2ban保护nginx服务器 […]

  2. 这个写的不错。

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索