How to send ubuntu auth logs to remote rsyslog server using TLS

تنظیمات سمت سرور rsyslog

  • ابتدا بسته‌ی زیر را نصب نمایید.
# apt-get install rsyslog-gnutls
  • پوشه‌ی زیر را ایجاد نمایید.
# mkdir -p /etc/rsyslog.d/ssl
# cd /etc/rsyslog.d/ssl
  • به صورت زیر اقدام به ساخت کلیدها نمایید.
# openssl genrsa -out CA-key.pem 4096
# openssl req -x509 -new -nodes -key CA-key.pem -sha256 -days 3650 -out CA-cert.pem
# openssl genrsa -out server-key.pem 4096
# openssl req -new -sha256 -key server-key.pem -out server-csr.pem
# openssl x509 -req -in server-csr.pem -CA CA-cert.pem -CAkey CA-key.pem -CAcreateserial -out server-cert.pem -days 3650 -sha256
# rm server-csr.pem
  • برای پوشه‌ی ssl سطح دسترسی دلخواه در نظر بگیرید.
# chmod -R 777 /etc/rsyslog.d/ssl
  • پرونده‌ی زیر را ایجاد نمایید.
# vim /etc/rsyslog.d/00-config.conf
  • محتویات زیر را برای آن در نظر بگیرید.
# load tcp listener
$ModLoad imtcp

# make gtls driver the default
$DefaultNetstreamDriver gtls

# certificate files
$DefaultNetstreamDriverCAFile /etc/rsyslog.d/ssl/CA-cert.pem
$DefaultNetstreamDriverCertFile /etc/rsyslog.d/ssl/server-cert.pem
$DefaultNetstreamDriverKeyFile /etc/rsyslog.d/ssl/server-key.pem

$InputTCPServerStreamDriverMode 1
$InputTCPServerStreamDriverAuthMode anon
$InputTCPServerRun 10514
  • سرویس rsyslog را راه‌اندازی مجدد نمایید.
# systemctl restart rsyslog
  • لاگ‌‌ها را به صورت همزمان مشاهده نمایید.
# journalctl -f -n 0
  • نکته : در صورتی که سرویس بالا را بر روی کانتینر LXD راه‌اندازی می‌کنید، نیاز است قابلیت privileged برای کانتینر فعال باشد. برای این منظور به این مستند مراجعه نمایید.
  • نکته : مراحل سرور بر روی Ubuntu Focal تست شده است.

تنظیمات سمت کلاینت

  • ابتدا بسته‌ی زیر را نصب نمایید.
# apt-get install rsyslog-gnutls
  • پوشه‌ی زیر را ایجاد نمایید.
# mkdir -p /etc/rsyslog.d/ssl
# cd /etc/rsyslog.d/ssl
  • کلید مورد نیاز را از سرور دریافت نمایید.
# scp root@rsyslog-server.homayouni.local:/etc/rsyslog.d/ssl/CA-cert.pem .
  • برای پوشه‌ی ssl سطح دسترسی دلخواه در نظر بگیرید.
# chmod -R 777 /etc/rsyslog.d/ssl
  • پرونده‌ی زیر را ایجاد نمایید.
# vim /etc/rsyslog.d/00-config.conf
  • محتویات زیر را برای آن در نظر بگیرید.
# certificate files 
$DefaultNetstreamDriverCAFile /etc/rsyslog.d/ssl/CA-cert.pem 
$ActionSendStreamDriver gtls 
$ActionSendStreamDriverMode 1 
$ActionSendStreamDriverAuthMode anon 

# send all messages to remote syslog server with tls 
*.* @@rsyslog.homayouni.local:10514
  • سرویس rsyslog را راه‌اندازی مجدد نمایید.
# systemctl restart rsyslog
  • لاگ‌‌ها را به صورت همزمان مشاهده نمایید.
# journalctl -f -n 0
  • نکته : مراحل کلاینت بر روی Ubuntu Xenial تست شده است.
  • مطالعه‌ی بیشتر در این خصوص در اینجا