Содержание

Внимание! Данная инструкция рассматривает установку X-Road версии 7.2.2. Если Вы устанавливаете сервер безопасности с нуля, то строго рекомендуется устанавливать эту версию и выше.
Внимание! Согласно пункту 3 ст. 10 главы 3 и ст. 36 главы 6 Требований к взаимодействию информационных систем в системе межведомственного электронного взаимодействия «Түндүк», участник обязан минимум 3 года обеспечить хранение лог-файлов. В связи с этим рекомендуется периодично производить резервную копию содержимого в директории /var/lib/xroad/ сервера безопасности в другое дисковое хранилище. После резервного копирования можно удалить старые файлы из директории /var/lib/xroad/ за определенный период, если дисковое пространство заполнилось и нет возможности увеличить его.
Все команды выполняются от пользователя root

Пошаговая инструкция по установке сервера безопасности Тундук

1 Введение

Целевой аудиторией руководства по установке являются системные администраторы Сервера безопасности Тундук ответственные за установку и сопровождение программного обеспечения X-Road. Документ предназначен для читателей с умеренными знаниями администрирования Linux серверов и компьютерных сетей.

2 Установка

2.1 Поддерживаемые платформы

Сервер Безопасности работает под управлением операционной системы Ubuntu Server 20.04 Long-Term Support (LTS) на 64 разрядной платформе. Дистрибутив Сервера Безопасности распространяется в пакетах формата .deb через официальное хранилище которое расположено по адресу https://deb.tunduk.kg

Программное обеспечение может быть развернуто как на физическом, так и на виртуализированном оборудовании.

2.2 Справочные данные

Внимание! Рекомендуется следовать инструкции и ставить на Ubuntu20.04 пакеты X-Road 7.2.2.
Ref Explanation
1.0 Ubuntu 20.04, 64-bit 4 GB RAM, 100 GB free disk space Минимальные требования
1.1 https://deb.tunduk.kg Хранилище пакетов X-Road
1.2 https://deb.tunduk.kg/key.pub GPG ключ хранилища
1.3 Имя учетной записи в интерфейсе пользователя
1.4 TCP 5500 Порт входящих соединений (Из внешней сети к Серверу Безопасности)
Обмен сообщениями между Серверами Безопасности
TCP 5577 Порт входящих соединений (Из внешней сети к Серверу Безопасности)
Запрос ответов OCSP между серверами безопасности
TCP 2080 Порт входящих соединений (Из локальной сети к Серверу Безопасности)
Обмен сообщениями между Сервером Безопасности и демоном мониторинга оперативных данных (по умолчанию - localhost)
TCP 9011 Порт входящих соединений (Из локальной сети к Серверу Безопасности)
демон мониторинга оперативных данных - JMX listening port
1.5 TCP 5500 Порт исходящих соединений (От Сервера безопасности во внешнюю сеть)
Обмен сообщениями между Серверами Безопасности
TCP 5577 Порт исходящих соединений (От Сервера безопасности во внешнюю сеть)
Запрос ответов OCSP между серверами безопасности
TCP 4001 Порт исходящих соединений (От Сервера безопасности во внешнюю сеть)
Связь с центральным сервером
TCP 80 Порт исходящих соединений (От Сервера безопасности во внешнюю сеть)
Получение глобальной конфигурации
TCP 62301,62302 Порт исходящих соединений (От Сервера безопасности во внешнюю сеть)
порты для OCSP и time-stamping сервисов удостоверяющего центра
1.6 TCP 4000 Интерфейс пользователя (внутренняя сеть)
1.7 TCP 80 Точка доступа информационной системы (в локальной сети)
Соединения от информационной системы
TCP 443 Точка доступа информационной системы (в локальной сети)
Соединения от информационной системы
1.8 Внутренний IP адрес(а) и имя(имена) хоста(ов)
1.9 Публичный адрес Сервера Безопасности, NAT адрес
1.10 <по умолчанию, IP адреса и имена сервера включены в отличительное имя сертификата (DN) поле> Информация о TLS сертификате интерфейса пользователя
1.11 <по умолчанию, IP адреса и имена сервера включены в отличительное имя сертификата (DN) поле> Информация о TLS сертификате сервера
1.12 TCP 2552 Порт коммуникации между процессами xroad-proxy и xroad-monitoring

