Versions Compared

Key

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

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

Система управления базой данных MongoDB и среда Java JDK

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

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

apt-get update
apt-get upgrade

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

apt-get install mongodb openjdk-8-jdk 

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

После установки 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/
итого 24
drwxr-xr-x 4 root root 4096 сен 30 23:43 .
drwxr-xr-x 58 root root 4096 окт 2 19:56 ..
lrwxrwxrwx 1 root root 20 авг 25 15:17 default-java -> java-8-openjdk-amd64
lrwxrwxrwx 1 root root 20 ноя 20 2015 java-1.7.0-openjdk-amd64 -> java-7-openjdk-amd64
-rw-r--r-- 1 root root 2439 июл 31 21:33 .java-1.7.0-openjdk-amd64.jinfo
lrwxrwxrwx 1 root root 20 авг 8 12:32 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64
-rw-r--r-- 1 root root 2600 авг 8 12:32 .java-1.8.0-openjdk-amd64.jinfo
drwxr-xr-x 5 root root 4096 авг 25 15:15 java-7-openjdk-amd64
drwxr-xr-x 7 root root 4096 авг 25 15:16 java-8-openjdk-amd64
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)

Альтернативный способ явного указания версии Java для Tomcat (если вы не хотите изменять default jvm). Исправьте в файле /etc/default/tomcat8 строку:

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

Внимание! WNAM требует установленного tomcat версии 8.5 и выше. Для Debian это стандартно, а пользователям CentOS/Redhat придется установить tomcat 8.5 вручную (штатный пакет только версии 8.0, который с WNAM не работает). 

сервера приложений Tomcat 8.0 и выше.

1. Установка tomcat 

apt-get install tomcat8

Настройка tomcat сводится к установке паролей, параметров сервиса, портов доступа.

...

Убедиться в корректности запуска tomcat можно командами netstat -na | grep 80 и просмотром лог-файла /var/lib/tomcat8/logs/catalina.out 

Сервер FreeRADIUS

(Для работы WNAM в режиме поддержки маршрутизатора на основе сервера Linux с iptables/ipset, поддержки контроллеров UniFi и TP-LINK EAP использование FreeRADIUS не требуется).

Установка: 

apt-get install freeradius

Внимание! У FreeRADIUS версий 2.х. и 3.х немного разные пути для установки файлов конфигурации, и синтаксис файлов конфигурации. В большинстве современных дистрибутивов устанавливается версия 3.

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

2. Установка WNAM

Дистрибутив WNAM можно получить по ссылке Настройка заключается во включении работы 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 

...

clients.conf

...

default

...

perl 

...

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

...

wnam.properties

...

cgi/download.cgi, имея действующий лицензионный ключ. Он поступит в виде файла ROOT.war 

Переместите его в каталог, где размещаются веб-приложения. Вручную и самостоятельно дистрибутив распаковывать не требуется, это автоматически сделает сам tomcat.

   rm -rf /var/lib/tomcat8/webapps/ROOT/
   mv ROOT.war /var/lib/tomcat8/webapps/ROOT.war

Все начальные конфигурационные параметры находятся в файле /etc/wnam.properties (не будет перезаписан при обновлении WNAM). Его необходимо взять из http://www.netams.com/files/wnam/misc/ и настроить некоторые параметры согласно этой инструкции.

3. Запуск

После первоначальной установки и настройки вы можете перезапустить все системные сервисы. При перезапуске tomcat произойдет распаковка приложения WNAM, инициализация базы данных.

/etc/init.d/mongod restart
/etc/init.d/freeradius restart
/etc/init.d/nginx restart
/etc/init.d/tomcat8 restart

Проверьте наличие соответствующих процессов в системе, и отсутствие ошибок в log-файлах. Основной лог-файл приложения: /var/log/tomcat8/wnam.log

Необходимо также настроить автоматический запуск всех вышеперечисленных служб (update-rc.d имясервиса defaults && update-rc.d имясервиса enable), если это не случилось при установке пакетов.

При обращении к серверу через браузер (http://server/wnam/home) вы должны увидеть приглашение административного интерфейса WNAM:

Image Added

По умолчанию логин admin и пароль admin 

После первого входа обязательно смените пароль

Для версий 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
  • Удалить ссылку на модуль /etc/freeradius/3.0/mods-enabled/eap и конфиг /etc/freeradius/3.0/sites-enabled/inner-tunnel 

Внимание! Если вы забыли отредактировать /etc/freeradius/clients.conf , доступа к RADIUS-серверу со стороны хотспотов не будет, и авторизация не заработает.

После настройки файлов перезапустите сервис freeradius. Также полезно помнить, что в целях отладки можно запускать freeradius с ключом -X

Настройка веб-сервера nginx

Если вы готовы оставить портал авторизации на порту 8080 (не рекомендуется), или решили переместить работу tomcat8 на порт 80, то настраивать отдельный проксирующий веб-сервер не требуется. В противном случае установите nginx:

apt-get install nginx

Конфигурационный файл nginx (/etc/nginx/sites-available/wnam , ссылка на него из /etc/nginx/sites-enabled/) приведен ниже:

server {
 listen 80;
access_log /var/log/nginx/access.log;
 # порция конфигурации для поддержки wnam - проксирование обращений к tomcat8, работающем на порту 8080
 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;
}
# порция конфигурации для поддержки zabbix на этом же сервере, если zabbix не используется, это настраивать не надо! 
upstream backend {
server 127.0.0.1:9000;
}
location /zabbix {
index index.php index.html;
try_files $uri $uri/ /zabbix/index.php?$args;
alias /usr/share/zabbix;
error_page 403 404 /zabbix/index.php;
}
location ~\.php$ {
root /usr/share;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
include fastcgi_params;
}

location ~*(?:api|conf|include)/ {
return 301 zabbix.local/index.php;
}
# не забудьте закрывающий конфигурацию символ }

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

server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$server_name$request_uri;
server_name wnam.provider.ru;
}
server {
listen 443 ssl default_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;
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_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120;
proxy_connect_timeout 120;
}

Затем: 

cd /etc/nging/sites-enabled
ln -s ../sites-available/wnam wnam

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

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

Для WNAM версии старше 1.3.1052 необходимо установить дополнительно средство, использующееся при формировании миниатюрного изображения предпросмотра абонентских страниц в "Конструкторе страниц". Для этих целей применяется свободно распространяемая библиотека 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

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

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