Fail2ban使用记录

The Note of Using Fail2ban

  linkthis    2018-06-06    1574 words

Fail2ban是Python语言开发监控软件,它可以监控系统的日志文件并根据检测到的任何可疑的行为自动触发不同的操作。

Fail2ban安装

可以采用apt直接安装Fail2ban

1
apt install fail2ban

但是源的版本往往不够新,所以可以通过源码来安装:

1
2
3
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
sudo python setup.py install

这样会将Fail2ban安装到Python的库目录下,可执行脚本位于/usr/bin,配置文件位于/etc/fail2ban
需要注意,从源码直接安装时,并没有将Fail2ban自动配置为服务,在Debian下需要执行如下命令:

1
2
3
cp files/debian-initd /etc/init.d/fail2ban
update-rc.d fail2ban defaults
service fail2ban start

apt安装的Fail2ban默认开机启动,手动安装如果需要自行设置:

1
update-rc.d fail2ban enable

如果需要对IPv6地址进行匹配,Fail2ban的版本需要大于0.10

Fail2ban配置

为了避免在升级时配置被覆盖,首先复制配置文件:

1
2
cd /etc/fail2ban
cp jail.conf jail.local

常用的配置参数有:

名称 默认值 描述
filter   jail检测匹配时使用的过滤器名称。过滤器每成功进行一次匹配,对应的jail内的计数器加一
logpath /var/log/messages 过滤器使用的日志文件的路径
maxretry 5 IP触发操作的匹配次数(即计数器的值)
findtime 600 sec 如果在设置的时间内未找到匹配值,则将计数器置零
bantime 600 sec IP被禁止的时间。负数为“永久”禁止。

一般情况下的完整配置文件如下:

1
2
3
4
5
6
7
8
9
10
[DEFAULT]

ignoreip = 127.0.0.1/8 #忽略的IP地址
bantime  = 604800
findtime = 600
maxretry = 5

[sshd]

enabled = true

这个配置为SSH的配置(如果自行修改过端口,则必须指定修改后的端口),其他的配置可以参加jail.conf。如果需要使用,需要将enabled设置为true,并且配置action,指定需要匹配的端口等。loglevel可以设置日志级别,sendmail可以设置邮件提醒。

Fail2ban常用命令

显示fail2ban的活动列表:

1
2
3
4
fail2ban-client status
Status
|- Number of jail:	1
`- Jail list:	sshd

显示特定jail的状态:

1
2
3
4
5
6
7
8
9
10
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed:	0
|  |- Total failed:	0
|  `- File list:
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:

需要注意,如果停止了Fail2ban服务,那么所有的IP地址都会被解锁。当你重启Fail2ban时,其会在/var/log/auth.log中查找异常的IP地址,如果这些异常地址的产生时间仍然在禁止时间内,那么Fail2ban将会重新禁止这些IP地址。

更多用法咕咕当中 && 一般不会有人踩的坑咕咕当中。
Fial2ban只能降低风险,提高安全性。
本文采用CC BY-NC-ND 4.0许可协议进行许可,转载请注明出处。

本文最后更新时间为:2019-02-03-Sunday-03:22:20 PM




Image of Wechat