Внимание! Данная инструкция рассматривает установку 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 Требования к серверу Безопасности ====
Минимальные рекомендации к аппаратному обеспечению: \\
* Аппаратное обеспечение сервера (материнская плата, центральный процессор, сетевые карты, системы хранения данных) должны полностью поддерживаться операционной системой Ubuntu 18.04;
- 64-x разрядный Intel dual-core, AMD или совместимый процессор; настоятельно рекомендуется наличие поддержки AES инструкций;
- 4 GB оперативной памяти (**Для нормального функционирования сервера в промышленной эксплуатации рекомендуется от 4-х гигабайт и более**);
- 100 Mbps сетевой интерфейс ;
- USB порты для использования аппаратных токенов (опционально, если будете использовать HWS)
Требования к по и конфигурации:
* При установке Ubuntu 20.04 необходимо использовать данный образ официальный образ
* Установленная и настроенная операционная система Ubuntu 20.04 LTS x86-64;
* Если сервер безопасности разделен от других сетей брандмауэром и/или NATом, необходимые сетевые соединения от и к Серверу Безопасности разрешены (справочные данные: 1.4; 1.5; 1.6; 1.7). Задействование вспомогательных сервисов необходимых для функционирования и управления операционной системой (такие как DNS, NTP и SSH) не входят в рамки данного руководства;
* Если Сервер Безопасности имеет приватный IP адрес, соответствующие правила NAT должны быть созданы на сетевом фильтре (справочные данные: 1.9).
==== 2.4 Подготовка операционной системы ====
Перед началом установки произвести предварительную настройку системы
* Глобально задать переменную окружения для установки локали системы
echo "LC_ALL=en_US.UTF-8" | sudo tee -a /etc/environment
* Cоздать административного пользователя (пункт 1.3) выполнив команду и заменив на любое другое имя
sudo adduser --shell=/usr/sbin/nologin --no-create-home
* Импортировать GPG ключ репозитория
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 Установка программного обеспечения сервера безопасности ====
* Чтобы установить программное обеспечение сервера безопасности X-Road, выполните следующие действия.
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.
=== При первой установке пакетов система запросит следующую информацию. ===
* Имя учетной записи для пользователя, которому будут предоставлены права на выполнение всех действий в пользовательском интерфейсе (смотрите пункт: 1.3).
* Уникальное имя самоподписанного TLS сертификата (Subject DN) и его альтернативные имена (subjectAltName) (смотрите пункт: 1.8; 1.10).
Этот сертификат используется для защиты сетевого соединения интерфейса пользователя. В качестве значений по умолчанию предлагаются имя хоста и IP-адреса, обнаруженные в операционной системе.
* Subject DN должен вводится в следующем формате:
/CN=server.domain.tld
* Все используемые IP-адреса и имена доменов должны быть введены в качестве альтернативных имен в формате:
IP:1.2.3.4,IP:4.3.2.1,DNS:servername,DNS:servername2.domain.tld
* Уникальное имя владельца сертификата TLS, используемого для обеспечения доступа информационных систем к точке доступа HTTPS (смотрите пункт: 1,8; 1.11). В качестве значений по умолчанию предлагаются имя и IP-адреса, обнаруженные в системе.
* Subject DN должен вводится в следующем формате:
/CN=server.domain.tld
* Все используемые IP-адреса и имена доменов должны быть введены в качестве альтернативных имен в формате:
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 токены имеют ограниченные возможности и могут со временем не справляться с высокий нагрузкой.
* Для установки Rutoken ЭЦП 2.0 произведите следующие действия
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).
Проверьте значение хеша привязки с опубликованным значением. Файл привязки можно получить у администратора СМЭВ "Тундук"
Если конфигурация успешно загружена, система запрашивает следующую информацию.
* Класс участника владельца сервера безопасности (смотрите пункт: 2.2).
* Код участника владельца сервера безопасности (смотрите пункт: 2.3).
* Код сервера безопасности (Security server code) (смотрите пункт: 2.4), который выбирается администратором сервера безопасности и который должен быть уникальным для всех серверов безопасности, принадлежащих этому экземпляру СМЭВ Тундук. Имя сервера безопасности так или иначе должен содержать название организации.
* PIN-код программного токена (software token’s PIN) (смотрите пункт: 2.5). PIN-код будет использоваться для защиты ключей, хранящихся в программном токене. PIN-код должен храниться в безопасном месте, в случае утери, PIN-кода, будет невозможно использовать или восстановить закрытые ключи находящиеся в токене.
''Если класс участника и код участника правильно введены, система отображает имя владельца сервера безопасности, зарегистрированное на центральном сервере 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===
{{ :auth.png |}}
{{ ::screenshot_from_2023-05-03_14-59-26.png?nolink |}}
В графу Country Code (C) вводим KG, далее жмём на кнопку Generate CSR, после чего DONE
===Для Label SIGN===
Если устанавливали аппаратный токен, то данный ключ создаем на нём. Если нет, то просто добавляем второй ключ на SoftToken.
{{ :signlabel.png?nolink |}}
{{ :sign2step.png?nolink |}}
{{ :signkg.png?nolink |}}
В графу Country Code (C) вводим KG, далее жмём на кнопку Generate CSR, после чего DONE
Затем необходимо отправить два запроса (скачанных файла auth_csr_*.der и sign_csr_*.der) на подписание в Удостоверяющий Центр (на почту __**kuc@infocom.kg**__) и дождаться сертификатов от удостоверяющего центра.
**Внимательно прочитайте все условия и заключите соглашение с компанией инфоком** - https://infocom.kg/ru/pki/
Совет! Чтобы каждый раз после перезагрузки сервера не вводить SoftToken Pin - рекомендуется к прочтению данная статья - [[мануал_security_server_автологин_на_softtoken| 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"
{{ :activate.png?nolink |}}
Следующий важный шаг - регистрация подсистемы. [[registration-on-security-server|Регистрация клиента сервера безопасности]]
Совет! Если OSCP статус сертификата не изменился на "Good" и стоит на статусе "Unknown" - перезагрузите службы X-Road (systemctl restart xroad-proxy), либо пройдите в diagnostics и посмотрите когда будет следующее обновление OSCP статуса, по умолчанию без запросов - раз в 48 минут.
----
Автор Даниил Горбенко