运维安全 | 等保视角下的SSH加固之旅

0x00 前言

前段时间在搞等保,根据等保的安全要求,需要对公司的服务器进行安全加固,其中就涉及到对SSH Server的加固。正好最近有空,笔者将加固过程的一些经验,总结分享一下,于是有了本文。

0x01 等保视角下的SSH 加固之旅

等保规范中 对主机安全要求有以下一个方面

1)身份鉴别 2)访问控制 3)审计 4)入侵防范

根据这4点规范要求,结合实际加固经验,总结如下

一、服务端的加固:

1、登录认证维度的加固

1)、选择安全的登录认证方式

首推公钥认证方式

通过ansible 批量更新,或者通过堡垒机的定时任务实现对管理的服务器上的公钥进行批量更新

如果需要再进一步提升安全性,可在公钥认证的基础上增加二次认证,相关文章有:

基于短信的二次认证 基于TOTP的二次认证

严禁选择基于密码的、基于主机的认证方式:

如果有条件的可以接入Kerberos 认证

2)选择安全的ssh-key生成算法生成的key

ssh key 常见算法及安全性

DSA: 已被证明不安全,且从OpenSSH Server 7 之后便不再支持

RSA: RSA算法产生的私钥的安全性依赖于密钥的长度,如果密钥的长度小于3072,则不够安全,比如常见的2048 位的ssh key 是不够安全的,1024位直接被标记为不安全

ECDSA:这个算法产生的密钥安全性依赖于当前机器产生的随机数的强度

Ed25519: 目前最为推荐的ssh key 生成算法,安全性最好!

如何查看当前认证公钥key加密算法及其强度:

如何生成Ed25519算法的key 呢?

shell下执行命令:

3)基于权限最小化原则,限制不同用户使用不同角色的账户

有的同学登录ssh 服务器是为了执行日常的运维操作命令,有的同学则单存为了上传下载文件,根据权限最小化原则,则给与日常运维的同学以普通ssh账户,可以获取shell,限制只有上传下载需求的同学只能sftp登录ssh 服务器

建议参考文章: 运维安全 | 如何限制指定账户不能SSH只能SFTP在指定目录

2、网络层的访问控制

1)禁止端口转发

通过禁止TCP端口转发,可以禁止SSH 远程端口和本地端口转发功能,也可以禁止SSH 远程隧道的建立

2) 限制指定的IP才能连接

如果接入了堡垒机,则限制只允许堡垒机的IP连接

除了在防火墙上做规则限制,还可以通过TCP Wrapper 和sshd_config的配置命令

3、审计角度的加固

按照等保的要求,服务器对日常的运维行为必须保留日志,便于审计

为了实现等保的审计要求,可以选择加入堡垒机,或者将ssh 登录日志、bash 操作日志集中转发之SOC或者内部日志平台(比如通过syslog方式),可以参考的文章有: 安全运维之如何将Linux历史命令记录发往远程Rsyslog服务器

4、openssh server 本身的安全加固

及时更新openssh server及其依赖的openssl库的补丁,比如openssh server就曾曝出过比较严重漏洞:OpenSSH现中危漏洞,可致远程代码执行

建议关注:openssh 官方安全通告:

https://www.openbsd.org/security.html

5、SSH Server 的入侵防范

1)ssh 相关后门进行排查、比如openssh 后门等,相关文章有:

一款短小精致的SSH后门分析 Linux安全运维丨OpenSSH安全浅析

2)ssh 登录日志的排查

安全运维之如何找到隐匿于last和w命令中的ssh登录痕迹

二、客户端安全加固

从putty、winscp 被爆携带后门到xshell多个版本被爆后门,客户端软件的安全性值得我们投入更多的精力去关注与改进,不然再牛逼的服务端加固也无济于事

百度软件中心版putty被曝恶意捆绑软件 远程终端管理工具Xshell被植入后门代码事件分析报告

