深度操作系统 deepin 20.8 定制的 SSH 安全模块问题

发布时间 2023-05-08 12:14:15作者: 润之

近期由于工作需求,尝试使用国产化操作系统,由于对 Debian 系统的偏爱,选择了深度操作系统,使用的版本是 Deepin 20.8,安装使用基本顺利,没什么大问题。

但由于这个环境是面向公网的,总是免不了大量的攻击类 SSH 登录尝试,发现深度好像定制修改了安全防护这块,当 SSH 密码登录错误达到指定次数后,会锁定一定的时间,而且随着错误次数的增加,锁定的时间也越来越长,有一天早上上班想连服务器,发现被锁定了几千小时。

幸亏有个账号配置了ssh-key登录,连上服务器之后尝试网上的方法 passwd -U / usermod -U 都不能解锁,感觉应该深度定制的安全机制。经常深入研究,发现锁定用户的信息是保存在 /var/lib/deepin/authenticate/limit-states_v1.json 这个文件中,找到相应的用户名,后面 Type=password 的 LockAt 值改小,比如年份减1,然后 service deepin-authenticate restart 重启安全认证服务就可以生效了。

还有一个终极方法,就是修改授权配置文件 /etc/pam.d/common-auth,把包含 pam_deepin_authentication.so 的这行注释掉,彻底移除深度定制的安全模块,然后重启服务器就可以了。不过这样降低了服务器的安全性,不推荐这种做法。

最好还是使用 iptables 对可访问服务器的 IP 或 IP 段进行授权,拒绝所有其它 IP 的连接请求,这才是正统的做法。