Versions Compared

Key

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

...

Современные версии 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) - нет.

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

После установки 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) 

Внимание! Если вы используете 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 при работе с 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 

...

clients.conf

...

default

...

perl 

...

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

...

wnam.properties

...


2. FreeRADIUS.

Если вы по какой-то причине производите переустановку WNAM версии 1.3 ... 1.5, в которой используется FreeRADIUS, посмотрите эту инструкцию. Для работы WNAM версии 1.6 FreeRADIUS не требуется.


2.

Для версий 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

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

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

service freeradius restart

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

...

Веб-сервер 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. Библиотека генерации миниатюр конструктора страниц портала

...

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

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, если вы проводите обновление системы. Там должны быть строка:

...

Внимание! Если вы используете ОС 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):

...

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

export OPENSSL_CONF=/etc/ssl/

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

...

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

dpkg-reconfigure locales