Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

WNAM требует для своей работы ряд системного программного обеспечения, которое требуется установить на вашем сервере.

...

Система

...

Современные версии Debian штатно предоставляют пакет MongoDB версии 3.2 и выше, таким образом установка базы данных из отдельного репозитория не требуется.

Подготовка сервера: 

apt-get update
apt-get upgrade

Установка пакетов:

apt-get install mongodb openjdk-8-jdk 

Настраивать mongodb не надо, кроме случая подготовки отказоустойчивого кластера и задачи разграничения доступа для нескольких пользователей/приложений.

Внимание! WNAM работает только с Java версии 8 (OpenJDK или Oracle JDK). С более старшими версиями (9, 11, 13) - нет.

После установки java8 убедитесь, что версия java7 (если она была установлена ранее, например вместе с дистрибутивом операционной системы) не используется. Проверка:

java -version

Ели у вас установлена версия 7, её надо удалить. К сожалению, штатный способ смены версии JDK утилитой update-java-alternatives не срабатывает (tomcat применяет собственный метод поиска java), поэтому рекомендуется провести замену вручную:

cd /usr/lib/jvm/
rm default-java
ln -s java-8-openjdk-amd64 default-java

затем проверьте: 

ls -la /usr/lib/jvm/

...

1

...

.

...

5 и ниже требует для своей работы установленного FreeRADIUS-сервера.


Warning

Для версии системы WNAM 1.6 представленные ниже шаги делать не требуется.

Таже для функционирования системы

java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-8u102-b14.1-1~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode) 

Внимание! Если вы используете Debian 10 (Buster), то в составе штатного набора пакетов нет openjdk-8, а есть openjdk-11. Для установки Java 8 вам потребуется последовать инструкции, например отсюда.

2. Сервер FreeRADIUS - для WNAM 1.5 обязателен только в кластерной конфигурации, для WNAM 1.6 не используется

...

WNAM в режиме поддержки маршрутизатора на основе сервера ОС Linux с iptables/ipset, в режиме поддержки контроллеров UniFi и TP-LINK EAP использование RADIUS-протокола и,

...

соответственно, FreeRADIUS

...

не требуется

...

.

Установка сервера FreeRADIUS

Для установки FreeRADIUS необходимо выполнить следующую команду:

Вы можете отказаться от установки и использования FreeRADIUS при работе с WNAM 1.5, используя встроенный в WNAM RADIUS-сервер - это является рекомендованным вариантом. Использовать freeradius с WNAM 1.5 пока требуется только в кластерной конфигурации сервиса авторизации.

Установка freeradius: 

apt-get install freeradius

...

Warning

У сервера FreeRADIUS версий 2.х. и 3.х

...

различаются пути для установки файлов конфигурации

...

и синтаксис файлов конфигурации. В большинстве современных дистрибутивов устанавливается версия 3.

...

Также следует учитывать, что в некоторых дистрибутивах сервер FreeRADIUS устанавливается в каталог /etc/raddb/, но в большинстве случаев /etc/freeradius/.

Настройка FreeRADIUS заключается во включении работы Perl-модулей, модификации файлов в каталоге /etc/freeradius/3.0/sites-enabled/, установке модуля wnam-freeradius-bridge.pl в каталог /etc/freeradius/3.0/. Для этого необходимо взять все файлы, расположенные по адресу http://www.netams.com/files/wnam/misc/  в папках freeradius2 и freeradius3, соответственно, и переместить их:согласно таблице.

ФайлКаталог , где он должен оказатьсядля перемещенияИнформация, которую Что необходимо отредактировать в файле
wnam-freeradius-bridge.pl 
/etc/freeradius/3.0/ничего Не требуется редактировать файл (этот скрипт служит для связи FreeRADIUS и системы WNAM)
clients.conf
/etc/freeradius/3.0/Требуется отредактировать подсети (или IP-адреса) ваших RADIUS-клиентов (серверов доступа), а также ключ (пароль), который вы также должны указать указан на контроллере в настройках параметров внешнего RADIUS-сервера
default
/etc/freeradius/3.0/sites-availableничего Не требуется редактировать файл (этот файл конфигурации определяет использование механизмов авторизации и аккаунтинга с вызовом системы WNAM для обработки запросов))
perl 
/etc/freeradius/3.0/mods-available

ничего Не требуется редактировать файл (этот файл конфигурации определяет использование perl-модуля wnam-freeradius-bridge.pl)

wnam.properties
/etcДанный файл практически не требуется редактировать, так как он содержит редко изменяющиеся параметры, подробнее описанные в этом разделе документации

Для версий FreeRADIUS >= 3.0 вам и выше дополнительно потребуется дополнительно:

  • Создать создать символьные ссылки /etc/freeradius/3.0/mods-enabled/perl -> /etc/freeradius/3.0/mods-available/perl и  /etc/freeradius/3.0/sites-enabled/default -> /etc/freeradius/3.0/sites-available/default командами:

