可以提高 ssh 安全性的几个配置

今天我们分享几个可以提高 ssh 安全性的实用方法 。不过需要注意,下面提到的方法,大家选取适合自己的,不需要全部都用,其中某些方法可能会与其他的不兼容 。

可以提高 ssh 安全性的几个配置

文章插图
ssh 是访问远程服务器最常用的方法之一,同时,其也是 linux 服务器受到攻击的最常见的原因之一 。
不过别误会...我们并不是说 ssh 有什么安全漏洞,相反,它在设计上是一个非常安全的协议 。但是安全起见,我们在配置 ssh 的时候,作为一个好习惯,不应该使用它的默认配置 。毕竟,默认配置是大家都知道的 。
今天我们分享几个可以提高 ssh 安全性的实用方法 。不过需要注意,下面提到的方法,大家选取适合自己的,不需要全部都用,其中某些方法可能会与其他的不兼容 。
例如,如果禁用基于密码的 ssh 登录,则无需使用 Fail2Ban 方案 。
如果你了解 ssh 基础知识,那么就会知道 ssh 配置文件位于 /etc/ssh/sshd_config,下面我们提到的大多数操作都需要编辑此配置文件,在真正动手修改配置文件之前,最好做一下备份 。另外,对于 ssh 配置文件所作的任何更改,都需要重启 ssh 服务才能生效 。
接下来我们详细看一下 。
1,禁用空密码在 Linux 中,用户账户可以不设置任何密码(或者为空密码) 。这些用户尝试使用 ssh,也不需要密码 。
这是一个极大的安全隐患,我们应该禁止使用空密码 。方法是在配置文件 /etc/ssh/sshd_config 中,将 PermitEmptyPasswords 选项配置为 no:
PermitEmptyPasswords no2,修改 ssh 的默认端口ssh 的默认端口为 22,大多数攻击脚本都是围绕这个端口写的 。更改这个默认端口会增加 ssh 的安全性,因为会极大的减少攻击者的数量 。
在配置文件中搜索端口信息,并将其更改为其他值:
Port 567修改完成后需要记住你修改的端口(毕竟你还需要使用这个端口来登录的) 。3,禁止 ssh 使用 root 用户登录老实说,Linux 系统应该禁止 root 用户登录,因为这是有风险的,其不会留下审计信息 。这就是 sudo 机制存在的原因 。
如果系统添加了 sudo 用户,最好使用 sudo 用户通过 ssh 连接,而不是 root 用户 。
要禁止 root 用户通过 ssh 访问,可以修改 PermitRootLogin 选项为 no:
PermitRootLogin no4,禁用 ssh 协议 1如果你使用的是比较旧的 Linux 版本,在某些低版本的 ssh 可能仍然有 ssh 协议 1 可用,该协议存在已知的漏洞,不能再使用 。
较新版本的 ssh 会自动启用 ssh 协议 2,可以检查一下该配置:
Protocol 25,配置空闲超时间隔空闲超时间隔是 ssh 连接可以在没有任何活动的情况下保持活动状态的时间 。这种空闲会话也是一种安全风险,所以需要配置合适的空闲超时时间间隔 。
超时间隔以秒为单位,默认值是0 。我们可以将其更改为300,即保持 5 分钟的超时间隔 。
ClientAliveInterval 300在此间隔之后,ssh 服务器将向客户端发送一条活动消息 。如果没有得到响应,连接将关闭,最终用户将注销 。
还可以配置在断开连接之前,发送活动消息的次数:
ClientAliveCountMax 26,仅允许特定用户进行 ssh 访问当涉及到安全时,我们应该遵循最低特权原则,不要在不需要的时候给予权利 。
比如,我们在 Linux 系统上可能会有若干个用户,但并不是所有用户都需要通过 ssh 访问系统 。所以我们可以设置只有少数用户可以通过 ssh 访问系统,从而限制所有其他用户 。如下配置所示:
AllowUsers User1 User2另外,还可以配置某个用户组可访问 ssh:
AllowGroups ssh_group此外,也可以配置 DenyUsers 和 DenyGroups 来拒绝某些用户和组来通过 ssh 访问 。
7,禁用 X11 转发X11 或 X 显示服务器是图形环境的基本框架 。X11 转发允许您通过 ssh 使用 GUI 应用程序 。
基本上,客户机在服务器上运行 GUI 应用程序,但由于 X11 转发,机器之间打开了一个通道,GUI 应用程序旧显示在了客户机上 。
基于此,X11 协议是有安全隐患的 。所以如果不需要它,应该禁用 ssh 中的 X11 转发 。
X11Forwarding no8,自动减轻暴力攻击为防止 ssh 暴力攻击,可以使用比如 Fail2Ban 这样的安全工具 。
Fail2Ban 可检查来自不同 IP 地址的失败登录尝试 。如果这些错误尝试在设置的时间间隔内超过阈值,它将禁止该 IP 在特定时间段内访问 SSH 。


推荐阅读