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 причины не работали
по какой-то причине
/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
).По какой-то странной причине (люди, которые знают 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