gemlog/public/uk/enhancing-privacy-in-linux-apps.gmi
2025-11-26 06:20:23 +02:00

191 lines
No EOL
14 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Підвищення рівня приватності в застосунках Linux
Цей список щойно створив для себе, на випадок організації чистої системи, свого роду нагадування / чек-лист по якому пройтись і не забути вимкнути дірки в плані мережних витоків. Це не анти-деанон, але частково може бути корисним у даному векторі, поряд з адблоками та іншими костилями. Для більш суворої фільтрації трафіку, дивіться нотатки:
=> filter-outgoing-connections-with-ufw.gmi Обмеження вихідних з'єднань на Інтернет з ufw
=> linux-isolation-from-direct-internet-connections-based-on-qemu-virtual-machine-manager-with-vsock.gmi Ізоляція Linux від прямих Інтернет з'єднань на базі QEMU / Virtual Machine Manager з VSOCK
## Rhythmbox
Через плагін "Cover art search" хтось знає що ви слухаєте локально - вимикаємо:
=> enhancing-privacy-in-linux-apps/rhythmbox-сover-art-search-plugin.png Скріншот
## Firefox
HTTP/HTML - вони такі. Для різних завдань - у мене різні браузери, в цілому я користуюсь PAC:
=> safe-yggdrasil-websites-browsing-with-yggstack.gmi Безпечний перегляд сайтів Yggdrasil з Yggstack
* чи варто нагадувати про реферальні заголовки, розмір вікна, користувацький агент і "відбитки"? =)
## DNS
Для резольву доменів, я користуюсь власним проксі-сервером.
### Alfis
Alfis DNS - це альтернативна система реєстрації доменів в блокчейн, що також включає в себе вбудований проксі-сервер для резольву локальних та глобальних доменів Інтернет. Таким чином, через нього відбувається визначення IP для усіх потрібних мені мереж. По цій темі, я написав декілька матеріалів:
=> alfis-dns-domain-registration-in-blockchain.gmi Alfis DNS - реєстрація домену в блокчейн
=> alternative-alfis-dns-branch-with-mycelium-network-support.gmi Альтернативна гілка Alfis DNS з підтримкою Mycelium
=> my-alfis-dns-preset-on-yggdrasil-mycelium-router.gmi Мій пресет Alfis DNS на роутері Yggdrasil / Mycelium
В контексті теми цього допису, звертаю увагу на стандартний файл конфігурації, в якому я вимикаю всі не явні DNS і додаю статичні внутрішньо-мережні IP Yggdrasil в парі з опцією yggdrasil_only (або yggdrasil_mode для гілки Yggdrasil/Mycelium):
```
[net]
peers = [
# вимикаю не явні, міксовані DNS (постачаються в стандартній конфігурації)
# "peer-v4.alfis.name:4244",
# "peer-v6.alfis.name:4244",
# "peer-ygg.alfis.name:4244",
# додаю визначені мною вручну адреси пірів
# * до списку треба додати актуальні вузли на момент конфігурації резольвера
"[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:4244",
"[200:f8e5:2383:c1f8:7c73:8e74:2a5e:197e]:4244",
"[200:f8e5:2383:c1f8:7c73:8e74:2a5e:197e]:4244",
"[200:31b6:1c3a:3a1c:d322:3ed7:e109:4b3]:4244",
"[200:1106::a702:9841:e607:9b3]:4244",
"[208:84:68:55:2f91:8484:8d60:2fca]:4244",
"[208:25:40:bd:6ea9:89fc:ac75:87be]:4244",
"[208:62:45:62:59b8:f1a2:62ca:f87c]:4244",
"[225:ca89:40a8:611e:78b8:ab81:999a:d4d7]:4244",
"[301:84f7:4bc0:2f3a::53]:4244"
]
# стандартна гілка (https://github.com/Revertron/Alfis)
yggdrasil_only = true
# якщо гілка mycelium-network-mode
# https://github.com/YGGverse/Alfis/tree/mycelium-network-mode
#
# yggdrasil_mode = true
# mycelium_mode = true
```
* якщо хоча б один пір зі списку буде онлайн, цього достатньо для ініціації
* також звертаємо увагу на net.forwarders, net.bootstraps і net.public, net.listen
## BitTorrent
### qBittorrent
Зненацька помітив, що на бінді IPv6 цілком можливі конекти через Веб-сокет IPv4:
=> unexpected-connection-leaks-in-qbittorrent.gmi Потенційні витоки з'єднань на Інтернет в qBittorrent
### rqbit
Мій сабж описаний в рамках тікету #469:
=> https://github.com/ikatson/rqbit/issues/469 [librqbit] unexpected peers connection #469
* проблема в тому, що клієнт інтерактує з пірами через PEX, навіть якщо DHT вимкнено
Оскільки ледачий, цю проблему поки що "вирішив" засобами "blocklist".
## PDF
Формат PDF є цілком та повністю дірявим:
* мета-інформація про рушій та браузер, в якому було згенеровано файл
* можливість вбудованого віддаленого вмісту (наприклад, зображення)
* JavaScript, тощо
Конкретні налаштування з фільтрації залежатимуть від бекенду операційної системи та клієнта.
Деякі тематичні матеріали на цю тему:
=> https://www.reddit.com/r/PrivacyGuides/comments/tk14jn/opening_pdfs_securely/ Opening PDFs securely
=> https://superuser.com/questions/893092/can-pdfs-contain-resources-that-are-loaded-from-the-internet Can PDFs contain resources that are loaded from the internet?
=> https://wiki.scribus.net/canvas/How_to_enhance_your_PDF_forms_with_JavaScript How to enhance your PDF forms with JavaScript
=> https://www.ghacks.net/2021/05/05/how-to-disable-javascript-in-pdf-documents-in-firefox/ How to disable JavaScript in PDF documents in Firefox
## Xash3D / FWGS
### Half-Life
Аудит рушія та самої гри на предмет відбитків та витоків я не проводив, але в контексті приватної гри по локалці Yggdrasil, щонайменше варто звернути увагу на опцію лаунчера "Configuration" > "Multiplayer" > "Customize" > "Adv options" > "Allow download":
=> enhancing-privacy-in-linux-apps/xash3d-fwgs-fast-download-option.png Скріншот (потрібно зняти хрестик)
* це (ймовірно) дозволить запобігти прямим з'єднанням при завантаженні кастомних карт і скінів
Окремо, я вимикаю мікрофон, не знаю чи він дійсно вимикається, але так:
``` valve/game.cfg
voice_enable 0
```
Нагадаю, що для цього рушія було створено окремі гілки для оверлейного і гібридного режимів. Вони включають адаптації для локальної гри (зокрема локальні майстер-сервери) а звідти - підвищену приватність:
=> https://github.com/YGGverse/xash3d-fwgs/branches
* утім наразі, вони майже не розвиваються а їх апстрім - відстає від офіційних релізів (зараз не до ігор)
Детальніше про рушій Xash3D / FWGS в контексті Half-Life, також можна почитати тут:
=> half-life-on-linux-using-xash3d-fwgs-engine.gmi Half-Life в Linux на базі рушія Xash3D / FWGS
## FreeTube / Invidious
В мережі Yggdrasil періодично з'являються експериментальні інстанси Invidious. Одного разу, мені стало цікаво перейти в режим Yggdrasil-only. Обравши відповідний проксі я помітив, що через мої налаштування фільтрації трафіку, половина функцій перестає працювати. Власне, я не розбирався як саме працює цей "приватно-орієнтований клієнт", але на практиці виходить так, що адміністратор Invidious просто налаштовує веб-проксі, забуваючи про інші складові API. Для користувача FreeTube (який обрав проксі та не заблокував трафік на інші вузли) все виглядатиме заплановано, але на практиці - трафік йтиме кудою завгодно.
Сам я все ще користуюся цим клієнтом, але для інших потреб: формування приватних підписок без підмішування туди рекламних трендів Google. Просто майте на увазі, що цей застосунок в його поточній реалізації більше підходить для обходу блокувань, а не деперсоналізації і тим більше анонімізації користувача.
Стосовно додатку FreeTube, раніше я писав про нього невеличкий огляд:
=> freetube-the-private-youtube-client.gmi FreeTube - приватний перегляд YouTube
## VSCode
Тут, мабуть, немає сенсу зупинятись, адже "електронний" VSCode - нашпигований телеметрією та різними API синхронізації додатків. Утім, на згадку, додам одне виключення: для комерційних проєктів, я користуюсь додатком обліку часу Wakatime:
=> https://wakatime.com
=> https://open-vsx.org/extension/WakaTime/vscode-wakatime
По суті, цей (доволі зручний) додаток надсилає докладну статистику по файлам, операційній системі та всьому іншому в рамках проєкту - щоб окрім загального звіту по часу, можна було проаналізувати свою активність по мовам програмування та всьому іншому. Якщо працюємо з різними "приватними" програмами і не хочемо, щоб про це знав увесь світ (навіть якщо вимкнули галку поширення з усіма) - вимикаємо додаток і для роботи пускаємо окремий контейнер VSCode / VSCodium.
## IRC
### Halloy
Стандартно, цей клієнт дозволяє прев'ю віддаленого вмісту (ака мікро-розмітка) - у приватних мережах, це потенційний де-анон, вимикаємо:
``` config.toml
[preview]
enabled = false
```
Також вимикаю функцію передачі файлів, оскільки та - може використовувати пасивний режим:
``` config.toml
[file_transfer]
enabled = false
```
* Я особисто не перевіряв, чи вбудована реалізація Halloy "обгортає" згадані вище сокети, якщо так, то подібну функціональність можна не вимикати.
### ZNC
Нещодавно поставив собі баунсер:
=> znc-irc-bouncer-setup.gmi Встановлення та налаштування IRC-баунсера ZNC в Linux
У цьому гайді, згадується релевантний пункт з вимикання модуля "simple_away", що може використовуватись для типу атак, що базуються на таймінг-трекінгу:
=> znc-irc-bouncer-setup/simple-away-module.png Модуль "simple_away" в ZNC (скріншот)
## Monero
Якось недавно запустив у якості тестів Monero і був приємно здивований функціональністю GUI гаманця. Після того як біржа з моїми донатами накрилась, я перекочував на локальний гаманець, обравши цю валюту в якості основної. За одно, почав розбирати гаманець на технічні деталі, в своєму репертуарі.
Здивувало, що хоч ця валюта позиціонується як приватна, з приватного в неї - лише модель транзакцій. Конекти при цьому йдуть на Інтернет DNS (сіди). Почав копати рішення I2P, але рішень тому немає, все лише тільки в стадії розвитку, щонайменше саме для цікавого мені формату GUI:
=> https://bounties.monero.social/posts/32/140-196m-i2p-baked-into-the-monero-gui 140.196ɱ | i2p baked into the monero GUI
=> https://github.com/everoddandeven/monero-gui/tree/feature/anonymity-networks Гілка на GitHub
## Загальні рекомендації
Хоч це більше стосується сервер-сайду, на десктопі також варто звернути увагу і завчасно розставити права 0600 на "чутливі" файли профілю окремих застосунків типу крипто-гаманців, роутерів та інших програм, робота яких базується на приватних ключах.
## Посилання
=> gemini://bbs.geminispace.org/s/privacy/34128 Залишити коментар на BBS