Bagaimana Anda mengirim syslog * dengan aman * melalui Internet publik?

20

Jadi saya punya beberapa server yang ingin saya login secara terpusat tetapi jelas saya tidak ingin meneruskan data dengan tidak aman melalui internet.

Saya sudah mencoba syslog-ng tetapi tidak dapat membuatnya bekerja dengan cara yang aman, ssh -L PORT:localhost:PORT user@hostterowongan SSH yang normal tidak akan berfungsi karena saya percaya itu membuat log tampaknya berasal dari mesin lokal, dan VPN sepertinya sedikit seperti kerja keras yang berlebihan .

James Hannah
sumber

Jawaban:

19

Sudahkah Anda mencoba syslog-ng dan stunnel?

  1. Instal Stunnel
  2. Buat file sertifikat untuk syslog-ng melalui Stunnel
  3. Konfigurasikan Stunnel untuk Digunakan Dengan syslog-ng
  4. Instal syslog-ng
  5. Konfigurasikan syslog-ng
  6. DIBUAT!

CATATAN:

Stunnel ( http://www.stunnel.org ) adalah program yang memungkinkan Anda untuk mengenkripsi koneksi TCP yang sewenang-wenang di dalam SSL (Secure Sockets Layer) yang tersedia di Unix dan Windows. Stunnel dapat memungkinkan Anda untuk mengamankan daemon dan protokol sadar non-SSL (seperti POP, IMAP, LDAP, dll) dengan meminta Stunnel menyediakan enkripsi, tidak memerlukan perubahan pada kode daemon.

KPWINC
sumber
Ini yang kami gunakan untuk mengirim syslog dari DMZ kami ke jaringan internal kami. Bekerja dengan baik.
Kamil Kisiel
3
Untuk apa nilainya, syslog-ng 3.x mendukung TLS secara native, jadi, tidak perlu menggunakan stunnel lagi.
synthesizer
12

Jawaban singkat: VPN

Ini mungkin kelihatannya berlebihan, tetapi itu adalah jawaban yang tepat dan tidak rumit untuk diatur.

Kevin Kuphal
sumber
kanan!; openvpn.net sangat sederhana untuk diatur dan hanya berfungsi.
pQd
Tidak hanya itu, tetapi juga memberi Anda lebih banyak fleksibilitas untuk mengelola dan memantau mesin jarak jauh dengan aman. OpenVPN (atau bahkan IPSec) akan jauh lebih baik dalam jangka panjang.
Christopher Cashell
9

Rsyslog dapat melakukan ini. Mengenkripsi Lalu Lintas Syslog dengan TLS

Brian De Smet
sumber
Bukankah Anda masih membuka porta ke internet dengan solusi ini? Saya masih enggan melakukan itu untuk sesuatu seperti ini.
Kevin Kuphal
3
Kevin: Ini diasumsikan bahwa server syslog Anda akan mengharapkan lalu lintas dari IP yang telah ditentukan tertentu, yang mudah untuk mencapai melalui iptables
Matt Simmons
Sebagian besar penyedia cloud juga memungkinkan grup keamanan fleksibel yang memungkinkan Anda memasukkan port tertentu dari IP tertentu.
jorfus
1

Gunakan syslog-ng atau daemon syslog lain yang mendukung TCP.

Kirim data melalui terowongan terenkripsi. Jangan gunakan ssh tunnel, itu terlalu fiddly.

UDP syslog adalah protokol historis yang rusak yang seharusnya telah dihilangkan sejak lama. Jika vendor Anda menyediakannya secara default, silakan mengandalkan mereka.

Jika vendor Anda tidak menyediakan solusi syslog yang menandatangani setiap pesan sebelum mengirimnya, bersandarlah pada mereka.

Perangkat lunaknya mudah, algoritmanya mudah. Politik untuk menginstalnya secara default tidak.

carlito
sumber
Syslog UDP memiliki kelebihan tertentu ketika datang tidak menyebabkan pemadaman jika tujuan turun untuk periode yang lebih lama. Bukan masalah besar dengan syslog-ng, tetapi bisa menjadi mimpi buruk di rsyslog. Nilai enkripsi tidak ada yang ingin saya pertanyakan dengan mengatakan itu.
Florian Heigl
1

Saya mungkin tidak akan mengirim data log melalui internet di tempat pertama, tetapi instal loghost terpusat di lokasi yang diperlukan.

Hari ini, saya lebih suka rsyslog daripada syslog-ng. Ini adalah pengganti dekat, dan memiliki berbagai makalah dan howtos, termasuk yang mengirim data terenkripsi dengan TLS / SSL (pada v3.19.0), versi yang lebih lama masih dapat menggunakan stunnel .

Dalam pengalaman saya dengan rsyslog dan syslog-ng, rsyslog menang dalam kemudahan konfigurasi, terutama karena Anda dapat menggunakan syslog.conf yang ada, dan menambahkannya.

Untuk apa nilainya, Rsyslog adalah daemon syslog default pada Debian Lenny (5.0), Ubuntu dan Fedora .

jtimberman
sumber
Sayang sekali rsyslog belum menambahkan sintaks file konfigurasi yang baru (direncanakan). Saat ini, mengkonfigurasi rsyslog untuk apa pun yang non-sepele menyakitkan dibandingkan dengan syslog-ng.
Christopher Cashell
0

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/"))
    );
};
jorfus
sumber