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

5.8 KiB
Raw Blame History

title date author tags description cover
[Мяу] Настройка TLS (turns:) в Eturnal для Nextcloud Talk 2024-12-22 Линк
TURN
nextcloud
talk
spreed
Мануал для систем с пакетным менеджером apt

*Мануал подразумевает, что у вас уже есть сервер с apt-based системой с установленным и настроенным Nextcloud


Поскольку у меня сервер на Debian 13, соответственно мануал будет для систем с apt. Чтобы установить пакет eturnal, необходимо прописать следующие команды:

sudo apt install extrepo
sudo extrepo enable eturnal
sudo apt update
sudo apt install eturnal

(Взято с Github-репозитория eturnal)


После установки необходимо редактировать файл конфигурации
(Вместо micro подставьте ваш любимый терминальный текстовый редактор)

sudo micro /etc/eturnal.yml

Сам файл конфигурации:

# 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: "ваш-секрет" замените значение ваш-секрет на вывод с команды

openssl rand -hex 32

и сохраните это значение, ибо потом нам оно понадобится.

2. На месте relay_ipv4_addr: "ваш_белый_(или_статичный)_IP" вставите свой IP
3. На месте tls_crt_file: ваш_путь_до_fullchain.pem и tls_key_file: ваш_путь_до_privkey.pem вставьте пути для соответствующих сертификатов

Также необходимо ввести следующую команду

sudo setfacl -R -m u:eturnal:rX /etc/letsencrypt/{live,archive}

для того, чтобы пользователю eturnal были доступны сертификаты.


После проведённых модификаций конфигурационного файла, необходимо перезапустить сервис eturnal:

sudo systemctl restart eturnal

После чего в браузере идём в настройки сервера Nextcloud (/settings/admin/talk) -> Конференции -> пункт TURN-серверы
Нажимаем + Добавить сервер TURN

  • В первом выпадающем списке ставим Только turns:
  • В URL сервера TURN ваш домен, к которому был привязан белый (статичный) IP
  • В Секретный ключ TURN-сервера вставляем секрет, который я просил сохранить ранее в пункте 1 выше

После вводим пароль (если попросят), затем нажимаем на значок линии сердцебиения (слева от значка корзинки), и, если всё настроено правильно, получаем зелёную галочку и радуемся жизни.

Возможно, вам нужно будет открыть порты 3478 и 5349, но это уже сами разберётесь как сделать.