Настройка подключения к syslog-серверу

Настройка syslog-сервера для работы с Termidesk VDI по протоколу TCP

Аннотация

В ОС Astra Linux Special Edition 1.7 включена служба журналирования syslog-ng, обладающая возможностью гибкой настройки под различные нужды.

Для эксплуатации сервера Termidesk, особенно в распределенном или высоконагруженном варианте, настоятельно рекомендуется использовать внешний syslog-сервер.

В данной инструкции приведена последовательность действий по обеспечению передачи сообщений с сервера Termidesk на внешний syslog-сервер по протоколу TCP:

  • настройка сервера журналирования syslog-ng;

  • настройка сервера Termidesk;

  • настройка ротации журналов.

Настройка сервера журналирования syslog-ng

На узле с сервером журналирования syslog-ng нужно:

  • создать файл tcp-syslog.conf в каталоге /etc/syslog-ng/conf.d/:

sudo touch /etc/syslog-ng/conf.d/tcp-syslog.conf
  • добавить в файл tcp-syslog.conf строки:

source s_tcptest {

       network (
                port(6513)
                transport("tcp")
                max-connections(100000)
        );
};
destination d_tcptest { file("/var/log/tcptest"); };
log { source(s_tcptest); destination(d_tcptest); };
  • перезапустить службу syslog-ng:

sudo systemctl restart syslog-ng

Настройка сервера Termidesk

Для работы сервера Termidesk VDI с сервером журналирования syslog-ng в графическом интерфейсе управления Termidesk VDI нужно:

image
Рисунок 1. Параметры журналирования Termidesk

В примере были заданы параметры:

  • «Логирование Syslog»: «Да» — включено журналирование на syslog-сервере;

  • «Хост 1»: «syslog-ng.local:6514» — FQDN сервера журналирования в формате host:port;

  • «Протокол»: «TCP» — выбрать данный тип протокола для журналирования;

  • «Категория сообщения» — рекомендуется выбрать тип сообщений в соответствии с задачами журналирования;

  • «Уровень логирования» — рекомендуется выбрать степень детализации служебных сообщений в соответствии с задачами логирования.

  • нажать экранную кнопку [Сохранить]. После сохранения параметров перезапуск служб не требуется.

Настройка ротации журналов

Для устранения возможности переполнения диска записями в журнале /var/log/termidesk.log стоит настроить регулярную ротацию при помощи утилиты logrotate. Для этого создать файл /etc/logrotate.d/termidesk-syslog-ng следующего содержания:

/var/log/termidesk.log
{
        rotate 4
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d syslog-ng reload > /dev/null
        endscript
}

Настройка syslog-сервера для работы с Termidesk VDI по протоколу UDP

Аннотация

В ОС Astra Linux Special Edition включена служба журналирования syslog-ng, обладающая возможностью гибкой настройки под различные нужды.

Для использования сервера Termidesk, особенно в распределенном или высоконагруженном варианте, настоятельно рекомендуется использовать внешний syslog-сервер.

В данной инструкции приведена краткая последовательность шагов для настройки syslog-сервера для обеспечения приема сообщений на UDP-порт 514 на всех адресах и сохранение сообщения в файл /var/log/termidesk.log:

  • настройка сервера журналирования syslog-ng;

  • настройка сервера Termidesk;

  • настройка ротации журналов.

Настройка сервера журналирования syslog-ng

На узле с сервером журналирования syslog-ng нужно:

  • создать файл udp-syslog.conf в каталоге /etc/syslog-ng/conf.d:

sudo touch /etc/syslog-ng/conf.d/udp-syslog.conf
  • добавить в файл udp-syslog.conf строки:

source s_termidesk_net {
    udp(ip(0.0.0.0) port(514));
};

destination d_termidesk {
    file("/var/log/termidesk.log");
};

log {
    source(s_termidesk_net);
    destination(d_termidesk);
};
  • перезапустить syslog-ng:

sudo systemctl restart syslog-ng

Настройка сервера Termidesk

