昨天老左笔记中有在"确保和保护服务器系统安全的几个常见做法"文章中介绍到确保服务器以及WEB环境的安全,我们其实有些人是有安装服务器端的Fail2ban工具的。这个工具类似我们常说的WAF工具,在一定程度的控制上是可以给服务器起到一定的安全的,比如阻止一些软件的小线程的扫我们服务器。实际上,我们有些深入研究Fail2ban软件的朋友会发现,能设置的好以及深入使用还是有很多的功能的。
Fail2ban软件可以安装在服务器端,主要是用来SSH扫描攻击行为的防御。之前老左也没有认真研究过,所以今天这篇文章就准备看看这款软件的安装以及基本的使用记录。最近这几天也没有主机促销活动,所以暂时就写点相关的文章试试。
这里老左常用的镜像系统是Ubuntu,所以就直接在Ubuntu镜像中安装Fail2ban和记录。如果我们有需要在其他镜像的,可以搜索相关文章或者后面我整理出来。
第一、Ubuntu安装Fail2ban软件
1、升级系统
apt-get update -y
apt-get upgrade -y
2、安装Fail2ban
apt-get install fail2ban
如果我们需要安装邮件提醒的,还需要安装sendmail。apt-get install sendmail
3、支持开启防火墙
ufw allow ssh
ufw enable
支持SSH通过UFW防火墙。
第二、设置Fail2ban
1、重命名将fail2ban.conf 改成 fail2ban.local
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
这里我们可以修改fail2ban.local文件里的配置信息。比如loglevel警告级别、logtarget日志文件、以及文件的位置设置等。
2、设置jail.local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
重命名拷贝文件,然后设置。
如果我们是使用的是CentOS系统,我们需要把jail.local中的backend选项从auto更改为systemd。 这里我们使用的是Ubuntu系统,所以不要修改。
3、设置白名单IP地址
可以在"/etc/fail2ban/jail.local"设置白名单地址。
[DEFAULT]# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8 111.111.111.111
我们可以看到这样的格式。
4、设置时间和重试次数
# "bantime" is the number of seconds that a host is banned.
bantime = 600# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600
maxretry = 3
同样的我们可以设置重试次数和时间,然后给予禁止。
5、其他设置
我们还是需要在"/etc/fail2ban/jail.local"设置其他的内容。
# Default banning action (e.g. iptables, iptables-new,
[ssh]
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overridden globally or per
# section within jail.local file
banaction = iptables-multiport
banaction_allports = iptables-allportsenabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
在上面我们介绍的几个主要设置之外,在对于jail.local还有一些服务设置比如SSH和iptables防火墙,我们一般是只启用SSH,也可以通过iptables防火墙规则设置主机IP地址白名单或者黑名单。