LINUX.ORG.RU

Сообщения Spoofing

 

Возможно я изобретаю велосипед, но...

https://github.com/sp00f1ng/boobstrap

Картинко.

Для тех, кто читает это впервые. Изначально я написал три простых утилиты, mkbootstrap устанавливает дистрибутив (Arch, Debian, CRUX) в chroot/ директорию, mkinitramfs создаёт initramfs-образ из директории, ему можно указать chroot/ директорию как --overlay, и тогда она упакует её в squashfs-архив, дистрибутив будет работать в tmpfs (CRUX/core занимает 150мб в squashfs). И конечно же, mkbootisofs, которая делает из директории загрузочный (BIOS / UEFI) ISO, который хоть на флешку, хоть виртуалке скорми. Оригинальный тред [Комплекс загрузочных скриптов boobstrap].

Так вот, я решил пойти немного дальше, и добавил:

boobstrap run --template netboot -- "sleep 5 ; ping 8.8.8.8 -c 10 ; poweroff"

Вам понятно, что делает эта команда?

boobstrap run \
    --template default
    "/root/.ssh/authorized_keys=$HOME/.ssh/id_rsa.pub" \
    "/tmp/add_remote_file=./from_local_file" \
    -- "/etc/rc.d/sshd start"

А так?

boobstrap run --timeout 3600 "/etc/rc.local=./git_clone_and_try_to_build_my_project"

Может быть так понятнее?

Во-первых, это система шаблонов. Указывая, какой шаблон использовать и используя все три утилиты mkbootstrap / mkinitramfs / mkbootisofs, мы собираем кастомный загрузочный ISO, например шаблон netboot, который соберёт самый маленький, базовый CRUX.ISO в 50мбайт.

Во-вторых, в шаблон прямо «на лету» можно добавлять свои файлы в любом количестве. /remote=/local. Например, предустановить ssh-ключ с последующим запуском sshd чтобы хост был сразу доступен после загрузки.

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

А если я ещё добавлю к этому PXE ...........

ставь лайк если тоже поймал флэшбек увидев pxe и многоточие вместе

Я наверное изобретаю велосипед. Или не? Ну это не просто менеджер виртуальных машин, что было бы понятно, а он сперва собирает ISO-образ, в сооветствии с вашей конфигурацией, какую укажете одной командой, а затем выполняет её запуск. Делает полезную работу и может выключиться. Добавить к этому PXE, чтобы дело не огранивалось одним локалхостом, а можно было эти конфигурации физическим хостам отдавать, и вообще красота будет. Да? Да. И всё это — в tmpfs.

Дискач?

 ,

Spoofing
()

Как сделать прозрачный cd для find | cpio?

Пишу скрипт для генерации initrd, там нужно сделать find . | cpio из текущей директории, т.е. обязательно туда зайти, иначе cpio создаст initrd внутри которого будет лишняя директория, файлы будут лежать не в корне initrd как ./init, а как например, ./path/init.

https://github.com/sp00f1ng/boobstrap/blob/master/boobstrap.in#L175-L179

	cd $DIRECTORY
	case $OUTPUT in
		""|"-") find . -print0 | cpio --null --create --format=newc --verbose ;;
		*) find . -print0 | cpio --null --create --format=newc --verbose > $OUTPUT ;;
	esac

Из-за этого cd ломается весь скрипт, потому что когда делается cpio > initrd.img, мы находимся уже в другой директории, не откуда запускался скрипт, соответсвенно пытаясь сделать условный cpio > path/initrd.img, этот path/ находится там, где скрипт запущен, а не там, куда хочет записать cpio.

Что можно придумать в данной ситуации?

И да, всё делается на чистом POSIX shell, без башизмов.

 , ,

Spoofing
()

Собираю Gentoo Desktop Userfriendly

