суббота, 18 февраля 2017 г.

Используем debian 8.----
ssh vipole@192.168.1.76
Всё от рута:

su -
lsb_release -a

Обновляем
apt-get update && apt-get upgrade

apt-get install ntpdate

Ставим редис сервер:
apt-get install redis-server
service redis-server status

Ставим монгоДБ сервер:
echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | tee /etc/apt/sources.list.d/mongodb.list
apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Обновляем и ставим
apt-get update &&  apt-get install mongodb-org

Проверяем статус
service mongod status

Закаченный пакет vipole-server кладём в /root/ и устанавливаем
dpkg -i  standalone-linux_x86_64-2016.R1-en.deb

Переходим
cd /etc/vipole/
ls -l
vipoleadm --operation init --login admin --relayserver-login radmin -d testvipole.com -b vipole_server
vipoleadm --operation init --domain testvipole.com --dbname vipole_server --login admin --relayserver-login radmin

mongo vipole_server
db.dropDatabase();
exit


mongorestore dump

Admin admin: admin  password
Relay radmin: radmin  password

vipoleadm --operation license_request -d  -b vipole_server --license-request-file license_request.req
cat license_request.req

openssl genrsa -des3 -out cakey.pk 3072   ; CertPass
openssl req -new -key cakey.pk -out server.csr ; заполнить поля
openssl x509 -req -days 3650 -in server.csr -signkey cakey.pk -out cacert.pk

openssl genrsa -des3 -out autoconfkey.pk 3072      ;  AutoPasswd
openssl req -new -key autoconfkey.pk -out autoconf.csr  ; заполнить поля   testvipole.com

cat autoconf.csr  - видим запрос сертификата → отдаём его в info@vipole.com

nano server.config
nano relay.config

Получили сертификат
ls /home/vipole/
cp /home/vipole/vipole_* /etc/vipole/

Проверяем ключик
vipoleadm --operation verify_license -d testvipole.com -b vipole_server --license-file vipole_license_c1000016d161119n065lid0000213.dat
Активируем ключик
vipoleadm --operation activate_license -d testvipole.com -b vipole_server --license-file vipole_license_c1000016d161119n065lid0000213.dat

nano server-auto.config                       vipole_certificate_5830b0927b326d95d85114f2.pem
nano client_autoconf.config
vipoleadm --operation save_clients_autoconf --clients-autoconf-file client_autoconf.config -d testvipole.com -b vipole_server

vipole-server --config server.config
vipole-server --autoconf --config /etc/vipole/server-auto.config

vipole-server --config server.config &
vipole-relay --config relay.config

kill -9 `pgrep vipole-server`       → дождаться [1]+ Killed
/etc/init.d/vipoleserver start
pgrep -l vipole

Логи
ls -la  /var/log/vipoleserver/

update-rc.d <name> defaults 03

ls -la /etc/rc2.d/
ln /etc/init.d/vipoleserver  /etc/rc2.d/S02vipoleserver
ln /etc/init.d/vipoleserver  /etc/rc6.d/K02vipoleserver

tcp 37210 - основной порт для связи клиента с сервером.
tcp 443 - дополнительный порт для связи с сервером, используется для работы клиентов через https proxy
tcp 37212 - порт для сервера автоконфигурации
udp 3000-9000 - используется для аудио-видео звонков
udp 5060 - наш сервер не использует для исходящих подключений к "вашему" sip серверу.

вторник, 6 сентября 2016 г.

Установка и настройка VIPole сервера (Linux)

Установка VIPole сервера на Debian 7.x и Debian 8.x


Содержание:
  1. Инфраструктура сети и минимальные требования к оборудованию
  2. Необходимые пакеты
  3. Установка Redis-сервера
  4. Установка БД MongoDB
  5. Установка VIPole сервера

Преамбула: Будем вести речь об установки сервера VIPole на операционной системе linux debian 7.11 (wheezy) и debian 8.5 (jessie).
Версии указаны на дату написания текущей документации (6.09.2016).


1. Требования к инфраструктуре сети и оборудованию:


