1. 禁止 root 帐号登录 SSH
某个客户服务器接入互联网,允许root登录,虽然设置了长达 9 个字母的口令保护,仍在在 3 天之内被黑客通过暴力口令破解。
原因分析:
Unix 服务器上, root 帐号是最知名,权力最大的帐号,一般系统都默认允许 root 帐号远程登录。一些管理员图方便,也喜欢用 root 帐号直接登录系统;
黑客常用的暴力口令破解工具通过口令字典对 root 帐号进行尝试登录;
如果服务器允许 root 登录,很容易被黑客突破;
解决方案: 禁止 root 用户登录。通常有两种设置方法:
方法一: 在 /etc/ssh/sshd_config 中如下设置,禁止 root 用户登录
PermitRootLogin no
优点:
设置简单。root 帐号直接被禁止登录
其他用户帐号不受影响,可以登录
缺点:
当需要以 root 身份远程执行某些操作(如同步某些数据),而又不能执行 sudo 命令时,则无法实现
SSH 的 22 端口仍然可见
方法二: 在 /etc/ssh/sshd_config 中如下设置,只允许属于某个用户组(如 ssh)的用户登录,而 root 用户不属于该用户组。
PermitRootLogin yes AllowGroups ssh
优点:
root 帐号因不属于该用户组,被禁止登录
如果需要具有 root 权限帐号的用户登录(同步敏感数据的需要),可以为 root 用户创建别名(id 为 0),并属于可登录的用户组
缺点:
系统中原有帐号都不能登录了,需要手动为需要登录的帐号添加到新用户组
SSH 的 22 端口仍然可见
其他可选方案:
通过公钥登录 SSH
安装 ossxp-secure-opensesame 软件包,动态打开 ssh 的 22 端口