This commit is contained in:
parent
2e56811864
commit
7967d2e270
1 changed files with 134 additions and 0 deletions
134
content/posts/eturnal.md
Normal file
134
content/posts/eturnal.md
Normal file
|
@ -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, но это уже сами разберётесь как сделать.
|
Loading…
Reference in a new issue