Админу на заметку - 22. Как быстро разобраться в Debian/Ubuntu если вы видите систему первый раз

  • Автор:

debian-audit-000.pngДостаточно часто встречаются ситуации, когда нужно быстро разобраться что установлено и как настроено в рабочем сервере на Debian или Ubuntu который вы видите первый раз. Скажем вы принимаете на обслуживание нового клиента и вам надо быстро оценить объем услуг или вас попросили выполнить какую-то работу на неизвестной вам ранее системе. Народная мудрость гласит: не зная броду, не суйся в воду. Это, безусловно, правильно, не имея полного представления об устройстве системы, можно ненароком получить очень неожиданный результат...

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

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

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

Для установки утилиты выполните:

apt install debsums

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

debsums -ca

В выводе вы получите список всех измененных системных файлов, например, так:

debian-audit-001.pngЧто мы можем из него почерпнуть? Достаточно много: мы уже видим, что в системе установлены и настроены fail2ban и vsftpd, также изменены настройки для sudo и установлен openvpn (система сообщает об отсутствующем архиве, который был нами распакован).

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

Следующим шагом следует установить все файлы, которые попали в систему в обход пакетного менеджера: были созданы после установки, установлены из иных источников, пользовательские данные. Для этого установим еще одну утилиту cruft:

apt install cruft

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

cruft -r ~/cruft-report.txt

После чего откроем полученный файл (в домашней директории) и внимательно изучим его, ниже приведен его фрагмент:

debian-audit-002.pngУже из него становится понятно, что в системе установлен docker и postgres-pro, мы советуем сразу отметить понятные директории и службы, чтобы в дальнейшем отбросить их. Действительно, зачем листать строки файла, если мы уже поняли для чего здесь эти службы и что они делают.

Поэтому запустим утилиту еще раз с ключами --ignore, которые исключают из вывода содержимое указанных директорий, в нашем случае получилось следующее:

cruft --ignore /boot --ignore /sys --ignore /home/kroft --ignore /var/lib/pgpro -r ~/cruft-report.txt

Что мы исключили? Загрузчик (/boot) который сформирован при установке системы и виртуальная файловая система с модулями ядра и драйверами (/sys), домашняя папка пользователя (/home/kroft), директории PostgreSQL (/var/lib/pgpro), их содержимое и происхождение нам понятно и вопросов более не вызывает.

Изучаем отчет еще раз.

debian-audit-003.pngВ приведенном фрагменте видны файлы настройки и ключи openvpn, а также факт установки сервера 1С:Предприятие. В дальнейшем можно снова сузить объем отчета, исключив понятные расположения и служебные директории. А также сразу выявить файлы конфигурации, которые следует изучить перед тем, как приступать к каким-либо работам.

Также изучение данного отчета поможет выявить наличие пользовательских данных или скриптов в разных неожиданных местах и избежать возможных нештатных ситуаций с ними связанных. Так в одном случае мы обнаружили собранный из исходников nginx по очень неожиданному пути, при дальнейшем изучении выяснилось, что он в текущей конфигурации не использовался, но слушал внешний интерфейс на нестандартном порту. А учитывая его очень старую версию, это могло стать серьезной угрозой безопасности.

На этом мы завершим нашу короткую заметку и надеемся, что описанные нами утилиты окажутся вам полезны.