Назад | Перейти на главную страницу

Удаленное ведение журнала Rsyslog: искаженный текст при использовании TLS

Я настроил Rsyslog с TLS на двух машинах Debian и настроил удаленное ведение журнала (log-server, log-shipper). Однако я получаю "искаженный" текст в журналах на сервере:

Oct 22 07:58:45 log-shipper.example.org #000��}̪��#0009#000k#000�#000�#000��|��#0003#000g#000E#000�#000#026#001#000#000J#000#027#000#000#000#026#000#000#000#005#000#005#001#000#000#000#000�#001#000#001#000#000##000#000
Oct 22 07:58:45 log-shipper.example.org #000#014
Oct 22 07:58:46 log-shipper.example.org #026#003#001#000�#001#000#000�#003#003[̓#006�: �Q#035�'Q#035�o#014�#001V<��[��|ng�[ܴ#000#000r�,��̩���

В основном я следил за документами Rsyslog Вот, а также следил за другими руководствами в Интернете, но результат всегда один и тот же.

Потратив на это 2 дня, у меня нет идей. У кого-нибудь есть подсказка или тоже есть опыт?

Конфигурация сервера:

$ModLoad imtcp # TCP listener

# make gtls driver the default
$DefaultNetstreamDriver gtls

# certificate files
$DefaultNetstreamDriverCAFile /etc/ssl/certs/ca-cert.pem
$DefaultNetstreamDriverCertFile /etc/ssl/certs/server-cert.pem
$DefaultNetstreamDriverKeyFile /etc/ssl/certs/server-key.pem

$InputTCPServerStreamDriverMode 1 # run driver in TLS-only mode
$InputTCPServerStreamDriverAuthMode anon
$InputTCPServerRun 5822 # start up listener at port 5822

Конфигурация клиента:

# make gtls driver the default
$DefaultNetstreamDriver gtls

# certificate files
$DefaultNetstreamDriverCAFile /var/tmp/ca.pem
$DefaultNetstreamDriverCertFile /var/tmp/storage1-cert.pem
$DefaultNetstreamDriverKeyFile /var/tmp/storage1-key.pem

$ActionSendStreamDriverAuthMode anon
$ActionSendStreamDriverMode 1 # run driver in TLS-only mode
*.* @@(o)log-server.example.org:5822 # forward everything to remote server

Для Ubuntu 18.04 я использовал следующий синтаксис:

$DefaultNetstreamDriverCAFile /etc/ssl/certs/ca-cert.pem 
$DefaultNetstreamDriverCertFile /etc/ssl/certs/server-cert.pem
$DefaultNetstreamDriverKeyFile /etc/ssl/certs/server-key.pem

# provides TCP syslog reception with encryption (TLS)
module(load="imtcp" StreamDriver.Name="gtls" StreamDriver.Mode="1" StreamDriver.AuthMode="anon")
input(type="imtcp" port="6514" )

Обычно я комментирую, но в этом сообществе недостаточно репутации. Я видел подобный искаженный текст раньше, когда выполнял сканирование сервера по протоколу NMAP и просматривал результаты в системном журнале. Кто-то опубликовал более длинный фрагмент атаки:

https://superuser.com/questions/1091351/rsyslogd-log-entry-about-attack-created-by-unknown-application

Пожалуйста, посмотрите, отражают ли журналы эту атаку.

Я также заметил при настройке регистрации на сервере Rsyslog включение #014 (т.е. когда я настроил преобразование событий Windows EventLog в сервер Rsyslog), но без искаженного текста. Когда я переключился на другой формат системного журнала (т.е. получение журналов в формате системного журнала BSD), я больше не получал #014 персонаж. Вы можете рассмотреть возможность использования другого программного обеспечения для сбора журналов, такого как NXLog, чтобы собирать и централизовать сбор журналов.

Обычно это означает, что с шифрованием что-то не так, проверьте, что syslog говорит, когда rsyslog служба запускается, если она на что-то жалуется. Помимо этого, как вы настраивали центр сертификации, ведь это самая сложная часть всей настройки? Кроме того, ваш $DefaultNetstreamDriverCAFile одинаковые на обоих серверах?