Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

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

Единый журнал может быть настроен с помощью приложений Rutoken KeyBox Event Log Proxy или Log Server


Rutoken KeyBox Event Log Proxy

Компонент Rutoken KeyBox Event Log Proxy позволяет записывать события с нескольких серверов Rutoken KeyBox в единый журнал Windows Event Log.

Rutoken KeyBox Event Log Proxy можно установить только на рабочую станцию под управлением ОС Windows.

Системные требования

Чтобы установить и настроить Rutoken KeyBox Event Log Proxy:

  1. Выполните вход на рабочую станцию с правами локального администратора.

  2. Откройте каталог Rutoken KeyBox.Server дистрибутива системы и запустите Мастер установки Rutoken KeyBox.EventLog.Proxy-<номер версии>.x64.ru-ru.msi.

  3. В Мастере установки выберите способ аутентификации в зависимости от ОС, где установлен сервер Rutoken KeyBox, и укажите необходимые настройки в файлах конфигурации:
    1. Выберите способ аутентификации Windows.

    2. По завершении установки нажмите Готово и закройте Мастер установки.

    3. Откройте файл web.config (C:\inetpub\wwwroot\keybox\eventlogproxy) в редакторе Блокнот от имени администратора.

    4. В параметре allow users укажите учетную запись из домена, где установлен Event Log Proxy. Например, сервисную учетную запись для работы с каталогом пользователей.

      Пример
      <authorization>
           <clear />
           <add accessType="Allow" users="DOMAIN\servicekeybox" />
      </authorization>
    5. Сохраните изменения и закройте файл web.config.

    1. Выберите способ аутентификации по сертификату. По завершении установки нажмите Готово и закройте Мастер установки.
    2. Откройте файл appsettings.json (C:\inetpub\wwwroot\keybox\eventlogproxy) в редакторе Блокнот от имени администратора.
    3. В секции authSettings в параметре allowedCertificateThumbprints укажите отпечаток клиентского сертификата, разрешенного к предъявлению сервером Rutoken KeyBox. Убедитесь, что поле Улучшенный ключ (Enhanced Key Usage) сертификата содержит значение «Проверка подлинности клиента» (Client Authentication), и сертификат установлен в хранилище сертификатов сервера Rutoken KeyBox.

      Пример
      "authSettings":{
      "authorizeByCertificate": "true",
      "allowedCertificateThumbprints": "aba8b93d73343f2182e3c1c40482b2ae2d75b6ec"
      }
    4. Сохраните изменения и закройте файл appsettings.json.

  4. Перезапустите пул приложения Rutoken KeyBox Event Log Proxy, чтобы сохранить изменения.
    1. Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
    2. Выберите приложение Rutoken KeyBox Event Log Proxy и в правом меню нажмите Перезапуск (Recycle).

Log Server

Log Server позволяет записывать события с одного или нескольких серверов Rutoken KeyBox в единый журнал Windows Event Log, Microsoft SQL Server, PostgreSQL Server, SysLog Server.

Системные требования

Log Server можно установить на систему под управлением ОС Windows или Linux.

Установка

Перед установкой Log Server установите платформу .NET версии 8.0 и модуль URL Rewrite.

Чтобы установить Log Server:

  1. Выполните вход на рабочую станцию с правами локального администратора.
  2. Запустите LogServer-<номер версии>.x64.ru-ru.msi из каталога Log.Server дистрибутива системы и следуйте указаниям Мастера.
  3. Из каталога Log.Server/Misc cкопируйте:
    • файл cmSchema.config в каталог C:\inetpub\wwwroot\ls;
    • файлы EventLogTarget.configMsSqlTarget.config, PgSqlTarget.config и SysLogTarget.config в каталог C:\inetpub\wwwroot\ls\targetConfigs.

Настройка чтения и записи событий

Log Server поддерживает чтение событий только из одного хранилища (ReadTargetId), запись событий возможна одновременно в несколько хранилищ (WriteTargets).

Вы можете настроить чтение и запись событий в следующие хранилища:

  • Windows Event Log;
  • MS SQL;
  • PostgreSQL;
  • Syslog.
  1. Перейдите в каталог C:\inetpub\wwwroot\ls и отредактируйте файл clientApps.config:

    • В секции Applications добавьте:
      <Application Id="keybox" SchemaId="cmSchema">
          <ReadTargetId>EventLogTarget</ReadTargetId>
          <WriteTargets>
              <TargetId>EventLogTarget</TargetId>
          </WriteTargets>
          <AccessControl>
              <!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
          </AccessControl>
      </Application>
    • В секции Targets добавьте новый элемент:
      <Targets>
          <Target Id="EventLogTarget" Type="eventlog"/>
      </Targets>
  2. Сохраните изменения и закройте файл конфигурации.

Чтобы сохранить изменения, перезапустите пул приложений IIS:

  1. Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
  2. Выберите приложение Log Server и в правом меню нажмите Перезапуск (Recycle). 

База для хранения данных Log Server создается вручную, а ее наполнение происходит автоматически.

  1. Создайте базу данных в среде SQL Server Management Studio с произвольным именем:
    1. В окне Обозреватель объектов (Object Explorer) нажмите правой кнопкой мыши по вкладке Базы данных (Databases).
    2. Выберите Создать базу данных... (New Database...) и укажите Имя базы данных: (Database name:).
    3. В поле Владелец: (Owner:) определите владельца создаваемой базы.
    4. Нажмите ОК, чтобы сохранить созданную базу данных.

      Создайте или выберите любую внутреннюю учетную запись Microsoft SQL или учетную запись из поддерживаемого LDAP-каталога пользователей (Active Directory, Samba AD DC, РЕД АДМ, FreeIPA, ALD Pro). Например, сервисную учетную запись для работы Rutoken KeyBox.

      После создания базы данных указанная учетная запись будет обладать правами db_owner, public. Rutoken KeyBox будет использовать эту учетную запись для чтения/записи в базу данных.

  2. Перейдите в каталог C:\inetpub\wwwroot\ls\targetConfigs и отредактируйте файл MsSqlTarget.config. В секции <Settings>…</Settings> задайте параметры: 
    1. Data Source — имя сервера Microsoft SQL Server или именованного экземпляра Microsoft SQL Server в формате имя сервера\имя экземпляра.
    2. Database — имя базы данных (ILS);
    3. User Idсервисная учетная запись для работы с базами данных Rutoken KeyBox;
    4. Password — пароль сервисной учетной записи;
    5. TrustServerCertificate — настройка доверия сертификату сервера. Установите значение True.

      <Settings>
          <ConnectionString>Data Source=MSSQL\SQLEXPRESS;Database=LogServer;User Id=servicesql;Password=P@ssw0rd;TrustServerCertificate=True</ConnectionString>
      </Settings>
  3. Перейдите в каталог C:\inetpub\wwwroot\ls и отредактируйте файл clientApps.config:

    • В секции Application добавьте:

      <Application Id="cm" SchemaId="cmSchema">
          <ReadTargetId>MsSqlTarget</ReadTargetId>
      
          <WriteTargets>
              <TargetId>MsSqlTarget</TargetId>
          </WriteTargets>
      
          <AccessControl>
              <!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
          </AccessControl>
      </Application> 
    • В секции Targets добавьте новый элемент:

      <Targets>
          <Target Id="MsSqlTarget" Type="mssql"/>
      </Targets> 
  4. Сохраните изменения и закройте файл конфигурации.

Чтобы сохранить изменения, перезапустите пул приложений IIS:

  1. Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
  2. Выберите приложение Log Server и в правом меню нажмите Перезапуск (Recycle).

База для хранения данных Log Server создается вручную, а ее наполнение происходит автоматически.

  1. Создайте базу данных в PostgreSQL, например, в среде pgAdmin:

    1. В окне Обозреватель (Browser) нажмите правой кнопкой мыши по пункту Базы данных (Databases).
    2. Выберите Создать (Create)→База данных... (Database...).
    3. На вкладке Общие (General) в поле База данных (Database) укажите произвольное название базы данных, выберите из списка Владелец (Owner) сервисную четную запись, которая будет использоваться для подключения к базе данных.
    4. Нажмите Сохранить (Save).

  2. Предоставьте сервисной учетной записи привилегии на таблицы базы данных:

    1. Выберите созданную базу данных и перейдите в меню Запросника (Query Tool).
    2. Введите текст запроса, указав в запросе имя учетной записи:
      GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO <имя сервисной учетной записи>;
    3. В меню Запросника нажмите Выполнить (Execute/Refresh).
  3. Создайте расширение uuid-ossp, которое предоставляет функции для генерации Universally Unique Identifiers (UUID).

    1. Очистите поле ввода Запросника.
    2. Введите текст запроса.
      CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
    3. В меню Запросника нажмите Выполнить (Execute/Refresh).
  4. По умолчанию в PostgreSQL разрешены только локальные подключения к базам данных, поэтому для работы между различными серверами требуется настройка удаленного подключения к БД:

    1. В каталоге PostgreSQL откройте конфигурационный файл pg_hba.conf. Файл находится в каталоге C:\Program Files\PostgreSQL\<номер версии>\data.
    2. В конце файла добавьте строку следующего типа:
      CONNECTIONTYPE DATABASE USER ADDRESS METHOD

    Где:

    • CONNECTIONTYPE тип подключения. Чтобы использовать подключение по TCP/IP, укажите host;
    • DATABASE имя базы данных, для которой предоставляется доступ. Для доступа ко всем базам данных укажите ALL;
    • USER имя пользователя, для которого будет доступно подключение. Для доступа всех пользователей укажите ALL;
    • ADDRESS IP-адрес удаленного сервера Rutoken KeyBox. Для доступа с любых адресов укажите 0.0.0.0/0;
    • METHOD метод аутентификации пользователя. Например, md5, scram-sha-256.
    Пример
    host LogServer servicepg 192.200.1.0/24 md5
    host ALL servicepg 10.0.0.0/8 md5
    host ALL ALL 0.0.0.0/0 scram-sha-256
  5. В каталоге C:\inetpub\wwwroot\ls\targetConfigs отредактируйте файл PgSqlTarget.config. В секции <ConnectionString>…</ConnectionString> задайте параметры:

    • Host имя сервера PostgreSQL Server;
    • Port порт для подключения к PostgreSQL (5432 — значение по умолчанию);
    • Database имя созданной в п.1 базы данных;
    • Usernameсервисная учетная запись для подключения к указанной базе данных;
    • Password пароль сервисной учетной записи.
      <Settings>
          <ConnectionString>Host=SRV-POSTGRESQL;Port=5432;Database=LogServer;Username=servicepg;Password=P@ssw0rd</ConnectionString>
      </Settings>
  6. Перейдите в каталог C:\inetpub\wwwroot\ls и отредактируйте файл clientApps.config:

    • В секции Application добавьте новый TargetId для ReadTarget, WriteTarget:
      <Application Id="cm" SchemaId="cmSchema">
          <ReadTargetId>PgSqlTarget</ReadTargetId>
      
          <WriteTargets>
              <TargetId>PgSqlTarget</TargetId>
          </WriteTargets>
      
          <AccessControl>
              <!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
          </AccessControl>
      </Application>
    • В секции Targets добавьте новый элемент:
      <Targets>
          <Target Id="PgSqlTarget" Type="pgsql"/>
      </Targets>

Чтобы сохранить изменения, перезапустите пул приложений IIS:

  1. Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
  2. Выберите приложение Log Server и в правом меню нажмите Перезапуск (Recycle).

Возможности Syslog ограничены только записью событий (WriteTargets). В примере дополняется конфигурация из примера с PostgreSQL.

  1. В каталоге C:\inetpub\wwwroot\ls\targetConfigs отредактируйте файл SysLogTarget.config. В секции <ConnectionString>…</ConnectionString> задайте параметры:

    • HostName – имя или IP-адрес Syslog сервера;
    • Port – порт Syslog сервера (514 — порт по умолчанию);
    • Protocol – тип подключения к Syslog серверу: UDP, TCP, TCPoverTLS;
    • Format – опциональный параметр, определяет формат логов: Plain, CEF, LEEF;
    • SyslogVersion – опциональный параметр, спецификация протокола: RFC3164, RFC5424.
      <Settings HostName="SRV-SYSLOG" Port="514" Protocol="UDP"/>
  2. Перейдите в каталог C:\inetpub\wwwroot\ls и отредактируйте файл clientApps.config:

    • В секции Application добавьте новый TargetId для WriteTarget:
      <Applications>
          <Application Id="cm" SchemaId="cmSchema">
              <ReadTargetId>PgSqlTarget</ReadTargetId>
      
              <WriteTargets>
                  <TargetId>PgSqlTarget</TargetId>
                  <TargetId>SysLogTarget</TargetId>
              </WriteTargets>
      
              <AccessControl>
                  <!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
              </AccessControl>
          </Application> 
      </Applications>
    • В секции Targets добавьте новый элемент:
      <Targets>
          <Target Id="PgSqlTarget" Type="pgsql"/>
          <Target Id="SysLogTarget" Type="syslog"/>
      </Targets>

Чтобы сохранить изменения, перезапустите пул приложений IIS:

  1. Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
  2. Выберите приложение Log Server и в правом меню нажмите Перезапуск (Recycle).

Установка

  1. Установите Log Server.
    Debian
    sudo dpkg -i rutoken.logserver-<номер версии>_amd64.deb
    RHEL
    sudo rpm -i rutoken.logserver-<номер версии>.x86_64.rpm
  2. Из каталога Log.Server/Misc cкопируйте файл cmSchema.config в каталог /opt/aktivco/ls:
    sudo cp ./cmSchema.config /opt/aktivco/ls/

Настройка чтения и записи событий

Log Server поддерживает чтение событий только из одного хранилища (ReadTargetId). Запись событий возможна одновременно в несколько хранилищ (WriteTargets).

Настройте чтение и запись событий в следующие хранилища:

  • MS SQL;
  • PostgreSQL;
  • Syslog.

База для хранения данных Log Server создается вручную, а ее наполнение происходит автоматически.

  1. Создайте базу данных в среде SQL Server Management Studio с произвольным именем:

    1. В окне Обозреватель объектов (Object Explorer) нажмите правой кнопкой мыши по вкладке Базы данных (Databases).
    2. Выберите Создать базу данных... (New Database...) и укажите Имя базы данных: (Database name:).
    3. В поле Владелец: (Owner:) определите владельца создаваемой базы.
    4. Нажмите ОК, чтобы сохранить созданную базу данных.

      Создайте или выберите любую внутреннюю учетную запись Microsoft SQL или учетную запись из поддерживаемого LDAP-каталога пользователей (Active Directory, Samba AD DC, РЕД АДМ, FreeIPA, ALD Pro). Например, сервисную учетную запись для работы Rutoken KeyBox.

      После создания базы данных указанная учетная запись будет обладать правами db_owner, publicRutoken KeyBox будет использовать эту учетную запись для чтения/записи в базу данных.


  2. Перейдите в каталог /opt/aktivco/ls/targetConfigs и отредактируйте файл MsSqlTarget.config. В секции <Settings>…</Settings> задайте параметры:

    • Data Source — имя сервера Microsoft SQL Server или именованного экземпляра Microsoft SQL Server в формате имя сервера\имя экземпляра;
    • Database имя базы данных (ILS);
    • User Id сервисная учетная запись для работы с базами данных Rutoken KeyBox;
    • Password пароль сервисной учетной записи;
    • TrustServerCertificate настройка доверия сертификату сервера. Установите значение True.
      <Settings>
          <ConnectionString>Data Source=MSSQL\SQLEXPRESS;Database=LogServer;User Id=servicesql;Password=P@ssw0rd;TrustServerCertificate=True</ConnectionString>
      </Settings>
  3. Перейдите в каталог /opt/aktivco/ls и отредактируйте файл clientApps.config:

    • В секции Application добавьте:
      <Application Id="cm" SchemaId="cmSchema">
          <ReadTargetId>MsSqlTarget</ReadTargetId>
      
          <WriteTargets>
              <TargetId>MsSqlTarget</TargetId>
          </WriteTargets>
      
          <AccessControl>
              <!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
          </AccessControl>
      </Application>
     
    • В секции Targets добавьте новый элемент:
      <Targets>
          <Target Id="MsSqlTarget" Type="mssql"/>
      </Targets> 

База для хранения данных Log Server создается вручную, а ее наполнение происходит автоматически.

  1. Создайте базу данных в PostgreSQL, например, в среде pgAdmin:

    1. В окне Обозреватель (Browser) нажмите правой кнопкой мыши по пункту Базы данных (Databases).
    2. Выберите Создать (Create)→База данных... (Database...).
    3. На вкладке Общие (General) укажите произвольное название базы данных в поле База данных (Database), выберите из списка Владелец (Owner) сервисную четную запись, которая будет использоваться для подключения к базе данных.
    4. Нажмите Сохранить (Save).
  2. Предоставьте сервисной учетной записи привилегии на таблицы базы данных:

    1. Выделите созданную базу данных в списке и перейдите в меню Запросника (Query Tool).
    2. Введите текст запроса, указав в запросе имя учетной записи:
      GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO <имя сервисной учетной записи>;
    3. В меню Запросника нажмите Выполнить (Execute/Refresh).
  3. По умолчанию в PostgreSQL разрешены только локальные подключения к базам данных, поэтому для работы между различными серверами требуется настройка удаленного подключения к БД:

    1. В каталоге PostgreSQL откройте конфигурационный файл pg_hba.conf. Файл находится в каталоге /etc/postgresql/<номер версии>/main.
    2. В конце файла добавьте строку следующего типа:
      CONNECTIONTYPE DATABASE USER ADDRESS METHOD

    Где:

    • CONNECTIONTYPEтип подключения. Чтобы использовать подключение по TCP/IP, укажите host;
    • DATABASE имя базы данных, для которой предоставляется доступ. Для доступа ко всем базам данных укажите ALL;
    • USER имя пользователя, для которого будет доступно подключение. Для доступа всех пользователей укажите ALL;
    • ADDRESS IP-адрес удаленного сервера Rutoken KeyBox. Для доступа с любых адресов укажите 0.0.0.0/0;
    • METHOD метод аутентификации пользователя. Например, md5, scram-sha-256.


    Пример
    host LogServer servicepg 192.200.1.0/24 md5
    host ALL servicepg 10.0.0.0/8 md5
    host ALL ALL 0.0.0.0/0 scram-sha-256



  4. В каталоге /opt/aktivco/ls/targetConfigs отредактируйте файл PgSqlTarget.config. В секции <ConnectionString>…</ConnectionString> задайте параметры:

    • Host имя сервера PostgreSQL Server;
    • Port порт для подключения к PostgreSQL (5432 — значение по умолчанию);
    • Database имя созданной в п.1 базы данных;
    • Username сервисная учетная запись для подключения к указанной базе данных;
    • Password пароль сервисной учетной записи.
      <Settings>
          <ConnectionString>Host=SRV-POSTGRESQL;Port=5432;Database=LogServer;Username=servicepg;Password=P@ssw0rd</ConnectionString>
      </Settings>
  5. Перейдите в каталог /opt/aktivco/ls и отредактируйте файл clientApps.config:

    • В секции Application добавьте новый TargetId для ReadTarget, WriteTarget:
      <Application Id="cm" SchemaId="cmSchema">
          <ReadTargetId>PgSqlTarget</ReadTargetId>
      
          <WriteTargets>
              <TargetId>PgSqlTarget</TargetId>
          </WriteTargets>
      
          <AccessControl>
              <!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
          </AccessControl>
      </Application>
    • В секции Targets добавьте новый элемент:
      <Targets>
          <Target Id="PgSqlTarget" Type="pgsql"/>
      </Targets>

Возможности Syslog ограничены только записью событий (WriteTargets). В примере дополняется конфигурация из примера с PostgreSQL.

  1. В каталоге /opt/aktivco/ls/targetConfigs отредактируйте файл SysLogTarget.config. В секции <ConnectionString>…</ConnectionString> задайте параметры:

    • HostName — имя или IP-адрес Syslog сервера;
    • Port порт Syslog сервера (514 — порт по умолчанию);
    • Protocol тип подключения к Syslog серверу: UDP, TCP, TCPoverTLS;
    • Format опциональный параметр, определяет формат логов: Plain, CEF, LEEF;
    • SyslogVersion опциональный параметр, спецификация протокола: RFC3164, RFC5424.
      <Settings HostName="SRV-SYSLOG" Port="514" Protocol="UDP"/>
  2. Перейдите в каталог /opt/aktivco/ls и отредактируйте файл clientApps.config:

    • В секции Application добавьте новый TargetId для WriteTarget:
      <Applications>
          <Application Id="cm" SchemaId="cmSchema">
              <ReadTargetId>PgSqlTarget</ReadTargetId>
      
              <WriteTargets>
                  <TargetId>PgSqlTarget</TargetId>
                  <TargetId>SysLogTarget</TargetId>
              </WriteTargets>
      
              <AccessControl>
                  <!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
              </AccessControl>
          </Application> 
      </Applications>
    • В секции Targets добавьте новый элемент:
      <Targets>
          <Target Id="PgSqlTarget" Type="pgsql"/>
          <Target Id="SysLogTarget" Type="syslog"/>
      </Targets>

Применение настроек

  1. Откройте конфигурационный файл веб-сервера nginx или Apache и раскомментируйте строки обработки приложения api:

    Пример для nginx
      location /api   
     {  include /etc/nginx/conf.d/proxy.conf;   proxy_pass http://localhost:5010/api;   }
    Пример для Apache
     ProxyPass /api http://localhost:5010/api
     ProxyPassReverse /api http://localhost:5010/api
  2. Перезапустите веб-сервер.

  3. Перезапустите сервис Log Server:

    sudo systemctl restart rutoken-ls.service

Настройка Рутокен KeyBox на работу с единым журналом событий

  1. Настройте подключение к журналу событий в Мастере настройки.
  2. Проверьте работу журнала событий. Перейдите в Консоль управления, откройте раздел Журнал и выполните поиск событий.

Ожидаемый результат: отсутствие ошибок.

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



  • No labels