服务器上是否有木马或者漏洞信息,nginx+php+mysql的环境

内容分享1周前发布
0 0 0

在Ubuntu 22.04服务器(Nginx+PHP+MySQL环境)上排查木马和漏洞,需要从系统安全、服务配置、恶意文件检测等多维度入手,以下是具体步骤:

一、系统基础安全检查

1. 检查异常进程与连接

  • 查看可疑进程
    筛选资源占用异常(CPU/内存过高)或名称可疑的进程,注意非系统默认进程:

    top  # 实时查看进程,按P/C排序CPU/内存
    ps aux | grep -vE  root|www-data|mysql|nginx   # 排除正常用户进程,重点看陌生进程
    ps -ef | grep -v grep | grep -E  /tmp|/var/tmp|/dev/shm   # 检查临时目录异常进程
    

    对可疑进程,通过ls -l /proc/[PID]/exe查看进程对应的可执行文件路径,确认是否为合法程序。

  • 检查网络连接
    排查异常出站/入站连接(如连接陌生IP、非标准端口):

    netstat -tulnp  # 显示所有监听端口及对应进程(需root权限)
    ss -antp  # 更简洁的网络连接查看(推荐)
    lsof -i  # 查看打开的网络文件描述符
    

    对陌生IP,可通过whois [IP]或在线工具(如IPinfo)查询归属地和用途。

2. 检查系统账号与登录记录

  • 排查异常用户
    查看是否有新增的可疑用户或特权用户(uid=0):

    cat /etc/passwd | grep -vE  nologin|false   # 筛选可登录用户
    cat /etc/sudoers /etc/sudoers.d/*  # 检查sudo权限用户
    

    注意是否有陌生用户名(如admintest等弱口令用户)。

  • 查看登录日志
    检查异常登录(如异地IP、失败次数过多):

    last  # 查看最近登录记录
    lastb  # 查看登录失败记录(需root)
    grep "Failed password" /var/log/auth.log  # 筛选密码爆破记录
    

3. 检查系统文件完整性

  • 使用debsums检查系统文件篡改
    对比已安装软件包的文件哈希,检测被篡改的系统文件:

    sudo apt install debsums -y
    sudo debsums -c  # 仅显示被修改的文件(C代表篡改)
    

    重点关注/bin/sbin/usr/bin等目录下的文件,若有篡改需对比原始安装包或重装。

  • 检查敏感文件修改时间
    查看近期被修改的系统关键文件(如/etc/crontab/etc/hosts等):

    find /etc /bin /sbin /usr/bin -mtime -7  # 查找7天内修改过的文件
    

二、Web环境(Nginx+PHP)专项检查

1. 排查恶意文件(木马/webshell)

  • 扫描Web目录可疑文件
    Webshell常隐藏在/var/www/html(或站点根目录),特征包括:

    • 文件名异常(如xxx.phpshell.php、带随机字符串的文件)
    • 包含evalbase64_decodesystem等危险函数
    • 文件权限异常(如777

    可通过以下命令筛选:

    # 查找包含危险函数的PHP文件
    grep -rE  eval(|base64_decode|system(|exec(|shell_exec  /var/www/html
    
    # 查找权限为777的文件(正常Web文件应避免777)
    find /var/www/html -perm 0777
    
    # 查找最近新增的小文件(可能是webshell)
    find /var/www/html -type f -size -10k -mtime -3
    

  • 使用工具扫描
    推荐使用专业webshell扫描工具:

    # 安装ClamAV(开源杀毒软件)
    sudo apt install clamav clamav-daemon -y
    sudo freshclam  # 更新病毒库
    sudo clamscan -r /var/www/html  # 扫描Web目录
    
    # 或使用webshell扫描工具(如WeBanScan)
    wget https://github.com/WeBanScan/WebShellScan/archive/refs/heads/master.zip
    unzip master.zip && cd WebShellScan-master
    python3 webshellscan.py /var/www/html
    

2. 检查Nginx配置安全

  • 排查异常虚拟主机或跳转
    检查Nginx配置文件(/etc/nginx/nginx.conf/etc/nginx/sites-available/*),是否有陌生域名、恶意跳转或反向代理配置:

    grep -r "server_name" /etc/nginx  # 查看所有绑定的域名
    grep -r "proxy_pass" /etc/nginx   # 查看反向代理配置
    

  • 检查日志配置与访问日志
    确认Nginx访问日志(默认/var/log/nginx/access.log)是否开启,分析异常请求(如大量访问/wp-admin/phpmyadmin的非本地IP):

    # 查看最近100条可疑请求(含.php?参数的异常URL)
    tail -n 1000 /var/log/nginx/access.log | grep -E  .php?.*(eval|base64|cmd) 
    

3. PHP环境安全检查

  • 检查PHP配置(php.ini)
    确保危险函数被禁用,避免执行系统命令:

    grep "disable_functions" /etc/php/*/cli/php.ini  # CLI配置
    grep "disable_functions" /etc/php/*/fpm/php.ini  # FPM配置
    

    提议禁用的函数:evalsystemexecshell_execpassthrupopenproc_open等。

  • 检查PHP-FPM运行权限
    PHP-FPM应使用低权限用户(如www-data)运行,避免root权限:

    grep "user = " /etc/php/*/fpm/pool.d/www.conf
    

  • 排查PHP扩展与版本漏洞
    检查PHP版本是否存在已知漏洞(如PHP 8.1以下的某些版本),并更新至安全版本:

    php -v  # 查看版本
    sudo apt update && sudo apt upgrade php*  # 更新PHP
    

