Versions Compared

Key

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


Note

Нижеследующая инструкция потребуется, если предстоит самостоятельно контролировать ход установки системного и прикладного ПО. В таком случае потребуются некоторые знания ОС Linux. Если вы желаете установить все компоненты в автоматическом режиме, обратитесь к инструкции.

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

Warning
titleВнимание

Большинство из указанных действий требуют повышения привилегий, поэтому их следует выполнять через команды: sudo или su -.

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

Все данные (настройки, страницы портала абонентов, сведения о пользователях сети Wi-Fi, их сессиях и т.п.) хранятся в No-SQL БД MongoDB

...

. Для ОС Ubuntu 20.04, AstraLinux 1.7 и Debian 11 рекомендуется использовать версию 4.4 этой БД. Для Ubuntu 22.04 и Debian 12 рекомендуется к установке MongoDB 6.х. К сожалению, в штатных репозиториях ОС Debian соответствующие пакеты отсутствуют.

1.1. Вариант установки последней версии БД можно найти по официальной инструкции от производителя https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/. Для установки MongoDB 4.4 будет необходимо выполнить следующие команды

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

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

apt-get update
apt-get upgrade

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

apt-get install mongodbgnupg
wget 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

...

qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list
apt-get update
apt-get install -y mongodb-org
systemctl enable mongod
systemctl start mongod
systemctl status mongod

Если ваша система не поддерживает установку 4.4, то установите MongoDB версии 6.х согласно инструкции ниже:
Для начала следует выполнить проверку необходимых для работы MongoDB инструкций процессора командой:

grep -i avx /proc/cpuinfo

Если в результате выполнения данной команды вы получили пустой вывод, то ваша система не подходит для установки.
Если вывод не пуст, то установите БД MongoDB 6.x с помощью следующих команд:

apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | apt-key add -
echo "deb https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list
apt-get update
apt-get install -y mongodb-org
systemctl enable mongod
systemctl start mongod
systemctl status mongod

1.2. Если сайт с БД MongoDB не доступен, а также не доступен репозиторий http://repo.mongodb.org, то следует воспользоваться копией с deb-пакетом MongoDB версии 4.4.15 на нашем сервере. Для ОС Debian 10/11 следует выполнить команды:

cd /tmp
wget -m --no-parent http://packages.wnam.ru/mongodb-org/
cd packages.wnam.ru/mongodb-org/
apt install ./*.deb
cd /tmp
rm -rf packages.wnam.ru
systemctl unmask mongod
systemctl enable mongod
systemctl start mongod

Для ОС Debian 9 потребуется выполнить следующие команды:

cd /tmp
wget -m --no-parent http://packages.wnam.ru/mongodb-org-stretch/
cd packages.wnam.ru/mongodb-org-stretch/
apt install ./*.deb
cd /tmp
rm -rf packages.wnam.ru
systemctl unmask mongod
systemctl enable mongod
systemctl start mongod

Настраивать БД MongoDB не требуется, кроме случая подготовки отказоустойчивого кластера и задачи разграничения доступа для нескольких пользователей/приложений. Следует учитывать, что по умолчанию база создается в разделе /var по пути /var/lib/mongodb. Убедитесь, что на этом разделе достаточно места (для небольшой инсталляции будет достаточно 4 Гб). Если требуется создать нагруженный сервер, рекомендуется хранить БД MongoDB на отдельном разделе с файловой системой XFS на носителях типа SSD.  

2. Среда выполнения Java

Поскольку система WNAM практически полностью реализован на языке Java, необходимо установить среду исполнения Java-программ: JDK/JRE. Поддерживается работа с версией 11 в различных исполнениях (OpenJDK, Oracle JDK). Штатный пакет в ОС Debian 10/11 называется openjdk-11-jdk.

Warning
Версия 8 ОС Debian не поддерживается с мая 2023 г.

 Установить пакет можно следующей командой:

apt-get install openjdk-11-jdk 

Для ОС Debian 12 воспользуйтесь командой:

apt-get install openjdk-17-jdk

После установки рекомендуется проверить версию, используя:

java -version

В ответ на команду должны выйти строки типа:

openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build

...

11.

...

0.11+9-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build

...

11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)

Если по каким-то причинам используется версия 8 ОС Debian (например, из пакета AdoptOpenJDK, https://linuxize.com/post/install-java-on-debian-10/#installing-openjdk-8) и система WNAM версии 1.5 и младше, может возникнуть проблема с сертификатом сервера лицензирования. 

...

3. FreeRADIUS.

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

...

Если FreeRADIUS установлен, то необходимо удалить пакет или, как минимум, остановить выполнение и авто-запуск FreeRADIUS (radiusd).

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

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

Установка сервера Nginx производится следующей командой:

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протоколу 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

...

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

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

Warning

Если используется ОС 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

...

:

export OPENSSL_CONF=/etc/ssl/

6

...

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

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

dpkg-reconfigure locales