Linux安全检查是系统管理员和运维工程师日常工作的重要组成部分,它涉及系统配置、权限管理、日志监控、网络防护等多个维度,旨在及时发现潜在风险并采取防护措施,以下从系统基础安全、服务安全、日志审计、网络防护及应急响应五个方面,详细介绍Linux安全检查的关键内容和实施方法。

系统基础安全检查
系统基础安全是整体防护的第一道防线,需重点关注用户权限、文件系统和服务配置。
用户与权限管理
- 关键账户检查:定期审查/etc/passwd和/etc/shadow文件,禁用或删除闲置账户,特别是UID为0的超级用户账户(除root外),使用lastlog命令查看用户最后登录时间,识别异常登录行为。
- 密码策略:检查/etc/login.defs中的密码复杂度要求(如最小长度、历史密码重用限制),确保所有用户设置强密码,并启用SSH密钥认证(禁用密码登录)。
- sudo权限:审计/etc/sudoers文件,限制sudo用户范围,避免赋予过多权限,例如禁止使用sudo su -直接切换为root。
文件系统完整性
- 重要文件权限:检查关键目录和文件权限,如/etc/passwd应为644,/etc/shadow应为600,/etc/sudoers应为440。
- 异常文件检测:使用find命令查找无属主文件(find / -nouser -o -nogroup)、可写SUID/SGID文件(find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -ldb {} \;),这些可能被恶意利用。
- 系统完整性校验:通过rpm -Va(RHEL/CentOS)或debsums(Debian/Ubuntu)校验系统文件完整性,发现被篡改的文件。
服务与进程管理
- 非必要服务关闭:使用systemctl list-unit-files --state=enabled查看开机启动服务,禁用非必要服务(如telnet、rsh等)。
- 进程监控:通过ps aux和top命令检查异常进程,重点关注隐藏进程(使用ls -l /proc/*/exe交叉验证)和可疑网络连接进程。
服务安全配置
Linux系统中运行的服务是攻击的主要入口,需针对常见服务进行安全加固。
SSH服务
- 配置文件:编辑/etc/ssh/sshd_config,禁用root登录(PermitRootLogin no),限制登录用户(AllowUsers user1 user2),更改默认端口(22),并启用TCP Wrapper(/etc/hosts.allow和/etc/hosts.deny)。
- 协议版本:强制使用SSH协议2(Protocol 2),禁用弱加密算法(如Ciphers和MACs配置中移除weak算法)。
Web服务(Apache/Nginx)
- 版本与补丁:检查httpd -v或nginx -v,确保服务版本最新,及时修复漏洞。
- 目录权限:设置网站目录权限为755,文件权限为644,禁用目录执行权限(如Options -ExecCGI)。
- 访问控制:通过.htaccess(Apache)或Nginx的location块限制IP访问,并配置SSL/TLS加密。
数据库服务(MySQL/PostgreSQL)
- 默认账户:删除匿名账户和测试数据库,修改root默认密码,限制远程登录(仅允许特定IP)。
- 日志与备份:启用查询日志(general_log)和错误日志,定期备份数据库并验证备份文件完整性。
日志审计与监控
日志是安全事件的“黑匣子”,需确保日志记录完整且可追溯。

日志配置
- 系统日志:检查/etc/rsyslog.conf,确保记录认证日志(authpriv)、内核日志(kern)和计划任务日志(cron),并将日志发送到远程日志服务器(如@192.168.1.100)。
- SSH日志:确认/var/log/secure记录所有SSH登录尝试,包括成功和失败的记录。
日志分析工具
- 命令行工具:使用grep、awk、sed过滤日志,例如搜索失败登录记录:grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c。
- 自动化工具:部署logwatch或ELK Stack(Elasticsearch、Logstash、Kibana)实现日志实时分析与告警。
审计规则
- auditd服务:启用Linux审计系统,通过auditctl添加规则,例如监控/etc/passwd文件修改、敏感命令执行(如sudo、su):auditctl -w /etc/passwd -p wa -k passwd_change auditctl -a exit,always -S execve -F key=sudo_commands 
网络防护与访问控制
网络层面的防护需关注防火墙、端口管理和入侵检测。
防火墙配置
- iptables/firewalld:检查防火墙规则,仅开放必要端口(如80、443、22),禁用不必要的入站连接,iptables规则示例:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -j DROP 
- 端口扫描:使用nmap扫描本机开放端口,确保无异常端口监听(如nmap -sT -O 127.0.0.1)。
入侵检测系统(IDS)
- 部署工具:安装OSSEC或Suricata,监控文件变更、异常登录和恶意流量。
- 实时告警:配置IDS规则,当检测到暴力破解、Webshell上传等行为时触发告警。
应急响应与漏洞管理
安全检查的最终目的是快速响应和修复漏洞,降低风险。
漏洞扫描与修复
- 工具使用:定期运行OpenVAS或Nessus扫描系统漏洞,根据扫描结果及时打补丁(yum update或apt upgrade)。
- 基线检查:依据CIS Benchmark(Center for Internet Security)进行基线加固,例如禁用USB存储设备、限制内核模块加载。
应急响应流程
- 事件隔离:发现入侵后,立即断开网络连接,保留现场(如内存快照、磁盘镜像)。
- 溯源分析:通过日志、进程和文件变更记录,分析攻击路径和影响范围。
- 系统恢复:从干净备份恢复系统,重置密码,修补漏洞后重新上线。
定期维护计划
制定安全检查周期表,
| 检查项          | 频率     | 工具/方法                     |
|—————–|———-|——————————|
| 用户权限审计     | 每周     | /etc/passwd、lastlog      |
| 日志分析         | 每日     | logwatch、grep            |
| 漏洞扫描         | 每月     | Nessus、OpenVAS           |
| 防火墙规则检查   | 每周     | iptables -L、firewall-cmd |  

Linux安全检查是一个持续的过程,需要结合自动化工具与人工分析,从系统、服务、日志、网络等多个维度构建纵深防御体系,通过定期检查、及时修复和应急演练,才能有效提升系统的安全防护能力,保障业务稳定运行。



















