V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
dendi009
V2EX  ›  Linux

Linux 宝塔环境 crond 问题排查

  •  
  •   dendi009 · 2022-11-12 00:43:42 +08:00 · 2434 次点击
    这是一个创建于 502 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前几天出现 nginx WAF 被挂码的问题, 终于抓到 执行异常进程了 root 110201 189279 0 00:08 ? 00:00:00 /usr/sbin/crond -n root 110202 110201 0 00:08 ? 00:00:00 sh -c touch -r /www/server/nginx/waf/.. /www/server/nginx/waf/config && touch -r /www/server/nginx/waf/.. /www/server/nginx/waf/. && /bin/cp -p /www/server/nginx/conf/proxy.conf /www/server/nginx/conf/proxy.conf.bak && echo 'rewrite_by_lua_file /www/server/nginx/waf/config;' >>/www/server/nginx/conf/proxy.conf && /www/server/nginx/sbin/nginx -s reload 2>&1

    crond 相关配置都检查了,没发现异常内容,请教下这个问题怎么深挖

    11 条回复    2022-11-24 12:40:28 +08:00
    bjzhush
        1
    bjzhush  
       2022-11-12 16:48:49 +08:00
    这也不像 log 啊,找 log 啊,没 log 打开 log 啊
    dendi009
        2
    dendi009  
    OP
       2022-11-13 11:50:58 +08:00
    @bjzhush 没 log ,通过审计工具 + inotify+脚本 抓的进程。 对应的任务在 /var/log 下任何位置都没出现
    bjzhush
        3
    bjzhush  
       2022-11-13 12:14:04 +08:00
    @dendi009 我没用过你说的这个 NGINX 的 waf ,但是 99%是可以打开 log 的,你去看看官方文档,或者加上 enable log 关键词搜一下
    feng0vx
        4
    feng0vx  
       2022-11-13 16:30:13 +08:00
    crond(8) - Linux man page

    -n

    This option changes default behavior causing it to run crond in the foreground. This can be useful when starting it out of init.

    楼主看看这方面,其实我猜的
    julyclyde
        5
    julyclyde  
       2022-11-14 09:50:08 +08:00
    “crond 相关配置都检查了”
    这句话我是不太信的

    建议你明确说一下你检查了哪些
    (然后可能就知道缺检查哪些)
    dendi009
        6
    dendi009  
    OP
       2022-11-24 09:55:59 +08:00
    @julyclyde 如下相关文件 及目录下的 配置文件。 这有啥不信。 写个脚本的对比正常机器, 就没异常
    /etc/cron.d
    /etc/cron.d/0hourly
    /etc/cron.deny
    /etc/pam.d/crond
    /etc/sysconfig/crond
    /usr/bin/crontab
    /usr/lib/systemd/system/crond.service
    /usr/sbin/crond
    /usr/share/doc/cronie-1.4.11
    /usr/share/doc/cronie-1.4.11/AUTHORS
    /usr/share/doc/cronie-1.4.11/COPYING
    /usr/share/doc/cronie-1.4.11/ChangeLog
    /usr/share/doc/cronie-1.4.11/INSTALL
    /usr/share/doc/cronie-1.4.11/README
    /usr/share/man/man1/crontab.1.gz
    /usr/share/man/man5/crontab.5.gz
    /usr/share/man/man8/cron.8.gz
    /usr/share/man/man8/crond.8.gz
    /var/spool/cron
    julyclyde
        7
    julyclyde  
       2022-11-24 09:59:13 +08:00
    /etc/anacrontab
    /etc/cron.daily
    /etc/cron.hourly
    /etc/cron.monthly
    /etc/cron.weekly/
    各个用户的用户级 cron
    dendi009
        8
    dendi009  
    OP
       2022-11-24 10:12:13 +08:00
    @julyclyde 问题不像你想的那么简单。不是明文放到任务 cron 配置文件的。
    /var/spool/cron/root /var/spool/cron/{any other user} . 都看过。 包括已有任务下面子任务看过。
    /var/log/cron 不记录对应任务日志就能说明问题了 。
    julyclyde
        9
    julyclyde  
       2022-11-24 10:16:54 +08:00
    @dendi009 我并没有一口咬定就是 cron 啊。我只是指出你对 cron 的检查不完善

    你这种已经被黑的系统,我不觉得“cron 不记录日志就能说明”什么问题

    你如果确定不是 cron ,可以开 auditd 试试,看看是从哪个进程 fork 出来的
    dendi009
        10
    dendi009  
    OP
       2022-11-24 10:30:13 +08:00
    @julyclyde 贴的 进程就行 auditd 的记录, 189279 /usr/bin/crond -n , 父进程 是 1 ,
    julyclyde
        11
    julyclyde  
       2022-11-24 12:40:28 +08:00
    @dendi009 看看 189279 的 exe 和 smaps 试试?
    挂上 strace 看看它到底在干什么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3229 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:52 · PVG 21:52 · LAX 06:52 · JFK 09:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.