Достаточно часто встречаются ситуации, когда нужно быстро разобраться что установлено и как настроено в рабочем сервере на Debian или Ubuntu который вы видите первый раз. Скажем вы принимаете на обслуживание нового клиента и вам надо быстро оценить объем услуг или вас попросили выполнить какую-то работу на неизвестной вам ранее системе. Народная мудрость гласит: не зная броду, не суйся в воду. Это, безусловно, правильно, не имея полного представления об устройстве системы, можно ненароком получить очень неожиданный результат…
Конечно же, на этом этапе не требуется досконального изучения системы, но крайне желательно иметь представление о том, какие именно службы установлены и какие настройки были выполнены. Это позволит избежать ситуаций, когда вы по незнанию нарушите работу какой-либо службы и узнаете об этом, только по факту, от недовольных пользователей.
К счастью, есть несколько простых инструментов, которые позволяют быстро провести экспресс-аудит системы и составить общее представление об ее устройстве о которых мы и хотим вам рассказать.
Прежде всего следует установить утилиту debsums, которая позволит сравнить контрольные суммы системных и конфигурационных файлов с эталонными. Это позволит быстро понять в какие конфиги вносились правки, а если выявится несовпадение контрольных сумм бинарных файлов или библиотек, то это может указывать, что система взломана и содержит вредоносное ПО, хотя есть вариант, что данные файлы были пересобраны или пропатчены вручную вполне легально. Но в любом случае это повод к проведению подробного расследования, которое выходит за рамки данной статьи.
Для установки утилиты выполните:
apt install debsums
Если запустить ее без параметров, то вы получите отчет по каждому файлу в системе и его информативность будет очень низкой. Поэтому следует использовать запуск с ключами, нас интересуют все измененные файлы, поэтому запустим:
debsums -ca
В выводе вы получите список всех измененных системных файлов, например, так:
Что мы можем из него почерпнуть? Достаточно много: мы уже видим, что в системе установлены и настроены fail2ban и vsftpd, также изменены настройки для sudo и установлен openvpn (система сообщает об отсутствующем архиве, который был нами распакован).
Никакие библиотеки и бинарники изменены не были, что означает, что система находится в целостном состоянии и переживать о возможной компрометации пока не стоит.
Следующим шагом следует установить все файлы, которые попали в систему в обход пакетного менеджера: были созданы после установки, установлены из иных источников, пользовательские данные. Для этого установим еще одну утилиту cruft:
apt install cruft
Первый запуск выполним без параметров, но укажем создать файл отчета, так как информации может быть очень много:
cruft -r ~/cruft-report.txt
После чего откроем полученный файл (в домашней директории) и внимательно изучим его, ниже приведен его фрагмент:
Уже из него становится понятно, что в системе установлен 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), их содержимое и происхождение нам понятно и вопросов более не вызывает.
Изучаем отчет еще раз.
В приведенном фрагменте видны файлы настройки и ключи openvpn, а также факт установки сервера 1С:Предприятие. В дальнейшем можно снова сузить объем отчета, исключив понятные расположения и служебные директории. А также сразу выявить файлы конфигурации, которые следует изучить перед тем, как приступать к каким-либо работам.
Также изучение данного отчета поможет выявить наличие пользовательских данных или скриптов в разных неожиданных местах и избежать возможных нештатных ситуаций с ними связанных. Так в одном случае мы обнаружили собранный из исходников nginx по очень неожиданному пути, при дальнейшем изучении выяснилось, что он в текущей конфигурации не использовался, но слушал внешний интерфейс на нестандартном порту. А учитывая его очень старую версию, это могло стать серьезной угрозой безопасности.
Свежие комментарии