gemlog/public/uk/filter-outgoing-connections-with-ufw.gmi
2025-09-29 19:30:07 +03:00

58 lines
No EOL
3.3 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.

# Обмеження вихідних з'єднань на Інтернет з ufw
ufw - це фронтенд утиліта командного рядка для спрощеного керування правилами iptables; зручна своєю простотою а також тим, що зберігає правила перманентно між системними сесіями.
Як відомо, стандартна конфігурація правил ufw блокує виключно вхідний трафік:
``` bash
# ufw status verbose
Status: active
...
Default: deny (incoming), allow (outgoing), disabled (routed)
...
```
Тут, статус `allow (outgoing)` передбачає вихідні з'єднання, що може бути чутливим питанням у випадках, коли сервер має взаємодіяти виключно з мережами Yggdrasil / Mycelium, але його софт реалізує інтерактивний API (наприклад ActivitiPub, BitTorrent / PEX, SMTP, деякі реалізації FTP, тощо) і таким чином, можливі зовнішні звернення в Інтернет через вхідні запити з локальних мереж.
Найпростішим рішенням є блокування усіх вихідних з'єднань поряд з `deny (incoming)` та використання явних правил по білому списку, зокрема для DNS і apt:
``` bash
ufw default deny outgoing
```
Після цього, дозволимо вихід на усі адреси Yggdrasil / Mycelium по відповідному діапазону:
``` bash
ufw allow out to 0200::/7
ufw allow out to 0400::/7
```
* можна явно задати порт, наприклад `... port 80 proto tcp`
## DNS
Далі, дивимось адреси DNS для системного резольвера (наприклад в /etc/systemd/resolved.conf), та додаємо їх до списку; для Cloudflare - це буде 1.1.1.1:53:
``` bash
ufw allow out to 1.1.1.1 port 53 proto udp
```
або просто дозволяємо всі можливі:
``` bash
ufw allow out to any port 53 proto udp
```
Якщо використовується локальний DNS для Yggdrasil (https://yggdrasil-network.github.io/services.html#dns) або Mycelium, цей крок можна пропустити, адже вище ми вже дозволили усі вихідні з'єднання на ці мережі.
## apt
Для системних оновлень, найпростіше підключити локальні дзеркала або проксі, для Yggdrasil це:
``` /etc/apt/apt.conf.d/proxy.conf
Acquire::http::Proxy "http://[324:71e:281a:9ed3::fa11]:3128/";
```
## Дивіться також
=> 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 - мережа з децентралізованою маршрутизацією