落地第一步是完成实例初始化与系统加固。建议先更新系统包,关闭不必要服务,并设置安全策略。具体操作包括:
1) 执行系统补丁更新;2) 禁用root直接密码登录;3) 安装常用安全工具(如fail2ban、auditd);4) 配置时间同步与NTP;5) 开启自动安全更新(视业务允许)。
在 CentOS/AlmaLinux 上常见命令示例:
yum update -y;systemctl disable cups;yum install -y fail2ban
为实例打上业务标签、在阿里云控制台启用实例登录审计,并将镜像与密钥放在受控仓库,便于后续复现。
SSH是远程访问的核心入口,务必采用密钥认证并限制登录来源。操作要点包括生成密钥对、上传公钥、关闭密码登录与限制允许用户。
1) 在本地生成RSA或ED25519密钥对;2) 将公钥追加到服务器的~/.ssh/authorized_keys;3) 修改 /etc/ssh/sshd_config 禁用PasswordAuthentication;4) 重启sshd并测试新会话;5) 如需加固,变更默认端口并配合云安全组限定IP。
ssh-keygen -t ed25519 -C "admin@company"
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@your-server
修改 /etc/ssh/sshd_config:PasswordAuthentication no;PermitRootLogin prohibit-password;systemctl restart sshd
为不同运维角色创建不同密钥并启用两步验证或多因素登录;定期轮换密钥并在密钥泄露时立即撤销。
安全组是第一道网络防线,OS 防火墙(iptables、firewalld、ufw)是第二道。两者要配合使用,避免端口误放行。
1) 在阿里云控制台为实例配置云安全组,仅开放必要端口(如 22/ssh、80/443);2) 使用CIDR限制管理IP段;3) 在服务器上启用firewalld或ufw,设置默认拒绝策略并仅放行必要服务;4) 配置连接跟踪和速率限制。
使用firewalld示例:
firewall-cmd --permanent --set-default-zone=drop
firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --reload
生产建议将管理口限制到运维跳板机或VPN,并在阿里云安全组层面做二次限制,避免单点风险。
最小权限原则在服务器端同样适用。通过细化用户、使用sudo和合理的文件权限来降低被攻陷的影响面。
1) 创建独立用户并禁止使用root直接登录;2) 将运维人员放入特定用户组并通过 /etc/sudoers 或 sudoers.d 细化权限;3) 对敏感文件和目录使用严格权限(700/600);4) 启用基于角色的访问控制(RBAC)或使用配置管理工具统一管理用户权限。
添加用户与配置sudo示例:
useradd -m -s /bin/bash ops_user
usermod -aG wheel ops_user
visudo 新增 ops_user 可运行的命令或脚本路径限制
避免将通用账号用于自动化任务,应使用服务账号并配合密钥或临时凭证,记录每次sudo操作的审计日志。
安全不是一次性工作,需通过监控、日志与备份体系实现持续保障。重点包括日志集中、异常告警与定期备份恢复演练。
1) 将系统日志(/var/log/auth.log、/var/log/secure)汇聚到集中日志服务(如阿里云 SLS/Elasticsearch)并开启审计;2) 部署主机级监控(agent)采集指标并设置阈值告警;3) 实施定期全量与增量备份(镜像、磁盘快照、数据库备份),并保存在不同可用区或对象存储;4) 定期做恢复演练并验证备份完整性。
利用阿里云产品:开启 SLS 采集实例日志并创建告警策略,ECS 快照结合 OSS 做跨区备份;在实例内安装云监控 agent 并设置 CPU/IO/异常登录告警。
导出关键审计日志到不可改写的存储位置,设置报警级别与告警联动(短信/钉钉/工单),并对关键事件建立应急处置流程。