LMD (обнаружение вредоносного ПО в Linux), процесс inotify не найден Ubuntu 14.04 LTS

Я использую Linux Malware Detect, и это действительно круто. Я запускаю недавний скрипт maldet 4 раза в день, но я хочу запустить монитор, так как это общий хост-сервер.

Если я запускаю maldet -m / home, я получаю следующую ошибку:

maldet(19604): {mon} no inotify process found, check /usr/local/maldetect/inotify/inotify_log for errors.

Проблема в том, что лог-файл пуст, поэтому я не знаю, как получить дальше.

Любая помощь приветствуется!

3 ответа

Решение

Я задыхался с той же проблемой на VPS с Plesk и CL Linux (на основе Centos). Его первый раз я отвечаю, так что будьте осторожны со мной:)

Мое решение не очень профессиональное, но если вам нужно запустить maldet в режиме монитора, это обходной путь (вероятно, другие, основанные на этом, могли бы дать вам лучшие решения)

Так я и сделал nano /usr/local/maldetect/maldet и нашел строку, содержащую $nice (единственная строка, в которой содержится поисковый термин $ nice, около строки 1318)

там где 2 причины не работали

  1. по какой-то причине /proc/sys/fs/inotify/max_user_watches был установлен на 0 перед запуском этой команды:(поэтому я добавил, прежде чем $ заметил строку

    echo 100000 > /proc/sys/fs/inotify/max_user_watches
    

    100000 также может быть ниже, если его слишком мало, вы получаете такие ошибки

    Apr 15 13:38:38 plesk2 inotifywait[889842]: Setting up watches.  Beware: since -r was given, this may take a while!
    Apr 15 13:38:38 plesk2 inotifywait[889842]: Failed to watch /var/www/vhosts/domain.com/httpdocs; upper limit on inotify watches reached!
    

    в /var/log/messages (искать их так: grep inotify /var/log/messages).

  2. По какой-то странной причине (люди, которые знают bash намного лучше, пожалуйста, просветите нас) команда, выполняемая строкой $ nice, была

    /bin/nice -n 10 /usr/local/maldetect/inotify/inotifywait -d -r -o /usr/local/maldetect/inotify/inotify_log --fromfile /usr/local/maldetect/sess/inotify.paths.864367 --exclude (^/var/tmp/mysql.sock$|^/tmp/mysql.sock$|^/var/cache/buagent/md0.cache.data$|^/var/tmp/#sql_.*\.MYD$|^/tmp/#sql_.*\.MYD$) --timefmt %d %b %H:%M:%S --format %w%f %e %T -m -e create,move,modify
    

    и Баш или Ш не был удовлетворен --exclude (^/var/tmp/mysql.sock$|^/tmp/mysql.sock$|^/var/cache/buagent/md0.cache.data$|^/var/tmp/#sql_.*\.MYD$|^/tmp/#sql_.*\.MYD$) часть, поэтому я просто удалил из этой строки $exclude (я знаю, что это плохо, но работаю над этим, если я найду его, я отправлю обратно)

    так линия

    $nice -n $inotify_nice $inotify -d -r -o $inotify_log --fromfile $inotify_fpaths $exclude --timefmt "%d %b %H:%M:%S" --format "%w%f %e %T" -m -e create,move,modify >> /dev/null 2>&1 &
    

    был изменен на

    $nice -n $inotify_nice $inotify -d -r -o $inotify_log --fromfile $inotify_fpaths --timefmt "%d %b %H:%M:%S" --format "%w%f %e %T" -m -e create,move,modify >> /dev/null 2>&1 &
    

    И это сработало

Также специально для пользователей plesk я нашел эту очень полную помощь

mysql -ss -uadmin -p`cat /etc/psa/.psa.shadow` psa -e "select www_root from hosting;" > /usr/local/maldetect/maldetfilelist

Затем вы можете начать LMD с:

maldet -m /usr/local/maldetect/maldetfilelist

вышеуказанное было найдено здесь: http://www.coredump.id.au/linux-malware-detect-debian-and-plesk/

Дополнительный бонус, если вы хотите увидеть, что выполняет bash, поместите его перед желаемой строкой (в нашем случае это $nice line):

set -x
$nice -n $inotify_nice $inotify -s -d -r -o $inotify_log --fromfile $inotify_fpaths --timefmt "%d %b %H:%M:%S" --format "%w%f %e %T" -m -e create,move,modify >> /dev/null 2>&1 & set +x

Волшебство здесь - красивый набор -x (чтобы не видеть сотни строк отладки, которые я поставил сразу после set +x)

извините за то, что я так описательный, и мой плохой английский надеюсь, что это поможет вам или кому-то еще

ОБНОВЛЕНИЕ, если вы что-то изменили в файле maldet, в котором ежедневно запускается cron (/etc/cron.daily/maldet) и более конкретную строку

/usr/local/maldetect/maldet -d >> /dev/null 2>&1

Приведенная выше строка каждый раз обнаруживает, что md5 файла maldet изменился, и переустанавливает исходный файл:(, поэтому я просто закомментирую это:), и монитор теперь работает без остановки каждую ночь:)

ура sassm430

@ Джонатан Линдгрен

Для меня inotify=$inspath/inotify/inotifywait

измените вышеприведенную строку на:

Inotify = / USR / бен / inotifywait

не работал

Я не эксперт по Maldet, но единственное, что я могу сказать вам следующее

1) Я не использовал пользователей Maldet или что-то подобное (на plesk). Mysql -ss -uadmin -pcat /etc/psa/.psa.shadow psa -e "выбрать www_root с хостинга"; > /usr/local/maldetect/maldetfilelist

Затем вы можете начать LMD с:

maldet -m / usr / local / maldetect / maldetfilelist

Это создает файл из Plesk со всеми путями

Альтернативой было бы использовать что-то вроде этого

maldet --m /var / www /vhosts / или maldet --m /var / www /vhosts/?/somesubfolder где? значит все как на bash:)

