Четверг, 2018-08-16, 15:11
Приветствую Вас Гость | RSS
Главная | Standalone FRN server | Регистрация | Вход
Меню сайта
Вход на сайт
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    UNIX/Linux FRN Gateway
    Deutsch
    English
    Italiano

    FreeRadioNetwork (FRN) Server
    для FreeBSD, Linux и Windows



    AlterFRN-сервер полностью совместим по протоколу с оригинальным FRN-сервером и может одновременно взаимодействовать с тремя FRN-System-Manager в нескольких режимах:
    - 1) никак не взаимодействует - работает полностью автономно;
    - 2) с уведомлением;
    - 3) легкая проверка;
    - 4) жесткая проверка.

    Каждая сеть(комната) может использовать по желанию владельца сервера свой собственный режим взаимодействия с FRN System Manager.

    В режимах 1 и 2 регистрация в собственно сети FRN на ее FRN-System-Manager совсем не обязательна.

    Также, AlterFRN-сервер при взаимодействии с FRN-System-Manager не передает на него IP-адреса подключающихся клиентов, как это делает оригинальный FRN-сервер.

    Таким образом может быть достигнута полная или частичная независимость от FRN-System-Manager, если это необходимо владельцу сервера в конкретной ситуации, например, для построения совершенно изолированной сети ретрансляторов.

    AlterFRN-cервер позволяет использовать как оригинальный FRN-клиент так и альтернативные клиенты, например, AlterFRN-клиент или GRNClient для Android или какие-нибудь другие.


    Текущая стабильная версия 4964 (2018-03-30), список изменений:
    FRNServerConsole.FreeBSD-amd64.4964r.tgz
    FRNServerConsole.FreeBSD-i386.4964r.tgz
    FRNServerConsole.Linux-amd64.4964r.tgz
    FRNServerConsole.Linux-armv6.4964r.tgz (RaspberryPi,OrangePi,...)
    FRNServerConsole.Linux-i386.4964r.tgz
    FRNServerConsole.Win32.4964r.zip


    Предыдущая стабильная версия 4935 (2018-03-16):
    FRNServerConsole.FreeBSD-amd64.4935r.tgz
    FRNServerConsole.FreeBSD-i386.4935r.tgz
    FRNServerConsole.Linux-amd64.4935r.tgz
    FRNServerConsole.Linux-armv6.4935r.tgz (RaspberryPi,OrangePi,...)
    FRNServerConsole.Linux-i386.4935r.tgz
    FRNServerConsole.Win32.4935r.zip



    Windows-версия AlterFRN-сервера отлично работает как служба Windows c помощью Non-Sucking Service Manager.

    Вопросы, предложения и замечания по AlterFRN-серверу можно и нужно писать только на форуме в теме Альтернативный сервер.

    Выражаю огромную благодарность Олегу SP483 за предоставленный код авторизации для FRN-клиента и FRN-сервера. Это был реально титанический труд.

    s.0.Параметры командной строки AlterFRN-сервера:
    s.0.1. daemon [configfilename] -- [только UNIX/Linux, ревизия 4300+] запустить сервер в фоновом режиме (демоном); при этом PID сохраняется в pid-файл, журнал событий пишется в log-файл; сигнал SIGHUP используется для переоткрытия файла журнала для совместного использования с системами вращения журналов типа logrotate или подобных;
    s.0.2. run [configfilename] -- [ревизия 4300+] запустить в синхронном режиме, журнал событий записывается в log-файл; под Windows может использоваться совместно с Non-Sucking Service Manager;
    s.0.3. debug [configfilename] -- [ревизия 4300+] запустить в синхронном режиме, журнал событий пишется в stdout; эквивалентен запуску без параметров командной строки; под Windows может использоваться совместно с Non-Sucking Service Manager;
    s.0.4. pidfilename [configfilename] -- [только UNIX/Linux, ревизия 4300+] вывести в stdout полное имя файла с сохраненным идентификатором запущенного ранее фонового процесса (демона) по параметрy п.s.3.1 PidFile из конфигурационного файла, конкретного или по умолчанию; для скриптов автоматизации обслуживания;
    s.0.5. logfilename [configfilename] -- [ревизия 4300+] вывести в stdout полное имя файла журнала по параметрам из конфигурационного файла; для скриптов автоматизации обслуживания;
    s.0.6. stop [configfilename] - [только UNIX/Linux, ревизия r4630+] - остановить ранее запущенный фоновый процесс (демон) AlterFRN-сервера; посылает фоновому процессу сигнал SIGTERM с использованием PID фонового процесса из pid-файла; см. также команду pidfilename и параметр п.s.3.1 PidFile конфигурационного файла, конкретного или по умолчанию;
    s.0.7. reopenlog [configfilename] - [только UNIX/Linux, ревизия r4913+] - переоткрыть файл журнала ранее запущенного фонового процесса (демона) AlterFRN-сервера; посылает фоновому процессу (демону) сервера сигнал SIGHUP с использованием идентификатора процесса из pid-файла; см. также команду pidfilename и параметр п.s.3.1 PidFile конфигурационного файла, конкретного или по умолчанию; может быть полезен при совместной работе с системами вращения журналов;
    s.0.8. deletepidfile [configfilename] - [только UNIX/Linux, ревизия r4913+] - позволяет принудительно удалить файл идентификатора процесса сервера, например, при старте системы удалить PID-файл, оставшийся при пропадании питания и т.п.; см. также команду pidfilename (s.0.4) и параметр PidFile (s.3.1) конфигурационного файла, конкретного или по умолчанию;
    s.0.9. setmanpassidx <index> <PasSwOrd> [configfilename] - [r5092+] - записывает в конфигурационный файл сервера новый пароль <PasSwOrd> для подключения сервера к FRN System Manager по индексу <index> секции менеджера, где 0 это [Manager], 1 - [Manager1], 2 - [Manager2] соответственно; для применения нового пароля необходим перезапуск сервера; смотри также параметр ManagerAuthPassword (s.2.5);
    s.0.10. setmanpassaddr <address> <PasSwOrd> [configfilename] - [r5092+] - записывает в конфигурационный файл сервера новый пароль <PasSwOrd> для подключения сервера к FRN System Manager по адресу <address> менеджера; для применения нового пароля необходим перезапуск сервера; смотри также параметры ManagerAddress (s.2.2) и ManagerAuthPassword (s.2.5);




    Описание конфигурационного файла server.ini:

    s.1.Секция Server:
    s.1.1. Параметр PresentServerAddress - адрес, который сервер будет передавать FRN-System-Manager как адрес сервера в неавтономных режимах; именно по этому адресу FRN-System-Manager будет проверять работоспособность сервера;
    s.1.2. Параметр PresentServerPort - номер порта, который сервер будет передавать FRN-System-Manager как номер порта сервера в неавтономных режимах; именно по этому номеру порта FRN-System-Manager будет проверять работоспособность сервера;
    s.1.3. Параметр ServerOwnerEMail - адрес е-почты владельца сервера;
    s.1.4. Параметр ServerCharsetName - имя кодировки для всего сервера, в которую будут перекодироваться национальные имена сетей(комнат) из списка в файле networks.cfg для последующей передачи списка сетей(комнат) для FRN-клиентов с поддержкой только локальных ANSI-кодировок; FRN-клиенты с поддержкой UNICODE будут всегда получать список сетей(комнат) в кодировке UTF-8; для каждой из сетей(комнат) по желанию может быть назначена своя собственная кодировка;
    s.1.5. Параметр BackupServerAddress - адрес резервного сервера для FRN-клиента;
    s.1.6. Параметр BackupServerPort - номер порта резервного сервера для FRN-клиента;
    s.1.7. Параметр ListenServerPorts - [ревизия 4210+] список номеров фактически прослушиваемых портов для входящих соединений от FRN-клиентов; может быть несколько через пробел; по умолчанию используется значение из серверного параметра PresentServerPort (s.1.2);
    s.1.8. Параметр DefaultNetworkName - [ревизия 4210+] имя сети(комнаты), в которую будут подключаться FRN-клиенты, пытающиеся подключиться в отсутствующую на сервере сеть(комнату);
    s.1.9. Параметр IPVersion - [ревизия 4210+] используемые для входящих соединений версии протокола IP: "4" - IPv4; "6" - IPv6; "46" - оба, используется по умолчанию;
    s.1.10. Параметр ManagerMode - [ревизия 4630+] режим взаимодействия с FRN-System-Manager для всего сервера целиком; до ревизии 4630 этот параметр находился в секции Manager; каждой сети(комнате) в файле networks.cfg может быть назначен свой собственный режим; допустимые значения:
    s.1.10.1. - значение Standalone или S - автономный режим, взаимодействие с FRN-System-Manager не производится; по умолчанию;
    s.1.10.2. - значение Notify или N - сервер делает попытку уведомить FRN-System-Manager о подключающемся FRN-клиенте, однако отрицательные ответы от FRN-System-Manager игнорируются, а клиент допускается в сеть(комнату) с учетом прав доступа к конкретной сети(комнате);
    s.1.10.3. - значение Light или L - в случае, если FRN-System-Manager недоступен, то сервер допускает подключающегося FRN-клиента с учетом прав доступа к конкретной сети(комнате), при восстановлении работоспособности FRN-System-Manager клент будет проверен и отключен при получении отрицательного ответа от FRN-System-Manager; если же FRN-System-Manager работоспособен, то подключающийся FRN-клиент допускается с учетом ответа от FRN-System-Manager и прав доступа к конкретной сети(комнате);
    s.1.10.4. - значение FRN или F - в случае, если FRN-System-Manager недоступен, то сервер не допускает подключающихся клиентов; если же FRN-System-Manager работоспособен, то подключающийся FRN-клиент допускается с учетом ответа от FRN-System-Manager и прав доступа к конкретной сети(комнате);
    s.1.10.5. Примечание: сервер не ведет список (кэш) корректных паролей клиентов; эта функция заменена режимом Light (s.1.10.3);
    s.1.11. Параметр MaxTotalConnections [ревизия 4630+] - общее максимальное число входящих соединений на весь сервер; по умолчанию - 1000;
    s.1.12. Параметр ClientHandshakeTimeout [ревизия 4630+] - время в секундах, за которое клиент должен авторизоваться после подключения к серверу; минимальное - 1 секунд; максимальное - 20 секунд; по умолчанию - 2 секунды;
    s.1.13. Параметр ClientActivityTimeout [ревизия 4630+] - время в секундах, через которое соединение с клиентом будет разорвано в случае, если клиент не отвечает на какие-либо команды протокола, например, из-за плохого сетевого соединения; минимальное - 3 секунды; максимальное - 30 секунд; по умолчанию - 8 секунд;
    s.1.14. Параметр MaxSpeechTime - [ревизия 4690+] - максимальная длительность одного включения (разговора) корреспондента в секундах для всего сервера; минимальное - 10 секунд; максимальное - 1800 секунд (30 минут); по умолчанию - 300 секунд (5 минут); для каждой комнаты можно установить свое собственное максимальное время разговора;
    s.1.15. Параметр SpeechPause - [ревизия 4690+] - принудительная пауза между включениями корреспондентров для всего сервера в миллисекундах; минимальная и по умолчанию - 0 мс; максимальная - 10000 мс (10 секунд); для каждой сети(комнаты) можно установить свою собственную принудительную паузу;
    s.1.16. Параметр ClientSessionMaxTime - [ревизия 5059+] - максимальная для всего сервера длительность клиентского подключения в секундах, по истечении которого клиент будет отключен от сервера и должен будет выполнить повторное подключение; по умолчанию 0 - нет ограничения длительности подключения; для каждой сети(комнаты) можно установить свое собственное ограничение длительности клиентского подключения, смотри также параметр сети(комнаты) ClientSessionMaxTime (s.4.15);
    s.1.17. Параметр ManagerInvalidPasswordScript - [ревизия 5115+, только UNIX/Linux ] - внешняя программа (скрипт) для запуска в случае получения от FRN System Manager ошибки "Неверный пароль"; эта внешняя программа (скрипт) может [пере]запросить новый статический пароль с помощью команды register (0.4.12) клиента; далее е-почта с новым статическим паролем может быть автоматически получена каким-нибудь сборщиком почты, например, fetchmail, а сам новый пароль может быть применен командами setmanpassidx (s.0.9) и setmanpassaddr (s.0.10) сервера.
    s.1.18. Параметр MaxWaitConnections - [ревизия 5170+] - максимальное количество входящих соединений, одновременно ожидающих обработку сервером - параметр backlog для вызова listen; по умолчанию - 5;


    s.2. Секция Manager [ревизия 4210+] и секции Manager1, Manager2 [ревизия 4642+]:
    s.2.2. Параметр ManagerAddress - доменное имя или IP-адрес FRN-System-Manager; по умолчанию sysman.freeradionetwork.eu;
    s.2.3. Параметр ManagerPort - номер порта FRN-System-Manager; по умолчанию 10025;
    s.2.4. Параметр ManagerAuthEMail - адрес е-почты для авторизации на FRN-System-Manager; по умолчанию используется значение из параметра ServerOwnerEMail (s.1.3);
    s.2.5. Параметр ManagerAuthPassword - пароль для авторизации на FRN-System-Manager;

    s.3. Секция [System] [ревизия 4210+]:
    s.3.1. Параметр PidFile - [только UNIX/Linux] - имя файла с номером фонового процесса (демона) - PID-файла; по умолчанию /var/run/frnserver.pid; смотри также команду daemon (s.0.1);
    s.3.2. Параметр LogFile - имя файла журнала событий сервера; по умолчанию ./frnserver.log;
    s.3.3. Параметр LogClientLevel - [ревизия 4642+] уроверь журналирования событий на клиентстких подключениях:
    s.3.3.1. Значение 0 - не журналировать клиентских событий вообще;
    s.3.3.2. Значение 1 - опасные события, например, пустые подключения или подключения неверным протоколом;
    s.3.3.3. Значение 2 - предупреждения и опасные события; по умолчанию;
    s.3.3.4. Значение 3 - ошибочные клиентские подключения и всё предыдущее;
    s.3.3.5. Значение 4 - успешные подключения клиентов и всё предыдущее;
    s.3.3.6. Значение 5 - входящие соединения и всё предыдущее;
    s.3.4. Параметр LogExec - [ ревизия r5172+] - записывать в журнал старт внешних программ(скриптов) с их параметрами командной строки; допустимые значения: No, Yes; по умолчанию: No;

    s.4. Список и конфигурация сетей (комнат). Находится в файле networks.cfg. Одна строка - одна сеть(комната). Дополнительные параметры для сети(комнаты) дописываются после собственно имени сети(комнаты) через символ '|' (десятичный код 124), параметры отделяются друг от друга точкой с запятой:

    s.4.1. - OwnerEMail - адрес электронной почты владельца сети(комнаты); при наличии;
    s.4.2. - MaxClients - максимальное количество корреспондентов, которые могут подключиться в комнату одновременно, по умолчанию 65535;
    s.4.3. - MaxSpeechTime - максимальное время в секундах, которое может непрерывно говорить корреспондент, после чего клиенту будет послана команда прервать трансляцию сигнала в комнату; минимальное - 10 секунд; максимальное - 1800 секунд (30 минут); по умолчанию - 300 секунд (5 минут);
    s.4.4. - ParrotEnable - разрешить работу попугая в сети(комнате); допустимые значения: No, Yes; по умолчанию: No;
    s.4.5. - ParrotStartStopEnable - разрешить включение/выключение попугая через сообщения start и stop; допустимые значения: No, Yes; по умолчанию: No;
    s.4.6. - ParrotMuteEnable - разрешить блокировку самого попугая; допустимые значения: No, Yes; по умолчанию: No;
    s.4.7. - ParrotMaxRecordTime - максимальное время звука в секундах, которое может записать попугай для последующего повтора; по умолчанию: 600 секунд (5 минут);
    s.4.8. - ParrotPause - время в миллисекундах перед началом воспроизведения попугаем записанного звука; по умолчанию: 2000 мс (2 секунды);
    s.4.9. - ParrotRepeatCount - количество повторов попугаем записанного звука; по умолчанию: 1 (один);
    s.4.10. - CharsetName - [ревизия 4210+] имя кодировки, в которую будет перекодировано имя этой конкретной сети(комнаты) для передачи списка сетей(комнат) FRN-клиентам без поддержки Unicode(UTF-8);
    s.4.11. - ManagerMode - [ревизия 4210+] режим взаимодействия с FRN-System-Manager для этой конкретной сети(комнаты), если режим отличается от режима всего сервера; допустимые значения как у серверного параметра ManagerMode (s.1.10);
    s.4.12. - ManagersMask - [ревизия 4690+] битовая маска, разрешающая или запрещающая работу сети(комнаты) с конкретным FRN-System-Manager; используются биты 0-2; по умолчанию значение 7 - разрешены все;
    s.4.13. - SpeechPause - [ревизия 4690+] - принудительная пауза между включениями корреспондентов для этой конкретной сети(комнаты) в миллисекундах; минимальная и по умолчанию - 0 мс; максимальная - 10000 мс (10 сек);
    s.4.14. - AccessInfoMode - [ревизия 4690+] - режим выдачи сообщения о правах доступа AccessInfo:
    s.4.14.1. -- ORIGINAL / O - выдавать только при активированных правах доступа, как в оригинальном FRN-сервере; по умолчанию;
    s.4.14.2. -- ALWAYS / A - всегда выдавать, если сообщение определено;
    s.4.14.3. -- NEVER / N - никогда не выдавать;
    s.4.15. -- ClientSessionMaxTime - [ревизия 5059+] - максимальная длительность клиентского подключения для конкретной комнаты, если отличается от длительности клиентского подключения для всего сервера; смотри также серверный параметр ClientSessionMaxTime (s.1.16);
    s.4.16. -- Hidden - [r5115+] - признак показывать или не показывать в FRN-клиенте эту сеть(комнату) в списке сетей(комнат); допустимые значения: No, Yes; по умолчанию: No - сеть(комната) не скрывается в списке; подключение к скрытой сети(комнате) возможно только при явном и точном указании ее имени в FRN-клиенте; если требуется, чтобы сеть(комната) также не показывалась в списке серверов от FRN System Manager то такую сеть(комнату) нужно переключить в автономный режим ManagerMode=STANDALONE;



    Полезные факты об этом сервере:

    - Для того чтобы различать клиентов между собой в пределах одной комнаты(сети) сервер использует только адрес электронной почты. При работе сервера или сети(комнаты) в автономном режиме (ManagerMode=Standalone) это может быть просто уникальная строка текста длиной не более 64 ASCII-символов; реальным адресом е-почты она быть не обязана, т.к. в этом режиме сервер никак не взаимодействует с центром авторизации (FRN System Manager) и никаких проверок не осуществляет, и, например, два клиента с абсолютно одинаковыми реквизитами могут быть подключены к разным комнатам одновременно.

    - Алгоритм формирования этим сервером идентификатора клиента:
    echo -n name@email.com | md5 | perl -e 'print pack "H32", ' | openssl base64 | cut -c 1-22 | sed 's/\+/\[/g' | sed 's/\//\]/g'


    Бесплатный конструктор сайтов - uCozCopyright MyCorp © 2018