Для работы сервера Termidesk с сервером журналирования syslog-ng нужно:

  • в графическом интерфейсе управления Termidesk VDI перейти «Системные параметры - Системные настройки - Логирование» и включить параметр «Логирование syslog». Указать адрес syslog-сервера, протокол, уровень логирования и категорию сообщений (см. рисунок Параметры журналирования Termidesk);

image
Рисунок 2. Параметры журналирования Termidesk
  • в конфигурационном файле /etc/opt/termidesk-vdi/termidesk.conf задать желаемый уровень логирования через параметр LOG_LEVEL;

  • перезапустить службу Termidesk VDI:

sudo systemctl restart termidesk-vdi

Настройка ротации журналов

Для устранения возможности переполнения диска записями в журнале /var/log/termidesk.log стоит настроить регулярную ротацию при помощи утилиты logrotate. Для этого создать файл /etc/logrotate.d/termidesk-syslog-ng следующего содержания:

/var/log/termidesk.log
{
        rotate 4
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d syslog-ng reload > /dev/null
        endscript
}

Настройка syslog-сервера для работы с Termidesk VDI по протоколу TLS

Аннотация

В ОС Astra Linux Special Edition включена служба журналирования syslog-ng, обладающая возможностью гибкой настройки под различные нужды.

Для эксплуатации сервера Termidesk, особенно в распределенном или высоконагруженном варианте, настоятельно рекомендуется использовать внешний syslog-сервер.

В данной инструкции приведена последовательность действий по обеспечению передачи сообщений с сервера Termidesk на внешний syslog-сервер по протоколу TLS:

  • настройка центра сертификации;

  • настройка сервера журналирования syslog-ng;

  • настройка сервера Termidesk;

  • настройка ротации журналов.

Настройка центра сертификации

Для создания центра сертификации на целевом узле нужно:

  • загрузить и установить скрипты для упрощенной настройки инфраструктуры открытых ключей (PKI):

sudo apt install easy-rsa
  • перейти в каталог /usr/share/easy-rsa:

cd /usr/share/easy-rsa
  • инициализировать PKI:

sudo ./easyrsa init-pki
  • по умолчанию хранилище сертификатов будет создано в каталоге /usr/share/easy-rsa/pki;

  • создать корневой сертификат:

sudo ./easyrsa build-ca
  • сгенерировать ключ Диффи-Хеллмана:

sudo ./easyrsa gen-dh
  • создать сертификат для узла, на котором будет работать сервер журналирования syslog-ng:

sudo ./easyrsa build-serverClient-full <FQDN_сервера_журналирования_syslog-ng>
  • скопировать файл ca.crt с сервера центра сертификации на syslog-сервер:

sudo scp /usr/share/easy-rsa/pki/ca.crt localuser@<IP-адрес_сервера_журналирования_syslog-ng>:ca.crt

В примере был задан параметр «localuser» — локальная учетная запись с полномочиями на управление на syslog-сервером.

  • скопировать файлы сертификата и закрытого ключа с сервера центра сертификации на syslog-сервер:

sudo scp /usr/share/easy-rsa/pki/issued/<FQDN_сервера_журналирования_syslog-ng>.crt localuser@<IP-адрес_сервера_журналирования_syslog-ng>:<FQDN_сервера_журналирования_syslog-ng>.crt
sudo scp /usr/share/easy-rsa/pki/private/<FQDN_сервера_журналирования_syslog-ng>.key localuser@<IP-адрес_сервера_журналирования_syslog-ng>:<FQDN_сервера_журналирования_syslog-ng>.key

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

  • скопировать файл ca.crt с сервера центра сертификации на сервер Termidesk:

sudo scp /usr/share/easy-rsa/pki/ca.crt localuser@<IP-адрес_сервера_termidesk>:ca.crt

Настройка сервера журналирования syslog-ng

Для настройки сервера журналирования syslog-ng нужно:

  • присвоить файлу ca.crt название вида <имя_домена>.ca.crt для идентификации имен корневых сертификатов;

  • скопировать файл <имя_домена>.ca.crt в каталог /usr/share/ca-certificates:

