Назад | Перейти на главную страницу

Аудит файлов в ящике Debian

Можно ли перечислить каждый файл в системе, который не принадлежит пакету? или если они были изменены?

Возможно, потребуется использовать что-то вроде: apt-get, apt-files, dpkg-query и т. Д.

Для контекста представьте, что унаследовали старый сервер, который не может быть отформатирован, и вы хотите проверить, что каждый файл такой, каким должен быть ... Я знаю, что этого не произойдет при обновлении между версиями Debian или после удаления пакет без "--purge", поскольку кажется, что он оставляет за собой выделенное количество (обычно конфигурационных) файлов.

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

Это также поможет определить, было ли что-то установлено без использования apt-get.

Все файлы установлены по пакету можно увидеть, посмотрев список cat /var/lib/dpkg/info/*.list. Большинство пакетов включают md5sums для содержимого файла, которое можно увидеть, посмотрев на cat /var/lib/dpkg/info/*.md5sums. Однако некоторые пакеты не включают эти суммы.

Если вы установите пакет debsums, вы можете запустить программу как debsums -a это проверит md5sum всех установленных файлов и конфигураций.

Обратите внимание, что некоторые пакеты не устанавливают файлы конфигурации или содержимое. Вместо этого эти файлы создаются этими пакетами во время установки. Эти файлы не будут ни в списке файлов, связанном с пакетом, ни в списке md5sums. Что касается системы пакетов, то это файлы данных, которыми она не владеет.

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

Я думаю, вам стоит установить etckeeper пакет первым делом после установки системы. Этот пакет в основном ставит /etc в выбранную вами систему контроля версий (я предпочитаю git). Имея это место, вы можете точно увидеть, что изменилось и когда. Легко клонировать этот репозиторий в новую систему, а затем выполнять сравнения с новой системой. Таким образом, вы можете точно увидеть, чем отличались исходная и целевая системы в одной команде.

cruft / etckeeper / debsums

Package: cruft
Description-en: program that finds any cruft built up on your system
 cruft is a program to look over your system for anything that shouldn't
 be there, but is; or for anything that should be there, but isn't..
 It bases most of its results on dpkg's database, as well as a list of
 `extra files' that can appear during the lifetime of various packages.
 cruft is still in pre-release; your assistance in improving its accuracy
 and performance is appreciated.

Package: debsums
Description-en: tool for verification of installed package files against MD5 checksums
 debsums can verify the integrity of installed package files against
 MD5 checksums installed by the package, or generated from a .deb
 archive.

Package: etckeeper
Description-en: store /etc in git, mercurial, bzr or darcs
 The etckeeper program is a tool to let /etc be stored in a git, mercurial,
 bzr or darcs repository. It hooks into APT to automatically commit changes
 made to /etc during package upgrades. It tracks file metadata that version
 control systems do not normally support, but that is important for /etc, such
 as the permissions of /etc/shadow. It's quite modular and configurable, while
 also being simple to use if you understand the basics of working with version
 control.

Обе тигр и Rkhunter будет сообщать файлы, которые не принадлежат ни одному установленному пакету, среди прочего.

Вы также можете взглянуть на дебсумы проверяет файлы на наличие модификаций с момента их установки через диспетчер пакетов.

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

Чтобы узнать, были ли изменены какие-либо файлы, не относящиеся к конфигурации, из пакетов debian с момента выпуска пакета, вы можете использовать дебсуммы.

Увидеть, установлены ли сторонние пакеты, сложнее, вы, вероятно, можете сравнить номера версий и контрольные суммы с информацией из packages.debian.org, но я не уверен, насколько сложно это будет автоматизировать.

Проверка изменений файла конфигурации затруднена, потому что файлами конфигурации можно управлять несколькими способами. Если они являются "conffiles", то dpkg будет знать, были ли они изменены, но многие файлы конфигурации - нет.

Если сервер постоянно обновляется, хорошим вариантом может быть перекрестное сравнение с новой установкой той же версии debian с такими же установленными пакетами. Очевидно, что это не так хорошо работает, если вы не хотите обновлять сервер (я предполагаю, что вы можете создать образ сервера и обновить его, но это откроет собственную банку червей).