J'utilise rsyslog avec tls. Il y a quelques travaux préparatoires hors de portée : Déployer une AC locale, ajouter le certificat de l'AC à chaque hôte, générer des certificats individuels pour chaque hôte. (maintenant tous vos hôtes peuvent parler ssl entre eux)
J'ai également dû installer rsyslog-gnutls :
sudo apt-get install rsyslog-gnutls
J'ai également restreint la connexion syslog sortante (tcp 514) afin que mes hôtes puissent uniquement se connecter à mon serveur rsyslog, et j'ai créé une liste blanche entrante du côté du serveur rsyslog afin que seuls mes hôtes puissent se connecter.
dans /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
Il semble que la configuration de syslog-ng soit encore plus simple. (bien que je n'aie pas essayé) 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/"))
);
};