三、MySQL数据库安全检查

1. 检查数据库账号与权限

  • 排查异常MySQL用户
    登录MySQL,查看所有用户及权限,删除陌生账号或过度授权的用户:

    mysql -u root -p
    SELECT user, host, authentication_string FROM mysql.user;  # 列出所有用户
    SHOW GRANTS FOR  可疑用户 @ host ;  # 查看用户权限
    DROP USER  可疑用户 @ host ;  # 删除可疑用户
    

    注意是否有%(允许所有IP登录)的用户,提议限制为特定IP。

  • 检查数据库文件权限
    MySQL数据文件(默认/var/lib/mysql)应仅允许mysql用户访问:

    ls -ld /var/lib/mysql
    ls -l /var/lib/mysql/*.ibd  # 检查表文件权限
    

2. 检查数据库日志与异常操作

  • 查看MySQL错误日志
    排查暴力破解或异常连接:

    grep "Access denied" /var/log/mysql/error.log  # 登录失败记录
    

  • 检查慢查询日志(若开启)
    分析是否有恶意SQL操作(如批量删除、写入文件):

    grep -i "DROP|DELETE|SELECT.*INTO OUTFILE" /var/log/mysql/mysql-slow.log
    

四、漏洞扫描与系统加固

1. 系统漏洞扫描

  • 使用lynis进行系统安全审计
    一款开源的Linux安全扫描工具,可检测系统漏洞、配置错误等:

    sudo apt install lynis -y
    sudo lynis audit system  # 执行系统审计,根据输出修复提示项
    

  • 检查Ubuntu安全更新
    确保系统已安装所有安全补丁:

    sudo apt update
    sudo apt list --upgradable | grep security  # 查看安全更新
    sudo apt upgrade -y  # 安装更新
    

2. Web漏洞扫描

  • 使用nikto扫描Web服务漏洞
    检测Nginx/PHP的配置漏洞、敏感文件泄露等:

    sudo apt install nikto -y
    nikto -h http://localhost  # 扫描本地Web服务
    

  • 检查开源组件漏洞
    若使用WordPress、Drupal等CMS,需检查插件/主题是否有漏洞:

    # 以WordPress为例,使用wpscan扫描
    wget https://github.com/wpscanteam/wpscan/archive/refs/heads/master.zip
    unzip master.zip && cd wpscan-master
    ruby wpscan.rb --url http://your-domain.com
    

五、应急响应(若发现异常)

  1. 隔离受影响服务:暂停Nginx/PHP-FPM/MySQL,避免恶意扩散:

    sudo systemctl stop nginx php8.1-fpm mysql
    

  2. 备份关键数据:备份Web目录、数据库文件(/var/lib/mysql)到离线存储。
  3. 清除恶意文件:删除确认的webshell或木马,对篡改的系统文件,提议从官方源重装对应软件包。
  4. 重置密码:修改系统用户、MySQL、网站后台等所有密码,使用强密码(字母+数字+符号)。
  5. 加固防护:配置防火墙(UFW)限制端口访问,启用Fail2ban防暴力破解,定期备份数据。

通过以上步骤,可全面排查服务器的木马、异常行为及配置漏洞。提议定期执行(如每周一次),并结合自动化工具(如ClamAV定时扫描、Lynis审计)持续监控。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...