虚拟主机域名注册-常见问题服务器知识 → 操作系统

10个保护 SSH 服务器的最佳方法

  1. 禁用空密码

  在Linux中可以拥有不需要任何密码的用户账户,如果这些用户尝试使用SSH,他们也不需要密码就可以通过SSH访问服务器。如果这些用户尝试使用SSH,他们不需要密码也可以通过SSH访问服务器。

  这是一个安全风险。你应该禁止使用空密码。在/etc/ssh/sshd_config文件中,确保将PermitEmptyPasswords选项设置为no。

  PermitEmptyPasswords no

  2. 更改默认的SSH端口

  默认的SSH端口是22,大部分的攻击脚本检查都是围绕这个端口编写的。改变默认的SSH端口可以在一定程度上提高安全性,因为攻击的数量(来到22端口)可能会减少。

  在配置文件中搜索端口信息,并将其改为不同的端口。

  Port 2345

  3. 通过SSH禁止root登录

  说实话,服务器使用root帐号登录,本身就应该被禁止。它的风险比较大,而且不会留下审计日志。

  如果你的系统中添加了sudo用户,你应该使用该sudo用户通过SSH访问服务器,而不是root。

  你可以通过修改PermitRootLogin选项并将其设置为no来禁止root登录。

  PermitRootLogin no

  4. 禁用ssh协议1

  如果你使用的是较旧的Linux发行版,那么就会出现这种情况。一些旧的SSH版本可能仍有SSH协议1可用。这个协议有已知的漏洞,一定不要使用。

  新的SSH版本会自动启用SSH协议2,但仔细检查一下也无妨。

  Protocol 2

  5. 配置空闲超时时间间隔

  空闲超时间隔是指一个SSH连接在没有任何活动的情况下可以保持活跃的时间。这种空闲会话也是一种安全风险。最好是配置闲置超时间隔。

  超时间隔以秒为单位,默认为0,你可以将其改为300,以保持5分钟的超时间隔。

  ClientAliveInterval 300

  在这个时间间隔之后,SSH服务器将向客户端发送一条活着的消息。如果它没有得到响应,连接将被关闭,终端用户将被注销。

  你也可以控制它在断开连接前发送活着消息的次数。

  ClientAliveCountMax 2

  6. 只允许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 no

  8. 自动缓解暴力攻击

  为了缓解SSH暴力攻击,你可以使用Fail2Ban这样的安全工具。

  Fail2Ban会检查来自不同IP地址的失败登录尝试。如果这些不好的尝试在设定的时间间隔内越过了一个阈值,它就会在一定时间内禁止该IP访问SSH。

  你可以根据自己的喜好和要求来配置所有这些参数。

  9. 禁用基于密码的SSH登录

  无论你如何尝试,你总会在Linux服务器上看到通过SSH的不良登录尝试。攻击者很聪明,他们使用的脚本往往会照顾到Fail2Ban等工具的默认设置。

  为了摆脱不断的蛮力攻击,你可以选择只使用基于密钥的SSH登录。

  在这种方法中,你将远程客户端系统的公钥添加到SSH服务器的已知密钥列表中。这样,这些客户端机器就可以在不输入用户账号密码的情况下访问SSH。

  当你有了这种设置后,你就可以禁用基于密码的SSH登录。现在,只有拥有指定SSH密钥的客户机才能通过SSH访问服务器。

  在你采用这种方法之前,请确保你已经将自己的公钥添加到服务器上,并且可以使用。否则,你会把自己锁在外面,可能会失去对远程服务器的访问权,特别是如果你使用的是像Linode这样的云服务器,在那里你没有物理访问服务器。

  10. 使用SSH的双因素认证

  要将SSH的安全性提升到一个新的水平,你还可以启用双因素认证。在这种方法中,您会在手机、电子邮件或通过第三方unthentication应用程序收到一个一次性密码。

  你可以使用这个命令查看SSH服务器的所有参数。

  sshd -T

  这样,你可以很容易地看到是否需要改变任何参数来增强SSH服务器的安全性。你还应该保持SSH安装和系统的更新。




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:CentOS 8安装Memcached(缓存服务器)的操作方法
下一篇:linux中parted分区命令的用法
  >> 相关文章
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部