Провека целостности пакетов в Debian / Ubuntu / RHEL / CentOS

linuxconfСегодня я продемонстрирую вам 2 команды  для Debian и Ubuntu, RHEL и CentOS, которые проверят целостность бинарных файлов в нашей Linux-системе. Способ описан в одном из последних номеров журнала Хакер.

Для чего это может понадобится вариантов множество, начиная от взломанной системы(когда какие-то бинарники модифицированы) и заканчивая просто «шаловливыми рученками» =).

Debian / Ubuntu

Установим пакет debsums, который содержит  md5-checksums:

sudo apt-get install -y debsums

Проверить систему можно командой:

sudo debsums -c

Итоговая команда для переустановки всех модифицированных бинарников для Debian-подобных систем будет выглядеть так:

sudo apt-get install -y --reinstall $(dpkg -S $(debsums -c) | cut -d : -d 1| uniq -u)

RHEL / CentOS

В красношапочной и ей подобных системах для поиска воспользуемся командой rpm:

sudo rpm -Va

Пример работы команды будет такой:

S.5....T c /var/lib/nfs/rmtab
S.5..... c /etc/libvirt/libvirtd.conf
S.5..... c /etc/libvirt/qemu.conf
S.5..... /etc/rc.d/init.d/libvirtd

Буквы и цифры в начале имеют свои значения, по которым можно определить что случилось с файлом:

  • S — изменился начальный размер файла;
  • M — изменились права доступа или режим;
  • 5 — отличается контрольная сумма md5
  • D — отличается старший/младший номер файла устройства;
  • L — изменился путь ссылки;
  • U — отличается владелец(пользователь) файла;
  • G — изменился владелец группы;
  • T — отличается время изменения файла;

Помимо этих флагов, через два пробела есть еще символы, которые могут означать тип файла:

  • c — файл конфигурации;
  • g — файлы, изначально отсутствующие в пакете;
  • d — файл документации
  • l — файл лицензии
  • r — файл readme

Итоговая команда для переустановки всех модифицированных бинарников для RHEL-подобных систем будет выглядеть так:

sudo yum reinstall -y $(rpm -qf $(rpm -Va | egrep "^S.{8} {4}.* | cut -d ' ' -f5) | uniq -u)

Оставить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *