Блог "Дети ОИТа"
/поиск

Безопасность syslog: TLS, проверка сертификатов и подмена

Введение

Канал доставки логов — частая точка атаки. Шифрование и проверка подлинности защищают от перехвата, подмены и несанкционированного чтения.

Протоколы и угрозы

  • UDP — без гарантий и шифрования; подмена и перехват тривиальны.
  • TCP — доставка в пределах соединения; при разрыве — буферизация на клиенте.
  • TLS поверх TCP — шифрование и аутентификация; защита от перехвата и MITM.
  • RELP с TLS — прикладные подтверждения доставки плюс шифрование.

TLS: что настроить

  • Сервер: валидный сертификат, закреплённый CA, проверка клиентских сертификатов по необходимости.
  • Клиент: тот же CA, проверка hostname, запрет самоподписанных без pinning.
  • Версии: TLS 1.2+; крепкие шифры; OCSP stapling; ротация сертификатов.

Защита от подмены

  • Подписывайте сообщения (например, mmjson/mmnormalize с HMAC) при отсутствии TLS.
  • Проверяйте целостность на приёмнике; отклоняйте сообщения без подписи или с неверной.
  • Логируйте факты подмены и источник (IP, сертификат).

Мини-конфиг rsyslog с TLS

module(load="imtcp")
module(load="omfwd")

# Приём TCP+TLS
input(type="imtcp" port="6514"
      tls="on"
      tls.caCert="/etc/ssl/certs/ca.pem"
      tls.myCert="/etc/ssl/certs/server.pem"
      tls.myPrivKey="/etc/ssl/private/server-key.pem"
      tls.authmode="x509/name"
      tls.permittedpeer=["collector.internal"])

# Отправка TLS
action(type="omfwd"
       target="collector.internal:6514"
       protocol="tcp"
       streamdriver="gtls"
       streamdriver.mode="1"
       streamdriver.authmode="x509/name"
       streamdriver.permittedpeer=["collector.internal"]
       queue.type="LinkedList"
       queue.filename="q_fwd"
       queue.size="100000"
       action.resumeRetryCount="-1"
       queue.saveonshutdown="on")

Чек-лист

  • Включите TLS на всех плечах; проверьте hostname и цепочку сертификатов.
  • Отключите слабый TLS и шифры; включите OCSP stapling.
  • Включите дисковые очереди на источнике.
  • Мониторьте ошибки рукопожатий и отклонения подписей.
  • Тестируйте сценарии обрыва и подмены.