Как определить, какой модуль заражает ядро?

/ lib системный каталог, будет содержать необходимые файлы библиотеки, установленные во время установки и позже от любых дополнительных установок пакета с помощью об/мин или tarballs. У Вас есть какие-либо резервные копии для хоста, это на RAID или разделе LVM? Для этого процедура будет отличаться. Однако / lib системный каталог, и его доступность в нормальном режиме важна для функционального выполнения хоста.

Я стремился бы предложить искать живой CD и загрузить систему с помощью CD и войти в спасательный режим. Кроме того, найдите, существует ли какая-либо машина в той же сети с мягкой фетровой шляпой 15 тех же установок изображения ранее. В противном случае установите машину с мягкой фетровой шляпой 15 тех же машин отдельно. Позволяет называют это удаленной машиной ради объяснения. Эта удаленная машина можно использовать для копирования / lib вся структура с символьными ссылками и всеми точно использующими rsync позже. Удостоверьтесь, что Вы устанавливаете rsync пакет. Кроме того, удостоверьтесь, что у Вас есть установленный ssh и работа удаленной машины с корневым позволенным входом в систему.

Примечание: Если у Вас нет другой машины затем, только альтернатива должна переустановить ОС с опцией, не перезаписывая ни одних из установленных данных Linux. Тем путем Вы удостоверитесь, чтобы все локальные данные по машине отправили ее предыдущую установку, является безопасным и нетронутым. И не воссоздавайте разделы. Если у Вас действительно есть другая машина, затем продолжаются затем, потому что это могло восстановить Вашу систему и составить ее и работающий больше ранее.

После того как Вы сделаны, загрузившись от CD и спасаете режим на локальной машине, устанавливаете сети и узнаете ipaddresses машины к спасению и от того, где / lib может быть скопирован. Определите / раздел lib на локальном жестком диске. Действительно ли это - отдельный раздел или было смонтировано от/. Обычно это - структура каталогов под/, не отдельный раздел. Если это находится непосредственно под / корневого раздела локального диска, удостоверьтесь, что Вы монтируете корень, раздел под говорит/mnt/localroot. Под/mnt/localroot/lib Вы найдете свою поврежденную / древовидную структуру lib. Однако Вы удостоверяетесь, что не используете/mnt/localroot, но только/mnt/localroot/lib/только. Будьте осторожны с запаздывающими наклонными чертами и путем.

mkdir /mnt/localroot
mount /dev/sda1 /mnt/localroot
ls -ld /mnt/localroot/lib

От приглашения оболочки найдите rsync двоичный файл и начните вытягивать / содержание lib от удаленной машины до локального смонтированного каталога lib в/mnt/localroot/lib/.

/usr/bin/rsync --delete -avz -e /usr/bin/ssh <remote-machine-ip-address>:/lib/ /mnt/localroot/lib/

После того как синхронизация завершена, выполните ту же команду rsync снова. После этого перезапустите систему, выньте CD начальной загрузки и затем попытайтесь загрузиться от личинки в нормальном режиме и определите журналы, что каждый сервис начал правильно с любыми ошибками.

7
20.04.2013, 23:58
5 ответов

Хорошо я не полагаю, что стандартный пакет ядра Fedora будет включать какие-либо модули, которые инициировали бы эту инфекцию, таким образом, вопрос, что другие модули ядра Вы установили?

Общие кандидаты были бы графическими драйверами (хотя я думаю, что они главным образом установят "собственный" бит), и драйверы беспроводных устройств.

Если можно найти что-нибудь в lsmod вывод, что Вы думаете, может быть кандидатом, затем выполненным modinfo <module-name> и посмотрите, включает ли вывод intree: Y поскольку любой модуль без этого инициирует инфекцию, которую Вы видите.

ОБНОВЛЕНИЕ: rts5139 модуль, в котором Вы видите lsmod но то, которое, кажется, не находится в Вашей системе, находится, вероятно, в initrd и загружается оттуда рано в процессе начальной загрузки, прежде чем основная файловая система будет смонтирована.