Для функционирования VIPole сервера, необходимо:
  - Установить постоянный IP адрес на сервере.
  - Желательно подключение сервера кабелем Ethernet к локальной сети.
  - Если планируется публикация сервера в сети Internet, то должны быть проброшены и доступны следующие порты:
  TCP  - 37210 и 37212
  UDP - 3000:9000 (здесь диапазон портов)

Сервер VIPole может быть установлен, как на стационарном компьютере, так и на виртуальной машине HyperV, WMvare, Oracle VirtualBox или XEN.
Требование по периферии:

CPU - от Intel iCore3 до Xeon series (минимум два ядра)
RAM - 4Gb (желательно 16Gb)
HDD - 200Gb (для надёжности хранения данных, желательно использование RAID массива)


2. Необходимые пакеты


Для установки сервера необходимы следующие пакеты:
  1. Redis-server (2.8)
  2. MongoDB (2.6.x и выше)
Примечание: все действия производим от пользователя root или через sudo. Настройка                                      утилиты sudo выходит за рамки данной документации.


3. Установка Redis сервера


По умолчанию в репозитарии находятся следующие версии пакетов redis-server:
Debian 7.11 -  redis-server 2.4.14
Debian 8.5   - redis-server 2.8.17

Для debian 7.11 необходимо подключить репозитарий wheezy-backports добавив строку:

deb http://ftp.debian.org/debian wheezy-backports main

в  /etc/apt/sources.list после чего обновляем локальный репозитарий операционной системы и устанавливаем редис сервер:

# apt-get update
# apt-get -t wheezy-backports install redis-server redis-tools

Проверяем статус запуска:

# service redis-server status
[ ok ] redis-server is running.

И переходим к пункту 4.

Для debian 8.5 устанавливаем так:

# apt-get install redis-server

И проверяем статус запуска
# service redis-server status
● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled)
   Active: active (running) since Tue 2016-09-06 11:07:03 MSK; 10s ago
 Main PID: 1146 (redis-server)
   CGroup: /system.slice/redis-server.service
           └─1146 /usr/bin/redis-server 127.0.0.1:6379

Это означает, что редис запущен на локальном хосте и прослушивает 6379 порт.


4. Установка БД MongoDB ver 2.6


По умолчанию в репозитарии находятся следующие версии пакетов mongoDB:
Debian 7.11 -  mongodb-server 2.0.6
Debian 7.11 (wheezy-backports) -  mongodb-server 2.4.8
Debian 8.5   -  mongodb 2.4.10

Следующие действия применимы к обоим версиям debian.

Для корректной работы VIPole сервера, необходима MongoDB версии не ниже чем 2.6.x 
Поэтому, добавляем официальный репозитарий MongoDB и его публичный ключ:

# echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | tee /etc/apt/sources.list.d/mongodb.list

# apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Обновляем локальную базу репозитария и устанавливаем mongoDB:

# apt-get update
# apt-get install mongodb-org

Последняя стабильная версия, на момент написания документации (6.09.2016), является версия 2.6.12

Проверяем статус запуска MongoDB сервиса:
# service mongod status
● mongod.service - LSB: An object/document-oriented database
   Loaded: loaded (/etc/init.d/mongod)
   Active: active (running) since Tue 2016-09-06 11:23:42 MSK; 10s ago
   CGroup: /system.slice/mongod.service
           └─1695 /usr/bin/mongod --config /etc/mongod.conf
Sep 06 11:23:42 deb8 mongod[1688]: Starting database: mongod.

Более подробно с установкой MongoDB версии 2.6.х можно ознакомиться по этой ссылке.


4.1 Установка БД MongoDB ver 3.2 (ТЕСТ)



Для debian 7.x указываем репозитарий

# echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 main" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Для debian 8.x указываем репозитарий

# echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.2 main" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Импортируем публичный ключ репозитария:

# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Обновляем локальный репозитарий и устанавливаем mongoDB ver 3.2

# apt-get update
# apt-get install mongodb-org

Проверяем статус запуска MongoDB сервиса:

# service mongod status
● mongod.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/lib/systemd/system/mongod.service; disabled)
   Active: active (running) since Tue 2016-09-06 12:13:30 MSK; 1s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 2596 (mongod)
   CGroup: /system.slice/mongod.service
           └─2596 /usr/bin/mongod --quiet --config /etc/mongod.conf

Если не запущен, запускаем командой: 
# service mongod start


Последнней стабильной версией, на момент написания документации (6.09.2016), является версия 3.2.9


5. Установка VIPole сервера


Устанавливаем VIPole сервер командой

# dpkg -i vipoleserver-XXX_2016.1.ZZZ_amd64.deb

Теперь приступим непосредственно  к настройке VIPole сервера.


Настройка VIPole сервера


Содержание:
  1. Конфигурационные файлы
  2. Создание и инициализация базы данных
  3. Генерация сертификатов
  4. Конфигурация файлов сервера и медиасервера
  5. Тестирование и запуск VIPole evaluation server



1. Конфигурационные файлы


Все конфигурационные файлы находятся в /etc/vipole/

client_autoconf.config - авто конфигурация клиентов.
launcher.config  - файл настройки запуска сервисов.
relay.config   -  файл настройки медиасервера
server.config - основной файл сервера.
initdb.js - инициализационный файл БД
pushd.config - файл конфигурации уведовлений
server-auto.config - конфигурация сервера автоконфигурации


2. Создание и инициализация базы данных


Устарело Отредактируем /etc/vipole/initdb.js. Укажем там следующие параметры:
  • dbname – имя базы данных VIPole в MongoDB,
  • domain – доменное имя вашего сервера (это доменное имя добавляется к логину после символа @ например, admin@example.com)
    Важно: в имени домена обязательно должна присутствовать точка.
    Пример: vipole-svr.local, firma.loc
  • domain_prefix – префикс имени коллекции баз данных, если в базе хранятся данные нескольких доменов (не обязательно, если один домен).
(Для кластера серверов)
Если вы измените cluster_id, то такой же cluster ID надо указать в server.config
Раскоментируем строки и укажем нужные параметры dbname и domain

var dbname="vipole_server";  // mongo database name

var domain="example.com";    // your domain

Теперь создаем базу данных в MongoDB:

# mongo /etc/vipole/initdb.js

MongoDB shell version: 2.6.12
connecting to: test
Success


Проинициализиуем VIPole Server, создав учетные записи администратора и медиа сервера.
Прочтите и подтвердите лицензионное соглашение. Далее у вас будут запрошены пароли для двух учетных записей:
  • admin_login - администратор сервера 
  • relay_server_login - администратор сервера релея. 
Важно: оба логина должны отличаться друг от друга.

Для удобства выведем первые 4 строки файла инициализации

# head -4 /etc/vipole/initdb.js
// configurable parameters
var dbname="vipole_server";  // mongo database name
var domain="example.com";    // your domain
//var domain_prefix="vs";      // prefix for domain collections in database

# vipoleadm --domain <domain> --dbname <dbname> --operation init --login <admin_login>     --relayserver-login <relay_server_login>
VIPole - Server Administration Tool 2016.R1


Before you can proceed you MUST read and ACCEPT the VIPole Corporate Server Software License Agreement!
Please, choose one of the following by pressing a letter on your keyboard:
A(ccept license) or R(ead license) or C(ancel)

Нажимаем А и вводим пароли для администартора и администратора медиасервера

Init with admin login admin and relay server login radmin
Enter new admin password:
Repeat new admin password:
Enter relay server password:
Repeat relay server password:
Initialize server database
Admin login: <admin_login>
Relay server login: <relay_server_login>
Domain: example.com
Database name: vipole_server
Success

=============
Примечание: Если вы решили проинициализировать базу заново, необходимо запустить
программу mongo, указав в качестве параметра имя базы, например:

# mongo <dbname>
db.dropDatabase();
exit


И далее вновь инициализировать БД
#mongo /etc/vipole/initdb.js
=============


3. Генерация сертификатов


Для упрощения редактирования файлов конфигурации, перейдите в папку /etc/vipole
# cd /etc/vipole

