Есть ли способ проверить, работает ли ОС Linux? был установлен определенным образом?

Вы должны многого добиться, передав файл журнала только один раз через awk. Это означает объединение всех регулярных выражений в одно. Если вы не хотите делать это в файле scope.txt , сделайте это перед вызовом awk. Например,

sed <scope.txt 's|^/\^|(|; s|\$/$|)|; $!s/$/|/' | tr -d '\n' >pattern

zcat $file | bro-cut -d |
awk '
BEGIN{ getline pat <"pattern"; pat = "^(" pat ")$" }
$3 ~ pat || $5 ~ pat
'  >~/$file

sed заменяет / ^ и $ , окружающие каждую строку регулярного выражения, закрывающей парой () , добавляет | в конце строки и помещает результат в одну строку в файл pattern . Таким образом, в этом файле собраны все шаблоны вместе. Отсутствующий ^ (...) $ добавляется в оператор awk BEGIN сценария, который считывает файл шаблона в переменную pat .

Вышеупомянутый код заменяет ваш внутренний цикл for и sort | uniq .

2
15.05.2019, 16:37
3 ответа

Придерживаюсь вопроса ОП:

Is there a way to check, if I take a SD card randomly and insert it in a Rasperry Pi, that the SD card has been created the way I expected, with the good commands ?

Если вы вставите карту в Raspberry Pi, а затем загрузите ее, боюсь, вы не сможете проверить, что на ней установлено :цель любого руткита — скрыть свое существование.

Конечно, решением было бы вообще не загружаться на нем, а вместо этого читать/исследовать/сравнивать его с системой, которой вы владеете и которой доверяете.

-1
27.01.2020, 22:17

Невозможно проверить, как кто-то настроил ОС от вашего имени. Всегда есть возможность что-то спрятать. Если существует риск злонамеренного поведения со стороны поставщика, вам остается только

  • работать с более надежным поставщиком
  • Убедитесь, что вы знаете байт -для байта -образа, который необходимо установить. Это возможно, если вы отправляете поставщику точное изображение, а не просто скрипт...

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

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


Шаги для записи хэшей разделов

Эти шаги можно выполнить на любой машине с Linux. Вы можете использовать Raspberry Pi с достаточно большой SD-картой (, рекомендуется не менее 16 ГБ )

.
  1. Загрузите и изображение, с которым вы хотите работать. Например, :последнее изображение raspbian:

    wget --content-disposition https://downloads.raspberrypi.org/raspbian_full_latest
    unzip *raspbian-stretch-full.zip
    
    ls -lh *raspbian*
    -rw-r--r-- 1 philip philip 5.1G Apr  8 19:43 2019-04-08-raspbian-stretch-full.img
    -rw-r----- 1 philip philip 2.0G Apr  8 19:48 2019-04-08-raspbian-stretch-full.zip
    
  2. Настройте изображение.

  3. Настройка кольцевого устройства
    sudo losetup /dev/loop0 2019-04-08-raspbian-stretch-full.img
    sudo partprobe /dev/loop0
    
    ls -lh /dev/loop0*
    brw-rw---- 1 root disk   7, 0 May 15 19:18 /dev/loop0
    brw-rw---- 1 root disk 259, 0 May 15 19:18 /dev/loop0p1
    brw-rw---- 1 root disk 259, 1 May 15 19:18 /dev/loop0p2
    
  4. Получите сумму sha256 для каждого раздела (это займет некоторое время! ).Сохраните это в файл.
    sudo sha256sum /dev/loop0p*
    66aa77d8405ab585865d0e0378f06bd8baa5ab41bbb6e9cc23ac6b2be40974d4  /dev/loop0p1
    1895a2c5d9e93eb3b644d8cacab9d928184290e30bba6d27b7eb9d486c30e5e8  /dev/loop0p2
    
  5. Очистка
    sudo partx -d /dev/loop0
    sudo losetup -d /dev/loop0
    

Проверка хэшей

Подключите карту к любому работающему компьютеру с Linux. Если вы хотите использовать Raspberry Pi, вы можете использовать USB-устройство чтения SD-карт, чтобы подключить карту, которую хотите проверить, в качестве второй карты.

Карта появится как новый диск, например /dev/sdaили /dev/sdb...

Предполагая, что он отображается как /dev/sda, вы можете получить хэш для каждого раздела:

ls -lh /dev/sd*
brw-rw---- 1 root disk 8, 16 May  9 12:23 /dev/sda
brw-rw---- 1 root disk 8, 17 May  9 12:23 /dev/sda1
brw-rw---- 1 root disk 8, 18 May  9 12:23 /dev/sda2
sudo sha256sum /dev/sda1 /dev/sda2
66aa77d8405ab585865d0e0378f06bd8baa5ab41bbb6e9cc23ac6b2be40974d4  /dev/sda1
1895a2c5d9e93eb3b644d8cacab9d928184290e30bba6d27b7eb9d486c30e5e8  /dev/sda2

Настройка изображения

Эти шаги НЕЛЬЗЯ выполнять на любой машине с Linux, им нужен процессор ARM, такой как на raspberry pi.

  1. Установите контур -задней перегородки (/dev/loop0p2), созданной ранее. ОС установлена ​​на p2, загрузочная конфигурация — на p1.

    mkdir rpi-os
    sudo mount /dev/loop0p2 rpi-os
    
    df -h foo
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/loop0p2    4.9G  4.4G  202M  96% /home/philip/rpi-os
    
  2. chroot в смонтированную файловую систему
    sudo chroot rpi-os
    
  3. Установите любое программное обеспечение, которое вы хотите, внесите любые изменения, которые вы хотите. Например :
    apt-get update
    apt-get install some-new-package
    
  4. Выйти и размонтировать
    df -h rpi-os
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/loop0p2    4.9G  4.5G  149M  97% /home/philip/rpi-os
    
    exit
    sudo umount rpi-os
    
2
27.01.2020, 22:17

есть ли способ проверить, линукс установлен определенным образом, да.

Игнорирование законных обновлений и изменений файла конфигурации...

  • сначала можно использовать LUKS для шифрования корневого раздела linux {было бы дополнительной защитой, но возникли бы другие сложности}
  • первая контрольная сумма всех соответствующих файлов
  • очевидно, что ядро ​​обычно находится в /boot как vmlinuz...something
  • соответствующие файлы initrd, initramfs, grub и efi в каталоге /boot

  • использовать AIDE в linux, в котором работает один из linux — это база данных контрольных сумм, которая поможет обнаружить вторжение

  • напишите скрипт, который будет проверять основные вещи, как и ожидалось :расположение файловой системы, смонтированные папки, службы (chkconfig или systemctl )которые включены/отключены

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

How can I ensure that a provider isn't malevolent and attempt to add any other software we do not want to see on our SD cards ?

это вопрос на миллион долларов... откуда вы знаете {в произвольном порядке}, что ubuntu, suse, redhat/centos, debian, кто бы ни был "поставщиком" Linux, ничего не подсунули? Ответ = выбрать хорошего провайдера. Паранойя -короче говоря, не получает «исходный код ядра Linux», а затем проверяет весь этот исходный код, чтобы убедиться, что «они» ничего не подсунули...затем проверьте все 1000+ об / мин, которые идут вместе с linux, которые заставляют его работать, такие как gnome и glibc, чтобы что-то не было вставлено... есть риск. В какой степени вы пойдете, чтобы минимизировать этот риск, зависит от вас. Существует около 100+ провайдеров Linux, выберите одного из проверенных и проверенных... например, ubuntu, debian, suse, rh...

0
27.01.2020, 22:17

Теги

Похожие вопросы