Это также объясняет, почему помещение в черный список не будет работать, поскольку необходимо было бы восстановить initrd с обновленным черным списком. Восстановление initrd с dracut заставит модуль уходить так или иначе все же.

5
27.01.2020, 20:15
  • 1
    спасибо за подсказку, я попробовал lsmod | awk '{print $1}' | xargs modinfo -F intree. К сожалению, все результаты Y, за исключением одной строки, ERROR: Module rts5139 not found. –  drs 18.04.2013, 17:27
  • 2
    @drs В этом случае - действительно ли Вы уверены модули в своих тех соответствия initrd из рабочей системы? Это могло бы быть испорченным модулем в initrd также. –  Nils 18.04.2013, 17:50
  • 3
    Как я проверяю модули в свой initrd? –  drs 18.04.2013, 19:07
  • 4
    Хорошо запускаться с использования lsinitrd видеть если rts5139 присутствует. –  TomH 18.04.2013, 19:27
  • 5
    @TomH Действительно, это имело место. Я удалил kmod-staging пакет, но initrd все еще содержал некоторые модули подготовки. Переустановка ядра добилась цели. Если Вы обновите свой ответ с этой информацией, то я приму его. –  drs 19.04.2013, 04:00

Это могло бы быть (по крайней мере, частично) vboxdrv модулем ядра VirtualBox. Это - GPL'd, но специалисты по обслуживанию ядра теперь отмечают ядра с помощью загруженного, как испорчено. См. https://lkml.org/lkml/2011/10/6/317 для получения информации.

Не уверенный при разгрузке того модуля "не испортит" ядро, но если у Вас есть загруженный, это, вероятно, что вызывает его (по крайней мере, частично).

Информация относительно значения числа может быть найдена здесь: http://kmaiti.blogspot.com/2011/09/how-to-check-whether-current-running.html Это не говорит Вам, какой модуль, но Вы видите причины. В основном, если значение не 0, оно испорчено.

2
27.01.2020, 20:15
  • 1
    VirtualBox не установлен, и vboxdrv не перечислен lsmod. Я видел, что список ядра заражает значения прежде. Однако 4096 не перечислен, и это не может быть сгенерировано путем объединения любого из других битов. Я предполагаю, что документация стара. –  drs 18.04.2013, 17:41

Проверьте свой журнал начальной загрузки или следите за Вашим процессом начальной загрузки на ранней стадии (прежде чем Ваши диски будут смонтированы RW). Это могло бы быть плохим модулем в Вашем initrd.

У Вас есть DKMS или что-то как этот на месте?

1
27.01.2020, 20:15
  • 1
    у меня нет DKMS. Я раньше имел kmod-подготовку для включения моего картридера, но я удалил это только что. –  drs 18.04.2013, 19:08
  • 2
    Хорошо rts5139 по-видимому, драйвер для картридера Realtek, таким образом, я подозреваю, что Вам не удалось полностью удалить его. –  TomH 18.04.2013, 19:28
  • 3
    @drs на комментарий от TomH! Так, чтобы модуль ядра был propably все еще в Вашем initrd. –  Nils 19.04.2013, 13:53
➜  ~  dmesg | grep -i 'taint'
[   10.029333] vboxdrv: module verification failed: signature and/or required key missing - tainting kernel
[   10.029364] Disabling lock debugging due to kernel taint
4
27.01.2020, 20:15

Еще один способ сделать это - это изучить Taint файл каждого модуля в / sys / модуль :

#!/bin/bash

cat /proc/modules |
while read module rest
do
    if [[ $(od -A n /sys/module/$module/taint) != " 000012" ]] ; then
        echo $module
    fi
done

Если модуль не имеет значения, то Taint Файл будет содержать только новую линию, которая OD представляет как « 000012 ». Вы не можете проверить размер файла, поскольку размеры все перечислены в размере 4 096 байтов независимо от их фактического содержания.

3
27.01.2020, 20:15

Теги

Похожие вопросы