Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Стандартная настройка

Существует возможность запустить eltex-radius в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env, eltex-radius.env и docker-compose.yml.

1) Выключить сервис eltex-radius, если он включен с помощью команды service eltex-radius stop. В случае, если сервис был ранее установлен, необходимо отключить его запуск при перезагрузке сервера командой systemctl disable eltex-radius.service

2) В EMS-Администрирование-Настройка сервера-системные модули убрать галочку с пункта перезапускать Radius (потребуется настроить динамическое изучение клиентов eltex-radius).

3) Предварительно установить docker, docker-compose если он еще не установлен.

4) Создать отдельную папку, в которой будут храниться все конфигурационные файлы докер-контейнера (здесь и далее - eltex-radius):

Создание папки
eltex@eltex:~$ mkdir -p eltex-radius/certs/
eltex@eltex:~$ cd eltex-radius

5) Создать файлы docker-compose.yml, .env и eltex-radius.env со следующим содержанием:

docker-compose.yml
version: '3'
 
services:
  eltex-radius:
    container_name: eltex-radius
    network_mode: host
    image: hub.eltex-co.ru/softwlc/eltex-radius:<SoftWLC version>-<tag>
    env_file: eltex-radius.env
    volumes:
      # Eltex OUI list
      - /usr/share/oui-base/oui-freeradius.txt:/usr/share/oui-base/oui-freeradius.txt:ro
      # Eltex-Radius-NBI certificates
      - ./eltex-radius/certs/ca/wireless-ca.crt:/etc/eltex-radius/certs/ca/default.pem:ro
      - ./eltex-radius/certs/server.crt:/etc/eltex-radius/certs/server.crt:ro
      - ./eltex-radius/certs/server.key:/etc/eltex-radius/certs/server.key:ro
Вместо <SoftWLC version>-<tag> необходимо указать актуальную версию SoftWLC и версию пакета, которую можно посмотреть по ссылке.
eltex-radius.env
# ! Настройки приложения ! #
# Ports on which server will listen
RADIUS_AUTH_PORT=1812
RADIUS_ACCT_PORT=1813
RADIUS_INNER_TUNNEL_PORT=18121
  
# MySQL database
RADIUS_DB_HOST=localhost
RADIUS_DB_PORT=3306
RADIUS_DB_LOGIN=radius
RADIUS_DB_PASSWORD=radpass
RADIUS_DB_NAME=radius
  
# PCRF
# If you setting RADIUS_PCRF_ENABLED=0, then you also should enable accounting port listening in "default" server
RADIUS_PCRF_HOST=127.0.0.1
RADIUS_PCRF_PORT=7080
RADIUS_PCRF_ENABLED=1
  
# EAP
RADIUS_CA_CERT_NAME=default.pem
RADIUS_TLS_KEY_PASSWORD=eltex
  
# Proxying
RADIUS_PROXY_AUTH=0
RADIUS_PROXY_DOMAIN_REGEX=^(.+\.)?enterprise\.root$
RADIUS_PROXY_HOST=127.0.0.1
RADIUS_PROXY_PORT=18121
RADIUS_PROXY_SECRET=eltex
  
# Ubiquity vendor detection
RADIUS_UBI_VENDOR_REGEX=Apple|Ubiquiti
RADIUS_VENDOR_GROUP_ENABLED=1
  
# Settings of runtime NAS discovery
RADIUS_DYNAMIC_CLIENTS=false
RADIUS_DYNAMIC_CLIENT_SUBNET=192.168.0.0/16
RADIUS_DYNAMIC_CLIENT_LIFETIME=3600
RADIUS_DYNAMIC_CLIENT_RATE_LIMIT=false
  
# Proxy SSID
RADIUS_PROXY_SSID_ENABLED=0
RADIUS_PROXY_SSID_VALUE=EAP_TLS
RADIUS_PROXY_SSID_HOST=127.0.0.1
RADIUS_PROXY_SSID_PORT=18122
RADIUS_PROXY_SSID_SECRET=eltex

# Status-Server settings
RADIUS_STATUS_HOST=127.0.0.1
RADIUS_STATUS_PORT=18123
RADIUS_STATUS_CLIENT_HOST=127.0.0.1
RADIUS_STATUS_CLIENT_SECRET=eltex
 
#TIMEZONE
TZ=Asia/Novosibirsk

В файле eltex-radius.env необходимо переопределить следующие параметры:

  • RADIUS_DB_HOST - адрес хоста с сервисом mysql
  • RADIUS_DB_PORT - порт сервиса mysql
  • RADIUS_DB_LOGIN - логин сервиса mysql
  • RADIUS_DB_PASSWORD - пароль сервиса mysql
  • RADIUS_DB_NAME - название БД сервиса mysql
  • RADIUS_PCRF_HOST - адрес хоста с сервисом eltex-pcrf

Т.к. Eltex-EMS не выполняет рестарт eltex-radius запущенного в контейнера - необходимо обязательно включить динамическое изучение клиентов, в противном случае запросы ТД, добавленных в таблицу nas после последнего перезапуска радиуса будут отклоняться.

