服务器安全检查是保障信息系统稳定运行与数据安全的关键环节,其核心目标在于识别并修复潜在的漏洞、弱配置及异常行为。根据行业最佳实践(如CIS Benchmarks、OWASP、NIST SP 800-123),一次完整的服务器安全检查应覆盖系统层、网络层、应用层及管理流程四个维度。以下从专业角度给出标准化的检查清单与操作要点。

一、系统账户与权限审计:首先检查所有本地账户,使用命令cat /etc/passwd(Linux)或net user(Windows)列出全部用户,重点排查空密码账户、弱密码账户及非必要的高权限账户。通过awk -F: '$3==0 {print $1}' /etc/passwd找出UID为0的超级用户,确保只有root拥有该权限。同时检查/etc/shadow中密码策略,确认密码最小长度(建议≥12位)、过期时间(建议90天内)及失败锁定机制(如pam_tally2)。对于SSH远程访问,需检查/etc/ssh/sshd_config中的PermitRootLogin(应设为no)、PasswordAuthentication(建议改为no并启用密钥认证)以及AllowUsers白名单配置。
二、系统补丁与软件漏洞检查:使用yum update --security或apt list --upgradable查看可用安全补丁,重点检查内核、SSH服务、Web服务器(如Nginx/Apache)、数据库(如MySQL/PostgreSQL)等关键组件的版本。可通过needs-restarting(RHEL系)或checkrestart(Debian系)确认是否有因更新需重启的服务。对于已停止维护的软件(如PHP 5.x),建议立即升级或迁移,否则视为高危风险。使用lynis或ossec等自动化审计工具可快速生成漏洞报告,但需人工复核误报。
三、网络服务与端口扫描:执行netstat -tulnp或ss -tulnp列出所有监听端口,对比业务白名单,排查未知或未授权的服务。重点检查telnet(23)、ftp(21)、rpcbind(111)、samba(445)等易受攻击的端口,若未使用应立即禁用并通过防火墙(如iptables/firewalld)封禁。使用nmap -sV -O 127.0.0.1进行本机扫描,确认对外开放的服务版本,避免默认服务端口(如MySQL 3306、Redis 6379)暴露到公网。同时检查/etc/inetd.conf或systemd中的自启动服务,禁用所有非必要服务(如cups、avahi-daemon)。
四、文件系统与日志审查:检查/etc/fstab中的挂载选项,确保临时目录(/tmp、/var/tmp)挂载时使用nosuid、noexec、nodev参数,防止提权攻击。通过stat /etc/passwd /etc/shadow确认关键文件权限(passwd应为644,shadow应为600)。审查/var/log/secure(Linux)或安全事件日志(Windows),重点查找多次失败的SSH登录(如grep "Failed password" /var/log/secure | wc -l)、特权命令执行记录(如sudo日志)及异常时间戳。使用auditd配置对/etc/passwd、/etc/shadow、/bin/su等敏感文件的审计规则,确保证据链完整。
五、恶意软件与Rootkit检测:使用rkhunter和chkrootkit进行深度扫描,检查ls -la /dev中的异常设备文件(如带有时间戳的隐藏文件),运行ps aux对比进程列表,关注CPU占用过高或命令行异常的进程(如名称为随机字符串)。检查crontab -l及/etc/cron.*目录,排查反弹Shell或恶意定时任务。同时验证ldd /bin/ls输出,防止动态链接库劫持。若发现可疑文件,可上传至VirusTotal或使用clamav进行病毒扫描。
六、Web与数据库专项检查:对于运行Web服务的服务器,检查/var/www/html及nginx/apache配置中的目录遍历、文件上传限制、错误页面信息泄露(隐藏版本号)。使用sqlmap或Nikto对应用层进行基础漏洞探测,重点确认SQL注入、XSS及CSRF防护措施。数据库方面,检查my.cnf或postgresql.conf中的listen_addresses(应设置为127.0.0.1),确保远程连接禁用,并验证root或admin账户的密码强度。同时检查数据库的二进制日志或查询日志,排查异常的SELECT * FROM或DROP操作。
七、配置合规与加固基线:参照等保2.0三级要求或ISO 27001控制项,逐项核对以下配置:系统防火墙(默认拒绝策略,仅放行必要端口)、SELinux(应设置为enforcing,用getenforce验证)、内核参数(如/etc/sysctl.conf中net.ipv4.tcp_syncookies=1防止SYN Flood,net.ipv4.ip_forward=0防止IP转发)、文件系统UMASK(建议077)、核心转储(限制core dumps)。对于Windows服务器,需检查本地安全策略中的账户锁定阈值、审核策略(启用成功和失败日志)、Windows Defender实时保护及防火墙入站规则。
八、日常运维与应急响应准备:检查备份策略是否有效(如rsync任务是否成功,备份数据是否加密存储),并定期进行恢复演练。服务器时钟需与NTP同步(执行chronyc tracking),确保日志时间戳准确。最后,建议制定安全巡检SOP,将上述检查项固化到cron任务中(如每周自动生成报告),并保留变更审计记录。对于高危漏洞(CVSS≥7.0),应在24小时内完成修复或临时缓解(如限制IP访问)。
总结:专业服务器安全检查绝不只是运行几个命令,而是需要结合威胁模型、业务连续性和合规要求进行系统性评估。建议使用OpenVAS或Nessus进行周期性漏洞扫描,同时配合人工验证,避免误报或漏报。所有检查结果应形成书面报告,明确风险等级(高/中/低)、修复建议及责任部门,并跟踪闭环。

查看详情

查看详情