Сгенерируем сертификат сервера, используя OpenSSL:

3.1. Сгенерируем ключ для сервера

/etc/vipole# openssl genrsa -des3 -out cakey.pk 3072

На запрос «Enter pass phrase for» придумайте и введите пароль. Он в дальнейшем будет использоваться при конфигурировании сервера VIPole.

3.2. Сгенерируйте запрос сертификата:

/etc/vipole# openssl req -new -key cakey.pk -out server.csr

На запрос «Enter pass phrase for» введите пароль из п.3.1.
(параметры указаны для примера)
==============================================================
Enter pass phrase for cakey.pk:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:RUSSIAN
Locality Name (eg, city) []:Moscow
Organization Name (eg, company) [Internet Widgits Pty Ltd]:VIPOLE TEST COMPANY
Organizational Unit Name (eg, section) []:IT DEPATMENT
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:email@email.com


 Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

/etc/vipole#
==============================================================

3.3. На VIPole Evaluation Server допустимо использование самоподписаных сертификатов:


/etc/vipole# openssl x509 -req -days 3650 -in server.csr -signkey cakey.pk -out cacert.pk


На запрос «Enter pass phrase for» введите пароль из п.3.1. 


4. Конфигурация файлов сервера и медиасервера


4.1. Конфигурация файла сервера /etc/vipole/server.config
Укажем в файле конфигураций сгенерированные ключи.
Нужно прописывать полные пути к сертификату и приватному ключу, а также пароль приватного ключа. Приватный ключ сервера в формате PEM, полученный в п.3.1

private-key-file = /etc/vipole/cakey.pk

Пароль для приватного ключа из п.3.1

private-key-file-passphrase = secret_passphrase

Сертификат в формате PEM, полученый в п.3.3

certificate-chain-file = /etc/vipole/cacert.pk

Параметры домена, базы данных:

domain = example.com
dbname = vipole_server


Так же укажем IP адрес, на котором сервер VIPole будет принимать подключения. Адрес 0.0.0.0 означает «все интерфейсы». Можно так же указать конкретный IP-адрес внешнего интерфейса сервера Debian.

listen-address = 0.0.0.0

Обычно это адрес внешнего сетевого интерфейса сервера Debian. В случае, если Вы установили сервер за NAT-ом и используете проброс портов (port forwarding), в качестве external-listen-address следует указывать внешний адрес NAT’а.


4.2. Конфигурация файла медиасервера /etc/vipole/relay.config
В нём необходимо указать логин и пароль учетной записи медиасервера, внешний IP-адрес и полный путь к сертификату сервера.
Внешний IP-адрес, это адрес к которому будут подключаться клиенты VIPole.
external-listen-address=192.168.1.80 # пример

Логин для подключения релей сервера к серверу VIPole. Этот логин и пароль создаются в п.2 в момент инициализации БД и домена опцией --relayserver-login. Если вы используете несколько релей серверов, они должны использовать общий логин

login=relay_server_login
passwd=relay_secret_password

Ещё раз указываем домен сервера VIPole
domain=example.com

Полный путь к сертификату, полученный в п 3.3
certificate=/etc/vipole/cacert.pk


5. Тестирование и запуск VIPole evaluation server


Тестирование VIPole Server:
Сначала выполните команду, чтобы убедиться, что в файле конфигурации нет ошибок :

# vipole-server --license-file <путь к файлу с evaluation лицензией> --config /etc/vipole/server.config

Если в течение 30 секунд не появилось приглашение командной строки, значит сервер успешно стартовал.  Прервите его работу, нажав CTRL+C.

Запустите сервер командой:
# vipole-server --license-file <путь к файлу с evaluation лицензией> --config /etc/vipole/server.config &

Тестирование relay server:

# vipole-relay --config /etc/vipole/relay.config

Если в течение 30 секунд не появилось приглашение командной строки, значит сервер успешно стартовал.  Прервите его работу, нажав CTRL+C.

Запуск relay server:
# vipole-relay --config /etc/vipole/relay.config &