进入服务器(尤其是生产环境)时,为确保安全、稳定和可追溯,需严格遵守操作规范,以下是一些关键注意事项,分为安全规范、操作流程和最佳实践三类:
1、身份认证
- 使用SSH 密钥登录(禁用密码登录),密钥需加密且定期更换。
- 若有团队协作,通过跳板机/堡垒机 集中管理访问权限。
- 启用多因素认证(MFA)(如支持)。
2、权限控制
- 遵循最小权限原则:仅授予必要的用户和进程所需权限。
- 避免直接使用root 用户,通过sudo 执行特权命令,并限制sudo 权限范围。
- 定期审查用户账户和权限(清理离职人员账户)。
3、网络隔离与防火墙
- 服务器应置于内网/VPC,仅开放必要的端口(如 SSH 仅限特定 IP 访问)。
- 配置防火墙(如iptables、ufw 或云平台安全组)并定期检查规则。
4、日志与监控
- 确保SSH 登录日志(/var/log/auth.log 或/var/log/secure)和操作日志被记录并集中收集。
- 部署入侵检测系统(如 Fail2ban)监控暴力破解。
1、事前准备
明确目的:确认操作内容(如部署、调试、维护),避免临时随意操作。
通知相关人员:若可能影响服务,提前通知团队或用户。
备份关键数据与配置:修改重要文件前(如数据库、服务配置)先备份。
2、连接服务器
- 使用SSH 客户端(如 OpenSSH)并保持软件更新。
- 检查连接地址是否正确(防止误连其他环境)。
3、操作中注意事项
使用屏幕管理工具(如tmux 或screen):防止网络中断导致操作丢失。
危险命令三思后行:尤其涉及rm -rf、chmod、dd、格式化等破坏性操作。
修改配置前先验证语法:
- Nginx:nginx -t
- 数据库:mysqld --defaults-file=/path/to/config --validate-config
避免长时间运行占用资源的操作:如需执行,使用nohup 或后台任务,并监控系统负载。
4、退出前检查
- 确认服务状态是否正常(如systemctl status nginx)。
- 检查系统资源(top、df -h、netstat 等)。
清理临时文件 或敏感信息(如命令行历史中的密码)。
安全退出:使用exit 或logout 断开连接,关闭 SSH 客户端。
1、配置管理
- 使用版本控制(如 Git)管理脚本和配置文件,避免直接在线编辑。
- 使用自动化工具(如 Ansible、Puppet)进行批量操作,减少手动失误。
2、文档记录
- 记录操作内容、时间、原因和影响(可使用内部 Wiki 或工单系统)。
- 复杂操作前编写执行计划(含回滚方案)。
3、应急准备
- 提前准备回滚方案(如快照、备份恢复流程)。
- 确保有另一条访问路径(如控制台、救援模式)以备网络故障时使用。
4、合规与审计
- 敏感操作需多人复核或授权(如数据库删除、防火墙规则变更)。
- 定期审计操作日志,检查异常行为。
- [ ] 是否通过安全通道(如 VPN/堡垒机)连接?
- [ ] 是否使用密钥而非密码登录?
- [ ] 是否明确了本次操作的目的和步骤?
- [ ] 是否备份了可能受影响的数据?
- [ ] 是否开启了tmux/screen 防止中断?
- [ ] 是否避免了直接使用root?
- [ ] 退出前是否检查了服务状态?
- [ ] 是否清除了命令行历史中的敏感信息?
- 修改/etc 下的系统配置(如sudoers、ssh/sshd_config)。
- 操作数据库DROP、TRUNCATE 命令。
- 批量删除日志或文件(尤其是通配符 的使用)。
- 调整内核参数或网络配置。
:服务器操作需以安全、可控、可追溯 为核心原则,即使是简单任务,也应养成良好的操作习惯,避免“一时疏忽”导致重大事故,对于生产环境,建议通过自动化工具减少人工干预。
文章摘自:https://idc.huochengrm.cn/js/24749.html
评论
清舒兰
回复确保服务器安全、稳定和可追溯,需严格遵守安全规范、操作流程和最佳实践,包括身份认证、权限控制、网络隔离、日志监控、备份、自动化配置管理、文档记录等。