You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

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

1. Система управления базой данных 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/
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) 

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

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

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

Установка freeradius: 

apt-get install freeradius

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

Помните, что в некоторых дистрибутивах FreeRADIUS устанавливается в каталог /etc/raddb/, но в большинстве - /etc/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/sites-enabled/inner-tunnel

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

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

service freeradius restart

Также полезно помнить, что в целях отладки можно запускать 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;
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;
}
}

не забудьте сгенерировать файл 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

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

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

dpkg-reconfigure locales


  • No labels