Только начал, и сразу обнаружил, что у Гентушников оказывается нету сконфигурированного ядра :( Бида-бида, как же мне теперь сделать дистрибутив который будет работать у всех?

Пишу скрипт для автосборки (https://github.com/sp00f1ng/boobstrap/blob/master/linux-autobuild/gentoo-auto...), который будет собирать генту в загрузочный ISO каждые 24 часа с использованием моих утилит (https://github.com/sp00f1ng/boobstrap). Вся настройка производится внутри функции configure, которая выполняется внутри chroot'а. Буду рад любым предложениям, что должен включать в себя «Gentoo Desktop».

Сразу скажу, в Генте я нуб, специфичных вещей не знаю, как раз поэтому считаю необходимым собрать userfriendly дистрибутив, который можно будет использовать как Live для просмотра ютубов.

И сразу вопрос. Конфигурации для ядра чтобы у всех работало, в Генте нету? Ну я тогда включу nouveau, amdgpu и звук, и больше ничего не знаю.

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

 

Spoofing
()

Комплекс загрузочных скриптов boobstrap

Это черновой вариант моих скриптов, которые я использую для создания загрузочных BIOS/UEFI ISO-образов с линуксами, которыми я пользуюсь сам для жизни в tmpfs. Тупа рабочий код без проверок и «защит от дурака», только чтобы показать всем как создаются ISO. В следующих версиях уже будут все защиты, все проверки на установленные утилиты и прочая, а пока — просто показываю и прошу ваших советов.

И так, код включает в себя три утилиты:

  • mkbootstrap — утилита аналогична debootstrap, pacstrap, создаёт рабочее окружение в chroot/ директории одной командой.
  • mkinitramfs — утилита создаёт initramfs-образ из директории, подключая chroot/ директории как раздельные «слои» (overlay), используя squashfs для сжатия.
  • mkbootisofs — утилита создаёт из директории загрузочный BIOS/UEFI гибридный образ, который можно записать на CD, DVD или dd'шнуть на USB-флешку.

Для работы всего это безобразия необходимы: grub2/grub2-efi, squashfs-tools, dosfstools, xorriso. В принципе, я считаю это немного, никакой экзотики, удалось обойтись малыми жертвами, ИМХО. Все утилиты надо запускать через boobstrap, т.к. они лежат в одном файле, в будущем сделаю симлинками (или разделю на отдельные файлы).

По порядку.

boobstrap mkbootstrap crux_gnulinux chroot/ --ports-dir /usr/ports/packages [--ports-dir /usr/ports/another] [package name] [...]

Утилита установит все пакеты в заданную chroot/ директорию. Можно указать несколько --ports-dir, можно указать только названия пакетов которые будут найдены в заданных директориях и установлены, например, если вам не нужен весь /usr/ports/core, а только ключевые пакеты, то можно их указать списком. Название crux_gnulinux зарезервированная переменная, в будущем я добавлю поддержку gentoo_gnulinux и других дистрибутивов.

В данный момент утилита не будет работать без pkgadd, чтобы её получить вам придётся скачать CRUX и вытащить её оттуда. Напоминаю, что всё это черновой вариант.

Если вы решились ею воспользоваться, то чтобы она заработала прежде установите pkgadd (если у вас не CRUX):

wget http://ftp.morpheus.net/pub/linux/crux/latest/iso/crux-3.5.iso
mount crux-3.5.iso /mnt/crux-media
tar -xOf /mnt/crux-media/crux/tools/pkgutils#*.pkg.tar.gz usr/bin/pkgadd > /usr/bin/pkgadd
chmod +x /usr/bin/pkgadd

Далее ставим в chroot CRUX одной командой.

mkdir chroot-crux-core/

boobstrap \
  mkbootstrap crux_gnulinux chroot-crux-core/ \
    \
    --ports-dir /mnt/crux-media/crux/core

Если хотим минимальный CRUX, то список пакетов можно перечислить (формат перечисления не важен, я просто для красоты так сделал).

mkdir chroot-crux-core-xtreme/

boobstrap \
  mkbootstrap crux_gnulinux chroot-crux-core-xtreme/ \
    \
    --ports-dir /mnt/crux-media/crux/core \
    \
    acl attr bash bzip2 coreutils dash dhcpcd e2fsprogs elfutils eudev \
    file filesystem findutils gawk glibc grep gzip inetutils iproute2 \
    kbd kmod less libcap libdevmapper libpcre linux-pam lzo ncurses \
    openssh openssl pkgutils procps rc readline shadow start-stop-daemon \
    sysfsutils sysklogd sysvinit tar util-linux wget which xz zlib \
    \
    --ports-dir /mnt/crux-media/crux/opt \
    \
    grub2 grub2-efi

Если хотим вообще всё, то перечисляем все директории без указания пакетов.

mkdir chroot-crux-maximum-edishon/

boobstrap \
  mkbootstrap crux_gnulinux chroot-crux-maximum-edishon/ \
    \
    --ports-dir /mnt/crux-media/crux/core \
    --ports-dir /mnt/crux-media/crux/opt \
    --ports-dir /mnt/crux-media/crux/xorg

Далее.

boobstrap mktinitramfs initramfs/ --overlay overlay-one/ [ --overlay overlay-two/] --output $PWD/initrd

Утилита создаст из директории initramfs/ готовый к употреблению initramfs-образ, в данный момент обязательно требуется указывать --overlay, он же chroot/, в который вы будете загружаться. В будущем я расширю настройки, обязательно сделаю --standalone и другие варианты загрузки прямиком в tmpfs, даже без squashfs, просто tmpfs. Но потом.

Сейчас. В чём суть оверлеев. В chroot/ у нас установлена система, но чтобы её не засорять, мы создадим директорию settings/, куда отдельно складываем все настройки.

Например, я хочу отредактировать файл chroot/etc/rc.local, я не буду делать этого в chroot/, чтобы оставить его «ванильным», а скопирую его в директорию settings/etc/rc.local, отредактирую, и при загрузке initramfs наложит поверх слоя chroot/ ещё один слой settings/, таким образом мы сохраняем ванильную систему ИИИИИ применяем наши настройки поверх неё.

Ду ит. Джаст ду ит.

mkdir initramfs/

boobstrap mkinitramfs initramfs/ \
  --overlay chroot-crux-core-xtreme/ \
  --overlay settings/ \
  --output $PWD/initrd

На выходе получили initrd, в котором лежат два squashfs-образа с chroot-crux-core-xtreme и нашими settings.

Другая ситуация. Мы хотим core отдельно, firefox отдельно, libreoffice отдельно, и, конечно же, наш $HOME отдельно. Только для того, чтобы создать иллюзию порядка в системе, — в конечном счёте все эти слои будут вместе друг на друге, но нам ведь не составит труда удалить или обновить один конкретный слой. Этакий flatpack / snapd на минималках. :)

mkdir initramfs/

boobstrap mkinitramfs initramfs/ \
  --overlay chroot-crux-core/ \
  --overlay chroot-crux-xorg/ \
  --overlay firefox-bin/ \
  --overlay libreoffice/ \
  --overlay fvwm/ \
  --overlay /home/username \
  --overlay /root \
  --output $PWD/initrd

На этом этапе добавив к initrd любое ядро его можно просто загрузить, например, через PXE, но наша с вами цель получить загрузочный ISO, поэтому едем дальше.

boobstrap mkbootisofs directory/ > output.iso

Вот так вот просто, да. Просто берёт просто директорию и всё что в ней есть просто упаковывает в ISO. Просто просто. Не забудьте только положить туда vmlinuz и initrd.

mkdir bootimage/
mkdir bootimage/boot

cp (возьмите где хотите)/vmlinuz bootimage/boot/vmlinuz
cp                      ./initrd bootimage/boot/initrd

boobstrap mkbootisofs bootimage/ > bootable.iso

Можно сразу dd:

boobstrap mkbootisofs bootimage/ | dd of=/dev/sdX status=progress

Давайте ещё один пример приведу.

Gentoo.

1. Скачиваем, распаковываем в chroot

mkdir gentoo-chroot/
wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200605T133220Z/stage3-amd64-20200605T133220Z.tar.xz
tar xf stage3-* -C gentoo-chroot/

2. Упаковываем в initramfs.

mkdir gentoo-initramfs/
boobstrap mkinitramfs gentoo-initramfs/ --overlay gentoo-chroot/ --output $PWD/gentoo-initrd

3. Упаковываем в ISO.

mkdir gentoo-bootimage/
mkdir gentoo-bootimage/boot

cp (возьмите где хотите)/vmlinuz gentoo-bootimage/boot/vmlinuz
cp               ./gentoo-initrd gentoo-bootimage/boot/initrd

boobstrap mkbootisofs gentoo-bootimage > gentoo.iso

4. ?????

5. PROFIT!

Для загрузки в UEFI:

qemu-system-x86_64 \
  -bios $(locate OVMF.fd) \
  -enable-kvm -m 1G -boot d -cdrom gentoo.iso

Для загрузки в BIOS:

qemu-system-x86_64 \
  -enable-kvm -m 1G -boot d -cdrom gentoo.iso

Скриншот: http://dl.voglea.com/boobstrap.png

Скачать: http://dl.voglea.com/boobstrap.html

Ваши пожелания и предложения, кроме как найти себе женщину, приветствуются!

 , ,

Spoofing
()

Как GRUB2 подружить с цветными конями

Разбираюсь с GRUB2, делаю, чтобы, когда загружаешь линуксы через PXE, тебя встречала Флаттершай.

Изначально GRUB2 не хотел вообще работать в графическом режиме. В ответ на background_image выдавал:

error: no video mode activated.

Проблема решается следующей конфигурацией:

insmod all_video
insmod gfxterm
set gfxmode=auto
set gfxpayload=keep
terminal_output gfxterm

При включении графического режима вместо текста вы увидите квадратики. Для решения надо обязательно подключить какой-нибудь шрифт, loadfont unifont.

Теперь вопросы.

Можно ли как-то сообщить GRUB2 перед его загрузкой, какой у меня gfxmode? Допустим, я захочу на телевизоре запустить мультимедиа-дистрибутив, и хочу, чтобы моя Флаттершай была в разрешении 4096x2160. Решение у меня конечно есть, — под каждый хост свой образ, свой GRUB2, соответственно индивидуальная настройка, но интереса ради, имеется ли возможность установить максимально поддерживаемый set gfxmode=4096x2160x32?

Хочу, чтобы конь был не один. Имеет ли GRUB2 поддержку какого-либо рандома? Ну чтобы можно было как-нибудь сделать set theme="/boot/grub/themes/$RANDOM_PONY/theme.txt"

И объясните пожалуйста, как работает search. Потому что оно работает не так, как ожидается.

Дистрибутивы загружаются в UEFI-режиме, что локально, что через PXE, соответственно для UEFI создаются два образа, /EFI/BOOT/BOOTX64.EFI который делается командой:

grub-mkstandalone \
	--format=x86_64-efi \
	--output=./BOOTX64.EFI \
	--modules="" \
	--locales="" \
	--fonts="" \
	--themes="flattershy rainbow pinkiepie"

В него сам GRUB2 складывает все свои модули, ШГ, коней цветных. На выходе получаем EFI-загружаемый файл (типа как ядро с EFI_STUB).

Далее загрузочный BOOTX64.EFI заворачивается в FAT32 раздел.

TMP=$(mktemp -d)

dd if=/dev/zero of=./UEFI.IMG count=8 bs=1M

mkfs.vfat ./UEFI.IMG

mount ./UEFI.IMG $TMP

install -D ./BOOTX64.EFI $TMP/EFI/BOOT/BOOTX64.EFI

umount $TMP
rmdir $TMP

Получившийся UEFI.IMG с конями образ готов.

qemu-system-x86_64 -bios /usr/share/qemu/OVMF.fd UEFI.IMG (скачать попробовать можете отсюда).

Суть в чём.

UEFI.IMG это раздел, на котором хранится BOOTX64.EFI, больше ничего там нет, а уже все файлы GRUB2 хранятся внутри самого BOOTX64.EFI. Это понятно.

В grub.cfg я указываю в самом начале: set theme="/boot/grub/themes/flattershy/theme.txt", и только ПОТОМ уже делаю search --no-floppy --file --set root /boot/vmlinuz-5.7.0.

Нооо проблема в том, что GRUB2 сперва успешно выполняет search, а на set theme ругается, что такой темы оформления нет: конечно её нет, GRUB2 уже переключился на другой раздел, в другой корень (root), и естественно, там этой темы нет и быть не может, она лежит в грабовском BOOTX64.EFI!

Как быть? Я конечно могу установить эти темы рядом с /boot/vmlinuz, но для чистоты картины мне бы всё же хотелось, чтобы GRUB2 загружался, сперва применял все настройки включая цветных коней, а уже только потом чрутался в другой раздел.

Может надо как-то его заставить подождать, прежде чем делать search?

P.S.: пример сборки CRUX/FVWM в котором задействован GRUB2 с конями iso (http://dl.voglea.com/dist/crux_gnulinux/amd64/current/crux-amd64-desktop-x11-...).

 ,

Spoofing
()

CRUX в редакции MATE

http://62.109.19.86/dist/crux-amd64-mate.iso

Для тех, кто хотел бы пощупать CRUX, но ставить/разбираться лень. Загрузочный ISO с последними версиями пакетов на момент создания треда. Ядро Linux 5.7 ваниль, я не гарантирую, что оно у всех заведётся, включены только intel, nouveau и amd_gpu, ну и звук ещё. inb4: не умеешь — не берись.

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

Там же рядом ещё лежит, http://62.109.19.86/dist/crux-amd64-netboot.iso, минимально возможный CRUX, включающий в себя всего 47 пакетов, только чтобы загрузился и работал в сети.

acl			inetutils		rc
attr			iproute2		readline
bash			kbd			shadow
bzip2			kmod			start-stop-daemon
coreutils		less			sysfsutils
dhcpcd			libcap			sysklogd
e2fsprogs		libdevmapper		sysvinit
elfutils		libpcre			tar
eudev			linux			util-linux
file			linux-pam		vim
filesystem		lzo			wget
findutils		ncurses			which
gawk			openssh			xz
glibc			openssl			zlib
grep			pkgutils
gzip			procps

Ну а вообще, вы хотели бы видеть сборки на основе CRUX?

 , ,

Spoofing
()

От чего может различаться скорость одинаковых SSD?

Два одинаковых SSD kingston A400 120GB

На одном время создания новой ФС занимает 12 секунд, на другом команда выполняется за 2 секунды.

# fdisk -l
Disk /dev/sdb: 111.81 GiB, 120034123776 bytes, 234441648 sectors
Disk model: KINGSTON SA400S3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd139cfcf

Device     Boot Start       End   Sectors   Size Id Type
/dev/sdb1  *     2048 234441647 234439600 111.8G 83 Linux


Disk /dev/sdc: 111.81 GiB, 120034123776 bytes, 234441648 sectors
Disk model: KINGSTON SA400S3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf1bd474b

Device     Boot Start       End   Sectors   Size Id Type
/dev/sdc1  *     2048 234441647 234439600 111.8G 83 Linux
# time mke2fs -t ext4 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb1 contains a ext4 file system
	created on Wed Jun  3 15:09:09 2020
Proceed anyway? (y,N) y
Discarding device blocks: done                            
Creating filesystem with 29304950 4k blocks and 7331840 inodes
Filesystem UUID: 062c2b75-634c-4003-8fa9-a5bce4ce8f67
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done   


real	0m12.232s
user	0m0.002s
sys	0m0.016s
# time mke2fs -t ext4 /dev/sdc1
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdc1 contains a ext4 file system
	created on Wed Jun  3 15:09:05 2020
Proceed anyway? (y,N) y
Discarding device blocks: done                            
Creating filesystem with 29304950 4k blocks and 7331840 inodes
Filesystem UUID: 30e38fb4-02e3-4ffa-ba62-d45a74f88c2f
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done   


real	0m2.996s
user	0m0.001s
sys	0m0.012s

 

Spoofing
()

Помогите с написанием скриптов на Bash

Пишу bootstrap-скрипты на Bash, которые

1) из дистрибутива делают chroot [CRUXSTRAP: в мире полезных утилит прибыло, оцените]

2) из chroot делают образ типа squashfs или любой другой, хоть tar-архив

