有的时候我会想,我记录的一些 blog 真的有用吗?因为它们大多数都是一些非常粗浅的知识。这一篇也是其中的一篇。事情的起因是这样的:我自己部署的私人音乐网站出现了证书错误。从报错来看应该是过期了。这本是一个小问题。我顺手查询了一下登录日志,发现自己的服务被攻击了。

ssh attack

# 查看系统认证日志(包括登录尝试) sudo tail -f /var/log/auth.log

我从来都知道Internet不是什么干净的地方,也知道自己的域名会被攻击。但是,真的发生的时候,我还是感到有点难绷。当然,攻击者不知道我这是一个小的私人服务器。让我来放出一些log片段

Sep 23 05:30:28 * sshd[19737]: Failed password for invalid user debian from 91.77.163.86 port 34692 ssh2 Sep 23 05:30:55 * sshd[20344]: Invalid user docker from 146.190.18.29 port 41432 Sep 23 05:30:56 * sshd[20325]: Failed password for invalid user kyt from 161.49.118.82 port 50626 ssh2 Sep 23 05:31:02 * sshd[20444]: Failed password for invalid user rsync from 103.244.80.196 port 37991 ssh2 Sep 23 05:31:22 * sshd[20842]: Failed password for invalid user user from 91.77.163.86 port 54302 ssh2

总之我立刻修改了端口,并且安装了 Fail2Ban

sudo apt-get install fail2ban sudo systemctl status fail2ban # 安装完成后,Fail2Ban 服务会自动启动。 sudo systemctl enable fail2ban # 开机启动

证书处理

经过简单的排查,发现是 Snap 服务 fail 导致的。至于具体为什么 fail,我没有深究。

sudo certbot certificates sudo certbot renew --force-renewal

其中,我发现一个我已经没有在使用的域名依然保留了相关配置,所以进行了删除操作

sudo certbot delete --cert-name {name} sudo systemctl restart nginx

但是,我发现nginx启动失败了。delete 并不会清理 nginx 配置。于是我不得不手动处理了一下。

sudo vim /etc/nginx/sites-enabled/default sudo nginx -t # 成功 sudo systemctl restart nginx

问题解决