Linux服务器加固有哪些关键步骤和工具?
- 云服务器
- 2025-12-12
- 5
Linux服务器加固是保障系统安全性的核心环节,通过一系列配置优化、权限管理和漏洞修复措施,降低服务器被攻破的风险,确保数据与服务稳定运行,以下从系统基础配置、服务安全、访问控制、日志审计及漏洞管理五个维度详细阐述加固实践。
系统基础配置加固
系统基础是安全的第一道防线,需从账户、密码及核心参数入手,禁用或删除无用账户,如测试账户、默认guest账户,避免被恶意利用,密码策略需强制复杂度(如长度12位以上,包含大小写字母、数字及特殊字符),并定期更换(建议90天),可通过/etc/login.defs和/etc/security/pwquality.conf配置密码规则。
文件系统权限方面,限制关键目录(如/etc、/root、/bin)的写权限,仅允许root用户操作,使用chmod 750等命令精细化控制,关闭不必要的服务,通过systemctl listunitfiles state=enabled查看开机自启服务,禁用如telnet、rsh等明文传输服务,改用SSH加密连接,SSH配置文件/etc/ssh/sshd_config需优化:禁用root远程登录(PermitRootLogin no)、限制登录用户(AllowUsers user1 user2)、修改默认端口(22端口易被扫描,建议改为102465535之间非特权端口),并启用密钥认证(PubkeyAuthentication yes)禁用密码认证。

服务与应用安全
运行中的服务是攻破的主要入口,需遵循“最小权限”原则,对于Web服务(如Nginx/Apache),关闭目录列表功能,限制上传文件类型(仅允许jpg、png等安全格式),配置防分布模块(如Nginx的limit_req模块限制请求频率),数据库服务(如MySQL)需绑定内网IP,禁止外网直接访问,删除匿名用户,设置强密码并定期备份。
若安装第三方应用(如Docker、NPM),需及时更新至最新稳定版,移除默认测试账号和示例数据,容器化环境中,通过seccomp、AppArmor限制容器系统调用,避免权限逃逸;镜像构建时使用nocache避免缓存漏洞,并定期扫描镜像漏洞(如Trivy工具)。
访问控制与防火墙
严格的访问控制可有效阻断非法连接,网络层通过防火墙(如iptables、firewalld)限制入站规则,仅开放必要端口(如80、443、22),禁止其他所有端口,firewalld配置示例:

firewalld permanent addservice=http firewalld permanent addservice=https firewalld permanent removeservice=ssh firewalld reload
主机层使用TCP Wrappers(/etc/hosts.allow和/etc/hosts.deny)限制IP访问,如仅允许192.168.1.0/24网段SSH登录:

# /etc/hosts.allow sshd: 192.168.1.0/255.255.255.0 # /etc/hosts.deny sshd: ALL
日志监控与审计
日志是安全事件追溯的关键,需开启系统日志服务(rsyslog),并配置远程日志服务器(避免本地被攻破后日志丢失),记录内容包括用户登录、命令执行、网络连接等关键操作,通过/etc/rsyslog.conf设置日志级别(info、notice、warning等)。
定期分析日志,使用grep、awk或ELK(Elasticsearch、Logstash、Kibana)平台监控异常行为,如多次失败登录(grep "Failed password" /var/log/secure)、异常文件修改(auditd工具监控关键文件变更),启用Linux审计系统(auditd),对敏感操作(如sudo、su、文件删除)进行实时审计,规则示例:
auditctl a always,exit F arch=b64 S chmod,chown auditctl w /etc/passwd p wa k passwd_changes
漏洞管理与定期维护
定期漏洞扫描是降低风险的核心措施,使用yumcron或aptget自动更新系统补丁,或手动执行yum update/apt upgrade修复已知漏洞,对于应用漏洞,通过Nmap扫描开放端口及服务版本(nmap sV p 192.168.1.1),结合CVE数据库(如MITRE CVE)确认漏洞风险,及时打补丁或升级版本。
定期备份关键数据(rsync或tar增量备份),备份文件加密存储并异地保存,制定灾难恢复预案(如系统崩溃后的快速重装流程)。
相关问答FAQs
Q1:如何检查Linux服务器是否存在弱密码账户?
A:可通过以下步骤检查:1)使用awk F: '$2=="!"{print $1}' /etc/shadow查找无密码或密码为空的账户;2)使用john或cracklib工具对密码字典进行暴力免费测试,检查密码复杂度;3)定期审计/etc/security/opasswd文件,避免用户重复使用旧密码。
Q2:服务器被入侵后,如何快速排查与恢复?
A:1)立即断开网络,隔离服务器,避免攻破扩散;2)分析日志(/var/log/secure、/var/log/messages、/var/log/nginx/access.log)定位入侵时间、路径及操作;3)检查异常进程(ps aux、top)、可疑文件(如隐藏的.ssh目录、异常可执行文件)和定时任务(crontab l);4)重置所有密码,修复漏洞后,从干净备份恢复系统,或重装系统后恢复数据。