3) скрипт который создаёт initramfs образ, опционально рядом кладёт образ с системой [Загрузка любого дистрибутива в RAM]

4) и скрипт, который всё это упаковывает в ISO, который могёт в BIOS/UEFI загрузку

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

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

поделитесь, какими вы вообще видите названия и метод использования этих скриптов?

ну потому что, можно сделать так, чтобы вообще было типа

dd if=$(mkbootable $(mkinitramfs $(mkchroot $(mktemp -d)))) of=/dev/sdb

забано, но сомнительно. не? а может через bash pipe? а может стандартные mk... --arg --arg --arg?

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

спасибо.

 , ,

Spoofing
()

Предлагаю обсудить главную новость ядра.

https://lkml.org/lkml/2020/5/28/1237

Новым стандартом кодинга стало 100 символов в ширину. Линус разрешил.

Да-да, очень смищьно, но тем не менее. При запуске все эмуляторы терминалов, даже в DE, имеют соотношение 80х24, кто-то специально это настраивает? Нет, просто стандарт. А теперь его так вот грубо ломают.

Или как там он говорил... curl https://lkml.org/lkml/2012/12/23/75 | grep WE\ DO\ NOT\ BREAK.

Ну такое себе короче.

В тред так же приглашается главный специалист по таким вопросам saahriktu.

P.S.: прошу обратить внимание, что сообщение было отредактировано не мной. если в данном сообщении вы увидите оскорбления или ещё какую непотребщину, то скорее всего, это модераторы, пользуясь служебным положением, оставляют свои сообщения от имени пользователя.

 ,

Spoofing
()

Посоветуйте в какие DLC поиграть

Основной контент GNU/Linux пройден, все локации открыты практически на 100%, опробованы так же различные игровые клиенты. Даже в подземелье к центру ядра спускался!

Квесты по типу домен+почта+сайт пройдены не один десяток раз, сам себе сложности придумывал чтобы было интереснее проходить их в очередной раз. Основной контент хоть и обновляется, — дейлики нужно выполнять хотя бы еженедельно, следить за новостями и накатывать обновления, ну это такое себе, дело тривиальное.

Профессии типа «вебмастер», «админ», «мейнтейнер» изучил, для ПвЕ мне достаточно. Маунта одного приручил, tmpfs, его хватает для основного контента, других пока не рассматриваю, — в RAIDы вот ещё не ходил, говорят zfs самый сложный маунт.

Вроде весь контент доступен, а заняться толком нечем.

Я думаю попробовать различные DLC, типа NextCloud, Minecraft Server, Matrix, Mastodon инстанс.

Сразу скажу, что ПвП не люблю, поэтому всякие там TOR не предлагать.

