Download PDF
Download page Настройка syslog-сервера для работы с Termidesk по протоколу TLS.
Настройка syslog-сервера для работы с Termidesk по протоколу TLS
Аннотация
В ОС Astra Linux Special Edition 1.7 включена служба журналирования 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
- добавить корневой сертификат в хранилище сертификатов одним из подходящих способов:
- перенастроить системные сертификаты:
:~$ sudo dpkg-reconfigure ca-certificates
- добавить в файл
/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
- добавить корневой сертификат в хранилище сертификатов одним из подходящих способов:
- перенастроить системные сертификаты:
:~$ sudo dpkg-reconfigure ca-certificates
- добавить в файл
/etc/ca-certificates.conf
строку с именем файла корневого сертификата:
:~$ sudo sh -c "echo '<имя_домена>.ca.crt' >> /etc/ca-certificates.conf"
- обновить список сертификатов:
:~$ sudo update-ca-certificates
В графическом интерфейсе управления 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
}