Linux服务器安全加固是保障系统稳定运行和数据安全的核心环节,通过系统化配置和持续优化,可有效降低被攻击风险,以下从账户管理、服务防护、访问控制、日志审计及漏洞管理五个维度,详细阐述加固实践。

账户与权限最小化原则
系统账户是安全的第一道防线,需遵循“最小权限”原则精简账户并强化认证机制。
- 禁用无用账户:删除或锁定测试账户(如
test、guest)、冗余系统账户(如lp、news),仅保留必要的root、运维账户及业务账户,通过userdel -r 用户名删除账户并清理家目录,passwd -l 用户名锁定闲置账户。 - 强化密码策略:强制复杂密码(12位以上,包含大小写字母、数字及特殊字符),设置密码过期时间(如
/etc/login.defs中PASS_MAX_DAYS 90)和错误锁定阈值(如pam_tally2模块配置5次错误锁定30分钟)。 - 密钥认证替代密码:禁止远程root登录(
/etc/ssh/sshd_config中设置PermitRootLogin no),强制使用SSH密钥对认证,通过authorized_keys文件限制可登录客户端,并设置密钥 passphrase。
服务与端口精简
减少暴露的攻击面,关闭非必要服务与端口,仅开放业务必需端口。
- 服务管理:通过
systemctl list-unit-files --type=service查看所有服务,禁用不必要服务(如telnet、rsh、sendmail),执行systemctl disable 服务名并确保开机不自启,对于必须运行的服务,采用最小化配置(如Nginx禁用不必要的模块、MySQL移除test数据库)。 - 端口管控:使用
netstat -tuln或ss -tuln监听端口,关闭高危端口(如135/139/445/SMB服务、3389/RDP服务),通过防火墙(如iptables、firewalld)限制端口访问,例如仅允许特定IP访问SSH(22端口):iptables -A INPUT -p tcp --dport 22 -s 信任IP -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP
- 协议安全:禁用不安全协议(如SSH仅支持v2,在
sshd_config中设置Protocol 2),启用TLS加密(如HTTPS、SMTPS)。
访问控制与网络隔离
通过分层控制实现精细化访问管理,避免横向攻击。

- 防火墙策略:采用“默认拒绝”原则,仅允许已授权的流量,例如使用
firewalld划分区域(public、trusted),将业务接口加入trusted区域并开放指定端口:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept' firewall-cmd --reload
- 主机入侵检测(HIDS):部署
Lynis或AIDE工具,定期扫描系统文件完整性、异常进程及配置变更,例如AIDE首次生成数据库后,每日执行aide --check对比差异,及时发现木马或篡改文件。 - 网络隔离:核心服务器部署在独立VLAN,通过安全组或ACL限制跨网段访问,避免内网横向移动。
日志审计与监控
完善的日志体系是追溯攻击行为、优化安全策略的基础。
- 日志收集与存储:启用系统日志(
rsyslog)、安全日志(authlog)、应用日志(如Nginx的access.log),配置日志服务器集中存储(如ELK Stack或Graylog),防止本地日志被篡改。 - 关键日志监控:重点关注登录失败(
Failed password)、特权操作(sudo命令)、端口扫描(SYN flood)等异常行为,通过fail2ban自动封禁恶意IP(如5次SSH失败封禁1小时):fail2ban-client ssh-iptables banip 192.168.1.100
- 定期审计:每周检查
last命令查看登录历史,grep "ERROR" /var/log/messages分析系统错误,结合auditd审计框架记录敏感操作(如文件访问、命令执行)。
漏洞管理与系统更新
及时修复漏洞是抵御已知攻击的核心措施。
- 系统补丁更新:定期执行
yum update -y(CentOS)或apt upgrade -y(Ubuntu),自动安装安全补丁,对于生产环境,需先在测试环境验证兼容性,再分批次更新。 - 漏洞扫描:使用
OpenVAS或Nessus每月扫描系统漏洞,重点关注高危漏洞(如CVE-2021-44228 Log4j漏洞),根据扫描结果修复或采取缓解措施(如打补丁、升级版本、配置防护规则)。 - 应用安全加固:对Web应用(如WordPress、Tomcat),移除默认测试页面、禁用目录遍历、配置
Content-Security-Policy(CSP)头防御XSS攻击,数据库(如MySQL)限制远程连接,绑定指定IP并设置防火墙规则。
安全加固检查清单
| 加固类别 | 核心操作 |
|---|---|
| 账户权限 | 锁定无用账户、强制复杂密码、SSH密钥认证 |
| 服务端口 | 关闭非必要服务、仅开放业务端口、禁用不安全协议 |
| 访问控制 | 防火墙默认拒绝、HIDS定期扫描、网络VLAN隔离 |
| 日志监控 | 集中存储日志、监控异常行为、fail2ban自动封禁 |
| 漏洞管理 | 定期更新系统补丁、每月漏洞扫描、应用安全配置 |
相关问答FAQs
Q1: 如何判断服务器是否被入侵?
A: 可通过以下迹象初步判断:系统运行缓慢或异常重启(如挖矿程序占用资源)、无法执行正常命令(如ls被替换)、出现陌生账户或进程(如/tmp目录下可疑文件)、日志中出现大量失败登录记录、磁盘空间异常减少(如挖矿木马写入文件),建议结合top、ps aux、netstat -an检查进程和网络连接,使用chkrootkit或ClamAV扫描木马,对比AIDE文件完整性报告确认是否被篡改。

Q2: Linux服务器安全加固后如何维持防护效果?
A: 需建立常态化运维机制:每日通过zabbix或Prometheus监控CPU、内存、磁盘IO及网络流量;每周执行yum update安装安全补丁,审计/var/log/secure登录日志;每月进行漏洞扫描和渗透测试;每季度更新防火墙策略和密钥密码;同时制定应急响应预案,定期备份数据(如rsync+incrond增量备份),确保故障快速恢复。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/78527.html