mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-19 06:22:41 +00:00
259 lines
No EOL
19 KiB
Text
259 lines
No EOL
19 KiB
Text
# Підвищення рівня приватності в застосунках 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
|
||
|
||
# BitCoin
|
||
|
||
Тема стосується усіх похідних BitCoin, включно з соціалками на базі цього блокчейну.
|
||
|
||
Суть в тому, що подібні програми як правило працюють на двох стеках IPv4+IPv6. При ініціальному запуску та в процесі роботи, вони можуть періодично запитувати публічну адресу з різних серверів типу wtfismyip.com або внутрішньої мережі з інших пірів для створення ідентифікатора DHT. Тобто є певний алгоритм створення "основної" адреси за NAT, яку можна побачити наприклад в треї qBittorrent.
|
||
|
||
Тому якщо ви не пускаєте "гаманці" в ізольованій від мережного адаптера віртуалці (наприклад з VSOCK) і крутите поряд з IPv4 VPN якийсь інтерфейс типу IPv6 Yggdrasil, то може "засвітитись" зв'язок користувача з mesh, надіславши його IPv6 пірам у якості анонсу поряд з IPv4 за VPN.
|
||
|
||
Вирішується це різними аргументами фільтрів типу `-onlynet`, `-connect`, `-externalip` і так далі, в залежності від конкретного форку та його версії.
|
||
|
||
### 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 (скріншот)
|
||
|
||
### soju
|
||
|
||
Ще один, більш сучасний, баунсер:
|
||
|
||
=> https://soju.im
|
||
|
||
Він застосовує зміну статусу "away" за замовченням. Вимикається це командою на прикладі окремої мережі:
|
||
|
||
``` irc
|
||
/msg BouncerServ network update ID -auto-away false
|
||
```
|
||
* ID - назва або URL мережі
|
||
|
||
## XMPP
|
||
|
||
Протокол залежний від DNS, для Yggdrasil існують певні інтеграції, але я поки не розібрався для чого вони і чи впливають якимось чином на підвищення конфіденційності при користуванні XMPP в рамках цієї мережі:
|
||
|
||
=> https://github.com/norayr/barev Barev - Bonjour like Pidgin/libpurple plugin & protocol for Yggdrasil network
|
||
|
||
### Dino
|
||
|
||
Тут власне просто нагадаю, що додаток надає опції приховування індикації написання відповіді, різних статусів. Як він обробляє зовнішю графіку і чи підтримує проксі - поки не знаю.
|
||
|
||
## 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
|
||
|
||
## Оверлейні мережі
|
||
|
||
### Yggdrasil
|
||
|
||
Випадково наткнувся на слушне зауваження:
|
||
|
||
> клиент сети прослушивает все сетевые интерфейсы в поисках локальных пиров и всегда готов к ним подключиться. Чтобы часть трафика не шла через возможных соседей, необходимо в том же файле конфигурации полностью отключить прослушивание всех интерфейсов. Для этого секцию MulticastInterfaces необходимо оставить пустой. По умолчанию в ней прописано «.*»
|
||
|
||
Для цього в конфігі видаляємо:
|
||
|
||
``` bash
|
||
MulticastInterfaces: [
|
||
{
|
||
Regex: .*
|
||
Beacon: true
|
||
Listen: true
|
||
Password: ""
|
||
}
|
||
]
|
||
```
|
||
|
||
і лишаємо:
|
||
|
||
``` bash
|
||
MulticastInterfaces: []
|
||
```
|
||
* відповідність цього рецепту не перевіряв і вважаю, що подібні налаштування повинні вказуватись явно як false
|
||
|
||
=> http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:connect_through_tor#%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B0%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%D0%BD%D0%BE%D1%81%D1%82%D0%B8 Анонимное подключение к сети: Дополнительные настройки анонимности
|
||
=> http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:mpd
|
||
|
||
## Загальні рекомендації
|
||
|
||
Хоч це більше стосується сервер-сайду, на десктопі також варто звернути увагу і завчасно розставити права 0600 на "чутливі" файли профілю окремих застосунків типу крипто-гаманців, роутерів та інших програм, робота яких базується на приватних ключах.
|
||
|
||
## Посилання
|
||
|
||
=> gemini://bbs.geminispace.org/s/privacy/34128 Залишити коментар на BBS
|
||
|
||
### Дивіться також
|
||
|
||
=> mat2-meta-data-cleaner.gmi mat2: очищення мета-даних для різних форматів |