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.pubman 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阻断一段时间 暂时留空,,,后续补上#####################**********###########
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。