七、强化SSH的安全
Ⅰ、SSH配置文件的修改
vi /etc/ssh/sshd_config
跳到最后,加入下面的部分:
# 使用高位端口,防止黑客扫描22端口。可选范围1024~65535,推荐32768~65535。
Port 58937
# 登录时间控制在30秒内
LoginGraceTime 30
# 不允许root远程直接登录
PermitRootLogin no
StrictModes yes
# 最多允许三次错误
MaxAuthTries 3
# 最多允许三个SSH线程
MaxSessions 3
# 使用SSH协议2
Protocol 2
# 不使用密码认证
PasswordAuthentication no
# 使用KEY的方式认证
PubkeyAuthentication yes
# KEY文件存放位置
AuthorizedKeysFile .ssh/authorized_keys
Ⅱ、使用KEY进行验证
关于使用PuTTY进行KEY验证的方法,请参见偶的另一篇博文,地址:
http://blog.chinaunix.net/u2/81136/showart_1860332.html
Ⅲ、按需启动SSH
我们只在必要的时候启动sshd服务,用完即停止,不给黑客扫描的机会。输入下面的命令:
crontab -e
跳到最后,输入下面的内容(中间的空白部分为Tab):
# 每天的10:30启动sshd服务
30 10 * * * /usr/sbin/sshd
# 10:35即停止sshd服务,也就是说,你只有五分钟的时间可以登录进系统
35 10 * * * kill `cat /var/run/sshd.pid`
保存退出。
上面的时间请酌情修改。sshd服务启动的时间尽量不要太长,5~10分钟应该够了!
Ⅳ、一点安全小常识
1、私钥请一定保存在安全的地方,不要保存在本地计算机上,并加上足够强度的“保护码”;
2、本地计算机不要保存远程主机的“指纹”,用一次确认一次(远程主机的指纹保存在注册表的HKEY_CURRENT_USER\Software\SimonTatham\PuTTY项下,可以手动删除);
3、不要使用DSA密钥,据说有漏洞的;
4、不要在公用计算机上连接远程主机,有键盘记录器、木马什么的就麻烦了;
5、多个远程主机不要使用相同的公钥,最好是使用各自的公钥、私钥;
6、少用,最好是不用无线网络,加密强度太差,容易被破解;
7、M$系统下的病毒、木马太多了,推荐客户端转换到Linux/UNIX环境,安全性更高,而且仍然有PuTTY及工具可用;
8、注意清除本地机器上不必要保留的文件(例如私钥、公钥、主机RSA指纹、C:\Documents and Settings\Administrator目录下的文件等等)。