ฉันใช้ rsyslog กับ tls มีการเตรียมงานที่ไม่อยู่ในขอบเขต: ปรับใช้ CA ท้องถิ่นเพิ่มใบรับรองของ 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/"))
);
};