ln

...

-s /etc/freeradius/3.0/mods-available/perl /etc/freeradius/3.0/mods-enabled/perl

ln

...

-s /etc/freeradius/3.0/sites-available/default /etc/freeradius/3.0/sites-enabled/default 

  • Удалить удалить ссылку на модуль /etc/freeradius/3.0/mods-enabled/eap и конфигурационный файл EAP-туннеля /etc/freeradius/3.0/sites-enabled/inner-tunnel командами:

rm

...

-f /etc/freeradius/3.0/sites-enabled/inner-tunnel /etc/freeradius/3.0/mods-enabled/eap

...

Warning
Если

...

забыли отредактировать /etc/freeradius/3.0/clients.conf ,

...

доступ к RADIUS-серверу со стороны хотспотов не

...

произойдет, и авторизация не

...

будет выполняться.

После настройки файлов перезапустите необходимо перезапустить сервис freeradius командой:

service freeradius restart

Также полезно помнить, что в целях отладки можно запускать freeradius с запускать FreeRADIUS с ключом X , в этом режиме все операции ввода - вывода (атрибуты в запросах и ответах) отображаются на экране.

3. Веб-сервер nginx

WNAM по умолчанию запускается на TCP порту 8080. Вы можете оставить его на этом порту, но рекомендуется использовать проксирующий сервер nginx для обработки запросов на порту 80, для SSL шифрования (порт 443), контроля доступа, кэширования.

apt-get install nginx

Отредактируйте конфигурационный файл /etc/nginx/sites-available/wnam :

server {
listen 80;
 access_log /var/log/nginx/access.log;
 location / { 
  proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 120;
proxy_connect_timeout 120;
}

Если вы имеете SSL сертификат (купленный, или от Let's Encrypt) и хотите использовать сервер WNAM так, чтобы он был доступен абонентам по протоколу HTTPS, используйте следующую конфигурацию:

server {
listen 80 default_server;
return 301 https://$server_name$request_uri;
server_name wnam.provider.ru;
}
server {
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/wnam.provider.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wnam.provider.ru/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
root /var/www/html;
index index.html;
server_name wnam.provider.ru;

...

.

...

}

не забудьте сгенерировать файл dhparams:

openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Затем создайте ссылку: 
cd /etc/nginx/sites-enabled
ln -s ../sites-available/wnam wnam

Обязательно удалите /etc/nginx/sites-enabled/default :

rm /etc/nginx/sites-enabled/default

Проверьте правильность конфигурационного файла через: 

nginx -t

Перезапустите сервис:

service nginx restart

4. Библиотека генерации миниатюр конструктора страниц портала

WNAM использует внешнюю библиотеку phantomjs при формировании миниатюрного изображения абонентских страниц в "Конструкторе страниц". 

Скачайте и установите её:

cd /tmp/
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
apt-get install bzip2
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
mv phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
wget http://www.netams.com/files/wnam/misc/render.js
wget http://www.netams.com/files/wnam/misc/render.sh
mv render.sh render.js /usr/local/bin/
chmod +x /usr/local/bin/render.sh

Запуск команды "/usr/local/bin/render.sh" должен завершиться молча и без ошибки

Для изменения размера изображений превью файл /usr/local/bin/render.js можно отредактировать

Добавьте следующее изменение в ваш файл /etc/wnam.properties, если вы проводите обновление системы. Там должны быть строка:

render_script=/usr/local/bin/render.sh

Внимание! Если вы используете ОС Ubuntu, может оказаться, что страницы предпросмотра (миниатюры) не содержат русских букв. Это вызвано тем, что дистрибутив Ubuntu зачастую сконфигурирован некорректным способом в части поддержки шрифтов. Вероятно вам предстоит выполнить следующие команды:

ln -s /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 /usr/lib/phantomjs/libfontconfig.so.1
ln -s /usr/share/fonts/truetype/dejavu/ /usr/lib/x86_64-linux-gnu/fonts

Внимание! Если вы столкнулись со следующей ошибкой (например, на Debian 10):

Auto configuration failed

140687369703040:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libssl_conf.so): libssl_conf.so: cannot open shared object file: No such file or directory

140687369703040:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:

140687369703040:error:0E07506E:configuration file routines:MODULE_LOAD_DSO:error loading dso:conf_mod.c:285:module=ssl_conf, path=ssl_conf

140687369703040:error:0E076071:configuration file routines:MODULE_RUN:unknown module name:conf_mod.c:222:module=ssl_conf

То решение заключается в добавлении строк

export OPENSSL_CONF=/etc/ssl/

в середину файла  /usr/local/bin/render.sh

5. Проверка языка операционной системы

Обязательно убедитесь, что язык системы (locale по умолчанию) соответствует "ru_RU.UTF-8".  Проверить это можно командой "locale". Локаль сервера можно изменить командой

...