--- title: "Настройка TLS (turns:) в Eturnal для Nextcloud Talk" 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, но это уже сами разберётесь как сделать.