使用Linux主机时需要注意以下关键点:
1. 权限与用户管理
- 避免直接使用root账户操作,通过sudo授权临时提权。创建普通用户并分配最小必要权限,遵循最小权限原则。
- 定期检查`/etc/passwd`和`/etc/shadow`文件,删除无用账户。使用`chmod`和`chown`严格控制文件权限,敏感文件建议设置为600(仅属主可读写)。
2. 系统更新与补丁
- 定期执行`yum update`(RHEL/CentOS)或`apt update && apt upgrade`(Debian/Ubuntu),优先更新安全补丁。启用自动安全更新工具如`unattended-upgrades`。
- 内核更新后需重启生效,可使用`livepatch`(如Ubuntu)减少停机时间。
3. 防火墙与端口安全
- 启用防火墙(如`firewalld`或`ufw`),仅开放必要端口。使用`netstat -tuln`或`ss -tulnp`检查端口,关闭不必要的服务(如telnet、ftp)。
- 对SSH等关键服务限制IP访问,修改默认端口(22→高位端口),禁用密码登录改用密钥认证。
4. 日志监控与分析
- 集中管理`/var/log/`下的日志,使用`journalctl`(systemd系统)或`logrotate`实现日志轮转。监控`auth.log`、`secure`等文件中的异常登录尝试。
- 部署ELK栈或Prometheus+Grafana实现可视化监控,设置关键指标的告警阈值。
5. 备份策略
- 采用3-2-1规则:至少3份备份、2种介质、1份异地保存。使用`rsync`增量备份关键数据,结合`tar`加密压缩。测试备份恢复流程,避免备份失效。
- 对于数据库,定期导出SQL dump或启用binlog。
6. 服务配置优化
- 禁用不必要服务(如`bluetooth`、`cups`),使用`systemctl mask`彻底屏蔽。调整`sysctl.conf`内核参数(如禁用ICMP重定向、启用SYN Cookie)。
- 对Web服务(Nginx/Apache)配置HTTPS、HSTS和WAF规则,禁用敏感信息泄漏(如Server头)。
7. 文件系统与磁盘管理
- 使用EXT4/XFS等稳定文件系统,避免满盘(通过`df -h`监控)。设置`noatime`挂载选项减少写入开销。对关键分区(如`/home`、`/var`)单独挂载。
- 部署LVM实现灵活扩容,使用SMART工具(`smartctl`)监控硬盘健康状态。
8. SSH安全强化
- 编辑`/etc/ssh/sshd_config`:设置`Protocol 2`,禁用`RootLogin`,启用`X11Forwarding no`。限制并发会话数(`MaxSessions`)和登录尝试(`MaxAuthTries`)。
- 使用Fail2Ban自动封锁暴力破解IP,结合`/etc/hosts.deny`手动拦截可疑地址。
9. 资源限制与调优
- 通过`ulimit`限制用户进程数、文件句柄数,防止资源耗尽。使用`cgroups`或`systemd`为服务分配CPU/内存配额。
- 针对高负载场景优化内核参数(如TCP缓冲区大小、文件描述符上限)。
10. 应急响应准备
- 准备救援镜像(如SystemRescueCd),配置串口控制台访问。记录关键命令位置(如`/bin`、`/sbin`可能被篡改)。
- 制定入侵响应流程:隔离主机→取证(`dd`镜像磁盘→分析进程树(`pstree`)→检查定时任务(`crontab -l`)。
额外建议:
部署SELinux/AppArmor实现强制访问控制,即使服务被攻破也能限制破坏范围。
使用AIDE或Tripwire进行文件完整性校验,检测恶意篡改。
对于云环境,启用Metadata API保护,避免IAM凭证泄漏。
安全是一个持续过程,需结合架构设计、自动化工具(Ansible/SaltStack)和团队流程共同保障。