2.3 Требования к серверу Безопасности

Минимальные рекомендации к аппаратному обеспечению:

  1. 64-x разрядный Intel dual-core, AMD или совместимый процессор; настоятельно рекомендуется наличие поддержки AES инструкций;
  2. 4 GB оперативной памяти (Для нормального функционирования сервера в промышленной эксплуатации рекомендуется от 4-х гигабайт и более);
  3. 100 Mbps сетевой интерфейс ;
  4. USB порты для использования аппаратных токенов (опционально, если будете использовать HWS)

Требования к по и конфигурации:

2.4 Подготовка операционной системы

Перед началом установки произвести предварительную настройку системы

echo "LC_ALL=en_US.UTF-8" | sudo tee -a /etc/environment
sudo adduser <local_user> --shell=/usr/sbin/nologin --no-create-home
wget -qO - https://deb.tunduk.kg/key.pub | sudo apt-key add - 
echo "deb https://deb.tunduk.kg/ubuntu20.04-7.2.2 /" |  sudo tee -a /etc/apt/sources.list.d/xroad.list
sudo apt-get update && sudo apt-get -y full-upgrade

Заметка: Ниже производятся общие настройки межсетевого экрана, дополнительные правила требуются для настройки связи сервера безопасности с адаптером и предоставления административного доступа.

sudo ufw default deny outgoing
sudo ufw default deny incoming
sudo ufw allow out 53/tcp
sudo ufw allow out 53/udp
sudo ufw allow in 5500/tcp
sudo ufw allow out 5500/tcp
sudo ufw allow in 5577/tcp
sudo ufw allow out 5577/tcp
sudo ufw allow out 4001/tcp
sudo ufw allow out 80/tcp
sudo ufw allow out 443/tcp
sudo ufw allow out 62301/tcp
sudo ufw allow out 62302/tcp
sudo ufw allow out 123/udp

Включение фаерволла

Заметка: если вы управляете сервером посредством ssh сессия может прерваться

sudo ufw enable

Разрешение удаленного подключения к интерфейсу администратора сервера безопасности.

sudo ufw allow from INTERNAL_IP to any port 4000 proto tcp
Опционально, добавьте подключение по ssh к серверу если такое требуется.

2.5 Установка программного обеспечения сервера безопасности

sudo apt-get install net-tools xroad-securityserver xroad-addon-opmonitoring xroad-addon-hwtokens libccid pcscd pcsc-tools unzip 
xroad-addon-hwtokens, libccid, pcscd, pcsc-tools - эти пакеты предоставляют PC/SC-драйвер для считывателей смарт-карт, подключаемых через USB, и различные инструменты командной строки для взаимодействия со смарт-картами. Не устанавливайте эти пакеты, если не планируете использовать RuToken.

При первой установке пакетов система запросит следующую информацию.

Этот сертификат используется для защиты сетевого соединения интерфейса пользователя. В качестве значений по умолчанию предлагаются имя хоста и IP-адреса, обнаруженные в операционной системе.
/CN=server.domain.tld
IP:1.2.3.4,IP:4.3.2.1,DNS:servername,DNS:servername2.domain.tld
/CN=server.domain.tld
IP:1.2.3.4,IP:4.3.2.1,DNS:servername,DNS:servername2.domain.tld

2.6 Установить Поддержку аппаратных токенов (Smart-card, USB Token, Hardware Security Module)

ВНИМАНИЕ! Данный раздел является ОПЦИОНАЛЬНЫМ. Можно использовать только SoftToken, и на нём выпустить дополнительно LABEL SIGN.
В данном разделе инструкция описана относительно использования Rutoken ЭЦП 2.0 Для высоконагруженных и промышленных масштабов требуется использовать HSM оборудование так как USB токены имеют ограниченные возможности и могут со временем не справляться с высокий нагрузкой.
 sudo apt-get install opensc-pkcs11 opensc 

добавить в конец файла /etc/xroad/devices.ini следующие строки выполнив команду

echo "[Rutoken]
library = /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so"  | sudo tee -a  /etc/xroad/devices.ini

Отформатировать токен

sudo pkcs15-init --erase-card -p rutoken_ecp

Задать Пин код администратора токена. (Сгенерируйте свой пин код)

sudo pkcs15-init --create-pkcs15 --so-pin "Sheich0e" --so-puk ""

Задать пин код пользователя токена используя пин администратора. (Сгенерируйте свой пин код)

sudo pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin "Xo7ahkup" --puk "" --so-pin "Sheich0e" --finalize
Важно: Надежно сохранить сгенерированные ПИНы Если пин каким-то образом будет утерян, придётся перевыпускать сертификаты и покупать новый RuToken, если таковой имеется.
Установка сервера безопасности завершена

Далее необходимо перезагрузить систему

sudo reboot

2.7 Проверка сервера после установки

Установка выполнена успешно, если запущены системные службы и пользовательский интерфейс отвечает. чтобы убедится что сервисы X-Road находятся в запущенном состоянии выполните в консоли (далее следует пример вывода):

sudo systemctl list-units "xroad*"
  UNIT                           LOAD   ACTIVE SUB     DESCRIPTION               
  xroad-addon-messagelog.service loaded active running X-Road Messagelog Archiver
  xroad-base.service             loaded active exited  X-Road initialization     
  xroad-confclient.service       loaded active running X-Road confclient         
  xroad-monitor.service          loaded active running X-Road Monitor            
  xroad-opmonitor.service        loaded active running X-Road opmonitor daemon   
  xroad-proxy-ui-api.service     loaded active running X-Road Proxy UI REST API  
  xroad-proxy.service            loaded active running X-Road Proxy              
  xroad-signer.service           loaded active running X-Road signer             

Убедитесь что интерфейс пользователя сервера безопасности https://SECURITYSERVER:4000/ может быть открыт в веб браузере (смотрите пункт: 1.8; 1.6). Для входа в интерфейс воспользуйтесь учетной записью пользователя, логин которого был выбран во время установки (смотрите пункт: 1.3). Для запуска Веб интерфейса требуется некоторое время и вы можете увидеть ошибку «502 Bad Gateway».

3 Первоначальная настройка сервера безопасности

Во время первоначальной настройки сервера безопасности задаются параметры о принадлежности сервера безопасности к конкретному экземпляру X-Road и пин код SoftToken.

Важно: Надежно сохранить сгенерированные ПИНы Если пин каким-то образом будет утерян, придётся перевыпускать сертификаты.

3.1 Предпосылки

Настройка сервера безопасности предполагает, что владелец сервера безопасности является членом экземпляра X-Road.

3.2 Справочные данные

