安装前准备
1.检查系统更新
sudo apt update
sudo apt upgrade
2.检查/var/log目录下是否存在auth.log文件
我几台vps检查都是没有的,需要手动去开起来
首先创建这个文件
sudo touch /var/log/auth.log
在/etc/ssh/sshd_config文件中开启Loglevel INFO(可以不开启直接使用rsyslog)
再重新登录几次vps,应该可以在auth.log中看到当前自己的登录信息
重启ssh服务
sudo systemctl restart ssh
重载ssh服务(不适合重启的情况)
sudo systemctl reload ssh
查看auth.log是否有内容输出
tail -f /var/log/auth.log
如果没有的话,可以安装rsyslog
(更建议)
sudo apt install rsyslog
查看rsyslog是否运行
sudo systemctl status rsyslog
如果没有运行,可以启动(开机启动)
sudo systemctl enable rsyslog
sudo systemctl enable rsyslog
sudo systemctl start rsyslogsudo systemctl restart rsyslog
创建规则将ssh日志记录到/var/log/auth.log
sudo vim /etc/rsyslog.d/50-default.conf
并在这个文件中输入内容,并保存
auth,authpriv.* /var/log/auth.log
重启 rsyslog 和 SSH 服务
sudo systemctl restart rsyslog
sudo systemctl restart ssh
再次检查日志文件是否有输出
sudo tail -f /var/log/auth.log
如果是centos系列系统的话,按照方式一样的,只不过日志的文件目录要改成
/var/log/secure
3.安装防火墙
先检查一下防火墙iptables是否默认安装(可以直接执行安装命令)
sudo apt install iptables
查看防火墙当前规则
sudo iptables -L
准备完毕
安装fali2ban
sudo apt install fail2ban
配置fail2ban
防止文件更新被覆盖,复制一份本地文件
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
修改里面的内容,主要修改[sshd]模块,bantime设置为72小时
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
backend = %(sshd_backend)s
bantime = 259200
检查fail2ban的配置正确性
sudo fail2ban-client -d
启动
sudo systemctl start fail2ban
开机启动
sudo systemctl enable fail2ban
查看fail2ban的运行情况
sudo fail2ban-client status
其他相关查询命令
查看ban的ip
sudo fail2ban-client status sshd
重启fail2ban
sudo systemctl restart fail2ban
查看封禁时间
sudo fail2ban-client get sshd bantime
查看最大尝试次数
sudo fail2ban-client get sshd maxretry
手动banip
sudo fail2ban-client set sshd banip <IP地址>
手动解封ip
sudo fail2ban-client set sshd unbanip <IP地址>
解封所以ip(不建议)
sudo fail2ban-client unban --all