mirror of
https://codeberg.org/postscriptum/devzone.org.ua.git
synced 2026-02-18 22:02:41 +00:00
initial commit
This commit is contained in:
commit
d4994cde4c
61 changed files with 7044 additions and 0 deletions
90
post/obmezennia-vykhidnykh-zyednan-na-internet-z-ufw.md
Normal file
90
post/obmezennia-vykhidnykh-zyednan-na-internet-z-ufw.md
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
# Обмеження вихідних з'єднань на Інтернет з ufw
|
||||
|
||||
*`ufw` - це фронтенд утиліта командного рядка для спрощеного керування правилами `iptables`; зручна своєю простотою а також тим, що зберігає правила перманентно між системними сесіями.*
|
||||
|
||||
Як відомо, стандартна конфігурація правил `ufw` блокує виключно вхідний трафік:
|
||||
|
||||
``` bash
|
||||
# ufw status verbose
|
||||
Status: active
|
||||
...
|
||||
Default: deny (incoming), allow (outgoing), disabled (routed)
|
||||
...
|
||||
```
|
||||
|
||||
Тут, статус `allow (outgoing)` передбачає вихідні з'єднання, що може бути чутливим питанням у випадках, коли сервер має взаємодіяти виключно з мережами [Yggdrasil](https://devzone.org.ua/post/yggdrasil-mereza-z-detsentralizovanym-routynhom) / [Mycelium](https://devzone.org.ua/post/vstanovlennia-routera-merezi-mycelium-v-linux), але його софт реалізує інтерактивний API (наприклад ActivitiPub, BitTorrent / PEX, SMTP, деякі реалізації FTP, тощо) і таким чином, можливі зовнішні звернення в Інтернет через вхідні запити з локальних мереж.
|
||||
|
||||
Найпростішим рішенням є блокування усіх вихідних з'єднань поряд з `deny (incoming)` та використання явних правил по білому списку, зокрема для DNS, NTP, apt, git, тощо:
|
||||
|
||||
``` bash
|
||||
ufw default deny outgoing
|
||||
```
|
||||
|
||||
Після цього, дозволимо вихід на усі адреси Yggdrasil / Mycelium по відповідному діапазону:
|
||||
|
||||
``` bash
|
||||
ufw allow out to 0200::/7
|
||||
ufw allow out to 0400::/7
|
||||
```
|
||||
* можна явно задати порт, наприклад `... port 80 proto tcp`
|
||||
|
||||
Для підключення оверлейних мереж вище до публічних вузлів:
|
||||
|
||||
``` bash
|
||||
ufw allow out to xx.xx.xx.xx port xxxx 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, цей крок можна пропустити, адже вище ми вже дозволили усі вихідні з'єднання на ці мережі.
|
||||
|
||||
## NTP
|
||||
|
||||
Важливо дозволити синхронізацію годинника:
|
||||
|
||||
``` bash
|
||||
ufw allow out 123/udp
|
||||
```
|
||||
|
||||
## apt
|
||||
|
||||
Для системних оновлень, найпростіше підключити локальні дзеркала або проксі, для Yggdrasil це:
|
||||
|
||||
``` /etc/apt/apt.conf.d/proxy.conf
|
||||
#/etc/apt/apt.conf.d/proxy.conf
|
||||
Acquire::http::Proxy "http://[xxx:xxxx:xxxx:xxxx::xxxx]:xxxx";
|
||||
Acquire::https::Proxy "http://[xxx:xxxx:xxxx:xxxx::xxxx]:xxxx";
|
||||
```
|
||||
|
||||
Для команди `extrepo` на прикладі додавання репозиторію LibreWolf:
|
||||
|
||||
``` bash
|
||||
https_proxy=http://[xxx:xxxx:xxxx:xxxx::xxxx]:xxxx/ extrepo enable librewolf
|
||||
```
|
||||
* або/і `http_proxy`
|
||||
|
||||
## Git
|
||||
|
||||
``` bash
|
||||
git config --global http.proxy http://[xxx:xxxx:xxxx:xxxx::xxxx]:xxxx
|
||||
```
|
||||
* або/і `https.proxy`
|
||||
|
||||
Додаючи програмне забезпечення через сторонні проксі, важливо розуміти, що ви отримуєте через них й ключі. Відповідно, маєте усвідомлювати, що такий спосіб отримання системних оновлень може бути потенційно небезпечним і краще користуватись окремими джерелами або власним сервером (у даному випадку - локальним)
|
||||
|
||||
## Дивіться також
|
||||
|
||||
* [Ізоляція 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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue