diff --git a/public/uk/block-direct-internet-connections-but-openvpn-tun-with-ufw.gmi b/public/uk/block-direct-internet-connections-but-openvpn-tun-with-ufw.gmi new file mode 100644 index 0000000..40b2020 --- /dev/null +++ b/public/uk/block-direct-internet-connections-but-openvpn-tun-with-ufw.gmi @@ -0,0 +1,102 @@ +# Блокування прямих з'єднань на Інтернет окрім як через тунель OpenVPN з ufw + +Щось мене останнім часом починає харити цей ваш тренд цифровізації. Я завжди був мінімалістом і людиною, яка рахує сірники: не витрачає зайві обчислювальні ресурси (наприклад ігноруючи TLS де це можливо, окрім як форми авторизації, оплати, тощо) не використовує анонімайзери (бо сервіс без репутації та довіри - ніщо) а також, я довгий час принципово не користувався VPN, адже це зайвий виток довкола Землі, що так чи інакше забирає частину енергії в чиємусь дата-центрі. + +В мене було навіть зародилась упевненість в тому, що свобода Інтернету - це не біг від тіні а само-ідентифікація: оборона прав і свобод. Утім, озирнувшись довкола, я бачу що в цьому полі один: нікого мої цінності не цікавлять, натовп йде конвеєром на забій, не вилазячи зі своїх нашпигованих датчиками телефонів, які так чи інакше мають пряме відношення й до мене - адже цей чужий мені ідеологічно ареал не є чужим географічно. + +Так як кожну подію і вчинок я тримаю в пам'яті, так само як її тримає на сервері журнал подій, так звана "паранойя" взяла верх, і я вирішив накинути на себе декілька шарів смішної для когось ковдри з тунелів. + +## Навіщо блокувати прямі з'єднання + +Це в принципі відома більш-менш досвідченим юзерам тема: підключаєшся до свого провайдера VPN і вважаєш, що все окей, допоки не помітиш, що з'єднання відвалилось і ти давно сидиш на прямому конекті через провайдера. + +Причин тому може бути багато: + +* не правильно налаштований системний сервіс та відсутність авто-старту на ребуті або якийсь збій в налаштуваннях таблиці маршрутизації через кастомні налаштування системи +* якийсь глюк в network-manager на обнові +* збій в локальний мережі та обрив з'єднання тунелю + +Іншими словами, може бути що завгодно. Спеціалізований софт від провайдерів VPN, як правило, дбає про запобігання витокам; про це й дбає системний сервіс клієнта OpenVPN, налаштовуючи пріоритет таблиці маршрутизації (щонайменше в Linux) але я нікому не вірю, навіть собі. + +## Чому ufw + +Цей фронтенд (iptables) мені подобається тим, що він дозволяє встановлювати перманентні правила, виключаючи помилку синтаксису. А також тим, що за ці роки я просто до нього звик і розумію його поведінку. Ось, навіть був днями таки поставив на Fedora: +=> downgrade-to-iptables-ufw-from-firewalld-on-fedora-43.gmi Перехід на iptables/ufw з firewalld (Fedora 43) + +Звісно, делегувати фільтрацію трафіку на останній рубіж фаєрволу - таке собі, але в мене тут немає мети сильно заморочуватись, хочу лише зменшити об'єм витікаючих з під мене слідів у цьому болоті. Кому цікава тема більш "глибокої" ізоляції, рекомендую до читання матеріал: +=> linux-isolation-from-direct-internet-connections-based-on-qemu-virtual-machine-manager-with-vsock.gmi Ізоляція Linux від прямих Інтернет з'єднань на базі QEMU / Virtual Machine Manager з VSOCK + +### До справи + +Не так багато роботи, як передісторії :) + +Встановлюємо, якщо якимось дивом ще сидите без фаєрволу: + +``` bash +apt install ufw +``` +* приклад спеціально для Debian бо для Fedora спочатку потрібно знести стандартний firewalld (за посиланням вище) + +Вимикаємо весь вихідний трафік, який стандартно дозволений: + +``` bash +ufw default deny outgoing +``` + +Переконуємось що все ок: + +``` bash +# ufw status verbose +Status: active +Logging: on (low) +Default: deny (incoming), deny (outgoing), disabled (routed) +``` +* тут я ще не впевнений, стосовно "disabled (routed)" - можливо це слабке місце, але поки так + +Ну, і на системах з systemd глянемо, чи сервіс дійсно працює: + +``` bash +systemctl status ufw +``` + +Тепер нам потрібно дозволити будь-який вихід на тунель: + +``` bash +ufw allow out on tun0 +``` + +Інтерфейс "tun0" може відрізнятись, якщо у вас динамічна конфігурація. Подивитись як він зветься та вказати свій, можна в файлі налаштувань OpenVPN (в залежності від софту) або при наявності такого з'єднання - переглянути активні: + +``` bash +ifconfig +``` + +У разі, якщо вже було встановлене з'єднання VPN, на цьому можна було б закінчити, адже відтепер з'єднання Інтернет - буде доступним тільки за наявності підключення OpenVPN (у цьому випадку через tun0) + +Але якщо ви спробуєте відключитись і підключитись до сервера VPN знову, фаєрвол не дасть того зробити. Отже, потрібно наостанок дозволити вихідні з'єднання саме на IP та порти "довірених" серверів. У разі, якщо користуєтесь Network Manager в GNOME - переходимо в налаштування мережі > з'єднання VPN > вкладку "Identity" і дивимось поле "Gateway". Оскільки я користуюсь ProtonVPN, список безкоштовних серверів UDP на прикладі Норвегії буде приблизно таким: + +``` +95.173.205.159:80, 95.173.205.159:5060, 95.173.205.159:1194, 95.173.205.159:51820, 95.173.205.159:4569 +``` + +Коротке правило ufw виглядатиме наступним чином: + +``` bash +ufw allow out to 95.173.205.159 port 5060,51820,80,4569,1194 proto udp comment 'ProtonVPN [NO]' +``` +* тут я лишаю опціональний комент, щоб не забути що воно таке, хоча 1194 є типовою підказкою + +По аналогії додаємо стільки серверів, скільки потрібно і не забуваємо перевірити статус: + +``` bash +ufw status +``` + +### Пам'ятка + +Якщо у вашій системі - декілька користувачів, потрібно про них подбати окремо, або попередити, що без VPN (або іншого інтерфейсу tun0 - інтернету не буде). + +## Дивіться також + +=> filter-outgoing-connections-with-ufw.gmi Обмеження вихідних з'єднань на Інтернет з ufw +=> safe-yggdrasil-websites-browsing-with-yggstack.gmi Безпечний перегляд сайтів з PAC на прикладі Yggdrasil з Yggstack \ No newline at end of file diff --git a/public/uk/filter-outgoing-connections-with-ufw.gmi b/public/uk/filter-outgoing-connections-with-ufw.gmi index 2b8f532..7690993 100644 --- a/public/uk/filter-outgoing-connections-with-ufw.gmi +++ b/public/uk/filter-outgoing-connections-with-ufw.gmi @@ -108,5 +108,6 @@ systemctl restart lxc-net.service ## Дивіться також +=> block-direct-internet-connections-but-openvpn-tun-with-ufw.gmi Блокування прямих з'єднань на Інтернет окрім як через тунель OpenVPN з ufw => linux-isolation-from-direct-internet-connections-based-on-qemu-virtual-machine-manager-with-vsock.gmi Ізоляція Linux від прямих Інтернет з'єднань на базі QEMU / Virtual Machine Manager з VSOCK => yggdrasil-is-network-with-distributed-routing.gmi Yggdrasil - мережа з децентралізованою маршрутизацією \ No newline at end of file diff --git a/public/uk/index.gmi b/public/uk/index.gmi index 7663b08..b88c2d6 100644 --- a/public/uk/index.gmi +++ b/public/uk/index.gmi @@ -16,6 +16,7 @@ ### Нотатки +=> block-direct-internet-connections-but-openvpn-tun-with-ufw.gmi 2026-01-21 Блокування прямих з'єднань на Інтернет окрім як через тунель OpenVPN з ufw => repair-voltage-stabilizer-sn-3000-garant-220v.gmi 2026-01-20 Ремонт стабілізатора напруги СН 3000 "Гарант 220V" => power-optimization-on-gnome.gmi 2026-01-19 Оптимізація енергоспоживання в середовищі GNOME => useful-mouse-wire-fixation-to-monitor.gmi 2026-01-19 Зручний спосіб фіксації дрота від миші (до монітору)