From 7967d2e270de63a62b6da8818974d2b103f025b3 Mon Sep 17 00:00:00 2001 From: Link Date: Sun, 22 Dec 2024 13:12:59 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=82=D0=B0=D1=82=D1=8C=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=BE=20Eturnal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/posts/eturnal.md | 134 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 content/posts/eturnal.md diff --git a/content/posts/eturnal.md b/content/posts/eturnal.md new file mode 100644 index 0000000..f76f999 --- /dev/null +++ b/content/posts/eturnal.md @@ -0,0 +1,134 @@ +--- +title: "Настройка TLS (turns:) в Eturnal для Nextcloud Talk (Spreed)" +date: "2024-12-22" +author: "Линк" +tags: ["TURN", "nextcloud", "talk", "spreed"] +description: "Мануал для систем с пакетным менеджером **`apt`**" +cover: "" +--- + +**Мануал подразумевает, что у вас уже есть сервер с `apt-based` системой с установленным и настроенным Nextcloud* + +--- + +Поскольку у меня сервер на `Debian 13`, соответственно мануал будет для систем с **`apt`**. +Чтобы установить пакет `eturnal`, необходимо прописать следующие команды: + +```bash +sudo apt install extrepo +sudo extrepo enable eturnal +sudo apt update +sudo apt install eturnal +``` +(Взято с [Github](https://github.com/processone/eturnal)-репозитория eturnal) + +--- + +После установки необходимо редактировать файл конфигурации \ +(Вместо **`micro`** подставьте ваш любимый терминальный текстовый редактор) + +```bash +sudo micro /etc/eturnal.yml +``` + +Сам файл конфигурации: + +```bash +# eturnal STUN/TURN server configuration file. +# +# This file is written in YAML. The YAML format is indentation-sensitive, please +# MAKE SURE YOU INDENT CORRECTLY. +# +# See: https://eturnal.net/doc/#Global_Configuration + +eturnal: + + ## Shared secret for deriving temporary TURN credentials (default: $RANDOM): + secret: "ваш-секрет" + + ## The server's public IPv4 address (default: autodetected): + relay_ipv4_addr: "ваш_белый_(или_статичный)_IP" + ## The server's public IPv6 address (optional): + #relay_ipv6_addr: "2001:db8::4" + + listen: + - + ip: "::" + port: 3478 + # port: 80 + transport: udp + - + ip: "::" + port: 3478 + # port: 80 + transport: tcp + - + ip: "::" + port: 5349 + # port: 443 + transport: tls + + ## TLS certificate/key files (must be readable by 'eturnal' user!): + tls_crt_file: ваш_путь_до_fullchain.pem + tls_key_file: ваш_путь_до_privkey.pem + + ## UDP relay port range (usually, several ports per A/V call are required): + relay_min_port: 49152 # This is the default. + relay_max_port: 65535 # This is the default. + + ## Reject TURN relaying to the following addresses/networks: + blacklist_peers: + - recommended # Expands to various addresses/networks recommended + # to be blocked. This is the default. + + ## If 'true', close established calls on expiry of temporary TURN credentials: + strict_expiry: false # This is the default. + + ## Logging configuration: + log_level: info # critical | error | warning | notice | info | debug + log_rotate_size: 10485760 # 10 MiB (default: unlimited, i.e., no rotation). + log_rotate_count: 10 # Keep 10 rotated log files. + #log_dir: stdout # Enable for logging to the terminal/journal. + + ## See: https://eturnal.net/doc/#Module_Configuration + modules: + mod_log_stun: {} # Log STUN queries (in addition to TURN sessions). + #mod_stats_influx: {} # Log STUN/TURN events into InfluxDB. + #mod_stats_prometheus: # Expose STUN/TURN and VM metrics to Prometheus. + # ip: any # This is the default: Listen on all interfaces. + # port: 8081 # This is the default. + # tls: false # This is the default. + # vm_metrics: true # This is the default. +``` + +`1.` На месте `secret: "ваш-секрет"` замените значение **`ваш-секрет`** на вывод с команды +```bash +openssl rand -hex 32 +``` +и сохраните это значение, ибо потом нам оно понадобится. + +`2.` На месте `relay_ipv4_addr: "ваш_белый_(или_статичный)_IP"` вставите свой IP \ +`3.` На месте `tls_crt_file: ваш_путь_до_fullchain.pem` и `tls_key_file: ваш_путь_до_privkey.pem` вставьте пути для соответствующих сертификатов + +Также необходимо ввести следующую команду +```bash +sudo setfacl -R -m u:eturnal:rX /etc/letsencrypt/{live,archive} +``` +для того, чтобы пользователю `eturnal` были доступны сертификаты. + +--- + +После проведённых модификаций конфигурационного файла, необходимо перезапустить сервис `eturnal`: +```bash +sudo systemctl restart eturnal +``` + +После чего в браузере идём в `настройки сервера Nextcloud` (/settings/admin/talk) -> `Конференции` -> пункт `TURN-серверы` \ +Нажимаем `+ Добавить сервер TURN` +- В первом выпадающем списке ставим `Только turns:` +- В `URL сервера TURN` ваш домен, к которому был привязан белый (статичный) IP +- В `Секретный ключ TURN-сервера` вставляем секрет, который я просил сохранить ранее в пункте 1 выше + +После вводим пароль (если попросят), затем нажимаем на значок линии сердцебиения (слева от значка корзинки), и, если всё настроено правильно, получаем зелёную галочку и радуемся жизни. + +Возможно, вам нужно будет открыть порты 3478 и 5349, но это уже сами разберётесь как сделать. \ No newline at end of file