mirror of
https://codeberg.org/postscriptum/devzone.org.ua.git
synced 2026-02-18 22:02:41 +00:00
add blokuvannia-priamykh-zyednan-na-internet-okrim-iak-cherez-tunel-openvpn-z-ufw.md
This commit is contained in:
parent
8e6436804f
commit
3b1af32a37
1 changed files with 101 additions and 0 deletions
|
|
@ -0,0 +1,101 @@
|
||||||
|
# Блокування прямих з'єднань на Інтернет окрім як через тунель OpenVPN з ufw
|
||||||
|
|
||||||
|
Щось мене останнім часом починає харити цей ваш тренд цифровізації. Я завжди був мінімалістом і людиною, яка рахує сірники: не витрачає зайві обчислювальні ресурси (наприклад ігноруючи TLS де це можливо, окрім як форми авторизації, оплати, тощо) не використовує анонімайзери (бо сервіс без репутації та довіри - ніщо) а також, я довгий час принципово не користувався VPN, адже це зайвий виток довкола Землі, що так чи інакше забирає частину енергії в чиємусь дата-центрі.
|
||||||
|
|
||||||
|
В мене була навіть зародилась упевненість в тому, що свобода Інтернету - це не втеча від тіні а само-ідентифікація: оборона прав і свобод. Утім, озирнувшись довкола, я бачу що в цьому полі один: нікого мої цінності не цікавлять, натовп йде конвеєром на забій, не вилазячи зі своїх нашпигованих датчиками телефонів, які так чи інакше мають пряме відношення й до мене - адже цей чужий мені ідеологічно ареал не є чужим географічно.
|
||||||
|
|
||||||
|
Так як кожну подію і вчинок я тримаю в пам'яті, так само як її тримає на сервері журнал подій, так звана "паранойя" взяла верх, і я вирішив накинути на себе декілька шарів смішної для когось ковдри з тунелів.
|
||||||
|
|
||||||
|
## Навіщо блокувати прямі з'єднання
|
||||||
|
|
||||||
|
Це в принципі відома більш-менш досвідченим юзерам тема: підключаєшся до свого провайдера VPN і вважаєш, що все окей, допоки не помітиш, що з'єднання відвалилось і ти давно сидиш на прямому конекті через провайдера.
|
||||||
|
|
||||||
|
Причин тому може бути багато:
|
||||||
|
|
||||||
|
* не правильно налаштований системний сервіс та відсутність авто-старту на ребуті або якийсь збій в налаштуваннях таблиці маршрутизації через кастомні налаштування системи
|
||||||
|
* якийсь глюк в network-manager на обнові
|
||||||
|
* збій в локальний мережі та обрив з'єднання з тунелем
|
||||||
|
|
||||||
|
Іншими словами, може бути що завгодно. Спеціалізований софт від провайдерів VPN, як правило, дбає про запобігання витокам; про це й дбає системний сервіс клієнта OpenVPN, налаштовуючи пріоритет таблиці маршрутизації (щонайменше в Linux) але я нікому не вірю, навіть собі.
|
||||||
|
|
||||||
|
## Чому ufw
|
||||||
|
|
||||||
|
Цей фронтенд (iptables) мені подобається тим, що він дозволяє встановлювати перманентні правила, виключаючи помилку синтаксису з блокуванням самого себе десь на сервері з вимкненим локальним терміналом. А також тим, що за ці роки я просто до нього звик і розумію його поведінку. Ось, навіть був днями таки [поставив на Fedora](https://devzone.org.ua/post/perekhid-na-iptablesufw-z-firewalld-fedora-43).
|
||||||
|
|
||||||
|
Звісно, делегувати фільтрацію трафіку на останній рубіж фаєрволу - таке собі, але в мене тут немає мети сильно заморочуватись, хочу лише зменшити об'єм витікаючих з під мене слідів у це болото. Кому цікава тема більш "глибокої" само-ізоляції, рекомендую до читання матеріал:
|
||||||
|
|
||||||
|
[Ізоляція Linux від прямих Інтернет з'єднань на базі QEMU / Virtual Machine Manager з VSOCK](https://devzone.org.ua/post/izoliatsiia-linux-vid-priamykh-internet-zyednan-na-bazi-qemu-virtual-machine-manager-i-vsock)
|
||||||
|
|
||||||
|
## До справи
|
||||||
|
|
||||||
|
Не так багато роботи, як передісторії :)
|
||||||
|
|
||||||
|
Встановлюємо ufw зі стандартним бекендом iptables (в залежностях) якщо якимось дивом ще сидите без фаєрволу:
|
||||||
|
|
||||||
|
``` 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 глянемо, чи сервіс дійсно працює (active) і стартує з системою (enabled):
|
||||||
|
|
||||||
|
``` 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
|
||||||
|
```
|
||||||
|
|
||||||
|
По аналогії додаємо стільки серверів, скільки потрібно і не забуваємо перевірити статус:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
ufw status
|
||||||
|
```
|
||||||
|
|
||||||
|
### Пам'ятка
|
||||||
|
|
||||||
|
Якщо у вашій системі - декілька користувачів, потрібно про них подбати окремо, або попередити, що без VPN (або іншого інтерфейсу tun0) - інтернету не буде.
|
||||||
|
|
||||||
|
## Дивіться також
|
||||||
|
|
||||||
|
* [Обмеження вихідних з'єднань на Інтернет з ufw](https://devzone.org.ua/post/obmezennia-vykhidnykh-zyednan-na-internet-z-ufw)
|
||||||
|
* [Безпечний перегляд сайтів з PAC на прикладі Yggdrasil з Yggstack](https://devzone.org.ua/post/bezpechnyy-perehliad-saytiv-yggdrasil-z-yggstack)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue