КРОС:Рекомендации по эксплуатации сервера: различия между версиями

Материал из Юпитер-8
Нет описания правки
 
(не показано 10 промежуточных версий 1 участника)
Строка 41: Строка 41:
=Рекомендации по безопасности=
=Рекомендации по безопасности=
# Для исключения несанкционированного доступа к серверу КРОС, необходимо, в обязательном порядке, изменить '''все''' пароли, а так же задавать сложные пароли новым пользователям.
# Для исключения несанкционированного доступа к серверу КРОС, необходимо, в обязательном порядке, изменить '''все''' пароли, а так же задавать сложные пароли новым пользователям.
# Для исключения внешнего воздействия на комплекс можно использовать встроенный в ОС Astra [https://wiki.astralinux.ru/pages/viewpage.action?pageId=27362474 межсетевой экран]. В нем можно прописать конкретные IP адреса с которых разрешен доступ к серверу КРОС. Для настройки правил в графическом режиме можно воспользоваться утилитой '''[https://wiki.astralinux.ru/pages/viewpage.action?pageId=71835677#id-Управлениенастройкамиизкоманднойстроки-Спомощьюufw gufw]'''. Для ОС Windows можно использовать встроенный Брэндмауер.
# Для исключения внешнего воздействия на комплекс можно использовать встроенный в ОС Astra [https://wiki.astralinux.ru/pages/viewpage.action?pageId=27362474 межсетевой экран]. В нем можно прописать конкретные IP адреса с которых разрешен доступ к серверу КРОС. Для настройки правил в графическом режиме можно воспользоваться утилитой '''[https://wiki.astralinux.ru/pages/viewpage.action?pageId=71835677#id-Управлениенастройкамиизкоманднойстроки-Спомощьюufw gufw]'''. Для ОС Windows можно использовать встроенный Брандмауэр.
# Для безопасного доступа из внешней сети рекомендуется создать свою защищенную сеть на основе [https://wiki.astralinux.ru/display/doc/OpenVPN OpenVPN для ОС Astra] или для Windows.
# Для безопасного доступа из внешней сети рекомендуется создать свою защищенную сеть на основе [https://wiki.astralinux.ru/display/doc/OpenVPN OpenVPN для ОС Astra] или для Windows.
# Возможен вариант с настройкой SSL соединения. Для настройки соединений с сервером КРОС при использованиии SSL сертификата, необходимо выпустить сертификат формата jks ("java key storage"). По умолчанию файл с сертификатом располагается в '''/usr/local/smpo-server/conf/''' и называется '''''smpo-keystore.jks'''''. Его необходимо заменить на свой, так как данный ключ связан с доменом jupiter8.ru. Параметры доступа к сертификату настраиваются пользователем ''superadmin'' в разделе '''Администрирование''' -> '''Безопасность''' -> вкладка '''"Сертификаты"'''.
# Возможен вариант с настройкой SSL соединения. Для настройки соединений с сервером КРОС при использовании SSL сертификата, необходимо выпустить сертификат формата jks ("java key storage"). По умолчанию файл с сертификатом располагается в '''/usr/local/smpo-server/conf/''' и называется '''''smpo-keystore.jks'''''. Его необходимо заменить на свой, так как данный ключ связан с доменом jupiter8.ru. Параметры доступа к сертификату настраиваются пользователем ''superadmin'' в разделе '''Администрирование''' -> '''Безопасность''' -> вкладка '''"Сертификаты"'''.
==Создание самоподписанного сертификата==
===Создание самоподписанного сертификата===
В Java есть своя утилита для создания самоподписанного сертификата - '''keytool'''.
В Java есть своя утилита для создания самоподписанного сертификата - '''keytool'''.<br>
Вначале необходимо создать хранилище сертификатов и ключ сертификата:
1. Вначале необходимо создать хранилище сертификатов и ключ сертификата:
  '''sudo keytool -genkey -alias smpo-server -keyalg RSA -keypass password -storepass password -keystore "/usr/local/smpo-server/conf/smpo-key.jks" -dname "CN="", OU="", O="", L="", ST="", C=""" -validity 3650''', где
  '''sudo keytool -genkey -alias smpo-server -keyalg RSA -keypass password -storepass password -keystore "/usr/local/smpo-server/conf/smpo-keystore.jks" -dname "CN="", OU="", O="", L="", ST="", C=""" -validity 3650'''
, где
: '''-genkey''' - указывает, что создается новое хранилище и ключ. При замене ключа, необходимо заменить на '''genkeypair'''
: '''-genkey''' - указывает, что создается новое хранилище и ключ. При замене ключа, необходимо заменить на '''genkeypair'''
: '''-alias''' - псевдоним наименования сервера. Можно указать IP-адрес сервера
: '''-alias''' - псевдоним наименования сервера. Можно указать IP-адрес сервера
Строка 53: Строка 54:
: '''-keypass''' - пароль ключа сертификата(указывается в настройках КРОС)
: '''-keypass''' - пароль ключа сертификата(указывается в настройках КРОС)
: '''-storepass''' - пароль доступа к хранилищу сертификатов(указывается в настройках КРОС)
: '''-storepass''' - пароль доступа к хранилищу сертификатов(указывается в настройках КРОС)
: '''-keystore''' - путь хранилища сертификатов. По умолчанию, КРОС обращается к файлу '''smpo-keystore.jks''', который расположен в '''/usr/local/smpo-server/conf/'''. После генерации своего сертификата, название файла хранилища надо указать в настройке "Атминистрирование"→"Безопасность" вкладка "Сертификаты".
: '''-keystore''' - путь хранилища сертификатов. По умолчанию, КРОС обращается к файлу '''smpo-keystore.jks''', который расположен в '''/usr/local/smpo-server/conf/'''. Название файла-хранилища можно указать своё.
: '''-dname'' - параметры принадлежности сертификата
: '''-dname''' - параметры принадлежности сертификата
::'''CN=''' - имя владельца
::'''CN=''' - имя владельца
::'''OU=''' - подразделение владельца
::'''OU=''' - подразделение владельца
Строка 61: Строка 62:
::'''ST=''' - Республика, край, область, район.  
::'''ST=''' - Республика, край, область, район.  
::'''C=''' - Страна. Для России - '''RU'''
::'''C=''' - Страна. Для России - '''RU'''
: '''-validity'' - срок действия сертификата. По умолчанию 3(три месяца), можно указать любое количество дней - 1 год -365, 10 лет - 3650 и т.д. и т.п.  
: '''-validity''' - срок действия сертификата. По умолчанию 3(три месяца), можно указать любое количество дней - 1 год - 365, 10 лет - 3650 и т.д. и т.п.  
2.  После генерации своего сертификата, название файла хранилища надо указать в настройке "Администрирование"→"Безопасность" вкладка "Сертификаты".<br>
3. После внесения настроек надо перезагрузить сервер КРОС. Для подключения в адресной строке браузера набрать
: https://адрес.сервера.юпитер.крос:9800
Необходимо подтвердить исключение сертификата. Порт подключения и разрешение работать по HTTPS протоколу указывается в настройке
"Администрирование"→"Система" вкладка "HTTP Сервер".<br>
<br clear="both" />
[[КРОС:Рекомендации по эксплуатации сервера#top|В начало статьи]]
===Создание хранилища из подписанных сертификатов===
Скорее всего данный механизм может не сработать в связи с тем, что не будет совпадать алгоритм шифрования выданного сертификата и алгоритма с которым работает КРОС.<br>
1. Импортирование корневого или промежуточного сертификата<br>
sudo keytool -import -trustcacerts -alias root -file CA.crt -keystore keystore.jks -storepass password
2. Импортирование подписанного сертификата пользователя в существующее хранилище<br>
sudo keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore keystore.jks -storepass password
<br clear="both" />
<br clear="both" />
[[КРОС:Рекомендации по эксплуатации сервера#top|В начало статьи]]
[[КРОС:Рекомендации по эксплуатации сервера#top|В начало статьи]]
Строка 101: Строка 115:
- пересоздать кластер — в том случае если после восстановления PostgreSQL все равно не загрузился, воспользовавшись командой initdb -D </путь/к/кластеру>. После чего внести его в файл конфигурации PostgreSQL.<br>
- пересоздать кластер — в том случае если после восстановления PostgreSQL все равно не загрузился, воспользовавшись командой initdb -D </путь/к/кластеру>. После чего внести его в файл конфигурации PostgreSQL.<br>
- запустить PostgreSQL
- запустить PostgreSQL
- создать пользвателя базы данных: '''sudo -u postgres psql -c "ALTER USER 'postgres' WITH ENCRYPTED PASSWORD 'postgres';"'''<br>
- создать пользователя базы данных: '''sudo -u postgres psql -c "ALTER USER 'postgres' WITH ENCRYPTED PASSWORD 'postgres';"'''<br>
- создать пустую базу данных КРОС: '''psql -U postgres -c "CREATE DATABASE jupiter;"'''<br>
- создать пустую базу данных КРОС: '''psql -U postgres -c "CREATE DATABASE jupiter;"'''<br>
- запустить smpo-server<br>
- запустить smpo-server<br>
Строка 115: Строка 129:
- при необходимости изменить сетевые настройки сервера и активировать их<br>
- при необходимости изменить сетевые настройки сервера и активировать их<br>
- проверить работу комплекса. В протоколе событий приборов должна появиться информация<br>
- проверить работу комплекса. В протоколе событий приборов должна появиться информация<br>
После восстановления работоспособности основного сервера. Необходимо восстановить на нём данные с резвного сервера, проверить настройки трансляций и активировать их.<br>
После восстановления работоспособности основного сервера. Необходимо восстановить на нём данные с резервного сервера, проверить настройки трансляций и активировать их.<br>
Также можно перевести резервный сервер в режим основного, проверить настройки трансляций и активировать их. Для перевода основного сервера в режим основного необходимо войти в режим администрирования охранной организации и  
Также можно перевести резервный сервер в режим основного, проверить настройки трансляций и активировать их. Для перевода основного сервера в режим основного необходимо войти в режим администрирования охранной организации и  



Текущая версия от 10:29, 23 июля 2024



Основные рекомендации

  1. Выполнить диагностику и настройку локальной сети на предмет стабильности соединения между компьютерами:
    • Расписать общую топологию сети (количество роутеров, зависимости между ними, пароли доступа к роутерам)
    • Обновить роутеры до последних версий прошивок
    • Настроить доступность портов согласно инструкции по Настройке портов из справочного руководства.
  2. Проводить проверки жёсткого диска на предмет наличия ошибок чтения/записи, мониторинг “здоровья” жёсткого диска, следить за наличием битых секторов с помощью специализированных программ CrystalDiskInfo и Victoria HDD/SSD. Проверять жёсткие диски раз в месяц с занесением в журнал проверок.
  3. Своевременно делать резервные копии не только сервера КРОС, но и всей операционной системы в целом:
    • Резервные копии сервера КРОС, ключей лицензии и конфигурационных файлов делать раз в сутки
    • Резервные копии операционной системы делать минимум один раз в месяц.
    • Хранить резервные копии сервера КРОС на диске куда не установлена операционная система, чтобы в случае сбоя операционной системы не потерять все данные вместе с системой.
  4. Проверить компьютер с сервером КРОС на соответствие системным требованиям:
    • Процессор - 8 ядер
    • Оперативная память - 16 Гб
    • Жёсткий диск SSD 250Гб (операционная система, база данных PostgreSQL, КРОС)
    • Жёсткий диск HDD 1000Гб (логи сервера КРОС и бэкапы)
    • Пропускная способность от 5 Мбит/сек
  5. Оборудовать компьютер с сервером КРОС источником бесперебойного питания (при аварийных остановках операционной системы страдает в первую очередь жёсткий диск и база данных)
  6. Вести логирование действий с сервером для упрощения оказания технической поддержки в случае инцидентов:
    • Обновления операционной системы
    • Обновления сервера КРОС
    • Замена комплектующих компьютера
    • Логирование действий приведших к аварии
  7. Продумать систему резервного/подменного сервера на случай полного выхода из строя основного оборудования:
    • Запасной компьютер / запасные комплектующие для возможности быстрой замены вышедших из строя
    • Использовать систему зеркалирования данных, являющуюся частью сервера КРОС.
  8. Обеспечить сохранность логинов и паролей для доступа на сервер КРОС и в операционную систему. На ПЦО всегда должен присутствовать сотрудник, знающий пароли от операционной системы, сервера КРОС и роутеров. Хранить пароли в секретных конвертах в сейфе с возможностью доступа. Это необходимо для оказания оперативной помощи сотрудниками технической поддержки сервера КРОС.
  9. При настройке сетевых подключений протокола IPv4 используйте метод "Вручную", проверьте корректность введенных данных, таких как IP адрес, маска сети, шлюз, DNS сервер.
  10. Проверить Список приборов поддерживающих функционал удаленного конфигурирования и обновления ПО.


Обязательно поменяйте все пароли. Новый пароль должен содержать прописные, заглавные буквы, числа и желательно спецсимволы, кроме двоеточия ":".

В начало статьи

Рекомендации по безопасности

  1. Для исключения несанкционированного доступа к серверу КРОС, необходимо, в обязательном порядке, изменить все пароли, а так же задавать сложные пароли новым пользователям.
  2. Для исключения внешнего воздействия на комплекс можно использовать встроенный в ОС Astra межсетевой экран. В нем можно прописать конкретные IP адреса с которых разрешен доступ к серверу КРОС. Для настройки правил в графическом режиме можно воспользоваться утилитой gufw. Для ОС Windows можно использовать встроенный Брандмауэр.
  3. Для безопасного доступа из внешней сети рекомендуется создать свою защищенную сеть на основе OpenVPN для ОС Astra или для Windows.
  4. Возможен вариант с настройкой SSL соединения. Для настройки соединений с сервером КРОС при использовании SSL сертификата, необходимо выпустить сертификат формата jks ("java key storage"). По умолчанию файл с сертификатом располагается в /usr/local/smpo-server/conf/ и называется smpo-keystore.jks. Его необходимо заменить на свой, так как данный ключ связан с доменом jupiter8.ru. Параметры доступа к сертификату настраиваются пользователем superadmin в разделе Администрирование -> Безопасность -> вкладка "Сертификаты".

Создание самоподписанного сертификата

В Java есть своя утилита для создания самоподписанного сертификата - keytool.
1. Вначале необходимо создать хранилище сертификатов и ключ сертификата:

sudo keytool -genkey -alias smpo-server -keyalg RSA -keypass password -storepass password -keystore "/usr/local/smpo-server/conf/smpo-keystore.jks" -dname "CN="", OU="", O="", L="", ST="", C=""" -validity 3650

, где

-genkey - указывает, что создается новое хранилище и ключ. При замене ключа, необходимо заменить на genkeypair
-alias - псевдоним наименования сервера. Можно указать IP-адрес сервера
-keyalg RSA - алгоритм, по которому создаётся сертификат
-keypass - пароль ключа сертификата(указывается в настройках КРОС)
-storepass - пароль доступа к хранилищу сертификатов(указывается в настройках КРОС)
-keystore - путь хранилища сертификатов. По умолчанию, КРОС обращается к файлу smpo-keystore.jks, который расположен в /usr/local/smpo-server/conf/. Название файла-хранилища можно указать своё.
-dname - параметры принадлежности сертификата
CN= - имя владельца
OU= - подразделение владельца
O= - организация владельца
L= - Город, месторасположение
ST= - Республика, край, область, район.
C= - Страна. Для России - RU
-validity - срок действия сертификата. По умолчанию 3(три месяца), можно указать любое количество дней - 1 год - 365, 10 лет - 3650 и т.д. и т.п.

2. После генерации своего сертификата, название файла хранилища надо указать в настройке "Администрирование"→"Безопасность" вкладка "Сертификаты".
3. После внесения настроек надо перезагрузить сервер КРОС. Для подключения в адресной строке браузера набрать

https://адрес.сервера.юпитер.крос:9800

Необходимо подтвердить исключение сертификата. Порт подключения и разрешение работать по HTTPS протоколу указывается в настройке "Администрирование"→"Система" вкладка "HTTP Сервер".

В начало статьи

Создание хранилища из подписанных сертификатов

Скорее всего данный механизм может не сработать в связи с тем, что не будет совпадать алгоритм шифрования выданного сертификата и алгоритма с которым работает КРОС.
1. Импортирование корневого или промежуточного сертификата

sudo keytool -import -trustcacerts -alias root -file CA.crt -keystore keystore.jks -storepass password

2. Импортирование подписанного сертификата пользователя в существующее хранилище

sudo keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore keystore.jks -storepass password


В начало статьи

Рекомендации по последовательности действий в случае отсутствия доступа к серверу КРОС

В случае если данные рекомендации вызывают затруднение в понимании или выполнении просьба связаться с технической поддержкой тел. 8-800-250-87-27 доб. 8

1. Необходимо убедится, что сервер КРОС включен. Проверить подключено ли питание (~220V) и запущена ли операционная система.

2. Проверить доступ к компьютеру КРОС из локальной сети, используя команды:

ping, telnet, traceroute и т.п. В случае отсутствия отклика проверить состояние локальной сети, её конфигурацию и маршрутизацию.

3. Проверить, работает ли программное обеспечение.
Для проверки можно воспользоваться любым менеджером задач, а так же в терминале или консоли, для проверки можно ввести команды:

- для PostgreSQL — sudo ps aux|grep postgres - Отклик должен содержать все процессы работы PostgreSQL, в том числе и информацию о подключении к базам данных.
- для КРОС — sudo ps aux|grep smpo-server - Отклик отображает информацию о процессах КРОС — wrapper и smpo-server

3.1. Выполнить перезагрузку программного обеспечения:

sudo systemctl restart postgresql
sudo service smpo-server restart

4. В случае отсутствия какой-либо информации о процессах, либо в случае отсутствия информации о подключении к базе данных КРОС рекомендуется выполнить следующие действия:

- выполнить команду остановки процесса КРОС: sudo service smpo-server stop
- проверить корректность выполнения операции командой: sudo ps aux|grep smpo-server. Если процессы продолжают выполняться, необходимо прервать их командой: kill.
- проверить наличие файлов pid и smpo.active в каталоге /usr/local/smpo-server/conf и удалить их, если они присутствуют.

4.1. Перезагрузить службу управления PostgreSQL — sudo systemctl restart postgresql
Проверить запуск. В случае отсутствия работающих процессов, необходимо изучить файлы логирования и исключить ошибки запуска.

Рекомендуется сделать дополнительную копию базы данных, например, pg_dump -U postgres -d jupiter > /home/elesta/jupiter.sql
4.1.1 Если проблема в некорректной информации базы данных КРОС, тогда можно выполнить следующие действия:

- остановить службу smpo-server
- остановить PostgreSQL
- пересоздать кластер — в том случае если после восстановления PostgreSQL все равно не загрузился, воспользовавшись командой initdb -D </путь/к/кластеру>. После чего внести его в файл конфигурации PostgreSQL.
- запустить PostgreSQL - создать пользователя базы данных: sudo -u postgres psql -c "ALTER USER 'postgres' WITH ENCRYPTED PASSWORD 'postgres';"
- создать пустую базу данных КРОС: psql -U postgres -c "CREATE DATABASE jupiter;"
- запустить smpo-server
- восстановить базу данных из резервной копии. Восстановление данных производится либо из КРОС пользователем superadmin, либо средствами PostgreSQL из дампа, например, psql -U postgres -d jupiter < /home/elesta/jupiter.sql
- проверить восстановленные данные

Если после этого комплекс не загрузился — связаться со службой технической поддержки для консультации и предоставить удаленный доступ для выявления ошибок.

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

- необходимо проверить включение сервера и доступность его в локальной сети
- перенести резервную копию базы данных и восстановить её на сервере. В случае использования механизма зеркалирования восстановление данных скорее всего не потребуется
- при необходимости изменить сетевые настройки сервера и активировать их
- проверить работу комплекса. В протоколе событий приборов должна появиться информация
После восстановления работоспособности основного сервера. Необходимо восстановить на нём данные с резервного сервера, проверить настройки трансляций и активировать их.
Также можно перевести резервный сервер в режим основного, проверить настройки трансляций и активировать их. Для перевода основного сервера в режим основного необходимо войти в режим администрирования охранной организации и

В начало статьи