Назначение утилиты sos
Утилита sos предназначена для анализа операционной системы (ОС) при поступлении запроса в службу технической поддержки. С ее помощью осуществляется сбор диагностической информации, которая помогает инженерам службы технической поддержки определять проблему и исключать повторные запросы данных об ошибках.
Утилита sos позволяет собирать различную отладочную информацию из одной или нескольких ОС, при необходимости очищать и защищать конфиденциальные данные.
Далее в статье термин "шифрование" применяется в значении защитного преобразования данных. |
Параметры утилиты:
sos report — сбор отладочной информации с одной системы;sos clean — сокрытие потенциально конфиденциальной информации (имена пользователей, имена хостов, IP- или MAC-адреса или других данных, указанных пользователем).
Информация, собранная в отчете, содержит сведения о конфигурации, системную информацию и диагностическую информацию из ОС, такую как:
- запущенная версия ядра;
- загруженные модули ядра;
- конфигурационные файлы системы и служб;
- вывод диагностической команды;
- список установленных пакетов.
sos записывает собранные данные в архив с именем sosreport-<имя_хоста>-<номер_запроса>-<ГГГГ-ММ-ДД>-<случайные_уникальные_символы>.tar.xz.
Утилита сохраняет архив и его контрольную сумму в каталоге /tmp:
astra@server:~$ ls -l /tmp/sosreport*
-rw-r----- 1 root astra-admin 87036 ноя 27 09:27 /tmp/sosreport-server-123-2023-11-27-aywdsnl.tar.xz
-rw-r--r-- 1 root root 33 ноя 27 09:27 /tmp/sosreport-server-123-2023-11-27-aywdsnl.tar.xz.md5 |
Запуск утилиты sos
Терминал
Утилита sos входит в состав ОС Astra Linux Special Edition 1.7 и выше.
Чтобы установить утилиту на Astra Linux Special Edition требуются права суперпользователя и подключение к репозиторию:
- Скачать архив репозитория по ссылке.
- Распаковать архив.
- Выполнить команду:
sudo dpkg -i /путь_к_каталогу_sosreport/*.deb |
Убедиться, что пакет установлен:
Графический режим
- Установить графическую утилиту "Центр системных отчетов" (входит в состав ОС Astra Linux Special Edition 1.7 и выше):
sudo apt install fly-sosreport |
Создание отчета
:
sudo sos report -a --all-logs |
Следовать инструкциям на экране:
sosreport (version 4.0)
This command will collect system configuration and diagnostic information from this Debian system.
For more information on the Debian project visit: https://www.debian.org/
The generated archive may contain data considered sensitive and its content should be reviewed by the originating organization before being passed to any third party.
No changes will be made to system configuration.
Нажмите ENTER для продолжения или CTRL-C для выхода.
|
Имя файла отчета отображается в конце вывода:
Finished running plugins
Создается архив...
Your sosreport has been generated and saved in:
/tmp/sosreport-server-123-2023-11-27-ztdyuvc.tar.xz
Size 11.14MiB
Owner root
md5 9713252c24d0ea5f524b119156b6825f
Please send this file to your support representative. |
Убедиться, что создан архив в каталоге /tmp, соответствующий описанию из выходных данных команды:
astra@server:~$ ls -l /tmp/sosreport*
-rw-r----- 1 root astra-admin 87036 ноя 27 09:27 /tmp/sosreport-server-123-2023-11-27-aywdsnl.tar.xz
-rw-r--r-- 1 root root 33 ноя 27 09:27 /tmp/sosreport-server-123-2023-11-27-aywdsnl.tar.xz.md5 |
Создание отчета и защита его с помощью шифрования GPG
Защита отчета с помощью шифрования GPG используется для передачи его по общедоступной сети третьей стороне.
При создании зашифрованного отчета используется вдвое больше места на диске, т. к. утилита sos: - создает незашифрованный отчет;
- шифрует отчет как новый файл;
- удаляет незашифрованный архив.
|
- Выполнить , указав парольную фразу с помощью опции
--encrypt-pass:sudo sos report -a --all-logs --encrypt-pass 1234 |
- . Имя файла отчета отображается в конце вывода:
astra@pcmk-1:~$ sudo sos report --encrypt-pass 1234
sosreport (version 4.0)
...
Нажмите ENTER для продолжения или CTRL-C для выхода.
Please enter the case id that you are generating this report for []: gpg-test
Setting up archive ...
Setting up plugins ...
Running plugins. Please wait ...
Finishing plugins [Running: pacemaker]
Finished running plugins
Создается архив...
Your sosreport has been generated and saved in:
/tmp/secured-sosreport-pcmk-1-gpg-test-2023-12-02-bluhmko.tar.xz.gpg
Size 10.54MiB
Owner root
md5 005d7b79b61ebcfc0c97707b355306db
Please send this file to your support representative. |
- Убедиться, что создан архив, соответствующий следующим требованиям:
- имя файла начинается с
secured; - файл имеет расширение
.gpg; - архив находится в каталоге
/tmp.
astra@pcmk-1:~$ ls -l /tmp/secured*
-rw-r----- 1 root astra-admin 11051437 дек 2 07:26 /tmp/secured-sosreport-pcmk-1-gpg-test-2023-12-02-bluhmko.tar.xz.gpg
-rw-r--r-- 1 root root 33 дек 2 07:26 /tmp/secured-sosreport-pcmk-1-gpg-test-2023-12-02-bluhmko.tar.xz.gpg.md5
|
- Убедиться, что архив можно расшифровать с помощью парольной фразы, которая использовалась для его шифрования:
Выполнить команду:
astra@pcmk-1:~$ sudo gpg --output decrypted-sosreport.tar.gz --decrypt /tmp/secured-sosreport-pcmk-1-gpg-test-2023-12-02-bluhmko.tar.xz.gpg |
Ввести парольную фразу, которая использовалась для шифрования архива:
┌────────────────────────────────────────────────────────┐
│ Введите фразу-пароль │
│ │
│ │
│ Фраза-пароль: ________________________________________ │
│ │
│ <OK> <Отмена (C)> │
└────────────────────────────────────────────────────────┘
|
:
astra@pcmk-1:~$ ls -l decrypted*
-rw-r--r-- 1 root root 11025760 дек 2 07:32 decrypted-sosreport.tar.gz |
Создание пары ключей GPG
Создать файл key-input, используемый для генерации пары ключей GPG с предпочтительными данными. Например:
astra@pcmk-1:~$ cat >key-input <<EOF
%echo Generating a standard key
Key-Type: RSA
Key-Length: 2048
Name-Real: GPG User
Name-Comment: first key
Name-Email: root@example.com
Expire-Date: 0
%commit
%echo Finished creating standard key
EOF |
Сгенерировать ключ GPG2 на основе содержимого файла key-input:
astra@pcmk-1:~$sudo gpg --batch --gen-key key-input |
Ввести парольную фразу для защиты ключа GPG (доступ к закрытому ключу для расшифровки):
┌────────────────────────────────────────────────────────┐
│ Введите фразу-пароль │
│ для защиты нового ключа │
│ │
│ Фраза-пароль: ________________________________________ │
│ │
│ <OK> <Отмена (C)> │
└────────────────────────────────────────────────────────┘ |
Повторить ввод парольной фразы:
┌────────────────────────────────────────────────────────┐
│ Повторите фразу-пароль: │
│ │
│ Фраза-пароль: ________________________________________ │
│ │
│ <OK> <Отмена (C)> │
└────────────────────────────────────────────────────────┘ |
Убедиться, что новый ключ GPG успешно создан:
gpg: Generating a standard key
gpg: /root/.gnupg/trustdb.gpg: создана таблица доверия
gpg: ключ B7354458F02D70D5 помечен как абсолютно доверенный
gpg: создан каталог '/root/.gnupg/openpgp-revocs.d'
gpg: сертификат отзыва записан в '/root/.gnupg/openpgp-revocs.d/0BF533429D80F579827F61CFB7354458F02D70D5.rev'.
gpg: Finished creating standard key |
Проверить GPG-ключи пользователя root на сервере:
astra@pcmk-1:~$ sudo gpg --list-secret-key
/root/.gnupg/pubring.kbx
------------------------
sec rsa2048 2023-12-02 [SCEA]
0BF533429D80F579827F61CFB7354458F02D70D5
uid [ абсолютно ] GPG User (first key) <root@example.com> |
Создание отчета и защита его на основе пары ключей
Защита отчета с помощью пары ключей из связки ключей GPG подходит для отчетов, хранящихся на сервере.
При создании зашифрованного отчета используется вдвое больше места на диске, т. к. утилита sos: - создает незашифрованный отчет;
- шифрует отчет как новый файл;
- удаляет незашифрованный архив.
|
- Создать ключ GPG2 (см. ниже).
Выполнить команду, указав , которому принадлежит связка ключей GPG, с помощью опции --encrypt-key:
sudo sos report -a --all-logs --encrypt-key root |
Следовать инструкциям. Имя файла отчета отображается в конце вывода:
astra@pcmk-1:~$ sudo sos report --encrypt-key root
sosreport (version 4.0)
...
Нажмите ENTER для продолжения или CTRL-C для выхода.
Please enter the case id that you are generating this report for []: gpg-test
Setting up archive ...
Setting up plugins ...
Running plugins. Please wait ...
Finishing plugins [Running: pacemaker]
Finished running plugins
Создается архив...
Your sosreport has been generated and saved in:
/tmp/secured-sosreport-pcmk-1-gpg-test-2023-12-02-bluhmko.tar.xz.gpg
Size 10.54MiB
Owner root
md5 005d7b79b61ebcfc0c97707b355306db
Please send this file to your support representative. |
- Убедиться, что создан архив, соответствующий следующим требованиям:
Убедиться, что архив можно расшифровать с помощью парольной фразы, которая использовалась для его шифрования:
Выполнить команду:
astra@pcmk-1:~$ sudo gpg --output decrypted-sosreport-key.tar.gz --decrypt /tmp/secured-sosreport-pcmk-1-gpg-test-key-2023-12-02-bluhmko.tar.xz.gpg |
- Ввести кодовую фразу, которая использовалась при создании ключа GPG:
┌───────────────────────────────────────────────────────────────────┐
│ Введите фразу-пароль для разблокировки секретного ключа OpenPGP: │
│ "GPG User (first key) <root@example.com>" │
│ 2048-битный ключ RSA, идентификатор B7354458F02D70D5, │
│ создан 2023-12-02. │
│ │
│ │
│ Фраза-пароль: ___________________________________________________ │
│ │
│ <OK> <Отмена (C)> │
└───────────────────────────────────────────────────────────────────┘
|
- бедиться, что создан незашифрованный архив с расширением
.tar.gz:
astra@pcmk-1:~$ ls -l decrypted*
-rw-r--r-- 1 root root 11025760 дек 2 08:32 decrypted-sosreport-key.tar.gz |
Создание отчета из среды восстановления
Режим восстановления позволяет смонтировать целевую ОС, получив доступ к ее содержимому и запустить команду sos report.
Должны соблюдаться следующие условия: - если хост представляет собой обычный сервер, необходим физический доступ к компьютеру;
- если хост является виртуальной машиной, необходим доступ к настройкам виртуальной машины в гипервизоре;
- наличие технического установочного диска ОС Astra Linux: файл образа ISO, установочный DVD, компакт-диск netboot или конфигурация среды выполнения предварительной загрузки (PXE).
|
- Выполнить шаги из статьи Справочного центра Режимы восстановления.
- Перейти в псевдотерминал.
- Активировать консоль, нажав клавишу <Enter>.
Выполнить команду chroot /target для получения доступа к корневому разделу:
Please press Enter to activate this console.
BusyBox vl.30.1 (Debian 1:1.30.1—4+ci202301251328+astra2) built—in shell (ash)
Enter 'help' for a list of built—in commands.
~ # chroot /target
sh-5.0# _ |
Выполнить команду:
Следовать инструкциям для продолжения на экране:
sh-5.0# sos report
sosreport (version 4.0)
This command will collect system configuration and diagnostic information from this Debian system.
For more information on the Debian project visit: https://www.debian.org/
The generated archive may contain data considered sensitive and its content should be reviewed by the originating organization before being passed to any third party.
No changes will be made to system configuration.
Нажмите ENTER для продолжения или CTRL-C для выхода.
|
Имя файла отчета отображается в конце вывода:
Finishing plugins [Running: systemd]
Finished running plugins
Создается архив...
Your sosreport has been generated and saved in:
/tmp/sosreport-astra-rescue-mod-test-2023-12-06-bfbowtj.tar.xz
Size 10.43MiB
Owner root
md5 ddd7de0e428d7e4c7dc5caf36555b714
Please send this file to your support representative.
sh-5.0# |
Убедиться, что создан архив в каталоге /tmp:
sh-5.0# ls -l /tmp/sosreport*
-rw-r----- 1 root astra-admin 10939108 дек 6 09:34 /tmp/sosreport-astra-rescue-mod-test-2023-12-06-bfbowtj.tar.xz
-rw-r--r-- 1 root root 33 дек 6 09:34 /tmp/sosreport-astra-rescue-mod-test-2023-12-06-bfbowtj.tar.xz.md5
sh-5.0# |
Скопировать диагностический архив на удаленное или USB-устройство:
- по сети:
- Проверить статус сетевого интерфейса:
Пример вывода команды:sh—5.0# ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enpls0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 52:51:00:2f:7f:7c brd ff:ff:ff:ff:ff:ff
sh—5.0# _ |
- Если состояние интерфейса DOWN, выполнить команду:
где enp1s0 — имя необходимого интерфейса. - Назначить IP-адрес интерфейсу:
- DHCP -сервер работает:
- DHCP-сервер отсутствует:
ip addr add 192.168.0.123/255.255.255.0 dev enp1s0 |
где
- Cкопировать диагностический архив на удаленное устройство:
scp /tmp/sosreport* test@192.168.0.100:/tmp |
где- test — имя пользователя для SSH-подключения;
- 192.168.0.100 — IP-адрес удаленного устройства;
/tmp — каталог на удаленном устройстве.
Для подключения на удаленном устройстве должен быть настроен SSH-сервер (см. статью Справочного центра SSH). |
- с помощью USB-устройства:
- Подключить USB-устройство.
- Выполнить поиск USB-устройства. Например:
sh—5.0# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPRINT
sda 8:0 0 953.9G 0 disk
'—sda1 8:1 0 953.9G 0 part
sr0 11:0 1 1.2G 0 rom
vda 252:0 0 29.3G 0 disk
'—vda1 252:1 0 29.3G 0 part /
sh—5.0# _ |
- Смонтировать раздел USB-устройства в каталог:
где/dev/sda1 — раздел USB-устройства;/media — точка монтирования.
- Скопировать диагностический архив на USB-устройство:
cp /tmp/sosreport* /media |
- Выполнить шаги из статьи Справочного центра Режимы восстановления.
- Завершить работу с псевдотерминалом.
Обфускация отчета
Сохранить копии оригинального необфусцированного архива и файла *private_map в локальном каталоге (не /tmp), т. к. сотрудники технической поддержки могут запросить уточнения обфусцированных данных. |
Обфускация данных доступна начиная с обновлений Astra Linux Special Edition 1.6.14, 1.7.6 и 1.8.1. |
Утилита sos позволяет скрывать конфиденциальные данные. Исходный отчет остается неизменным, при этом создается новый файл *-obfuscated.tar.xz, предназначенный для передачи в техническую поддержку.
Исходный архив, а также файлы obfuscation.log, private_map хранятся у инициатора отчета и не требуют отправки в техническую поддержку.
- Выполнить команду (для архива, созданного командой
sos report или с помощью графической утилиты fly-sosreport):sudo sos clean <файл_отчета>
|
Чтобы дополнить базовый список ключевых слов для их обфускации, добавите опцию --keywords. При использовании данной опции в файле *-private_map будет добавленн блок keyword_map с обфусцированными словами. astra@pcmk-1:~# sudo sos clean /tmp/sos-collector-test-2023-12-02-lnyhg.tar.xz --keywords=password,token,secret
...
astra@pcmk-1:~# sudo tail /tmp/sos-collector-test-2023-12-02-lnyhg.tar.xz-private_map
...
"keyword_map": {
"password": "obfuscatedword0",
"token": "obfuscatedword1",
"secret": "obfuscatedword2"
...
|
|
Утилита не гарантирует скрытие всех данных в архиве. Пользователям необходимо проверить полученный архив перед его передачей в техническую поддержку. |
- Следовать инструкциям на экране.
astra@pcmk-1:~#sudo sos clean /tmp/sos-collector-test-2023-12-02-lnyhg.tar.xz
sos clean (version 4.0)
...
Press ENTER to continue, or CTRL-C to quit.
Found 3 total reports to obfuscate, processing up to 4 concurrently
sosreport-pcmk-2-test-2023-12-02-qkjsswr : Extracting...
sosreport-pcmk-1-test-2023-12-02-xjjpysa : Extracting...
sos-collector-test-2023-12-02-lnyhg : Beginning obfuscation...
sos-collector-test-2023-12-02-lnyhg : Obfuscation completed
sosreport-pcmk-2-test-2023-12-02-qkjsswr : Beginning obfuscation...
sosreport-pcmk-1-test-2023-12-02-xjjpysa : Beginning obfuscation...
sosreport-pcmk-1-test-2023-12-02-xjjpysa : Re-compressing...
sosreport-pcmk-2-test-2023-12-02-qkjsswr : Re-compressing...
sosreport-pcmk-2-test-2023-12-02-qkjsswr : Obfuscation completed
sosreport-pcmk-1-test-2023-12-02-xjjpysa : Obfuscation completed
Successfully obfuscated 3 report(s)
A mapping of obfuscated elements is available at
/tmp/sos-collector-test-2023-12-02-lnyhg-private_map
The obfuscated archive is available at
/tmp/sos-collector-test-2023-12-02-lnyhg-obfuscated.tar.xz
Size 12.52MiB
Owner root
Please send the obfuscated archive to your support representative and keep the mapping file private
|
- Убедиться, что создан архив со скрытыми данными в каталоге
/tmp, соответствующий описанию из выходных данных команды:astra@pcmk-1:~# ls -l /tmp/sos-collector-test-2023-12-02-lnyhg*
-rw------- 1 root root 13130372 дек 2 13:50 /tmp/sos-collector-test-2023-12-02-lnyhg-obfuscated.tar.xz
-rw------- 1 root root 1253 дек 2 13:50 /tmp/sos-collector-test-2023-12-02-lnyhg-obfuscation.log
-rw------- 1 root root 2198 дек 2 13:50 /tmp/sos-collector-test-2023-12-02-lnyhg-private_map
-rw------- 1 root root 13109664 дек 2 13:26 /tmp/sos-collector-test-2023-12-02-lnyhg.tar.xz
|
- Проверить файл
*-private_map на предмет обфускации данных:{
"hostname_map": { # В данном блоке находятся сопоставления обфусцированных даннх наименования устройств. Где "pcmk-2" - оригинальное имя устройства, а "host0" - имя устройства которое будет фигурировать в обфусцирированном отчете.
"pcmk-2": "host0",
"pcmk-1": "host1"
},
"ip_map": { # В данном блоке находятся сопоставление обфусцированных данных ip адресов найденных при формировании отчёта. Где "10.10.10.0/24" - оригинальный ip адрес, а "100.0.0.0/24" - ip адрес который будет фигурировать в обфусцирированном отчете.
"10.10.10.0/24": "100.0.0.0/24",
...
},
"mac_map": { # В данном блоке находятся сопоставление обфусцированных данных mac адресов найденных при формировании отчёта. Где "52:54:00:cb:d0:d9" - оригинальный mac адрес, а "53:4f:53:b7:47:88" - mac адрес который будет фигурировать в обфусцирированном отчете.
"52:54:00:cb:d0:d9": "53:4f:53:b7:47:88"
}
} |