您的位置:首页 > 其它

ssh安全加固

2015-07-19 16:34 295 查看
1.不要使用默认端口: Port 2022 前面的注释符"#"去掉,并将端口修改为自己认为合适的端口号,假设是2022

2.不要使用 protocol1 : 修改为protocol 2

3.限制可登录的用户

#白名单 AllowUsers user1 user2 user3 ... 设置允许登录ssh服务器的用户,添加如下内容 #黑名单 可以添加用户或者租

4.设定空闲会话超时时长:
CllientAliveInerval 60s 指定服务器端向客户端请求消息的时间间隔, 默认是0, 不发送.而ClientAliveInterval 60表示每60秒发送一次, 然后客户端响应, 这样就保持长连接了
ClientAliveCountMax 3 表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开. 正常情况下, 客户端不会不响应.

5.利用防火墙设置ssh访问策略 只允许指定的IP范围访问登录 iptables 只允许指定IP

6.让ssh监听到可靠的安全的IP地址上,而非本机所有IP地址 #ListenAddress 192.168.1.1 并把前面的# 去掉

7.使用强密码策略(禁止空密码)
如生成随机密码: tr -dc A-Za-z0-9_ </dev/urandom | head -c 30 | xargs

8.使用基于密钥的认证, 禁用密码登录 /etc/ssh/sshd_config 中PasswordAuthentication no
基于密钥的认证
方法一: #在客户端ssh-keygen -t rsa 生成密钥对:默认默认密钥为id_rsa, id_rsa.pub man ssh-keygen # ssh-copy-id -i /root/.ssh/id_rsa.pub root@server_host 操作完成即可不需要密码登录server 方法二:在客户端ssh-keygen -t rsa 生成密钥对:默认默认密钥为id_rsa, id_rsa.pub

用scp命令复制id_rsa.pub 复制到server上,并cat id_rsa.pub >>.ssh/authorized..文件中
注意该文件权限应为600

9.禁止管理员root直接登录 PermitRootLogin no 禁止root登录 可以使用普通户然后sudo

10.显示ssh的访问频度 MaxAuthTries 3 还可以将最大登录尝试次数修改一下,例如我们修改为3次

11.做好日志记录周期性分析:可以分析/var/log/secure ,写脚本当连续尝试失败后,将源IP用iptables阻断一段时间 暂时留空,,,后续补上#####################**********###########
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息