修改 SSH 服务的默认设置提高系统安全

默认的 sshd 服务的设置有时可能并不是最安全的,对于运行在互联网上的服务器,可以检查以下几项设置以提高系统安全。

1、禁用 root 的远程登录
修改 /etc/ssh/sshd_config 文件里的 PermitRootLogin 值为 no,这样就禁止 root 直接从远程登录了。平时应当尽量使用普通帐号登录,当需要使用 root 权限时再通过 su 或者 sudo 切换。
需要注意在禁用 root 的 ssh 登录之前一定要确定服务器内还有其他帐号可以远程登录,并且这个帐号能够使用 sudo 命令,否则服务器自己登录不进去了。
如果没有这样的帐号,则先创建一个普通的帐号,并把他加入到 wheel 组。

$ sudo adduser USERNAME $ sudo passwd USERNAME $ sudo gpasswd -a USERNAME wheel

再使用 visudo 程序把 wheel 组的 sudo 权限打开。

$ sudo visudo

2、设置登录的密码输入等待时间和最大重试次数
修改  /etc/ssh/sshd_config 文件里的 LoginGraceTime 和 MaxAuthTries,分别设置为 30 和 3,表示建立 ssh 连接之后你要在 30 秒内输入正确的密码,而且密码最多重试 3 次,否则连接断开。这项设置能组织密码暴力破解程序的攻击。

3、禁止密码登录方式
对于生产环境的服务器,这个设置是很有必要的,即禁止用户使用用户名和密码的登录方式,只允许使用 SSH public key 方式登录。方法是修改 /etc/ssh/sshd_config 文件,把 PasswordAuthentication 设置为 no。在设置之前你应该先为自己的计算机生成一个 SSH 公钥:

$ ssh-keygen -C 'yang@office'

这时会生成 ~/.ssh/id_rsa.pub 文件,把这个文件的内容复制到服务器用于登录的帐号的 ~/.ssh/authorized_keys 文件里就可以了。也可以使用下面命令自动完成:

$ ssh-copy-id USERNAME@host.domain

以后登录到 USERNAME 这个帐号时就再也不用输入密码了。

最后,配置完成之后重启 sshd 服务。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pszjy.html