ВНИМАНИЕ : позиции 2.1 - 2.3 в справочных данных предоставляются владельцу сервера безопасности администраторами центральных компонентов X-Road.
Код сервера безопасности (server code - только ЛАТИНИЦЕЙ!) и пин код программного токена (software token’s PIN) будут заданы человеком производящим установку сервера безопасности!
2.1 Получить у администраторов СМЭВ Тундук Файл привязки глобальной конфигурации
2.2 GOV - Правительственный,COM - Коммерческий Класс участника владельца сервера безопасности
2.3 Получить от администраторов СМЭВ ТундукКод участника владельца сервера безопасности - Membercode
2.4 <Задать идентификационное имя сервера безопасности ЛАТИНИЦЕЙ>Код сервера безопасности (Security server's code). Имя сервера безопасности так или иначе должен содержать название организации и быть на латинице!
2.5 <Задать ПИН для программного токена, минимум 15 символов с буквами верхнего и нижнего регистра, цифрами, знаками>PIN-код программного токена (token’s PIN)
Если код сервера безопасности будет задан кириллицей. В таком случае подписанные сертификат принят не будет!

3.3 Настройка

Чтобы выполнить первоначальную настройку, перейдите по адресу https://SECURITYSERVER:4000

с помощью веб браузера (смотрите пункт: 1.8; 1.6). Чтобы войти, используйте имя пользователя заданного во время установки (смотрите пункт: 1.3).

При первом входе в систему система запрашивает следующую информацию.. Файл привязки глобальной конфигурации(The global configuration anchor file) (смотрите пункт: 2.1). Проверьте значение хеша привязки с опубликованным значением. Файл привязки можно получить у администратора СМЭВ «Тундук»

Если конфигурация успешно загружена, система запрашивает следующую информацию.

Если класс участника и код участника правильно введены, система отображает имя владельца сервера безопасности, зарегистрированное на центральном сервере X-Road.

3.4 Настройка службы времени

Вверху в разделе SETTINGS ⇒ System Parameters ⇒ Timestamping Services ⇒ ADD Выбираем TSP

3.5 Генерация ключей и запросов на подписание сертификатов

Внимание. Создание ключей и генерация сертификатов доступна только с версии 7.2.2 и выше. Если Вы сгенерируете сертификаты версией ниже, они работать не будут!

После после того как начальная конфигурация сервера была задана необходимо ввести пины программного и аппаратного токенов (если устанавливали аппаратный токен).

Вверху в разделе Keys and Certificates заходим в нужный нам Token и нажимаем Add key.

Создаём 2 ключа AUTH и SIGN.

Для Label AUTH

В графу Country Code (C) вводим KG, далее жмём на кнопку Generate CSR, после чего DONE

Для Label SIGN

Если устанавливали аппаратный токен, то данный ключ создаем на нём. Если нет, то просто добавляем второй ключ на SoftToken.

В графу Country Code (C) вводим KG, далее жмём на кнопку Generate CSR, после чего DONE
Затем необходимо отправить два запроса (скачанных файла auth_csr_*.der и sign_csr_*.der) на подписание в Удостоверяющий Центр (на почту kuc@infocom.kg) и дождаться сертификатов от удостоверяющего центра.
Внимательно прочитайте все условия и заключите соглашение с компанией инфоком - https://infocom.kg/ru/pki/
Совет! Чтобы каждый раз после перезагрузки сервера не вводить SoftToken Pin - рекомендуется к прочтению данная статья - Autologin on SoftToken

3.8 Импорт сертификатов и Регистрация

После получения от УЦ сертификатов их необходимо импортировать нажав на кнопку Import cert. Импортировать необходимо оба (2 auth и sign) сертификата на странице keys and certificates. Также рядом с сертификатом auth.cer необходимо нажать кнопку «register» после чего ввести dns-имя сервера или внешний айпи адрес. Статус обновится с «saved» на «registration in progress».

Теперь когда горит стату «registration in progress» необходимо передать аутентификационный сертификат (auth.cer) сервера Администраторам центра электронного взаимодействия ГП Тундук.

И дождаться подтверждения регистрации в системе. После того, как Центр электронного взаимодействия одобрит вашу регистрацию в системе установка сервера безопасности завершена.

После активации сертификатов со стороны ГП Тундук, не забудьте активировать этот сертификат у себя на стороне. Нажать на сертификат, далее кнопку «Activate»

Следующий важный шаг - регистрация подсистемы. Регистрация клиента сервера безопасности
Совет! Если OSCP статус сертификата не изменился на «Good» и стоит на статусе «Unknown» - перезагрузите службы X-Road (systemctl restart xroad-proxy), либо пройдите в diagnostics и посмотрите когда будет следующее обновление OSCP статуса, по умолчанию без запросов - раз в 48 минут.

Автор Даниил Горбенко