Посоветуйте, в какие DLC поинтереснее можно покатать?

 ,

Spoofing
()

Чем можно зашифровать tmpfs?

В QEMU есть замечательная команда dump-guest-memory по протоколу qmp, так что даже линукс работающий в tmpfs выдаст всё своё содержимое. В связи с чем возникает вопрос. Чем можно зашифровать tmpfs?

Какие вообще есть средства в Linux, чтобы шифровать всю память в принципе? Это должно быть что-то очень низкоуровневое, чтобы наверняка. Где вообще гарантия, что все явки-пароли в памяти не утекут от простого dump гостевой ОС?

 , ,

Spoofing
()

Загрузка любого дистрибутива в RAM

Здравствуйте мои юные кали-хакеры и любители оставаться анонимными. С утра, ковыряя VDS (пользуюсь услугами ру-провайдера), [ДАННЫЕ УДАЛЕНЫ] запрос, и [ДАННЫЕ УДАЛЕНЫ] дамп диска [ДАННЫЕ УДАЛЕНЫ].

А теперь скрипт, который из кастомного, т.е. созданного и настроенного вами chroot'а создаёт initramfs образ, готовый к загрузке и работе в tmpfs.

С ним вы можете на любой системе прямо «на лету» свичнуться в tmpfs, хоть прямо сейчас, на своём компьютере. Предварительно установив в chroot любой дистрибутив по желанию и настроив его под себя. А потом скриптом упаковать его в initramfs образ и свичнуться, да.

