快速体验
- 打开 InsCode(快马)平台 https://www.inscode.net
- 输入框内输入如下内容:
编写一个Bash脚本,用于自动化加固Linux服务器的SSH服务安全配置。要求:1. 禁用root远程登录;2. 修改默认SSH端口;3. 启用密钥认证并禁用密码认证;4. 配置fail2ban防护;5. 设置登录超时和尝试次数限制。脚本应包含回滚功能,并生成详细的执行报告。- 点击'项目生成'按钮,等待项目生成完整后预览效果
最近在帮公司做服务器安全加固时,发现SSH服务的安全配置是个重头戏。作为最常见的远程管理通道,SSH如果没做好防护,很容易成为攻击者的突破口。今天就把我实践过的企业级SSH加固方案整理成笔记,分享给大家。
禁用root远程登录
这是最基本的安全措施。直接使用root账号远程登录风险太高,建议先创建普通用户,再通过sudo提权。修改SSH配置文件中的PermitRootLogin参数为no即可生效。记得测试普通用户能否正常登录,避免把自己锁在门外。修改默认22端口
SSH默认的22端口是攻击者重点扫描的目标。建议改为1024-65535之间的高端口,能有效减少自动化工具的扫描。修改Port参数后,别忘了在防火墙放行新端口,同时更新本地SSH客户端配置。密钥认证替代密码
密钥认证比密码更安全,还能避免暴力破解。操作分三步:在客户端生成密钥对,将公钥上传到服务器的authorized_keys文件,最后在SSH配置中设置PasswordAuthentication为no。记得备份原有密钥,避免丢失访问权限。
fail2ban防护机制
这个工具能自动封禁多次尝试失败的IP。安装后配置SSH jail规则,设置合理的封禁时间和重试次数。建议监控日志确认防护效果,避免误封正常IP。连接超时和尝试限制
通过ClientAliveInterval设置空闲超时断开,MaxAuthTries限制密码尝试次数。这些参数需要根据团队实际使用习惯调整,太严格可能影响正常运维。
为了简化操作,我写了个Bash脚本来自动化这些配置。脚本特点包括:
- 交互式菜单选择配置项
- 自动备份原始配置文件
- 支持一键回滚到修改前状态
- 生成包含变更明细的执行报告
- 关键操作前进行二次确认
实际运行时发现几个注意事项:
- 修改端口后要立即测试新端口可用性,避免配置错误导致失联
- 密钥认证切换前确保所有管理员都已上传公钥
- 生产环境建议先在测试服务器验证脚本
- 重要变更安排在业务低峰期进行
整个加固过程在InsCode(快马)平台上测试非常方便,它的在线环境可以快速创建Linux实例,一键部署脚本后立即验证效果,省去了本地搭建测试环境的麻烦。特别是回滚功能测试环节,平台提供的快照功能让我能大胆尝试各种配置方案。
安全加固是个持续过程,建议定期审查SSH日志,更新密钥,并关注CVE漏洞公告。这套方案在我们生产环境运行半年多,SSH相关的安全事件下降了90%以上,运维同事反馈既安全又不影响工作效率。
快速体验
- 打开 InsCode(快马)平台 https://www.inscode.net
- 输入框内输入如下内容:
编写一个Bash脚本,用于自动化加固Linux服务器的SSH服务安全配置。要求:1. 禁用root远程登录;2. 修改默认SSH端口;3. 启用密钥认证并禁用密码认证;4. 配置fail2ban防护;5. 设置登录超时和尝试次数限制。脚本应包含回滚功能,并生成详细的执行报告。- 点击'项目生成'按钮,等待项目生成完整后预览效果