sudo cp <имя_домена>.ca.crt /usr/share/ca-certificates
  • добавить корневой сертификат в хранилище сертификатов одним из подходящих способов:

    • вариант 1 - перенастроить системные сертификаты:

      sudo dpkg-reconfigure ca-certificates
    • вариант 2:

      • добавить в файл /etc/ca-certificates.conf строку с именем файла корневого сертификата:

        sudo sh -c "echo '<имя_домена>.ca.crt' >> /etc/ca-certificates.conf"
      • обновить список сертификатов:

        sudo update-ca-certificates
  • скопировать созданные ключи и сертификат сервера в каталог с пользовательскими сертификатами /etc/ssl:

sudo cp /home/localuser/<FQDN_сервера_журналирования_syslog-ng>.crt /etc/ssl/certs/
sudo cp /home/localuser/<FQDN_сервера_журналирования_syslog-ng>.key /etc/ssl/private/
  • преобразовать ключ в файле с расширением .key:

sudo openssl rsa -in /etc/ssl/private/<FQDN_сервера_журналирования_syslog-ng>.key -out /etc/ssl/private/<FQDN_сервера_журналирования_syslog-ng>.key

Данная команда получает значение ключа из файла. Результат операции будет записан в этот же файл.

  • создать файл tls-syslog.conf в каталоге /etc/syslog-ng/conf.d/:

sudo touch /etc/syslog-ng/conf.d/tls-syslog.conf
  • добавить в файл tls-syslog.conf строки:

source s_tlstermidesk {
       network (
                port(6514)
                transport("tls")
# максимальное количество подключений. Подбирать эмпирическим путём.
                max-connections(1000)
                tls (
# путь к файлам ключа и сертификата сервера
                        cert-file("/etc/ssl/certs/<FQDN_сервера_журналирования_syslog-ng>.crt")
                        key-file("/etc/ssl/private/<FQDN_сервера_журналирования_syslog-ng>.key")
                        peer-verify(optional-untrusted)
                )
        );
};

destination d_tlstermidesk { file("/var/log/tls-termidesk.log"); };
log { source(s_tlstermidesk); destination(d_tlstermidesk); };
  • перезапустить службу syslog-ng;

sudo systemctl restart syslog-ng

Настройка сервера Termidesk

Для работы сервера Termidesk с сервером журналирования syslog-ng нужно:

  • присвоить файлу ca.crt название вида <имя_домена>.ca.crt для идентификации имен корневых сертификатов;

  • скопировать файл <имя_домена>.ca.crt в каталог /usr/share/ca-certificates:

sudo cp <имя_домена>.ca.crt /usr/share/ca-certificates
  • добавить корневой сертификат в хранилище сертификатов одним из подходящих способов:

    • вариант 1- перенастроить системные сертификаты:

      sudo dpkg-reconfigure ca-certificates
    • вариант 2: ***добавить в файл /etc/ca-certificates.conf строку с именем файла корневого сертификата:

      sudo sh -c "echo '<имя_домена>.ca.crt' >> /etc/ca-certificates.conf"
      • обновить список сертификатов:

        sudo update-ca-certificates
  • в графическом интерфейсе управления Termidesk VDI перейти «Системные параметры — Системные настройки — Логирование» и задать соответствующие параметры (см. рисунок Параметры журналирования Termidesk).

image
Рисунок 3. Параметры журналирования Termidesk

В примере были заданы параметры:

  • «Логирование Syslog»: «Да» — включено журналирование на syslog-сервере;

  • «Хост 1»: «syslog-ng.local:6514» — FQDN сервера журналирования в формате host:port;

  • «Протокол»: «TLS» — выбрать данный тип протокола для журналирования;

  • «Категория сообщения» — рекомендуется выбрать тип сообщений в соответствии с задачами журналирования;

  • «Уровень логирования» — рекомендуется выбрать степень детализации служебных сообщений в соответствии с задачами логирования.

  • нажать экранную кнопку [Сохранить]. После сохранения параметров перезапуск служб не требуется.

Настройка ротации журналов

Для устранения возможности переполнения диска записями в журнале /var/log/termidesk.log стоит настроить регулярную ротацию при помощи утилиты logrotate. Для этого создать файл /etc/logrotate.d/termidesk-syslog-ng следующего содержания:

/var/log/termidesk.log
{
        rotate 4
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d syslog-ng reload > /dev/null
        endscript
}