Підвищення рівня приватності в застосунках Linux

Цей список щойно створив для себе, на випадок організації чистої системи, свого роду нагадування / чек-лист по якому пройтись і не забути вимкнути дірки в плані мережних витоків. Це не анти-деанон, але частково може бути корисним у даному векторі, поряд з адблоками та іншими костилями. Для більш суворої фільтрації трафіку, дивіться нотатки:

Обмеження вихідних з'єднань на Інтернет з ufw
Ізоляція Linux від прямих Інтернет з'єднань на базі QEMU / Virtual Machine Manager з VSOCK

Rhythmbox

Через плагін "Cover art search" хтось знає що ви слухаєте локально - вимикаємо:

Скріншот

Firefox

HTTP/HTML - вони такі. Для різних завдань - у мене різні браузери, в цілому я користуюсь PAC:

Безпечний перегляд сайтів Yggdrasil з Yggstack

DNS

Для резольву доменів, я користуюсь власним проксі-сервером.

Alfis

Alfis DNS - це альтернативна система реєстрації доменів в блокчейн, що також включає в себе вбудований проксі-сервер для резольву локальних та глобальних доменів Інтернет. Таким чином, через нього відбувається визначення IP для усіх потрібних мені мереж. По цій темі, я написав декілька матеріалів:

Alfis DNS - реєстрація домену в блокчейн
Альтернативна гілка Alfis DNS з підтримкою Mycelium
Мій пресет 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

BitTorrent

qBittorrent

Зненацька помітив, що на бінді IPv6 цілком можливі конекти через Веб-сокет IPv4:

Потенційні витоки з'єднань на Інтернет в qBittorrent

rqbit

Мій сабж описаний в рамках тікету #469:

[librqbit] unexpected peers connection #469

Оскільки ледачий, цю проблему поки що "вирішив" засобами "blocklist".

PDF

Формат PDF є цілком та повністю дірявим:

Конкретні налаштування з фільтрації залежатимуть від бекенду операційної системи та клієнта.

Деякі тематичні матеріали на цю тему:

Opening PDFs securely
Can PDFs contain resources that are loaded from the internet?
How to enhance your PDF forms with JavaScript
How to disable JavaScript in PDF documents in Firefox

Xash3D / FWGS

Half-Life

Аудит рушія та самої гри на предмет відбитків та витоків я не проводив, але в контексті приватної гри по локалці Yggdrasil, щонайменше варто звернути увагу на опцію лаунчера "Configuration" > "Multiplayer" > "Customize" > "Adv options" > "Allow download":

Скріншот (потрібно зняти хрестик)

Окремо, я вимикаю мікрофон, не знаю чи він дійсно вимикається, але так:

voice_enable 0

Нагадаю, що для цього рушія було створено окремі гілки для оверлейного і гібридного режимів. Вони включають адаптації для локальної гри (зокрема локальні майстер-сервери) а звідти - підвищену приватність:

Детальніше про рушій Xash3D / FWGS в контексті Half-Life, також можна почитати тут:

Half-Life в Linux на базі рушія Xash3D / FWGS

FreeTube / Invidious

В мережі Yggdrasil періодично з'являються експериментальні інстанси Invidious. Одного разу, мені стало цікаво перейти в режим Yggdrasil-only. Обравши відповідний проксі я помітив, що через мої налаштування фільтрації трафіку, половина функцій перестає працювати. Власне, я не розбирався як саме працює цей "приватно-орієнтований клієнт", але на практиці виходить так, що адміністратор Invidious просто налаштовує веб-проксі, забуваючи про інші складові API. Для користувача FreeTube (який обрав проксі та не заблокував трафік на інші вузли) все виглядатиме заплановано, але на практиці - трафік йтиме кудою завгодно.

Сам я все ще користуюся цим клієнтом, але для інших потреб: формування приватних підписок без підмішування туди рекламних трендів Google. Просто майте на увазі, що цей застосунок в його поточній реалізації більше підходить для обходу блокувань, а не деперсоналізації і тим більше анонімізації користувача.

Стосовно додатку FreeTube, раніше я писав про нього невеличкий огляд:

FreeTube - приватний перегляд YouTube

VSCode

Тут, мабуть, немає сенсу зупинятись, адже "електронний" VSCode - нашпигований телеметрією та різними API синхронізації додатків. Утім, на згадку, додам одне виключення: для комерційних проєктів, я користуюсь додатком обліку часу Wakatime:

По суті, цей (доволі зручний) додаток надсилає докладну статистику по файлам, операційній системі та всьому іншому в рамках проєкту - щоб окрім загального звіту по часу, можна було проаналізувати свою активність по мовам програмування та всьому іншому. Якщо працюємо з різними "приватними" програмами і не хочемо, щоб про це знав увесь світ (навіть якщо вимкнули галку поширення з усіма) - вимикаємо додаток і для роботи пускаємо окремий контейнер VSCode / VSCodium.

IRC

Halloy

Стандартно, цей клієнт дозволяє прев'ю віддаленого вмісту (ака мікро-розмітка) - у приватних мережах, це потенційний де-анон, вимикаємо:

[preview]
enabled = false

Також вимикаю функцію передачі файлів, оскільки та - може використовувати пасивний режим:

[file_transfer]
enabled = false

ZNC

Нещодавно поставив собі баунсер:

Встановлення та налаштування IRC-баунсера ZNC в Linux

У цьому гайді, згадується релевантний пункт з вимикання модуля "simple_away", що може використовуватись для типу атак, що базуються на таймінг-трекінгу:

Модуль "simple_away" в ZNC (скріншот)

soju

Ще один, більш сучасний, баунсер:

Він застосовує зміну статусу "away" за замовченням. Вимикається це командою на прикладі окремої мережі:

/msg BouncerServ network update ID -auto-away false

Monero

Якось недавно запустив у якості тестів Monero і був приємно здивований функціональністю GUI гаманця. Після того як біржа з моїми донатами накрилась, я перекочував на локальний гаманець, обравши цю валюту в якості основної. За одно, почав розбирати гаманець на технічні деталі, в своєму репертуарі.

Здивувало, що хоч ця валюта позиціонується як приватна, з приватного в неї - лише модель транзакцій. Конекти при цьому йдуть на Інтернет DNS (сіди). Почав копати рішення I2P, але рішень тому немає, все лише тільки в стадії розвитку, щонайменше саме для цікавого мені формату GUI:

140.196ɱ | i2p baked into the monero GUI
Гілка на GitHub

Загальні рекомендації

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

Посилання

Залишити коментар на BBS