Включить динамическое изучение клиентов:

  • RADIUS_DYNAMIC_CLIENTS=true
  • RADIUS_DYNAMIC_CLIENT_SUBNET - указать подсеть (можно суммирующую), из которой будут выдаваться адреса клиентам (ТД, ESR), с которых они будут выполнять запросы к eltex-radius

Если не установлены пакет eltex-oui-list, установить его.

Перед запуском необходимо перейти на хост с установленным eltex-radius-nbi и убедиться, что серверный сертификат подписан надежным алгоритмом с помощью команды

openssl x509 -text -noout -in /var/lib/eltex-radius-nbi/certificates/server.crt

Необходимо рассмотреть параметр Signature Algorithm, и в случае, если этот параметр равен md5WithRSAEncryption, необходимо пересоздать серверный сертификат с помощью следующих команд:

$ sudo dpkg-reconfigure eltex-radius-nbi
$ openssl x509 -text -noout -in /var/lib/eltex-radius-nbi/certificates/server.crt
Убедиться Signature Algorithm: sha256WithRSAEncryption
$ sudo /var/lib/eltex-radius-nbi/setup_er_eap.sh
$ sudo service eltex-radius restart

Необходимо скопировать CA certificate, server certificate, server private key с хоста, где установлен пакет eltex-radius-nbi в соответствующие директории для docker-контейнера (здесь - eltex-radius/certs/ca для ca-certificate (wireless-ca.crt), eltex-radius/certs для server.crt и server.key) можно с помощью скрипта update_certificates.sh

Пример вызова: SOFTWLC_HOST=<пользователь хоста с nbi>@<ip адрес хоста с nbi> bash ./update-certificates.sh

В случае однохостовой установки можно запустить скрипт без параметров: ./update-certificates.sh

update-certificates.sh
#!/bin/bash
 
set -e
 
if [ -z "$CERTS_DIR" ]; then
  CERTS_DIR=./eltex-radius/certs
fi
 
if [ -z "$ENV_FILE" ]; then
  ENV_FILE=./eltex-radius.env
fi
 
if [ -z "$SOFTWLC_HOST" ]; then
  SOFTWLC_HOST=$USER@$HOSTNAME
fi
 
mkdir -p $CERTS_DIR/ca
scp $SOFTWLC_HOST:/var/lib/eltex-radius-nbi/setup_er_eap.sh ./
 
sed -n '3,/SERVER_KEY_PASSWORD/p' setup_er_eap.sh > setup_er_eap.env
source ./setup_er_eap.env
 
echo "$CA_CERT" > $CERTS_DIR/ca/wireless-ca.crt
chmod 644 $CERTS_DIR/ca/wireless-ca.crt
 
echo "$SERVER_CERT" > $CERTS_DIR/server.crt
echo "$SERVER_KEY" > $CERTS_DIR/server.key
chmod 644 $CERTS_DIR/server.*
 
if [ -f $ENV_FILE ]; then
  sed -i -e "s/^\(RADIUS_TLS_KEY_PASSWORD\)=.*/\1=$SERVER_KEY_PASSWORD/" $ENV_FILE
fi
 
echo "CA certificate, server certificate and server private key were updated successfully."
echo "To override tls_key_password in your eltex-radius docker container use this environment variable: RADIUS_TLS_KEY_PASSWORD=$SERVER_KEY_PASSWORD"

Необходимо разрешить доступ до БД mysql с любого адреса, закомментировав параметр bind-address и перезапустить сервис mysql

sudo sed -i -e "s/\(bind-address.*=.*\)/#\1/" /etc/mysql/mysql.conf.d/mysqld.cnf
sudo systemctl restart mysql.service

Запуск контейнера выполняется командой docker-compose up -d

Необходимо добавить сервер, на котором запущен eltex-radius, в качестве nas-клиента в EMS. В поле Адрес  указываем  IP адресом хоста, на котором запущен EMS.

Добавить Radius в дерево EMS, указать IP адрес хоста, на котором запущен docker-compose.

Перезагрузить docker-compose командой docker-compose restart

Настройка сервиса для использования проксирования авторизации и аккаунтинга на сторонний Radius-сервер

1) Для настройки проксирования необходимо скопировать некоторые конфигурационные файлы с самого контейнера с помощью следующих команд:

Копирование файлов с контейнера на хост
mkdir -p ./eltex-radius/config
docker cp eltex_eltex-radius_1:/etc/eltex-radius/proxy.conf ./eltex-radius/config/proxy.conf
mkdir -p ./eltex-radius/config/servers
docker cp eltex_eltex-radius_1:/etc/eltex-radius/servers/default ./eltex-radius/config/servers/default
mkdir -p ./eltex-radius/config/policy.d
docker cp eltex_eltex-radius_1:/etc/eltex-radius/policy.d/proxy ./eltex-radius/config/policy.d/proxy

2) Привести настройки docker-compose.yml к следующиему виду, добавив несколько волюмов с конфигурационной информацией. В случае настроки проксирования авторизации+аккаунтинга необходимо раскомментировать порт 1813:

docker-compose.yml для проксирования
version: '3'

services:
  eltex-radius:
    container_name: eltex-radius
    network_mode: host
    image: hub.eltex-co.ru/softwlc/eltex-radius:<SoftWLC version>-<tag>
    env_file: eltex-radius.env
    volumes:
      # Eltex OUI list
      - /usr/share/oui-base/oui-freeradius.txt:/usr/share/oui-base/oui-freeradius.txt:ro
      # Eltex-Radius-NBI certificates
      - ./eltex-radius/certs/ca/wireless-ca.crt:/etc/eltex-radius/certs/ca/default.pem:ro
      - ./eltex-radius/certs/server.crt:/etc/eltex-radius/certs/server.crt:ro
      - ./eltex-radius/certs/server.key:/etc/eltex-radius/certs/server.key:ro
      # Eltex-radius configs
      - ./eltex-radius/config/proxy.conf:$/etc/eltex-radius/proxy.conf:ro
      - ./eltex-radius/config/servers/default:/etc/eltex-radius/servers/default:ro
      - ./eltex-radius/config/policy.d/proxy:/etc/eltex-radius/policy.d/proxy:ro

3) Остальная настройка проксирования выполняется согласно инструкции для deb-пакета.

3) Перезагрузить docker-compose командой docker-compose restart

Запуск eltex-radius в отладочном режиме

Для запуска eltex-radius в docker-compose в отладочном режиме необходимо в файле docker-compose.yml добавить блок command:

docker-compose.yml debug
version: '3'

services:
  eltex-radius:
    container_name: eltex-radius
    network_mode: host
    image: hub.eltex-co.ru/softwlc/eltex-radius:<SoftWLC version>-<tag>
    env_file: eltex-radius.env
    # ViewRADIUSD startup options here:
    # https://freeradius.org/radiusd/man/radiusd.html
    command: ["-X"] # DEBUG
    volumes:
      # Eltex OUI list
      - /usr/share/oui-base/oui-freeradius.txt:/usr/share/oui-base/oui-freeradius.txt:ro
      # Eltex-Radius-NBI certificates
      - ./eltex-radius/certs/ca/wireless-ca.crt:/etc/eltex-radius/certs/ca/default.pem:ro
      - ./eltex-radius/certs/server.crt:/etc/eltex-radius/certs/server.crt:ro
      - ./eltex-radius/certs/server.key:/etc/eltex-radius/certs/server.key:ro
      # Eltex-radius configs
      - ./eltex-radius/config/proxy.conf:/etc/eltex-radius/proxy.conf:ro
      - ./eltex-radius/config/servers/default:/etc/eltex-radius/servers/default:ro
      - ./eltex-radius/config/policy.d/proxy:/etc/eltex-radius/policy.d/proxy:ro

Запустить eltex-radius командой docker-compose up -d.

Также для отладки возможно использование утилиты eraddebug с помощью следующей команды:

docker-compose exec eltex-radius eraddebug

Подробную информацию можно узнать в v1.27_Снятие radius debug

Используемые переменные

ПеременнаяЗначение по умолчанию
RADIUS_AUTH_PORT1812
RADIUS_ACCT_PORT
1813
RADIUS_INNER_TUNNEL_PORT18121
RADIUS_DB_HOSTlocalhost
RADIUS_DB_PORT3306
RADIUS_DB_LOGINradius
RADIUS_DB_PASSWORD

radpass

RADIUS_DB_NAMEradius
RADIUS_PCRF_HOST127.0.0.1
RADIUS_PCRF_PORT7080
RADIUS_PCRF_ENABLED1
RADIUS_CA_CERT_NAMEdefault.pem
RADIUS_TLS_KEY_PASSWORDeltex
RADIUS_PROXY_AUTH0
RADIUS_PROXY_DOMAIN_REGEX^(.+\.)?enterprise\.root$
RADIUS_PROXY_HOST127.0.0.1
RADIUS_PROXY_PORT18121
RADIUS_PROXY_SECRETeltex
RADIUS_UBI_VENDOR_REGEXApple|Ubiquiti
RADIUS_VENDOR_GROUP_ENABLED1
RADIUS_DYNAMIC_CLIENTSfalse
RADIUS_DYNAMIC_CLIENT_SUBNET192.168.0.0/16
RADIUS_DYNAMIC_CLIENT_LIFETIME3600
RADIUS_DYNAMIC_CLIENT_RATE_LIMITfalse
RADIUS_PROXY_SSID_ENABLED0
RADIUS_PROXY_SSID_VALUEEAP_TLS
RADIUS_PROXY_SSID_HOST127.0.0.1
RADIUS_PROXY_SSID_PORT18122
RADIUS_PROXY_SSID_SECRETeltex
RADIUS_STATUS_HOST127.0.0.1
RADIUS_STATUS_PORT18123
RADIUS_STATUS_CLIENT_HOST127.0.0.1
RADIUS_STATUS_CLIENT_SECRETeltex
TZAsia/Novosibirsk
  • Нет меток