强化SSH服务安全的最佳实践

news/2024/11/20 11:32:11/

SSH(Secure Shell)作为一种广泛应用于Linux和其他类Unix系统中的强大工具,为管理员提供了安全的远程登录和命令执行功能。在现今高度互联的网络环境中,确保SSH服务的安全性显得尤为重要。本文将详细阐述一系列SSH服务的最佳实践,旨在帮助系统管理员有效地提升服务器及知行之桥服务安全级别,减少潜在的攻击面。

1.修改默认端口
服务器

默认情况下,SSH服务运行在TCP端口22上,黑客通常会通过扫描默认端口来寻找潜在的攻击目标。修改SSH的服务端口能有效减少此类无差别扫描带来的威胁。在/etc/ssh/sshd_config配置文件中修改Port配置项,并在防火墙中开放新的端口即可。

若需要更进一步的安全策略,可考虑关闭对SSH端口的持续侦听,在需要远程登录至服务器时再临时打开,使用后立即关闭。

知行之桥

知行之桥支持通过建立 SSH 反向隧道接收发送到 DMZ 网关的数据。这样做可以将所有外部连接集中到 DMZ,有助于保护公司防火墙并维护网络安全。注:该特性目前只在知行之桥的 .NET 版本中适用,并且需使用内置的 web 服务器。

点击了解DMZ网关的设置以及知行之桥建立SSH反向隧道

此外,需注意的是,知行之桥系统内也提供SSH服务,例如SFTP,其默认端口是22,若在知行之桥系统中使用了产品内置的SSH服务,也需要修改其默认端口:

edi-SSH1.png

2.强制公钥认证

建议避免使用基于密码的身份验证,而是启用公钥私钥对验证。公钥认证可显著提高安全性,因为每次登录都需要匹配私钥才能成功连接。

服务器

要为登录服务器设置公钥认证,请按照以下步骤操作。

①在客户端上生成公钥和私钥对时,可使用SSH-keygen命令:ssh-keygen -t rsa -b 2048

edi-SSH2.png

按照提示操作,一般情况下,公钥会被保存在~/.ssh/id_rsa.pub,私钥保存在~/.ssh/id_rsa。

② 使用以下命令将客户端机器上的公钥追加到服务器上的~/.ssh/authorized_keys文件中:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_address

在上述命令中,user是服务器上的用户名,server_address是服务器的IP地址或域名。
执行成功后,在服务器~/.ssh目录下,可看authorized_keys文件。

③在登录到服务器后,打开SSH服务器配置文件/etc/ssh/sshd_config,找到并修改以下几行配置(若不存在则添加):
PasswordAuthentication no # 关闭基于密码的身份验证
PubkeyAuthentication yes # 开启公钥认证

注意,修改配置后请务必检查配置文件的其他设置,确保没有冲突或遗漏的安全措施。

④在应用更改后,需要重启SSH服务才能使配置生效:

sudo systemctl restart sshd

重启后,服务器将只接受公钥认证的登录请求。现在,只有拥有对应私钥的客户端才能够通过SSH登录到服务器。

edi-SSH3.png

最后,请确保服务器的防火墙设置允许SSH连接,同时确认.ssh/authorized_keys文件的权限设置正确,其所有者和所属组应该是相应用户,且权限应为600 (chmod 600 ~/.ssh/authorized_keys),这样可以保证文件的安全性。

知行之桥

为SFTP服务设置密钥认证:

①在知行之桥设置页面,进入证书管理页面,点击“创建”按钮;

edi-SSH4.png

②请使用英文填写红框中的信息,并在填写完成后点击“创建证书”;

edi-SSH5.png

③创建完成后,会生成以下两个证书对,.cer文件是公钥证书,.pfx文件是私钥证书,可下载并保存。

edi-SSH6.png

④建立SFTPServer端口设置页面,为Client创建用户,认证模式选择Public Key。

edi-SSH7.png

⑤在客户端证书区域,上传客户端的公钥证书,并将私钥证书提供给客户端,这样可确保仅持有密钥的客户端才能登录。

edi-SSH8.png

3.密码策略与账户管理

确保所有用户的密码强度达标,杜绝空密码或弱密码的存在,并定期更新密码。此外,清理不必要的用户账户,确保只有经授权的用户才能访问系统。

4.限制登录尝试
服务器

通过修改/etc/ssh/sshd_config配置文件中的MaxAuthTries和LoginGraceTime参数,可以限制连续失败登录尝试的次数以及登录超时时间,从而有效地抵御暴力破解攻击。

知行之桥

在知行之桥中,SFTP Server服务可在此处设置限制登录尝试,一旦达到失败次数限制,系统将会自动锁定账户:

edi-SSH9.png

5.防火墙与网络访问控制
服务器

仅允许特定来源的IP地址访问SSH服务,可以通过防火墙规则实现。只给可信网络或者白名单上的IP地址开放SSH服务端口。

知行之桥

在知行之桥中,SFTP Server也可设置仅支持特定来源的IP地址访问SSH服务:

edi-SSH10.png

在此处添加受信任的IP地址即可:

edi-SSH11.png

6.定期审计与更新
服务器

确保SSH软件版本始终保持最新,及时打补丁以修复已知的安全漏洞。定期审查系统日志,特别是/var/log/auth.log或/var/log/secure中的登录失败记录,以便及时发现异常行为。

知行之桥

在知行之桥中,可在安装目录中\logs\SFTPServer文件夹,查看登录SFTP Server的日志信息。

结论

通过实施上述SSH服务的最佳实践,系统管理员能够显著增强服务器的安全防护机制,降低未经授权访问的风险。然而,安全是一个持续的过程,必须结合严格的访问控制政策、定期的安全审核以及及时响应安全事件的预案,才能确保SSH服务始终处于高度安全的状态。

了解更多 EDI 信息,请参阅: EDI 是什么?


http://www.ppmy.cn/news/1443618.html

相关文章

Golang基础8-go语言依赖管理

go语言依赖管理 探索 GO 项目依赖包管理与Go Module常规操作 - 知乎 https://juejin.cn/post/7054513615625256996 演进过程: GOPATH机制 早期引入GOPATH机制,Go 编译器可以在本地 GOPATH 环境变量配置的路径下,搜寻 Go 程序依赖的第三方…

C++--模板

1、非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量…

苍穹外卖day8(2)用户下单、微信支付

文章目录 前言一、用户下单1. 业务流程2. 接口设计3. 数据库设计3.1 订单表orders3.2 订单明细表 order_detail 4. 代码实现 二、订单支付 前言 用户下单 因为订单信息中包含了其他业务中的数据,在逻辑处理中涉及了多个其他业务,比如要判断地址簿、购物…

Java SE入门及基础(50) Java实现LinkedList(单向链表、双向链表) Java实现栈

目录 List 接口 1. 特性描述 List 接口常用方法 2. ArrayList 示例及源码解读 3. LinkedList 示例及源码解读 单向链表 双向链表 4. 栈 练习 Java SE文章参考:Java SE入门及基础知识合集-CSDN博客 List 接口 1. 特性描述 A List is an ordered Collection (sometimes called…

unity游戏

unity游戏 unity游戏逆向主要可以分成两类,dll游戏和libil2cpp游戏,也有apk的。一般为c#编写 一般用dnspy反编译data文件夹中的Assembly-CSharp D:\ctf附件\attachment\BJD hamburger competition_Data\Managed [BJDCTF2020]BJD hamburger competitio…

OpenCV 实现重新映射

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV 实现霍夫圆变换 下一篇 :OpenCV实现仿射变换 目标 在本教程中,您将学习如何: 一个。使用 OpenCV 函数 cv::remap 实现简单的重新…

学习记录695@EasyExcel 读取数据每一行都为null

原代码 import lombok.Data; import lombok.experimental.Accessors;Data public class ExcelData{/*** createtime*/ExcelProperty(value "姓名")private String name;/*** updatetime*/ExcelProperty(value "班级")private String class; }String fil…

【C++风云录】发现天空之美:使用C++库进行气象图像处理与分析

发现天空之美:使用C库进行气象图像处理与分析 前言 随着环境监测和气象学领域的不断发展,需要借助高效的工具和库来处理和分析大量的数据。C作为一种强大的编程语言,提供了丰富的库和工具,为环境监测和气象学领域的开发人员提供…