Я використовую rsyslog з tls. Існує деяка підготовча робота поза сферою: Розгортайте локальний ЦС, додайте сертифікат CA до кожного хоста, генеруйте індивідуальні серти для кожного хоста. (тепер усі ваші господарі можуть спілкуватись між собою ssl)
Також мені потрібно було встановити rsyslog-gnutls:
sudo apt-get install rsyslog-gnutls
Я також обмежив вихідне з'єднання syslog (tcp 514), тому мої хости можуть підключатися лише до мого сервера rsyslog, і створив вхідний список списку на стороні сервера rsyslog, щоб тільки мої хости могли підключатися.
в /etc/rsyslog.conf
# make gtls driver the default
$DefaultNetstreamDriver gtls
# certificate files
$DefaultNetstreamDriverCAFile /etc/my_keys/internal_CA.crt
$DefaultNetstreamDriverCertFile /etc/my_keys/my_hostname.crt
$DefaultNetstreamDriverKeyFile /etc/my_keys/my_hostname.key
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer my_syslog_server.com
$ActionSendStreamDriverMode 1 # run driver in TLS-only mode
*.* @@my_syslog_server.com:514 # forward everything to remote server
Схоже, що налаштування для syslog-ng ще простіше. (хоча я цього не пробував) syslog-ng /etc/syslog-ng/conf.d/99-graylog2.conf
destination remote-server {
tcp ("my_syslog_server.com" port(514)
tls(ca_dir("/etc/my_keys/"))
);
};