Saya menggunakan rsyslog dengan tls. Ada beberapa pekerjaan persiapan di luar ruang lingkup: Menyebarkan CA lokal, menambahkan sertifikat CA ke setiap host, menghasilkan sertifikat individu untuk setiap host. (sekarang semua host Anda dapat berbicara ssl satu sama lain)
Saya juga perlu menginstal rsyslog-gnutls:
sudo apt-get install rsyslog-gnutls
Saya juga membatasi koneksi syslog keluar (tcp 514) sehingga host saya hanya dapat terhubung ke server rsyslog saya, dan membuat daftar putih masuk di sisi server rsyslog sehingga hanya host saya yang dapat terhubung.
di /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
Sepertinya konfigurasi untuk syslog-ng bahkan lebih mudah. (walaupun saya belum mencoba ini) 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/"))
);
};