通过Fail2ban保护你的云服务器

1,452 阅读2分钟

  对于通过远程ssh方式进行连接的云服务器,Fail2ban是很有必要的.他保护你的SSH等服务免受非法访问的威胁.


  对我而言,每次拿到新服务器的第一件事就是封闭除了SSH端口之外的所有端口.但是对于尚未保护的SSH服务端口,我们需要一款工具来专门保护他.你需要的就是fail2ban.fail2ban的保护方式是,对短时间尝试过多次登录失败的IP地址,进行自动封禁.


你可以通过以下方式安装fail2ban,例如我们的服务器是Debian or Ubantu系Linux:

> sudo apt-get update
> sudo spt-get install fail2ban
安装之后,你仅需按照你的需求改动几个配置.默认的配置文件路径在 /etc/fail2ban/jail.conf.当然,我们不推荐你直接修改这个文件,我们可以创建一个副本jail.local来修改配置:

> cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

在你的jail.local文件,你可以修改任意部分的默认配置.以下是任意fail2ban都可以使用的配置范本:

[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 86400
maxretry = 3
destemail = your@email.com
action = %(action mwl)s

大多数设置尽量是能够望文生义的,或者在配置文件里写明作用.最需要改动的地方是action这个选项,这个是用来告诉fail2ban该如何将攻击者的信息提交报告给管理员邮箱 destemail

接下来你要告诉fail2ban哪些是被允许的SSH登录

[ssh]
enabled = true
port = 22
fileter = sshd
logpath = /var/log/auth.log

为了让你的设置改动生效,你需要重启fale2ban:

>sudo service fail2ban restart

现在,你可以通过命令行查看fail2ban的状态.需要提醒的是,根据你服务被攻击的频率,可能需要一阵子你才能看到发生了什么.

> fail2ban-client status ssh

Status for Status for the jail: ssh
|- filter
|  |- File list:    /var/log/auth.log 
|  |- Currently failed: 0
|  `- Total failed: 9171
`- action
   |- Currently banned: 1
   |  `- IP list:   31.197.115.250 
   `- Total banned: 404

这就是你需要知道的东西.希望用了fail2ban,能让你感受到更多安全性提升.由于大多数自动扫描SSH端口的脚本都是爆破默认端口22,所以如果你想要有更好的安全性,可以使用除了22之外别的端口作为SSH服务端口.同时也可以禁止Root通过密码登录.


refer: