SSH安全优秀实践

众所周知,SSH是远程控制中使用最广泛和最重要的工具,所有*nix系统都是默认启动SSH服务。虽然SSH可以保证数据传输的安全,但是默认配置的情况下SSH存在被探测、被暴力破解的危险,很多主机由此沦为了肉鸡。本文虫虫给大家介绍一下SSH安全最佳实践,以提高主机安全。

网络限制

信息安全最根本最有效的方法是,保障网络安全,通过网络限制可以最大程度保障系统安全,对SSH服务也是如此,可以通过硬防、安全组(针对云资源,相当于硬防)、主机防火墙等限制SSH端口,以保障安全。

防火墙

防火墙的主要工作是使用预定义的规则检查传入和传出的流量。关于硬件防火墙和安全组在此不在多说。

*nix系主机可以使用iptables防火墙,iptables是对netfilter应用级打包,可以用来数据包过滤,接受或拒绝数据包(或采取其他行动)以保护系统免受攻击。

使用iptables可以定义规则,限制IP地址、端口或协议的SSH流量。还可以跟踪最近的SSH端口连接。也可以使用速率限制连接,根据IP地址连接到SSH的速率来阻止它们。

使用防火墙并调整其配置有助于减少SSH攻击的机会。一个典型Iptables白名单访问的例子如下:

  1. … 
  2. -A INPUT -s 192.168.1.8 -p tcp -m state --state NEW -m tcp --dport 2022 -j ACCEPT 
  3. -A INPUT -s 192.168.1.6 -p tcp -m state --state NEW -m tcp --dport 2022 -j ACCEPT 
  4. -A INPUT -p tcp --dport 2022 -j REJECT --reject-with icmp-host-prohibite 
  5. … 

以上规则中,只允许Ip地址192.168.1.6和192.168.1.8访问2022端口(修改过的ssh端口)。

堡垒机

堡垒主是专门设计用于阻止来自网络的恶意流量和攻击的安全网关。堡垒在公共网络上公开的安全代理和审计服务,通过堡垒机和限制和审计用户操作,记录用户操作,可以对可疑操作进行告警或者直接阻断从而减少对主机威胁。

当两个通道建立SSH连接时,设置堡垒主机可能有助于提高安全性并保护系统。

堡垒机是个非常重要的安全设备,但是同时它本身也是风险点和单点,如果堡垒机由于漏洞或者其他因素被人攻陷或者出现故障,会造成重大问题。毕竟把所有鸡蛋都放在一个篮子里,摔了那就都碎了。所以保障堡垒机安全和高可用至关重要。

双因子认证(2FA)

在双因子认证的体系中,系统需要两种不同形式的身份验证才能获得访问权限。最常见的双因子验证是用户登陆时候除了输入用户名和密码外,还要通过手机短信验证码才能通登陆系统。虽然发送到移动设备的一次性密码会受到中间人 (MITM) 攻击 ,但使用第二个因子总比没有第二个因子要好。

更安全的双因子认证还有硬件是安全校验卡YubiKey 和 Apple TouchID等。开源方法有基于google-authenticator和FreeOPT的方式以及基于freeipa的方式。

通过启用双因子验证功能,系统管理员可确保任何通过SSH登录远程系统的用户都必须使用多个容易被盗的凭据进行身份验证,可保证比单独使用密码或SSH密钥更安全。

另外在国家网络安全等级保护标准中,在网络、主机等部分密码要求都明确要求了双因子认证。

公钥和SSH Certificate-based 验证

尽管基于SSH密钥身份验证是密认证的更好替代方案,可以增强远程登录过程的安全性,但它也有其潜在的障碍。例如,用户必须将私钥存储在其设备上,其设备有可能是被盗或者因为攻陷导致泄密。而且SSH证书实际上只是另一个名称的密码,私钥也可以泄露,被人利用。

为了防止私钥泄露,在生成证书时候可以设置密码保护是个很好的做法,另外将私钥保存在非常用的~/.ssh/目录也可以一定程度上避免泄露。

基于CA签发证书的SSH Certificate-based身份验证是一个更好的选择。SSH证书通过使用CA公钥来保护登录过程,同时还提供证书来验证每个密钥的身份。

通过使用这种身份验证方法,无需每次去服务器上添加用户公钥,只需在sshd_config添加一CA 的公钥信任既可以:

  1. TrustedUserCAKeys /etc/ssh/user_ca_key.pub 

同时在签发证书时候可以对签发的公钥进行用户名、时间、源地址等限制。配置成功后,访问ssh就是基于用户私钥(userss)和CA签发的cert证书(user-cert.pub)认证:

  1. ssh -p2022 -o CertificateFile = user-cert.pub -i userss [email protected] 

为了方便可以配置ssh config简化访问时候选项设置:

  1. Host test 
  2. HostName 192.168.1.22 
  3. Port 2022 
  4. User user 
  5. CertificateFile ~/.ssh/user-cert.pub 
  6. IdentityFile ~/.ssh/users 

然后就可以简便的ssh test访问了。

SSH Certificate-based身份验证提供了一种对任何计算环境进行身份验证的安全且可扩展的方法。

修改默认SSH设置

OpenSSH 默认选项通常通过文件/etc/ssh/sshd_config来配置。前面我们也提到了,默认配置存在着安全风险,需要优化配置。

更改默认22端口

默认情况下,SSH服务监听tcp端口22。任何一个时候,在互联网上都存在大量探测机器人对22端口进行探测,并且自动暴力攻击常见用户和字典密码。你新开一台vps主机,然后安全组开放22端口,几分钟内就会收到SSH密码尝试攻击的日志。

在端口探测时候,往往都是通过默认22端口对SSH服务探测,如果更改为非22端口就可以避免绝大多数该类探测。修改sshd默认端口的方法是修改/etc/ssh/sshd_config文件

找到:

  1. Port 22 

修改为:

  1. Port 2022 

修改后重启sshd服务即可:

  1. systemctl restart sshd.service 

当然也可以设置其他的小于65535的端口。注意修改之前记得先在防火墙上开放该端口,免得把自己踢出去,登陆不了了。

  1. Iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 2022 -j ACCEPT 

禁用root登录

其次,默认情况下,用户可以以root身份通过SSH连接到服务器。SSH根帐户或超级用户帐户是一个非常危险的功能,因为它允许完全访问和控制整个系统。 而且网络暴力尝试攻击中,root用户最容易被攻击的账号。通过在服务器上禁用root SSH登录,可以避免攻击成功可能性,而且通过权限分配,可以更好进行用户行为审计和溯源跟踪。禁止root登陆方法是修改/etc/ssh/sshd_config文件,在最后增加一行:

  1. PermitRootLogin no 

禁用密码登陆

前面说了密码认证虽然方便,但是最容易被暴力攻击,也容易账号泄露,这可能是系统被黑的最常见的原因(root 建议密码)。应该完全禁止基于密码的SSH身份验证并选择至少使用SSH密钥。禁止密码登陆方法是修改/etc/ssh/sshd_config文件,在最后增加一行:

  1. PasswordAuthentication no 

利用 ”AllowUsers”来限制访问

此外,默认情况下,所有系统用户都可以使用他们的密码或公钥登录SSH,这也带来潜在安全隐患。并非所有系统用户都需要通过SSH远程登录。同限制特定用户对SSH访问极大地增强了安全性。可以通过/etc/ssh/sshd_config文件中配置来设置可以访问SSH的白名单:

  1. AllowUsers user1 user2 chongchong 

这样系统中就只能有user1 user2 chongchong三个用户可以SSH登陆。对应还有

  • AllowGroups 用户组白名单
  • DenyUsers 用户黑名单
  • DenyGroups用户组黑名单

总结

本本中虫虫给介绍SSH安全最佳实践,但是这是最常见最有效的加固方法。取决于环境和合规性要求这些方法在实际中可以按需调整。需要指出的是,要注意遵循优秀实践并正确实施这些实践通常具有挑战性。

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/129231.html<

(0)
管理的头像管理
上一篇2025-02-25 12:36
下一篇 2025-02-25 12:38

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注