sadium/content/posts/eturnal_nextcloud_talk.md
Link 6ab64141a3
All checks were successful
/ site (push) Successful in 1s
Тест
2024-12-23 22:54:22 +03:00

134 lines
No EOL
5.8 KiB
Markdown
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.

---
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, но это уже сами разберётесь как сделать.