Linux服务器安全检测是保障系统稳定运行和数据安全的核心环节,需从系统基础配置、服务漏洞、日志审计、权限管理等多维度展开综合排查,以下从检测内容、工具使用及操作要点三个方面详细说明。
系统基础安全检测
系统基础配置是安全的第一道防线,需重点检查账户、密码及服务状态。
- 用户与权限检查:使用
cat /etc/passwd查看系统用户,重点关注UID为0的root账户及非系统用户(如test);通过grep "wheel" /etc/group检查sudo权限组,避免异常用户提权。 - 密码策略审计:运行
grep "PASS_MAX_DAYS" /etc/login.defs查看密码有效期,确保不超过90天;使用cracklib-check工具(需安装cracklib-runtime)检测密码强度,避免弱密码。 - 关键文件权限:检查
/etc/passwd、/etc/shadow、/etc/sudoers等关键文件权限,执行ls -l /etc/shadow应确保权限为640,属主为root,防止未授权访问。
服务与漏洞扫描
服务器运行的服务可能成为攻击入口,需定期扫描漏洞及异常服务。
- 服务状态检查:使用
systemctl list-units --type=service --state=running查看运行中的服务,关闭非必要服务(如telnet、rsh等高危服务),执行systemctl disable telnet禁用。 - 端口与进程分析:通过
netstat -tuln或ss -tuln监听端口,确认默认高危端口(如22、3389)是否限制访问;结合ps aux检查进程,识别可疑进程(如隐藏PID的挖矿程序)。 - 漏洞扫描工具:使用
OpenVAS(开源漏洞扫描系统)或Nessus扫描系统漏洞,重点关注CVE编号的高危漏洞(如CVE-2025-44228 Log4j漏洞);对于Web服务,可搭配Nikto或AWVS检测Web应用漏洞。
日志与入侵检测
日志是追溯安全事件的关键,需定期分析日志并配置入侵检测。
- 系统日志审计:检查
/var/log/auth.log(Ubuntu)或/var/log/secure(CentOS)中的登录失败记录,执行grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c统计高频攻击IP;查看/var/log/messages中的系统异常信息,如磁盘满、服务崩溃等。 - 日志轮转与保留:确认
/etc/logrotate.conf配置是否正确,确保日志至少保留30天,避免日志被覆盖导致无法追溯。 - 入侵检测系统(IDS):安装
OSSEC或Wazuh等主机入侵检测工具,实时监控文件变更、异常登录等行为,例如通过ossec-logtest测试规则是否生效。
安全加固建议
检测后需针对性加固,包括:
- 系统更新:执行
apt update && apt upgrade -y(Ubuntu)或yum update -y(CentOS)修复已知漏洞。 - 防火墙配置:使用
ufw(Ubuntu)或firewalld(CentOS)限制端口访问,例如仅允许22端口(SSH)通过特定IP访问:ufw allow from 192.168.1.100 to any port 22。 - 定期备份:配置
rsync或rclone定期备份关键数据,并验证备份文件可用性。
相关问答FAQs
Q1:如何快速定位服务器是否被植入挖矿程序?
A:可通过以下步骤排查:
- 检查进程:执行
top -c或htop,查看CPU占用率高的进程,关注可疑命令(如包含“xmrig”“kdevtmpfsi”等关键词)。 - 检查定时任务:运行
crontab -l,查看是否有异常定时任务(如每分钟下载挖矿脚本)。 - 检查启动项:执行
systemctl list-unit-files --state=enabled查看开机自启服务,结合/etc/rc.local、~/.bashrc等文件排查异常启动配置。 - 扫描可疑文件:使用
clamav杀毒工具全盘扫描:clamscan -r /,或通过find / -name "*.sh" -exec grep -l "crypto" {} \;查找可疑脚本。
Q2:Linux服务器SSH登录频繁失败,如何应对暴力破解?
A:可采取以下措施:
- 修改默认端口:编辑
/etc/ssh/sshd_config,将Port 22改为非默认端口(如2222),重启SSH服务:systemctl restart sshd。 - 限制登录IP:使用
iptables或firewalld限制允许访问SSH的IP,iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 2222 -j ACCEPT,其他IP拒绝。 - 使用fail2ban工具:安装
fail2ban,配置/etc/fail2ban/jail.local,设置SSH监狱规则,[sshd] enabled = true port = 2222 maxretry = 3 bantime = 3600
启动服务:
systemctl enable --now fail2ban,自动封禁连续失败3次以上的IP(封禁1小时)。 - 密钥认证:禁用密码登录,仅允许密钥认证,编辑
/etc/ssh/sshd_config,设置PasswordAuthentication no,重启SSH服务。
