目录
前言
作为服务器管理员,与其让大家改复杂密码什么的这种被动应战,任由“入侵者”攻击我们的服务器,不如使用fail2ban来做一些应对措施。
一、在fail2ban之前
1、一些保护服务器的必要措施
1.设置特殊端口,比如把22端口修改为2222
2.禁止root用户直接登录
3.建立普通用户,设置复杂的密码(包含特殊字符)
4.不使用普通用户登录,采用公钥-私钥模式
5.开启防火墙,仅仅放行安全或必要的端口
2、查看自己的服务器有没有被暴力破解
可以输入lastb查看尝试登录的用户信息:
可以看到有个未知ip一直在尝试登录我们服务器,他们可能会尝试不同的用户名和密码进行暴力破解,指不定啥时候某个密码比较弱的用户就被攻陷了,所以很有必要搞点措施对于这种一直试错的ip封禁!
二、安装和配置fail2ban
1.安装fail2ban
# Ubuntu
sudo apt update && sudo apt install fail2ban
# CentOS
yum install fail2ban
进入fail2ban的目录,复制一份配置文件:
cd /etc/fail2ban
sudo cp fail2ban.conf fail2ban.local
sudo cp jail.conf jail.local
修改jail.local配置文件启动sshd策略:
sudo vim jail.local
添加一行(大概在280行左右):enabled=true
找到如下位置,修改封禁时间和最大可尝试次数:
完成之后修改sshd策略:
sudo vim fail2ban.local
定位到最后一行,添加如下内容(CentOS使用如下配置):
[sshd]
enable = ture
port = 22 # 注意改成自己对应的ssh端口
filter =sshd
# CentOS
logpath = /var/log/secure
# Ubuntu
# logpath = /var/log/auth.log
maxretry = 5 # 最大尝试次数
bantime = 1800 #封禁时间,单位s。-1为永久封禁
保存配置,重启生效。
sudo systemctl restart fail2ban #重启
sudo fail2ban-client status #查看状态
sudo fail2ban-client status sshd #查看sshd的详细状态
三、解封IP
如果有小伙伴不小心尝试了很多次然后被封了ip,这个时候就需要unban,把ip给解封
1、查看被封ip:
#sudo fail2ban-client status <jail_name>
sudo fail2ban-client status sshd
2、解封ip
#sudo fail2ban-client set jail_name unbanip xxx.xxx.xxx.xxx
sudo fail2ban-client set sshd unbanip 222.195.74.123
3、确认ip是否被解封
cat /var/log/fail2ban.log
看到Unban就说明ip被解封成功了!撒花~
总结
服务器管理真的是一门大学问,我仅仅是记录一下解决问题的路程,希望我们在和“入侵者”斗争的路上能够变得更强。
参考资料: