LINUXTALKS.CO

3
Всего сообщений: 91

Защищенный терминал из говна и палок

Группа Персональные блоги участников

О чём тут пойдёт речь

Предлагаю смотреть на вопрос философски. Многие из нас работают на удаленке. Защищая свою рабочую машину для просмотра котиков, мы возможно избавим от проблем себя и свою любимую компанию. А вот откуда может прилететь, сходу сказать сложно. Будем считать против нас Бох! Ну не тот который всё создал, а тот который специализируется на атаках ИБ, ну и раз он Бох, то он конечно умеет читать мысли и бессмертен.

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

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

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

Из чего я исхожу

Современные персональные компьютеры могут вести тайную жизнь. Так вот как я уже говорил, если вы кого-то заинтересовали, вы будете атакованы. Про любые телефоны я вообще молчу. Не спасут вас даже пароли, которые вы держите в голове, какой длинны бы они не были. Бох, вы знаете, он же человека насквозь видит, боги они хоть и бессмертны, но тоже нуждаются в деньгах. Поэтому если вы заинтересуете одного из богов, или не приведи господь, одного из них прогневааете, он до вас доберётся. Чем больше он о вас знает тем проще ему осуществить задуманное, а время у богов ничем не ограничено и оно играет против вас.

Android и iOS

Для краткости скажу, что всё что у вас на телефоне, это 100% публичная информация, всё что вы сфотографировали и даже никому не показали, уже видит Бох. Тут без вариантов. Не зря же РФ создает свои защищенные мобильные устройства. В общем про мобилки долго отнимать времени не буду. Просто старайтесь не вести переписку с телефона, любой звонок уже слушает Бох, а у него свои планы. Они могут с вашими не совпадать.

Больше встречайтесь с людьми, говорите о действительно важном с глазу на глаз. Всё сказанное через телефон это публичная информация. Всё что находится в ПЗУ, ОЗУ и экране мобилки, видит Бох.

Имейте это ввиду, тут ничего не поделаешь.

ПК и Mac

Всё это сорта примерно одной и той же субстанции. О ПК информации больше. Всевозможные Intel ME и аналоги от AMD и есть источник угроз. Технологии это сложные, закрытые и не так много людей точно понимает что происходит под капотом. Есть только небольшая надежда на то, что более открытый ПК, в некоторых случаях, обещает штатное отключение препроцессоров или отключение с помощью программатора. Полное отключение препроцессоров не предполагается, по крайней мере мне нагуглить такого не удалось.

В общем нам нужна аппаратная платформа с минимизированными функциями удаленного контроля. Всегда имел дело с ПК, про Mac сам бы послушал с удовольствием.

Ключи и пароли

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

На компьютере подготовленном для работы с ключами ничего не храним. Установка софта на нем только через флешку.

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

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

Установка Linux

Windows на десктопе это геморрой, и совершенно не понятно как его огораживать. Поэтому только Linux.

Я использую в качестве корня BTRFS, в качестве домашнего раздела, смотрите что больше нравится. Btrfs умеет в снапшоты, а еще в моем дистрибутиве можно грузить root в RO режиме. Соответственно сразу после установке всего необходимого перезагружаюсь и сижу в RO.

LVM + LUKS лежит ниже разделов FS. Соответственно весь диск для того, кому он случайно попадет в руки, будет выглядеть как «требующий форматирования».

И так, систему накОтили, секретную фразу сгенерили на отдельном ПК без сети и диск зашифровали. Срочно подключаемся к интернету и начинаем разглядывать котиков. В моем дистрибутиве модуль pam_u2f не поставляется на ISO образе и его нужно скачать отдельно, пока это не настроено, к сети не подключаемся. Читаем об этом, например тут. Я обычно сохраняю необходимость ввода пароля, мой конфиг выглядит так:

$ cat /etc/pam.d/common-auth

auth	required	pam_env.so	
auth	optional	pam_gnome_keyring.so
auth	required	pam_u2f.so	authfile=/etc/Yubico/u2f_config cue [cue_prompt=Slava Rossii!!!]
auth	required	pam_unix.so	try_first_pass

Далее идем в /etc/passwd выносим всё непонятное, в общем я по началу обращал внимание только на то, чтобы ни у кого кроме root и моего пользователя не было bash, все кроме этих твоих nologin:

$ cat /etc/passwd

root:x:0:0:root:/root:/bin/bash
messagebus:x:498:498:User for D-Bus:/run/dbus:/usr/sbin/nologin
polkitd:x:497:497:User for polkitd:/var/lib/polkit:/usr/sbin/nologin
scard:x:496:496:Smart Card Reader:/run/pcscd:/usr/sbin/nologin
#lp:x:495:495:Printing daemon:/var/spool/lpd:/usr/sbin/nologin
tss:x:98:98:TSS daemon:/var/lib/tpm:/usr/sbin/nologin
systemd-coredump:x:482:482:systemd Core Dumper:/:/usr/sbin/nologin
systemd-timesync:x:481:481:systemd Time Synchronization:/:/usr/sbin/nologin
#tftp:x:480:480:TFTP Account:/srv/tftpboot:/usr/sbin/nologin
srvGeoClue:x:479:479:User for GeoClue D-Bus service:/var/lib/srvGeoClue:/usr/sbin/nologin
qemu:x:107:107:qemu user:/:/usr/sbin/nologin
pulse:x:477:477:PulseAudio daemon:/var/lib/pulseaudio:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/var/lib/nobody:/usr/sbin/nologin
man:x:13:62:Manual pages viewer:/var/lib/empty:/usr/sbin/nologin
#flatpak:x:476:476:Flatpak system helper:/:/usr/sbin/nologin
daemon:x:2:2:Daemon:/sbin:/usr/sbin/nologin
rtkit:x:473:473:RealtimeKit:/var/lib/empty:/usr/sbin/nologin
rpc:x:472:472:User for rpcbind:/var/lib/empty:/usr/sbin/nologin
unbound:x:471:471:unbound caching DNS server:/var/lib/unbound:/usr/sbin/nologin
dnsmasq:x:469:469:dnsmasq:/var/lib/empty:/usr/sbin/nologin
brltty:x:467:467:Braille Device Daemon:/var/lib/brltty:/usr/sbin/nologin
usbmux:x:466:466:usbmuxd daemon:/var/lib/usbmuxd:/usr/sbin/nologin
bin:x:1:1:bin:/bin:/usr/sbin/nologin
#statd:x:465:465:NFS statd daemon:/var/lib/nfs:/usr/sbin/nologin
#sshd:x:464:464:SSH daemon:/var/lib/sshd:/usr/sbin/nologin
nm-openvpn:x:463:463:NetworkManager user for OpenVPN:/var/lib/openvpn:/usr/sbin/nologin
nm-openconnect:x:462:462:NetworkManager user for OpenConnect:/var/lib/nm-openconnect:/usr/sbin/nologin
#colord:x:461:461:user for colord:/var/lib/colord:/usr/sbin/nologin
#fwupd-refresh:x:460:460:Firmware update daemon:/var/lib/fwupd:/usr/sbin/nologin
gdm:x:458:458:Gnome Display Manager daemon:/var/lib/gdm:/usr/sbin/nologin
unclestephen:x:1000:1000:Uncle Stephen:/home/unclestephen:/bin/bash
dockremap:x:454:454:docker --userns-remap=default:/:/usr/sbin/nologin

Из того что нужно срочно снести:

pipewire, sshd, avahi-*, ну остальное сами смотрите.

Далее не плохо бы отрубить ipv6.

В файл /etc/sysctl.conf добавляем:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Применяем

sysctl -p 

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

Возможно стоит установить один из интерактивных фаерволов, например OpenSnitch, чтобы вообще получить представление о том кто и куда ходит на вашем ПК. Таким образом в список сносимого софта попал avahi, который то и дело соединяется с какими то ненужными мне серверами. Короче вот так.

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

Ператские игори запускаем под виндой на отдельной машине!!!

Когда всё проверено, можно перезагружаться на последнее состояние диска в RO.

 , ,

Shulman ()

Программатор SPI и i2c для линуксятников

Группа Персональные блоги участников

photo-2024-07-22-21-42-39.jpg

Как известно, разработчики большинства популярных программаторов редко озадачиваются поддержкой Linux в своём софте. И из бюджетных устройств мы можем видеть во flashrom разве что доисторические медленные программаторы без автоопределения уровней типа ch341, tl866 первой версии и самосборного Postal3.

Итак, представляем новый бюджетный программатор spi и i2c eeprom Ra©©oon flash explorer. Программатор представляет микросхемы в системе как диск. Работа простая - файл прошивки скопировал/удалил/записал, то есть работает с любой операционной системой, которая умеет монтировать USB флешки. С телефонами на Android в том числе, с айфонами не проверял, сорян

bfae7199-d5fc-4862-9ae2-b3068ff6aad9.jpg