Для создания минимального (от слова «маленький», а не «огрызок») образа потребуется squashfs-tools. Чтобы свичнуться «на лету» нужен kexec-tools. Установите их. В ядре должны быть включены опции: CONFIG_OVERLAY_FS=y, CONFIG_SQUASHFS=y и CONFIG_SQUASHFS_XZ=y. [личное мнение: ZSTD получается размером больше, чем XZ]

Например. Хотите генту?

# mkdir gentoo_chroot/
# cd gentoo_chroot/
# wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200519T155804Z/stage3-amd64-20200519T155804Z.tar.xz
# tar xf stage3-amd64-*.tar.xz
# rm stage3-amd64-*.tar.xz
# cd ..

На этом этапе мы получили ванильную генту в gentoo_chroot/. Рекомендую её настроить, хотя бы сделать chroot gentoo_chroot/ /bin/bash и установить passwd для root, иначе в систему вы не войдёте. Я не знаю, что это за особенность такая, не давать установить пароль если его нет. В моём CRUX когда пароль на root отсутствует и ты логинишься первый раз (в tty или в ssh по ключу), оно просто предлагает установить пароль. Какая тут может быть дыра в безопасности на свежеустановленной системе? Не знаю...

Предлагаю так же в gentoo_chroot/ скопировать модули и фирмварь для корректной работы текущего ядра и железа.

# cp -a /lib/modules gentoo_chroot/lib/modules
# cp -a /lib/firmware gentoo_chroot/lib/firmware

Ну и создадим образ наконец.

# ./mkchrootrd gentoo_chroot/ ~/gentoo_initrd

Усё. У нас теперь целая настоящая гента в gentoo_initrd файлике упакована. Давайте загрузимся же в неё скорее с текущим ядром.

# eval $(cat /proc/cmdline | cut -f 1 -d \ )
# kexec -l $BOOT_IMAGE --initrd=gentoo_initrd --reuse-cmdline
# kexec -e

Если вы не хотите делать kexec по каким-то причинам, то положите этот же образ в свой /boot, а в параметрах загрузки укажите initrd /gentoo_initrd. Перезагрузитесь и получите тот-же результат.

Ура! Гента загрузилась. Тоже самое можно проделать с любым дистрибутивом, просто установите его, настройте как вам угодно, а затем скриптом создайте initramfs образ. Я уж взял для примера Gentoo, не стал лишний раз приводить в пример CRUX.

Жмём Reset чтобы сбросить всё и загрузиться в свою систему с морально устаревшего M.2 NVMe накопителя обратно.

Перевёл свою VDS на работу в tmpfs. Диск /dev/vda отформатировал в NTFS. Рекомендую всем. 👍👍👍👍👍👍

Скрипт:

#!/bin/bash
#
# Author: Sp00f1ng <sp00f1ng@sp00f1ng.com>
# License: Public Domain
#
################################################################################
#
# mkchrootrd chroot_directory/ [initrd_image]
#
################################################################################
# 
# Depends on: squashfs-tools
# Optional:   kexec-tools
# Kernel:
#
# File systems  --->
#    <*> Overlay filesystem support
#    [*] Miscellaneous filesystems  --->
#       <*> SquashFS 4.0 - Squashed file system support
#          [*] Include support for XZ compressed file systems
#
################################################################################
#
# Example usage:
#
# mkdir gentoo_chroot/
# cd gentoo_chroot/
# wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200519T155804Z/stage3-amd64-20200519T155804Z.tar.xz
# tar xf stage3-amd64-*.tar.xz
# rm stage3-amd64-*.tar.xz
#
# [.. do something else with gentoo_chroot/ like additional configuration ...]
# [ cp -a /lib/modules ./lib/modules ]
# [ cp -a /lib/firmware ./lib/firmware ]
#
# cd ../
#
# ./mkchrootrd gentoo_chroot/ ~/gentoo_initrd
#
# eval $(cat /proc/cmdline | cut -f 1 -d \ )
# kexec -l $BOOT_IMAGE --initrd=gentoo_initrd --reuse-cmdline
# kexec -e
# 
# Have fun and happy hacking day 1 <3 <3 7 !

panic() {
	if [ -e "$TMP" ]; then
		rm -rf $TMP 2>/dev/null
	fi
	exit ${1:1}
}

got_help() {
	grep ^\# "$0"
}

got_cmdline() {
	while [ "$1" ]; do
		if [ ! -n "$CHROOT_DIR" ]; then
			CHROOT_DIR="$1"
			shift
			continue
		fi
		if [ ! -n "$INITRD_IMG" ]; then
			INITRD_IMG="$1"
			shift
			continue
		fi
		shift
	done
}

cp_bin() {
	local src="$1"
	local dst="$2"
	local dep=""

	if [ "$dst" = "" ]; then
		dst="$src"
	fi

	if [ -e "$TMP$dst" ]; then
		return
	fi

	install -D -m 0755 "$src" "$TMP$dst"

	for dep in $(ldd "$src" 2>/dev/null | grep -o '/.* '); do
		cp_bin "$dep"
	done
}

