SSH是类Unix系统中广泛应用的管理工具,英文全称是Secure Shell.
作为管理员工具,因此其安全性就显得相当重要了.从其名称看已经是安全的Shell了,它的名称中的Secure 是指系统直接传输的数据是加密安全的.我们这里的安全是指用户级别的安全,如:尽量不要让黑客扫描到端口以及防止密码被暴力破解等.
我们可以从一下方面入手,以提高我们的系统的安全性:
1.修改端口
sshd默认使用的端口是tcp 22端口,因此很多扫描工具都会去扫描主机的22端口,所以我们可以修改其端口以增加黑客扫描到我们的系统的难度或者时间,使其放弃第一步.
修改sshd的配置文件一般是/etc/ssh/sshd_config 有一行 Port 端口号
默认是注释的 以及端口是 22,将其修改为你想要用的端口号后冲洗sshd服务或者向sshd进程传递HUP信号使其生效
kill -HUP `cat /var/run/sshd.pid` (注意:重启sshd服务会断开当前的连接,而传递HUP信号不会断开当前连接,而是使新的连接使用新的配置,而且要注意一点的是修改后记住端口号,‘深刻的教训’:一次意外)
2. 禁止root帐号登录
root 被誉为类Unix系统中的上帝,有句比喻:谁拥有了root的权限就等于拥有了该台计算机(当然是计算机资源)
因此合理的使用root帐号是使用系统应该养成的一个习惯,很多人都推崇不要直接使用root帐号登录,而是使用普通用户登录,对需要root权限的操作使用sudo 或者 su 完成,因此我们这里也延用该习惯.(当然您可以根据自己的习惯选择)
我们还是要修改sshd_config 里面有 PermitRootLogin 字段,默认是注释,值是yes,我们该为no,去掉注释然后使其生效,root便无法直接登录了
如果此时用root 帐号登录便会得到类似这样的提示 Permission denied, please try again.
3. 使用密钥认证
使用密钥认证登录,不仅安全(禁用密码认证,防止密码被猜解),还省了输入密码.
第一步:在sshd服务器上使用ssh-keygen 生成密钥对
如:ssh-keygen -b 2048 -t rsa 生成2048位的 rsa 密钥对,具体使用方法请 man ssh-keygen.
这样默认会在~/.ssh/ 目录下生成 id_rsa (私钥) 和 id_rsa.pub(公钥)
第二步:修改sshd_config 使其禁用密码认证启用证书认证.找到
44 #PubkeyAuthentication yes 去除注释
45 #AuthorizedKeysFile .ssh/authorized_keys 去除注释(注意:这里是指定的公钥文件,你刚才用ssh-keygen生成的id_rsa.pub便是,你可以将id_rsa.pub改为authorized_keys,也可以修改AuthorizedKeysFile 的属性改成你想的公钥文件)
禁用密码认证
60 PasswordAuthentication yes 修改为 no.
第三步:使其生效…
这样便可以使用密钥认证了
ssh客户端默认使用~/.ssh/id_rsa(这里便是你在服务器生成的私钥,你要拷贝到本地) 作为私钥(这个配置可以在ssh_config里面修改)
如果你有多台服务器用了不同的私钥,可以用 -i 参数指定私钥如 ssh -i id_rsa_server1 root@server1 -p port 这样就可以不用密码登录了.
更新中…
文章作者:liangdi 最后修改:2009.12.21 转载请注明来自:[自由的心灵]
原文链接:http://liangdi.icentos.net/2009/12/21/ssh安全设置/
近期评论