Микросхема представляется хосту в виде обычного двоичного файла, с которым можно работать напрямую без полной перезаписи, а так же копировать и перезаписывать.
GD25LB64: чтение 16сек, запись 1 минута ровно. 1,8v
W25Q64FV: чтение 19сек, запись 1 минута 9сек. 3.3v

Работает со spi и i2c памятью.
Полный автодетект микросхемы и напряжения питания. Отсутствует необходимость в переходнике на 1.8 В.
Детект работы через прищепку, детект ошибок при ините.
Детект помех на шине.
Детект перевернутого подключения и детект перегрузки с отключением питания.
Не требуются драйверы.
Встроенный тестер инициализации.

Сборка и разработка российские. Для пользователей операционных систем на основе ядра Linux, не избалованных обилием SPI программаторов, Ra©©oon flash explorer по сути безальтернативен

Постоянная поддержка от разработчика в телеграмм канале.
Ценник 2000 руб. плюс доставка(пока только почта РФ) 350 руб.
Возможность заказа набора для самостоятельной сборки 1000 руб. плюс доставка.
Добавляйтесь в ТГ канал. Там все ссылки, обсуждение, описание, инструкции для заказа.
https://t.me/raccoon_prog

Также программатор теперь можно заказать Авито доставкой https://www.avito.ru/pogar/tovary_dlya_kompyutera/programmator_raccoon_4081191958?utm_campaign=native&utm_medium=item_page_android&utm_source=soc_sharing

 , ,

Kaschenko ()

Загрузка ISO с FAT32 флешки а-ля Ventoy на минималках

Группа Персональные блоги участников

Здравствуйте мои маленькие токсичные борцы с дивана.

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

Таким образом вы сможете создать мультизагрузочную флешку с Debian, Ubuntu, Arch и другими дистрибутивами. Любой Live-дистрибутив на выбор, и всё из одного меню.

Интересно?

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

Дублируя загрузочные пункты меню menuentry вы можете добавлять различные дистрибутивы и ISO образы!

Давайте более детально рассмотрим menuentry Debian, что тут есть:

menuentry "Debian GNU/Linux Live 11.6.0 kde+nonfree (linux 5.10.0-20-amd64)" {
	iso_path=/debian-live-11.6.0-amd64-kde+nonfree.iso
	export iso_path
	loopback loop $iso_path
	set root=(loop)
	set loopback="findiso=${iso_path}"
	export loopback
	linux /live/vmlinuz-5.10.0-20-amd64 boot=live components toram \
	locales=ru_RU.UTF-8 keyboard-model=pc105 keyboard-layouts=us,ru \
	username=spoofing \
	splash quiet "${loopback}"
	initrd /live/initrd.img-5.10.0-20-amd64
}

iso_path указывает, где лежит необходимый ISO: в корне флешки.

Параметрами boot=live components toram мы загружаем систему целиком в RAM, так что потом флешку можно вытащить, и система с Debian/KDE останется рабочей!

Параметрами locales=ru_RU.UTF-8 keyboard-model=pc105 keyboard-layouts=us,ru мы задаём язык системы и раскладку клавиатуры из коробки, у нас будет доступно переключение на русский язык сразу после загрузки системы.

Параметр username=spoofing задаёт имя пользователя live, просто приятное дополнение, чтобы в терминале был ваш родной никнейм.

Для того, чтобы всё заработало, вам понадобится:

  • Пакеты grub2 и grub2-efi, скорее всего они у вас есть.

  • dosfstools для форматирования FAT32, утилита mkdosfs.

  • Все остальные утилиты типа fdisk, dd у вас уже есть.

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

#!/bin/sh

main () {

	disk="$1"
	root="$(dirname $(realpath $0))"
	temp="$(mktemp --directory --tmpdir tmp.XXXXXXXXXX)"

	dd bs=512 if=/dev/zero seek=0 count=2048 of=$disk
	dd bs=512 if=/dev/zero seek=15767552 count=2048 of=$disk
	sync
	sleep 1

	sfdisk --no-reread "$disk" <<EOF
label: gpt
unit: sectors
sector-size: 512
1 : start=2048, size=15699968, type=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, name="multiboot"
2 : start=15702016, size=65536, type=uefi, name="multiboot_EFI"
3 : start=15767552, size=2015, type=21686148-6449-6E6F-744E-656564454649, name="multiboot_BIOS"
EOF
	sync
	sleep 1

	sfdisk --no-reread -Y dos "$disk" <<EOF
label: dos
sector-size: 512
1 : start=2048, size=15699968, type=0c, bootable
2 : start=15702016, size=65536, type=ef
3 : start=1, size=2047, type=ee
EOF
	sync
	sleep 1

	mkdosfs -n MULTIBOOT "${1}1"
	mkdosfs "${1}2"

	mkdir "$temp/boot"
	mkdir "$temp/efi"

	mount "${1}1" "$temp/boot"
	mount "${1}2" "$temp/efi"

	mkdir $temp/boot/boot

	grub-install --target=x86_64-efi --removable --no-nvram \
		--root-directory=$temp/boot \
		--boot-directory=$temp/boot/boot \
		--efi-directory=$temp/efi

	grub-install --target=i386-efi --removable --no-nvram \
		--root-directory=$temp/boot \
		--boot-directory=$temp/boot/boot \
		--efi-directory=$temp/efi

	grub-install --target=i386-pc \
		--root-directory=$temp/boot \
		--boot-directory=$temp/boot/boot \
		"$disk"

	umount "$temp/efi"

	echo "source /grub.cfg" > "$temp/boot/boot/grub/grub.cfg"

	umount "$temp/boot"

	rm -r -f "$temp"

}

main "$@"

Сохраняем скрипт в файл mkbootusb.sh и выполняем

# ./mkbootusb.sh /dev/sda

где /dev/sda это ваша флешка размером от 8гб.

Флешка будет отформатирована, на флешку будет установлен загрузчик grub2 для Legacy BIOS и UEFI систем.

На флешке появятся три раздела:

# fdisk -l
Disk /dev/sda: 14.65 GiB, 15728640000 bytes, 30720000 sectors
Disk model: USB DISK        
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: gpt
Disk identifier: 141D7864-77B4-3849-B430-1CE359751108

Device        Start      End  Sectors    Size Type
/dev/sda1      2048 15702015 15699968    7.5G Microsoft basic data
/dev/sda2  15702016 15767551    65536     32M EFI System
/dev/sda3  15767552 15769566     2015 1007.5K BIOS boot

Раздел /dev/sda1 это раздел для хранения данных.

Скачиваем последний Debian Live KDE

# mount /dev/sda1 /mnt
# cd /mnt
# wget https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current-live/amd64/iso-hybrid/debian-live-11.6.0-amd64-kde+nonfree.iso

И уже ручками редактируем grub.cfg, обратите внимание, что в /boot/grub/grub.cfg на флешке всего одна строчка source /grub.cfg, суть которого сводится к тому, чтобы загрузить /grub.cfg из корня флешки.

Поэтому мы либо кладём наш grub.cfg в корень флешки, ну либо перезаписываем этот /boot/grub/grub.cfg.

# cat > /mnt/grub.cfg <<"EOF"
set default=1
set timeout=9

insmod font
if loadfont /unifont.pf2; then
	insmod gfxterm
	insmod png
	insmod efi_uga
	insmod efi_gop
	set gfxmode=auto
	set gfxpayload=keep
	terminal_output gfxterm
fi

if background_image /grub-16x9.png; then
	set color_normal=white/black
	set color_highlight=black/white
else
	set menu_color_normal=cyan/blue
	set menu_color_highlight=white/blue
fi

submenu "Boot from ISO image >" {
menuentry "Debian GNU/Linux Live 11.6.0 kde+nonfree (linux 5.10.0-20-amd64)" {
	iso_path=/debian-live-11.6.0-amd64-kde+nonfree.iso
	export iso_path
	loopback loop $iso_path
	set root=(loop)
	set loopback="findiso=${iso_path}"
	export loopback
	linux /live/vmlinuz-5.10.0-20-amd64 boot=live components toram \
	locales=ru_RU.UTF-8 keyboard-model=pc105 keyboard-layouts=us,ru \
	username=spoofing \
	splash quiet "${loopback}"
	initrd /live/initrd.img-5.10.0-20-amd64
}
}

submenu "Sign off >" {
menuentry "Next system (continue)" {
	continue
}
menuentry "Reboot system (reboot)" {
    reboot
}
menuentry "Shutdown system (halt)" {
    halt
}
}

Тут-же в корень флешки мы складываем шрифт unifont.pf2, его вы можете найти у себя где-то тут /usr/lib/grub/fonts/unifont.pf2

И тут-же в корень флешки складываем картинку /grub-16x9.png, которую взять можно отсюда https://commons.wikimedia.org/wiki/File:Grub-16x9.png

На этом всё. Размонтируем флешку.

# umount /mnt

Загрузочная флешка с Debian Live KDE готова!

После подключения флешки в компьютер или в виртуалку вы увидите похожую картину:

Выбираем нужный пункт меню и загружаемся!

 , ,

Spoofing ()