Tôi đang sử dụng rsyslog với tls. Có một số công việc chuẩn bị ngoài phạm vi: Triển khai một CA cục bộ, thêm chứng chỉ của CA cho mỗi máy chủ, tạo các certs riêng cho từng máy chủ. (bây giờ tất cả các máy chủ của bạn có thể nói chuyện ssl với nhau)
Tôi cũng cần cài đặt rsyslog-gnutls:
sudo apt-get install rsyslog-gnutls
Tôi cũng đã hạn chế kết nối syslog gửi đi (tcp 514) để máy chủ của tôi chỉ có thể kết nối với máy chủ rsyslog của tôi và tạo danh sách trắng đến ở phía máy chủ rsyslog để chỉ máy chủ của tôi có thể kết nối.
trong /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
Có vẻ như cấu hình cho syslog-ng thậm chí còn dễ dàng hơn. (mặc dù tôi chưa thử điều này) 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/"))
);
};