凌晨3点的噩梦
上周三凌晨,做运维的老张被电话吵醒——公司服务器CPU跑满了。登上去一看,挖矿程序正欢快地运行着。原来SSH密码被人暴力破解,服务器变成了别人的"矿机"。
这样的事每天都在发生。根据统计,一台暴露在公网的服务器,平均每天会遭受数千次扫描和攻击尝试。
一个实用的解决方案
今天要分享的项目叫 How-To-Secure-A-Linux-Server,是GitHub上一份Linux服务器安全加固教程,目前已经有21.1k个星标。
作者把散落在各处的安全知识整理成了一套完整方案,从SSH配置到防火墙设置,从入侵检测到日志监控,该有的都有了。
项目特点:
- 讲解详细,每个步骤都说明了为什么要这样做
- 提供Ansible自动化脚本,不用手工一台台配置
- 持续更新,已经有254次代码提交
- 经过生产环境验证,不是纸上谈兵
具体能做什么
基础防护
SSH安全加固
- 用密钥登录代替密码
- 开启双因素认证
- 禁止root直接登录
- 修改默认端口
权限管理
- 限制sudo和su的使用
- 用FireJail给应用加沙箱
- 强制使用复杂密码
- 定期更换密码
网络防护
防火墙配置
入侵防御
- Fail2Ban自动封禁暴力破解的IP
- PSAD检测端口扫描行为
- CrowdSec接入威胁情报网络
监控审计
文件监控
病毒和Rootkit检测
- ClamAV病毒扫描
- Rkhunter和chkrootkit检测后门
日志分析
- logwatch每天发送日志摘要
- Lynis做全面的安全评估
怎么用起来
第一步(30分钟搞定)
- 配置SSH密钥认证,关掉密码登录
- 启用UFW防火墙
- 开启系统自动更新
这三步就能挡住大部分常见攻击。
第二步(1小时完成)
- 装上Fail2Ban防暴力破解
- 配置AIDE监控文件变化
- 设置logwatch每天发邮件报告
第三步(按需选择)
- 接入CrowdSec威胁情报
- 用Lynis做全面体检
- 部署OSSEC入侵检测系统
注意事项
改SSH配置前,记得保留一个控制台登录方式,不然配置错了会把自己锁在外面。
防火墙规则要先测试,确认没问题再正式启用。
AIDE的基线要在系统干净的时候建立,不然后面会有很多误报。
双因素认证的恢复码要保存好,丢了就麻烦了。
适合谁用
适合的场景:
不太适合:
对不同角色的价值
运维工程师
- 可以直接照着做,每步都有说明
- 标注了常见错误,避免踩坑
- 能当作服务器上线前的检查清单
DevOps团队
- 有现成的Ansible脚本
- 可以集成到CI/CD流程
- 配合Terraform做基础设施即代码
SRE
为什么值得关注
安全加固这件事,很多人知道重要但不知道怎么做。这个项目的价值就是把经验变成了可执行的步骤。
与其等到凌晨3点被叫起来处理安全事故,不如现在花点时间做好防护。
系统要稳定运行,首先得保证不被攻破。
项目地址
GitHub仓库: imthenachoman/How-To-Secure-A-Linux-Server
Ansible自动化版本: moltenbit/How-To-Secure-A-Linux-Server-With-Ansible
DevOps监控:https://yunpan.plus/t/362-1-1
云原生架构:https://yunpan.plus/t/81-1-1
关注我们
《云栈运维云原生》专注运维、SRE、DevOps、云原生技术分享。
标签:#HowToSecureALinuxServer #Github #Linux服务器安全 #服务器加固 #运维实战 #开源项目
来自圈子: 云栈运维云原生 |