0×00 前言
前段时间在搞等保,根据等保的安全要求,需要对公司的服务器进行安全加固,其中就涉及到对SSH Server的加固。正好最近有空,笔者将加固过程的一些经验,总结分享一下,于是有了本文。
0×01 等保视角下的SSH 加固之旅
等保规范中 对主机安全要求有以下一个方面
1)身份鉴别
2)访问控制
3)审计
4)入侵防范
根据这4点规范要求,结合实际加固经验,总结如下
一、服务端的加固:
1、登录认证维度的加固
1)、选择安全的登录认证方式
首推公钥认证方式
通过ansible 批量更新,或者通过堡垒机的定时任务实现对管理的服务器上的公钥进行批量更新
如果需要再进一步提升安全性,可在公钥认证的基础上增加二次认证,相关文章有:
严禁选择基于密码的、基于主机的认证方式:
PasswordAuthentication no HostbasedAuthentication no 禁用用户的 .rhosts 文件
IgnoreRhosts yes
如果有条件的可以接入Kerberos 认证
2)选择安全的ssh-key生成算法生成的key
ssh key 常见算法及安全性
DSA: 已被证明不安全,且从OpenSSH Server 7 之后便不再支持
RSA: RSA算法产生的私钥的安全性依赖于密钥的长度,如果密钥的长度小于3072,则不够安全,比如常见的2048 位的ssh key 是不够安全的,1024位直接被标记为不安全
ECDSA:这个算法产生的密钥安全性依赖于当前机器产生的随机数的强度
Ed25519: 目前最为推荐的ssh key 生成算法,安全性最好!
如何查看当前认证公钥key加密算法及其强度:
for key in ~/.ssh/id_*; do ssh-keygen -l -f "${key}"; done | uniq
如何生成Ed25519算法的key 呢?
shell下执行命令:
ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "john@example.com"
3)基于权限最小化原则,限制不同用户使用不同角色的账户
有的同学登录ssh 服务器是为了执行日常的运维操作命令,有的同学则单存为了上传下载文件,根据权限最小化原则,则给与日常运维的同学以普通ssh账户,可以获取shell,限制只有上传下载需求的同学只能sftp登录ssh 服务器
建议参考文章: 运维安全 | 如何限制指定账户不能SSH只能SFTP在指定目录
2、网络层的访问控制
1)禁止端口转发
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
通过禁止TCP端口转发,可以禁止SSH 远程端口和本地端口转发功能,也可以禁止SSH 远程隧道的建立
2) 限制指定的IP才能连接
如果接入了堡垒机,则限制只允许堡垒机的IP连接
iptables -A INPUT -s 堡垒机IP -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP
除了在防火墙上做规则限制,还可以通过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 后门等,相关文章有:
2)ssh 登录日志的排查
二、客户端安全加固
从putty、winscp 被爆携带后门到xshell多个版本被爆后门,客户端软件的安全性值得我们投入更多的精力去关注与改进,不然再牛逼的服务端加固也无济于事
从等保安全性要求,建议禁止使用破解版的ssh client 软件,比如SecureCRT 等,避免软件供应链污染导致的安全问题。
建议从正规官网下载Xshell、MobaXterm、putty、winscp等ssh 客户端软件。
0×02 总结
从法律对网络安全要求趋严的大环境下,对服务器的有效的加固是比不可少的环节,本文抛砖引玉,希望更多的业内从业人员分享自己的一线经验。笔者行文匆忙,定有不足之处,还望各位斧正!
0×03 参考
http://www.freebuf.com/sectool/159488.html
http://www.freebuf.com/column/163631.html
猜你还喜欢
- 07-08八年专业安全团队承接渗透入侵维护服务
- 08-06SQLMAP的注入命令以及使用方法
- 08-03白帽故事汇:网络安全战士从来不是「男生」的专利
- 07-27编辑器漏洞手册
- 07-12web安全之如何全面发现系统后台
- 02-22常见Web源码泄露总结
- 07-25网站后台登陆万能密码
- 07-23破解emlog收费模板“Begin”
- 01-12批量检测SQL注入
- 01-22Apache Solr远程代码执行漏洞(CVE-2017-12629)从利用到入侵检测
- 随机文章
-
- 漏洞检测的那些事儿
- 白帽故事汇:网络安全战士从来不是「男生」的专利
- 围炉夜话|那些年我们一起追过的“萧何”
- 围炉夜话|渗透测试、人鱼线和补锅匠
- Linux下搭建hadoop集群环境
- 如何自己构建一个小型的Zoomeye—-从技术细节探讨到实现
- Android短信蠕虫XXshenqi分析
- 别以为有vpn我找不到你(网警抓人全过程)
- Struts 2 的开发者模式:一个OGNL后门
- PHP 数据类型
- php 取出周一和周日的时间戳
- PHP编程效率的20个要点
- Arpspoof的具体使用
- 没有Iphone也能装逼:让Android版QQ显示成Iphone6
- 利用Backtrack做Wifi钓鱼
- pptp的vpn真的安全吗?
- 技术揭秘:QQ空间莫名其妙转发是什么原因
- NFS打造Web图片服务器
- 通过Mesos、Docker和Go,使用300行代码创建一个分布式系统
- 用眼睛解读心灵
- 热门文章
-
- 八年专业安全团队承接渗透入侵维护服务
- Emlog黑客站模板“Milw0rm”发布
- Stuxnet纪录片-零日 Zero.Days (2016)【中文字幕】
- SQLMAP的注入命令以及使用方法
- 白帽故事汇:网络安全战士从来不是「男生」的专利
- 编辑器漏洞手册
- web安全之如何全面发现系统后台
- 常见Web源码泄露总结
- 渗透测试培训(第五期)
- 深入理解JAVA反序列化漏洞
- cmseasy前台无需登录直接获取敏感数据的SQL注入(有POC证明)
- 网站后台登陆万能密码
- 黑麒麟2016渗透培训系列教程
- 破解emlog收费模板“Begin”
- 那些强悍的PHP一句话后门
- Android平台渗透测试套件zANTI v2.5发布(含详细说明)
- 渗透工具BackTrack与KaliLinux全套视频教程
- Python列为黑客应该学的四种编程语言之一 初学者该怎么学
- CVE-2017-11882漏洞复现和利用
- 恶意程序报告在线查询工具
文章存档
- 2021年3月(4)
- 2020年12月(4)
- 2020年11月(5)
- 2020年10月(8)
- 2020年9月(8)
- 2020年8月(20)
- 2020年7月(47)
- 2020年6月(70)
- 2020年5月(41)
- 2020年4月(21)
- 2020年3月(120)
- 2020年2月(26)
- 2019年12月(12)
- 2019年11月(13)
- 2019年10月(17)
- 2019年9月(15)
- 2019年8月(13)
- 2019年7月(15)
- 2019年6月(15)
- 2019年5月(19)
- 2019年4月(23)
- 2019年3月(19)
- 2019年2月(11)
- 2019年1月(29)
- 2018年12月(24)
- 2018年11月(56)
- 2018年10月(79)
- 2018年9月(20)
- 2018年8月(17)
- 2018年7月(16)
- 2018年6月(7)
- 2018年5月(10)
- 2018年3月(6)
- 2018年2月(2)
- 2018年1月(11)
- 2017年11月(18)
- 2017年10月(6)
- 2017年9月(8)
- 2017年8月(7)
- 2017年7月(7)
- 2017年6月(15)
- 2017年5月(30)
- 2017年4月(7)
- 2017年3月(1)
- 2017年2月(4)
- 2017年1月(1)
- 2016年12月(3)
- 2016年11月(7)
- 2016年10月(6)
- 2016年9月(6)
- 2016年8月(102)
- 2016年7月(24)
- 2013年7月(1)
- 文章标签
-