Page tree

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 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="cm" 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. Нажмите ОК, чтобы сохранить созданную базу данных.

      Создайте или выберите любую внутреннюю учетную запись MS SQL или Active Directory. Например, сервисную учетную запись для работы Rutoken KeyBox.

      После создания базы данных указанная учетная запись будет обладать правами db_owner, publicRutoken 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. По умолчанию в 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
  4. В каталоге 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>
  5. Перейдите в каталог 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 из RPM-пакета rutoken.logserver-<номер версии>.x86_64.rpm:
    sudo rpm -i rutoken.logserver-<номер версии>.x86_64.rpm

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

    sudo dpkg -i rutoken.logserver-<номер версии>_amd64.deb
  2. Из каталога Log.Server 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. Нажмите ОК, чтобы сохранить созданную базу данных.

      Создайте или выберите любую внутреннюю учетную запись MS SQL или Active Directory. Например, сервисную учетную запись для работы 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 indeed-ls.service
  • No labels