คุณจะส่ง syslog * อย่างปลอดภัย * ผ่านทางอินเทอร์เน็ตสาธารณะได้อย่างไร


20

ดังนั้นฉันจึงมีเซิร์ฟเวอร์บางตัวที่ฉันต้องการเข้าสู่ระบบจากส่วนกลาง แต่เห็นได้ชัดว่าฉันไม่ต้องการส่งผ่านข้อมูลทางอินเทอร์เน็ตอย่างไม่ปลอดภัย

ฉันได้ลอง syslog-ng แต่ไม่สามารถทำให้มันทำงานได้อย่างปลอดภัยssh -L PORT:localhost:PORT user@hostอุโมงค์ SSH ปกติจะไม่ทำงานเพราะฉันเชื่อว่าการทำให้บันทึกดูเหมือนจะมาจากเครื่องในท้องถิ่นและ VPN ดูเหมือนว่าเกินความเป็นจริง .

คำตอบ:


19

คุณลอง syslog-ng และ stunnel แล้วหรือยัง?

  1. ติดตั้ง Stunnel
  2. สร้างไฟล์ใบรับรองสำหรับ syslog-ng บน Stunnel
  3. กำหนดค่า Stunnel สำหรับใช้กับ syslog-ng
  4. ติดตั้ง syslog-ng
  5. กำหนดค่า syslog-ng
  6. ทำ!

บันทึก:

Stunnel ( http://www.stunnel.org ) เป็นโปรแกรมที่อนุญาตให้คุณเข้ารหัสการเชื่อมต่อ TCP โดยพลการภายใน SSL (Secure Sockets Layer) ที่มีอยู่ใน Unix และ Windows Stunnel สามารถอนุญาตให้คุณรักษาความปลอดภัย daemons และโปรโตคอลที่ไม่ใช่ SSL (เช่น POP, IMAP, LDAP และอื่น ๆ ) โดยให้ Stunnel จัดเตรียมการเข้ารหัสโดยไม่ต้องเปลี่ยนรหัสของ daemon


นี่คือสิ่งที่เราใช้ในการส่ง syslog จาก DMZ ของเราไปยังเครือข่ายภายในของเรา ทำได้ดี.
Kamil Kisiel

3
สำหรับสิ่งที่คุ้มค่า syslog-ng 3.x รองรับ TLS โดยกำเนิดดังนั้นไม่จำเป็นต้องใช้ stunnel อีกต่อไป
ซินธิไซเซอร์

12

คำตอบสั้น ๆ : VPN

มันอาจดูเหมือน overkill แต่เป็นคำตอบที่ถูกต้องและไม่ยุ่งยากในการตั้งค่า


ขวา!; openvpn.netง่ายมากในการตั้งค่าและใช้งานได้
pQd

ไม่เพียงแค่นั้น แต่ยังช่วยให้คุณสามารถจัดการและตรวจสอบเครื่องระยะไกลได้อย่างยืดหยุ่นมากขึ้น OpenVPN (หรือแม้แต่ IPSec) จะดีขึ้นในระยะยาว
Christopher Cashell

9

Rsyslog สามารถทำได้ เข้ารหัส Syslog Traffic ด้วย TLS


คุณยังไม่ได้เปิดพอร์ตกับอินเทอร์เน็ตด้วยวิธีนี้ใช่ไหม ฉันยังคงไม่รังเกียจที่จะทำสิ่งนี้
Kevin Kuphal

3
เควิน: มันสันนิษฐานว่าเซิร์ฟเวอร์ syslog ของคุณจะคาดหวังว่าการจราจรจาก IP ที่กำหนดไว้บางอย่างที่เป็นเรื่องง่ายที่จะประสบความสำเร็จผ่าน iptables
แมตต์ซิมมอนส์

ผู้ให้บริการคลาวด์ส่วนใหญ่ยังอนุญาตให้กลุ่มความปลอดภัยที่ยืดหยุ่นซึ่งอนุญาตให้คุณอนุญาตรายการพอร์ตที่เฉพาะเจาะจงจาก IP ที่ระบุ
jorfus


1

ใช้ syslog-ng หรือ syslog daemon อื่นที่รองรับ TCP

ส่งข้อมูลผ่านอุโมงค์ที่เข้ารหัส อย่าใช้อุโมงค์ ssh มันเที่ยวยุ่งเกินไป

UDP syslog เป็นโปรโตคอลที่ทำลายล้างในอดีตที่ควรถูกกำจัดไปนานแล้ว หากผู้ขายของคุณให้บริการตามค่าเริ่มต้นโปรดพึ่งพาพวกเขา

หากผู้ขายของคุณไม่มีโซลูชัน syslog ที่ลงชื่อแต่ละข้อความก่อนที่จะส่งให้พึ่งพาพวกเขา

ซอฟต์แวร์เป็นเรื่องง่ายอัลกอริทึมเป็นเรื่องง่าย การเมืองของการติดตั้งโดยค่าเริ่มต้นนั้นไม่ใช่


UDP syslog มีข้อได้เปรียบบางประการเมื่อไม่ได้ทำให้เกิดการขัดข้องหากปลายทางหยุดทำงานเป็นระยะเวลานาน ไม่ใช่เรื่องใหญ่เกินไปสำหรับ syslog-ng แต่อาจเป็นฝันร้ายใน rsyslog คุณค่าของการเข้ารหัสคืออะไรที่ฉันต้องการตั้งคำถามโดยบอกว่า
Florian Heigl

1

ฉันอาจจะไม่ส่งข้อมูลบันทึกทางอินเทอร์เน็ตในตอนแรก แต่ติดตั้ง loghost ส่วนกลางที่ตำแหน่งที่จำเป็น

วันนี้ฉันชอบ rsyslog กับ syslog-ng เป็นการแทนที่ที่ใกล้จะตกและมีเอกสารและ howtos ที่หลากหลายรวมถึงการส่งข้อมูลที่เข้ารหัสด้วย TLS / SSL (ณ วันที่ v3.19.0) เวอร์ชันที่เก่ากว่ายังคงสามารถใช้ stunnelได้

จากประสบการณ์ของฉันที่มีทั้ง rsyslog และ syslog-ng rsyslog ชนะได้อย่างง่ายดายโดยเฉพาะอย่างยิ่งเนื่องจากคุณสามารถใช้ syslog.conf ที่มีอยู่ของคุณและเพิ่มเข้าไป

สำหรับสิ่งที่มันคุ้มค่า Rsyslog เป็นภูตเริ่มต้น syslog บนDebian Lenny (5.0), UbuntuและFedora


เป็นเรื่องที่แย่มากที่ rsyslog ยังไม่ได้เพิ่มไวยากรณ์การกำหนดค่าไฟล์ใหม่ (ตามแผน) ตอนนี้การกำหนดค่า rsyslog สำหรับสิ่งที่ไม่สำคัญนั้นเจ็บปวดเมื่อเปรียบเทียบกับ syslog-ng
Christopher Cashell

0

ฉันใช้ 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/"))
    );
};
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.