从等保安全性要求,建议禁止使用破解版的ssh client 软件,比如SecureCRT 等,避免软件供应链污染导致的安全问题。

建议从正规官网下载Xshell、MobaXterm、putty、winscp等ssh 客户端软件。

0x02 总结

从法律对网络安全要求趋严的大环境下,对服务器的有效的加固是比不可少的环节,本文抛砖引玉,希望更多的业内从业人员分享自己的一线经验。笔者行文匆忙,定有不足之处,还望各位斧正!

0x03 参考

http://www.freebuf.com/sectool/159488.html

http://www.freebuf.com/column/163631.html

http://www.freebuf.com/column/163631.html

https://blog.g3rt.nl/upgrade-your-ssh-keys.html

*本文原创作者:ForrestX386,本文属FreeBuf原创奖励计划,未经许可禁止转载

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-10-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小白课代表

软件分享 | 3DS MAX 2018安装教程

3D Studio Max,常简称为3d Max或3dsMAX,是Discreet公司开发的(后被Autodesk公司合并)基于PC系统的三维动画渲染和制作软件...

971
来自专栏FreeBuf

全能无线渗透测试工具,一个LAZY就搞定了

近来一直在研究无线安全方面的东西,特别是在无线渗透测试这块,每次渗透测试时总要来回不停的切换操作和挑选利器,很是麻烦。就想看看是否可以有一款功能全面的集合型工具...

3205
来自专栏高性能服务器开发

(八)高性能服务器架构设计总结1——以flamigo服务器代码为例

这篇文章算是对这个系列的一个系统性地总结。我们将介绍服务器的开发,并从多个方面探究如何开发一款高性能高并发的服务器程序。 所谓高性能就是服务器能流畅地处理各个客...

4396
来自专栏区块链

如何在登录界面获取 shell?

信息安全公益宣传,信息安全知识启蒙。 教程列表见微信公众号底部菜单 ? Inception Inception是由Carsten Maartmann-Moe开发...

22110
来自专栏数据库

数据库安全如何保障?这五点是关键!

数据泄漏的成本是昂贵的,这之中包含着业务的中断、客户信任的丧失、损失的法律成本、监管罚款和勒索软件攻击。 数据泄漏或导致巨大的影响。最好的防御是好的进攻,所以让...

22110
来自专栏北京马哥教育

jenkins+gitlab构建安卓自动编译环境

因工作关系接触到接触到安卓自动编译环境,网上的资料都推荐了jenkins,因为第一次接触安卓和jenkins,踩了不少的坑,有总结才有进步。 gitlab环境之...

3905
来自专栏FreeBuf

如何用ESP8266做个钓鱼测试WIFI

其实关于esp8266网上有许多教程,好多前辈玩这个已经好多年了,但为了给像我这样的小白系统的解决制作过程中的一些问题,我还是写出来。 我自己也是刚开始玩,如有...

8078
来自专栏漏斗社区

斗哥说|phpcms_v9.6.0 任意文件上传漏洞复现!

前言 在开启严肃认真的知识分享前,斗哥跟大家说一件严肃的事儿!本周日是一年一度的母亲节!无论你身处他乡还是奔波忙碌,别忘了给亲爱的母上大人送上节日的祝福,家永远...

4968
来自专栏散尽浮华

Linux系统是否被植入木马的排查流程梳理

在日常繁琐的运维工作中,对linux服务器进行安全检查是一个非常重要的环节。今天,分享一下如何检查linux系统是否遭受了入侵? 一、是否入侵检查 1)检查系统...

7128
来自专栏喵了个咪的博客空间

3.请求安全-- 如何验证请求的唯一性

#如何验证请求的唯一性# ##前言## 讲到请求的唯一性,是我在接口API中开发中遇到的一个问题,有一个需求就当当你的链接被捕获之后如何让它失效,当然是在别人没...

4706

扫码关注云+社区

领取腾讯云代金券