mk_env() {
	for dir in proc sys dev run mnt overlay; do
		install -d $TMP/$dir
	done

	for dev in console tty tty1 null; do
		cp -a "/dev/$dev" "$TMP/dev/$dev"
	done

	for bin in sh switch_root mount umount mkdir rmdir; do
		cp_bin "$(which $bin)"
	done

	touch $TMP/init
	chmod +x $TMP/init

	cat > $TMP/init << EOF
#!/bin/sh
mount -t proc none /proc
echo "0" > /proc/sys/kernel/printk
mount -t sysfs none /sys
mount -t devtmpfs devtmpfs /dev
mount -t tmpfs none /run
mount -t tmpfs tmpfs /overlay
lowerdir="/lower"
upperdir="/overlay/upper"
workdir="/overlay/work"
mkdir -p \$lowerdir
mkdir -p \$upperdir
mkdir -p \$workdir
mount -t squashfs -o ro /root.sqfs \$lowerdir
mount -t overlay -o ro,lowerdir="\$lowerdir",upperdir="\$upperdir",workdir="\$workdir" overlay /mnt
umount /proc
umount /sys
umount /dev
umount /run
exec switch_root /mnt /sbin/init
EOF
}

main() {
	CHROOT_DIR=""
	INITRD_IMG=""

	got_cmdline "$@"

	if [ ! -n "$CHROOT_DIR" ] || [ ! -n "$INITRD_IMG" ]; then
		got_help
		panic 0
	fi

	if [ ! -d "$CHROOT_DIR" ]; then
		echo "'$CHROOT_DIR' is not directory."
		panic 1
	fi

	if [ ! -x "$(which mksquashfs)" ]; then
		echo "'mksquashfs' squashfs-tools not found."
		panic 1
	fi

	mk_env

	mksquashfs $CHROOT_DIR $TMP/root.sqfs \
		-b 1048576 -comp xz -Xdict-size 100%

	cd $TMP
	echo "Building Initial RAM Disk [$INITRD_IMG]"
	find . -print0 | cpio --null --create --format=newc --verbose > "$INITRD_IMG"
	echo "Done [$INITRD_IMG]"
}

trap "panic" INT HUP QUIT TERM EXIT

readonly MKCHROOTRD_COMMAND="$0"
readonly MKCHROOTRD_VERSION="1.0"

TMP=$(mktemp -d)

main "$@"

# EOF

 mkchrootrd,

Spoofing
()

Как использовать /31 подсеть для point-to-point?

Во внешку выставил смотреть один ПК-роутер на линуксе, его задача быть тупым шлюзом на котором нет ничего, кроме раздачи интернетов на один единственный IP. Первый эшелон, так скажем.

192.168.0.1/30 — IP данного шлюза, 192.168.0.2/30 — IP второго эшелона, который интернеты будет получать и раздавать далее.

Попытался использовать /31 подсеть (всего 2 IP-адреса), но почему-то не взлетело.

В википедии написано: https://ru.wikipedia.org/wiki/Маска_подсети

Возможных узлов подсети меньше количества адресов на два: начальный адрес сети резервируется для идентификации подсети, последний адрес используется в качестве широковещательного адреса (возможны исключения в виде адресации в IPv4 сетей /32 и /31).

В случае с /30 понятно, используется 4 адреса и всё работает, но как воспользоваться этим «исключением» чтобы начать использовать /31?

На сервере: ip addr add 192.168.0.1/31 dev eth0

На клиенте: ip addr add 192.168.0.2/31 dev eth0

Не работают. Если сделать /30, тогда работает. Ради интереса попробовал на сервере сделать /30, а на клиенте «якобы» 192.168.0.100/24 — сервер пингуется, но в интернет уже не пускает. Достаточно ли это секурно?

Или это всё фигня? Как сделать секурный point-to-point чтобы только один хост мог войти в подсеть и получать интернеты?

 cidr

Spoofing
()

Zhbert

определение «тупняка» было на глаз, я так понимаю.

вы не считаете коврик для мышки аксессуаром хоть сколько-нибудь необходимым для работы за ПК?

а я вполне серьёзно. открыл каталог DNS и смотрю, можно взять за 200 рублей смайлик, или чуть доплатить за брендированный и более серьёзный чёрный квадрат, имеются даже с подсветкой.

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

я понимаю, коврик для мышки это вам не видеокарта, слишком несерьёзно. но ниразу не оффтоп.

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

тред восстанавливать не прошу, это всего лишь личная переписка.

с уважением.

 5.4,

Spoofing
()

Сегодня в 17:00 MSK стрим

Ссылка на трансляцию: https://www.youtube.com/watch?v=7EB9pMYnTaM

Будем настраивать домашние железки для удалённой загрузки по сети, посмотрим что будет если выполнить rm -rf / и поотвечаем на вопросы.

Стрим начнётся в 17:00 по Московскому времени, на моих часах это будет 21:00. Всех жду.

 

Spoofing
()

Кому скучно, приглашаю на Стрёмчанский.

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

*** https://www.youtube.com/watch?v=oQXP33al1pM

Тупим на ЛОРе, читаем новости, болтаем в чатике, отвечаю на ваши вопросы, ковыряем консольку и всё в таком духе. =)

 

Spoofing
()

Порекомендуйте точку доступа для покрытия двора

Скоро лето, хочется почаще выходить на улицу, но как же без интернетов? 4G не нужно, через него я слышал, коронавирус передаётся.

Есть такой двор который желательно весь, ну если не весь, то хотя бы лавочки рядом с песочницей покрыть домашним Wi-Fi с хорошей скоростью и латенси. Условия скорее всего будут тепличными т.к. прямо туда смотрит окно, есть возможность направить точку антеннами во двор. Розетки, ethernet кабель, всё под боком, опять же. Уровень действия — 9 этаж.

Какую точку доступа подальнобойнее и пошире взять? Желательно mikrotik, т.к. у неё много других плюсов, но не критично если есть альтернативы.

 ,

Spoofing
()

Вот это ПОБЕДА

На сайте посвящённому «ОС Linux» я оставляю комментарий:

когда будем праздновать победу линукса на десктопах?

в этом треде: С днем капитуляции фашистской Германии, с Днем Победы

а его удаляют по причине: Сообщение удалено alpha по причине 4.1 Offtopic (0)

 ,

Spoofing
()

Пожалуйста, прослушайте личное обращение

Для !Ъ: http://d.zaix.ru/jsPQ.mp3

Для Ъ:

это мой голос после обработки в audacity. как раз сейчас занимаюсь звуком.

скажите, а под линукс есть приложения чтобы микшировать звук «на лету»? то есть, принять звук, обработать, и прозрачно же для приложения его отдать.

сейчас приходится редактировать голос в «пост-продакшене», не говоря уже о том, что других приложений для работы со звуком под CRUX тупо нету. но я хочу делать это «на лету». могу рассмотреть иные варианты дистрибутивов, если уж на то пошло.

 , ,

Spoofing
()

Как я влошил 17к в звук

Довелось мне подключить Microlab SOLO 6 & 7 к материнской плате Gigabyte x470 Aorus Ultra Gaming (Realtek ALC1220) и я понял, что с тех пор на меньшее не согласен. Не скажу за качество, за чистоту звучания, — нет эталона для сравнения, но сравнивая со звуковым чипом который стоит по-умолчанию на всех материнках низшего ценового сегмента, ALC1220 по сравнению с ALC887, — небо и земля. Если это важно, слепой тест пройден, т.к. звук изначально не был целью, я просто случайно слушая любимую композицию обратил внимание, как лучше звучит эта новая материнская плата, как я стал разборчиво слышать каждую ноту в мелодии, а не ту кашу, что выдавал ALC887.

Ну я и решил пойти дальше, приобрёл вот эту шляпу: Focusrite Scarlett Solo 3rd Gen в ожидании eargasm'ов. Но нет, чуда не произошло. А суть в том, что я — быдло, мне надо, чтоб музыка качала, чтобы «унц унц унц», чтобы я мог на слух выделить каждую ноту отдельно, и это минимум чего я ожидал от «профессионального аудио-интерфейса». По итогу, звучание ALC1220 мне зашло больше, чем вот это недоразумение под названием «профессиональный аудио-интерфейс».

Аудио-интерфейс, конечно, даёт чистый звук. Я подключил к нему XLR микрофон, наушники, выкрутил GAIN на максимум, VOLUME на максимум и слышу полную тишину: ничего не фонит, не жужжит, всё экранировано. Открыто окно, на улице пьяный бомж стреляет мелочь, микрофон это улавливает и я слышу это в наушниках. Кристально чистый звук бомжа. Ключевое слово «чистый». Вроде всё здорово. Нооо, не для музыки! Меня не качает! Я не получаю от музыки никакого удовольствия, как будто бы слушаю обычную реалтековскую кашу. Это просто звук «каким он должен быть».

Капец. 12 тыщь вникуда. А ну да, на 5 тыщь я ещё уши взял. Чтобы мониторные, с 6.3mm джеком чтобы подключить к аудио-интерфейсу этому. Ну чистый звук, ну да, но на этом всё. Увы. Я лох.

Почему я сразу не взял что-то другое? Меня подкупило, что эти профессиональные аудио-интерфейсы из коробки дружат с линуксом через JACK. Никакого гемороя с драйверами.

Чё делать? Брать нормальную «геймерскую» звуковую карту чтобы получать удовольствие от музыки? Или ситуацию можно как-то выправить эквалайзерами?

Перемещено leave из multimedia

 

Spoofing
()

RSS подписка на новые темы