2) еще одна причина, по которой я могу придумать, это то, что вы уверены, что inotify запущен? может быть, у вас закончились наблюдатели inotify, которые выполняют cat /proc/sys/fs/inotify/max_user_watches сразу после того, как у вас есть монитор рома.
Или просто выполните команду tail -f в файле журнала, если на устройстве не осталось места на диске, бла-бла-бла, то, возможно, у вас закончилась программа-наблюдатель inotify

Но было бы полезно, если бы вы сказали нам свой дистрибутив и т. Д., Как упоминалось в моем первоначальном посте, я использую его на centos с облачным linux и plesk, и у меня возникла эта проблема, НО на centos с cloud linux и cpanel он работал из коробки:( (до сегодняшнего дня я не могу понять, почему)

Также я настоятельно рекомендую вам использовать набор -x

$nice -n $ inotify_nice $ inotify -s -d -r -o $ inotify_log --fromfile $ inotify_fpaths --timefmt "% d% b% H:% M:% S" --формат "%w%f %e %T" -m -e создать, переместить, изменить >> /dev/null 2>&1 &

установить + х

поместите это в файл maldet (до и после строки $nice), он действительно скажет вам, все ли выполнено правильно или нет:)

ОБНОВЛЕНИЕ: также, пожалуйста, проверьте обновление, которое я сделал в нижней части 1-го ответа, возможно, это вас ударило (в этом случае монитор останавливается). Также вы можете запустить небольшой скрипт, чтобы проверить, запущены ли монитор и inotifywatch, и перезапустить их, если не.

надеюсь, что вы можете использовать что-нибудь из этого, и если я смогу помочь, пожалуйста, дайте мне знать.

Спасибо sassm430,

Ваш конкретный обзор не помог, НО вы опубликовали свои источники ( http://www.coredump.id.au/linux-malware-detect-debian-and-plesk/), и я нашел это:

sed -i -e "s / \ $ inspath / inotify / inotifywait // usr / bin / inotifywait /" /usr/local/maldetect/internals.conf

Вы также можете отредактировать /usr/local/maldetect/internals.conf вручную и отредактировать эту строку внизу:

Inotify = $ inspath / Inotify / inotifywait

измените вышеприведенную строку на:

Inotify = / USR / бен / inotifywait

Теперь монитор работает, я загрузил файл, который был помещен на карантин, но он, похоже, не работает, или как работает монитор?

Монитор запускает сам при перезагрузке?

РЕДАКТИРОВАТЬ: я выполнил следующую команду: maldet -m users

Другие вопросы по тегам