Настройка защищенного журналирования: отправка Syslog по TLS (RFC 5425)
- Передача конфиденциальных логов (события аутентификации, команды sudo, дампы фаерволов) в открытом виде по UDP 514.
- Угроза перехвата и модификации записей аудита злоумышленниками в транзитных сегментах сети (MITM).
- Потеря критических UDP-сообщений журнала при всплесках сетевой нагрузки.
- Ошибки валидации x509-сертификатов при установлении защищенного TLS-соединения коллектором логов.
1. Установка пакета шифрования для Rsyslog
# Debian / Ubuntu
apt-get install -y rsyslog rsyslog-gnutls
# RHEL / Rocky Linux
dnf install -y rsyslog rsyslog-gnutls2. Настройка Центрального Сервера Сбора Логов (Syslog Receiver)
Создайте конфигурацию /etc/rsyslog.d/10-tls-server.conf:
# Загрузка модуля TCP/TLS
module(load="imtcp" StreamDriver.Name="gtls" StreamDriver.Mode="1" StreamDriver.Authmode="anon")
# Пути к сертификатам CA и сервера
global(
DefaultNetstreamDriver="gtls"
DefaultNetstreamDriverCAFile="/etc/ssl/syslog/ca.pem"
DefaultNetstreamDriverCertFile="/etc/ssl/syslog/server-cert.pem"
DefaultNetstreamDriverKeyFile="/etc/ssl/syslog/server-key.pem"
)
# Прослушивание защищенного порта RFC 5425
input(type="imtcp" port="6514")3. Настройка Сетевого Шлюза / Клиента (Syslog Sender)
Создайте конфигурацию /etc/rsyslog.d/50-tls-client.conf:
global(
DefaultNetstreamDriver="gtls"
DefaultNetstreamDriverCAFile="/etc/ssl/syslog/ca.pem"
DefaultNetstreamDriverCertFile="/etc/ssl/syslog/client-cert.pem"
DefaultNetstreamDriverKeyFile="/etc/ssl/syslog/client-key.pem"
)
# Отправка всех событий на центральный сервер с гарантированной буферизацией
*.* action(
type="omfwd"
target="syslog-collector.corp.internal"
port="6514"
protocol="tcp"
StreamDriver="gtls"
StreamDriverMode="1"
StreamDriverAuthMode="x509/name"
StreamDriverPermittedPeers="syslog-collector.corp.internal"
queue.type="LinkedList"
queue.filename="syslog_tls_buffer"
queue.saveonshutdown="on"
)4. Перезапуск и проверка статуса
systemctl restart rsyslog
journalctl -u rsyslog -e --no-pager Частые вопросы (FAQ)
Какой стандартный TCP-порт зарезервирован IANA для Syslog over TLS?
Согласно стандарту RFC 5425 для безопасной передачи журнала событий Syslog с использованием TLS выделен TCP-порт 6514.
Что произойдет с логами, если сервер коллектора временно недоступен?
Благодаря директиве queue.type='LinkedList' клиентский демон Rsyslog временно буферизует сообщения на локальном диске и автоматически отправит их после восстановления TLS-сессии.
В чем отличие режима StreamDriverAuthMode='x509/name' от 'anon'?
Режим anon только шифрует канал без проверки имени сервера. Режим x509/name выполняет строгую аутентификацию и сверяет Common Name (CN) или SAN сертификата с разрешенным списком хостов.
Как проверить передачу логов через OpenSSL CLI?
Выполните: openssl s_client -connect syslog-collector.corp.internal:6514 -CAfile /etc/ssl/syslog/ca.pem и отправьте тестовое текстовое сообщение.