Xorg від непривілейованого користувача

12/Січень/2024 gdm3xorgkvmsecurity

Cage for an unprivileged user 1600x900 unprivileged-user-cage.png
Cage for an unprivileged user

Абстрактно.
Є якийсь софт, якому потрібні ікси.
Здавалося б, завантажив, встановив, запустив – користуйся.
Але ось, проблема, подібний софт (для мене подібний - абсолютно весь, який не входить у штатний репозиторій Debian) я не хочу запускати:

  1. На своєму хості.
  2. Від мого користувача.
  3. Під Xorg мого користувача.
  4. Допускати у мої мережі, у тому числі 127.0.0.0

Крім того, той же браузер для “полазити” по сайтах і браузер для клієнт-банку, це не той же самий браузер, користувач і, іноді, система.
Пункти 1, 2, 4, зараз не розглядаємо, мова йтиме про X.

У Debian при стандартних налаштуваннях системи як display-manager використовується LightDM.
У ньому можна увімкнути listen tcp, але процеси Xorg він запускає від root.
У gdm3 навпаки, за умовчанням, він запускає Xorg від користувача, який логіниться в оточення, але в ньому зламали можливість увімкнути listen tcp.
Точніше залишили можливість вимкнути nolisten tcp,
але не увімкнути listen tcp.

Для цього потрібно відредагувати обгортку над X.

Xorg від непривілейованого...

Перезапуск модуля wifi без перезавантаження системи

25/Липень/2023 iwlwifirfkill

На ноутбуці або через перегрівання, або через тривалу роботу, або через перевантаження каналу кількістю пакетів за секунду pps, виникає помилка.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[2250886.567817] ieee80211 phy0: Hardware restart was requested
[2250886.602451] iwlwifi 0000:24:00.0: Radio type=0x1-0x2-0x0
[2250886.899471] iwlwifi 0000:24:00.0: Radio type=0x1-0x2-0x0
[2250887.042217] iwlwifi 0000:24:00.0: Microcode SW error detected.  Restarting 0x2000000.
[2250887.042225] iwlwifi 0000:24:00.0: Loaded firmware version: 18.168.6.1 6000g2a-6.ucode
[2250887.042348] iwlwifi 0000:24:00.0: Start IWL Error Log Dump:
[2250887.042349] iwlwifi 0000:24:00.0: Status: 0x0000004C, count: 6
[2250887.042482] iwlwifi 0000:24:00.0: Start IWL Event Log Dump: nothing in log
[2250887.042486] iwlwifi 0000:24:00.0: BUG_ON, Stop restarting
[2250887.128058] iwlwifi 0000:24:00.0: Command REPLY_ADD_STA failed: FW Error
[2250887.128063] wlan0: failed to remove key (0, 01:11:88:ab:2c:99) from hardware (-5)
[2250887.128112] iwlwifi 0000:24:00.0: iwl_trans_wait_tx_queues_empty bad state = 0
[2250887.128132] iwlwifi 0000:24:00.0: Command REPLY_ADD_STA failed: FW Error
[2250887.128133] wlan0: failed to remove key (1, ff:ff:ff:ff:ff:ff) from hardware (-5)
[2250887.228460] iwlwifi 0000:24:00.0: Request scan called when driver not ready.
[2250902.567848] iwlwifi 0000:24:00.0: Command REPLY_RXON failed: FW Error
[2250902.567857] iwlwifi 0000:24:00.0: Error clearing ASSOC_MSK on BSS (-5)
[2250902.587425] iwlwifi 0000:24:00.0: Radio type=0x1-0x2-0x0
[2250902.637530] iwlwifi 0000:24:00.0: Command COEX_PRIORITY_TABLE_CMD failed: FW Error
[2250902.637535] iwlwifi 0000:24:00.0: Could not complete ALIVE transition: -5
[2250902.649786] iwlwifi 0000:24:00.0: Failed to run INIT ucode: -5
[2250902.649819] iwlwifi 0000:24:00.0: Unable to initialize device.
[2250960.530138] iwlwifi 0000:24:00.0: Radio type=0x1-0x2-0x0
[2250960.665000] iwlwifi 0000:24:00.0: Unable to initialize device.
  


Зазвичай вирішується перезавантаження системи, але коли (завжди) відкрито мільйон вікон та запущено мільйон скриптів поверх десятків змотованих розділів, перезавантажувати систему не дуже зручний варіант.

Перезапуск модуля wifi...

Налаштування непривілейованого LXC

21/Березень/2023 lxcuidgidsecurity

Непривілейовані LXC-контейнери 1600x900 unprivileged_lxc_containers.png
Непривілейовані LXC-контейнери

Встановлення та налаштування непривілейованого контейнера lxc зі зміщенням uid/gid.

1
LANG=C SUITE=bookworm MIRROR=https://ftp.debian.org/debian/ lxc-create --name=unprivileged-lxc --template=debian


Додамо додаткові підгрупи subuids/subgids для користувача root.

1
2
3
4
5
usermod --add-subuids 200000-265535 root
usermod --add-subgids 200000-265535 root
# для видалення підгруп
# usermod --del-subuids 200000-265535 root
# usermod --del-subgids 200000-265535 root
Налаштування непривілейованого LXC...

Тримаємо заголовки cryptsetup окремо від блочного пристрою

5/Листопад/2022 cryptsetuplukssecuritydetached-header

Окреме зберігання заголовків cryptsetup дає деякі переваги, по-перше, без них, сам блочний пристрій - це набір ентропії, по якому не можна визначити тип розділу / шифрування / пристрою.
По-друге, це файл малого розміру, який просто бекапити не прибігаючи до dd.

Проста шпаргалка


Генеруємо пароль, записуємо.

1
cat /dev/urandom | tr -dc '[[:print:]]' | fold -w 256 | sed 's/ //g' | fold -w128 | head -n 1
Тримаємо заголовки cryptsetup...

Налаштування webssh з обмеженням мережевих підключень

26/Вересень/2020 nginxwebsshxterm-js

Перед тим, як почати

Наведений варіант налаштування хоч і має деякий умовний ступінь захисту від сторонніх, проте він не передбачає публічного використання, включаючи звичайних користувачів, він розглядається як запасний канал управління для домашнього сервера і тільки для нього у випадку, якщо штатні та надійні канали немає можливості використовувати, наприклад, якщо доступний лише браузер у телефоні.
Хоча, для телефону є інші варіанти, той же Termux, і телефон не може повною мірою бути довіреним пристроєм, проте приклад є приклад.

Незважаючи на те, що сам wssh-клієнт може використовувати one-time-password, основним захистом повинен бути nginx з auth_basic та зв’язкою логін-пароль для location /webssh/ які я раджу генерувати нові після використання старих. Так як вони можуть бути використані для авторизації з обладнання, до якого немає повної довіри.
Так, звісно ж, робити у жодному разі не треба.
Але якщо дуже хочеться щось включити/вимкнути/перезапустити, то можна.

Налаштування webssh з...
Сторінка 2 з 3