Score:0

Rsyslog - "คำเตือน: ไม่ได้ตั้งค่าใบรับรอง CA" แต่การส่งต่อ TLS ยังคงใช้งานได้

ธง ma

ฉันกำลังกำหนดค่า rsyslog ให้ส่งต่อผ่าน TCP/TLS ฉันสงสัยว่าทำไมฉันต้องเพิ่มใบรับรองไปยังไคลเอนต์ ซึ่งแตกต่างจาก HTTPS ดังนั้นฉันจึงต่อต้าน README และแสดงความคิดเห็นเกี่ยวกับการกำหนดค่าใบรับรอง ปล่อยให้ฉันอยู่กับสิ่งนี้:

# ส่วนกลาง (DefaultNetstreamDriverCAFile="/etc/ssl/cert.pem")

ชุดกฎ (ชื่อ = "คล่องแคล่ว") {
        หนังบู๊(
                พิมพ์ = "omfwd"
                target="<โดเมนของฉัน>"
                พอร์ต = "24224"
                โปรโตคอล = "tcp"
                StreamDriver="gtls"
                StreamDriverMode="1"
                StreamDriverAuthMode="อานนท์"
)
}

ตอนนี้ฉันได้รับ คำเตือน: ไม่ได้ตั้งค่าใบรับรอง CA [v8.2001.0 ลอง https://www.rsyslog.com/e/2329 ] ในบันทึก rsyslog อย่างไรก็ตาม ข้อความบันทึกยังคงส่งต่อไปยังอินสแตนซ์ที่คล่องแคล่วของฉันได้สำเร็จซึ่งใช้ TLS

ทำไมถึงเป็นเช่นนี้? ใบรับรองจำเป็นหรือไม่?

Binky avatar
de flag
หากต้องการคำตอบที่ชัดเจน คุณจะต้องให้ข้อมูลเพิ่มเติม ฉันขอแนะนำให้คุณระบุผลลัพธ์ของ `lsb_release -a` และวาง PEM blob ของใบรับรองเซิร์ฟเวอร์ (ไม่ใช่คีย์ส่วนตัว) ที่เรียกใช้อินสแตนซ์ที่คล่องแคล่วของคุณ
ma flag
@Binky ฉันได้ลบอาร์ติแฟกต์ของฉันทั้งหมดออกจากการทดลองใช้งานนี้แล้ว แต่คำอธิบายว่าคุณลักษณะใดของการแจกจ่ายและ/หรือใบรับรองเซิร์ฟเวอร์ที่เกี่ยวข้องและเหตุผลจะมีประโยชน์มาก
Score:1
ธง de

ตามความคิดเห็นของคุณ ฉันกำลังตอบโดยทั่วไป เนื่องจากเราไม่สามารถพูดคุยรายละเอียดเฉพาะจากการติดตั้งจริงได้

เมื่อโปรแกรมบน Linux เช่น rsyslog ใช้ TLS โดยทั่วไปแล้วโปรแกรมจะสร้าง (เชื่อมโยงกับ) ไลบรารี TLS มาตรฐาน เช่น OpenSSL หรือ GnuTLS ไลบรารีเหล่านี้เข้าถึงที่เก็บใบรับรอง (ไฟล์ ไดเร็กทอรีของไฟล์ หรือฐานข้อมูล) ค้นหาใบรับรองที่เหมาะสมในร้านค้า สร้างห่วงโซ่ใบรับรอง และดำเนินการตรวจสอบใบรับรองเซิร์ฟเวอร์ (ด้วยความช่วยเหลือจากไลบรารีการเข้ารหัสลับและไลบรารีอื่นๆ)

คำสั่งเช่น DefaultNetstreamDriverCAFile="/etc/ssl/cert.pem" กำลังส่งเส้นทางของที่เก็บใบรับรองที่ต้องการ (ไฟล์) ไปยังไลบรารี TLS นั้น (ระบบสามารถมีที่เก็บใบรับรองได้หลายที่)ดังนั้นเมื่อคุณไม่ได้แสดงความคิดเห็นในบรรทัดนั้น rsyslog จะบอกให้ไลบรารี TLS ใช้ไฟล์ข้อความนั้น ซึ่งมีใบรับรองรูปแบบ PEM อย่างน้อยหนึ่งรายการ

หากคุณแสดงความคิดเห็นในบรรทัดนั้น สิ่งที่เกิดขึ้นจะขึ้นอยู่กับไลบรารี TLS พื้นฐาน หากไลบรารีถูกสร้างขึ้นด้วยที่เก็บใบรับรองเริ่มต้น ไลบรารีจะยังคงดำเนินการต่อรอง TLS ได้ ตัวอย่างเช่น ในกล่อง Ubuntu 20 ของฉัน โปรแกรมที่ใช้ไลบรารี GnuTLS จะเชื่อมโยงกับ /usr/lib/x86_68-linux-gnu/libgnutls.so. ไฟล์ไลบรารีวัตถุที่ใช้ร่วมกันนั้นถูกคอมไพล์ด้วยพาธที่เก็บใบรับรองดีฟอลต์ของ /etc/ssl/certs/ca-certificates.crt -- ที่เก็บใบรับรองไฟล์ข้อความซึ่งเป็นตำแหน่งมาตรฐานสำหรับระบบปฏิบัติการ Ubuntu คุณสามารถดูเส้นทางฮาร์ดโค้ดนี้ได้หากคุณรันคำสั่ง:

สตริง /usr/lib/x86_68-linux-gnu/libgnutls.so | ใบรับรอง grep.

ดังนั้นหากฉันต้องเรียกใช้ rsyslog ที่เชื่อมโยงกับ GnuTLS ด้วยบรรทัด DefaultNetstreamDriverCAFile ที่แสดงความคิดเห็นเหมือนกัน ก็จะใช้พาธแบบฮาร์ดโค้ดไปยังที่เก็บใบรับรอง และ rsyslog ก็สามารถดำเนินการเจรจา TLS ให้เสร็จสมบูรณ์ได้

นี่น่าจะเป็นสิ่งที่เกิดขึ้นกับระบบของคุณ และเหตุใดข้อความที่คุณเห็นจึงเป็นเพียงระดับ "คำเตือน" โปรแกรม rsyslog ไม่ทราบว่าไลบรารี TLS พื้นฐานมีค่าเริ่มต้นหรือไม่ ดังนั้น rsyslog จึงเขียนขึ้นเพื่อเตือนคุณและดำเนินการต่อ หากไม่มีที่เก็บใบรับรองในไลบรารี TLS พื้นฐาน โค้ดนั้นจะส่งคืนข้อความแสดงข้อผิดพลาดร้ายแรงไปยัง rsyslog และ rsyslog จะส่งต่อ/บันทึกข้อความไปยังผู้ใช้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา