slavach: (Default)

За месяц жизни с Файрджейлом у меня сложилось явное впечатление того, что Firejail это малварь. Ненамеренная, но какая разница. Добила невозможность закрыть LUKS, пока запущен хоть один инстанс Firejail. C этой Песочницей покончено навсегда.

I gave a fuck. Fucking out of this.

slavach: (Default)

Почистил новый хард командой dd с размером блока 1M. И на нём по-прежнему видны разделы. Догадался, что последний блок не записался, а в самом конце диска резервная GPT. Дописал несколько секторов.

Только на днях перешёл на UEFI. Не переходил бы, но скоро только он и останется.

slavach: (Default)

Почитал я немного о безопасности сабжей. Седины прибавилось. Убрал абстрактные сокеты для начала.

Проапгрейдил комп, купил новое поюзаное железо. AMD R5 2400G + 64 GB. С возможностью добавить до 128 GB. Перешёл на EFI загрузку. Не то, чтобы очень надо, BIOS меня устраивал, но рано или поздно всё одно придётся.

Потрачу несколько дней, сделаю нечто подобное Qube-OS. На любимой Devuan. Qemu, KVM, virt-manager. Ничего лишнего в хост-системе. Всё в виртуалках. Не знаю, хватит ли памяти, думается, да, память дедуплицируется. На 32-х GB нельзя было открывать десятки броузеров с сотнями вкладок, свопить начинала система.

Да, Qemu в Дедалусе не вполне новый, надо собрать девятый. Это, конечно, нудно.

Быть может, такое радикальное решение и лишнее. У страха глаза. Firejail вполне себе решение.

slavach: (Default)

LUKS, это заголовок, header. К которому цепляется блочное устройство, block device. Это самое главное, что надо знать о LUKS.

Заголовок можно подготовить отдельно, используя временное устройство, например файл образа, image file. После этого, с его помощью можно открыть другое устройство. Можно несколько, зная что делаешь.

Create LUKS header. Backup it after that.

dd if=/dev/urandom of=luks-test1.ima bs=1M count=10
cryptsetup luksFormat luks-test1.ima \
  --header luks-test1.luks
# Header created, delete the temporary backing image.
rm -f luks-test1.ima
cp -a luks-test1.luks /path/to/headers-backups/

Create a new image, open it using the existing header, make FS, close. Or just use any existing block device.

dd if=/dev/urandom of=luks-test1-second.ima bs=1M count=10
# No need to format the image, just open it
cryptsetup open luks-test1-second.ima luks-test1-second \
  --header luks-test1.luks
mkfs.ext4 /dev/mapper/luks-test1-second
cryptsetup close luks-test1-second

Open the device. Optionally delete the header. Mount the device and use it.

cryptsetup open luks-test1-second.ima luks-test1-second \
  --header luks-test1.luks
mkdir -p /mnt/luks-test1-second
mount /dev/mapper/luks-test1-second /mnt/luks-test1-second

Готовый заголовок используется лишь в момент открытия устройства cryptsetup open, после этого его можно удалить. Конечно, если есть копия в надёжном месте. Для закрытия устройства заголовок не нужен.

slavach: (Default)

Updated: 2024-08-03 22:40:17 CEST

Работает, как выснил, криво. После пары перезапусков не поднимает адрес. Отказался от firejail.


Но можно проще, с запуском через jail-команду firejail (название не имеет никакого отношения к firefox), позволяющую, в том числе, запустить процесс с индивидуальным IP-окружением, которое создаётся при запуске (его не надо предварительно настраивать).

Исходные

Defaults:

Iface: if0
Address: 192.168.66.11/24
Router: 192.168.66.1
DNS: 191.168.66.1

FF Instance (on demand):

Iface: if1
Address: 192.168.77.22/24
Router: 192.168.77.1
DNS: 1.1.1.1

Примечание. Интерфейс if1 должен быть поднят до запуска firejail firefox

Запуск FF

firejail --net=if1 --ip=192.168.77.22/24 \
  --defaultgw=192.168.77.1 --dns=1.1.1.1 \
  /path/to/firefox -P route-via-if2 --no-remote

Проверка

# Должнен быть пустой лог:
tcpdump -ni if0 host 192.168.77.22
# Должно быть много пакетов:
tcpdump -ni if1 host 192.168.77.22

Вот так.

Profile

slavach: (Default)
slavach

March 2025

M T W T F S S
     12
3456789
10111213141516
171819 20212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2025-06-12 05:12
Powered by Dreamwidth Studios