Score:1

บน Fedora ฉันจะกำหนดค่า selinux ให้อนุญาตพอร์ตสำหรับประเภทบริการใหม่ที่ไม่ได้กำหนดได้อย่างไร

ธง br

ฉันมีหลายอย่างที่อยากจะเป็นเซิร์ฟเวอร์บน Fedora ฉันรู้ว่าฉันสามารถเรียกใช้สิ่งเหล่านี้ได้อย่างน้อยบางส่วนใน พ็อดแมน หรือ นักเทียบท่า แต่ฉันรู้แล้วว่าต้องทำอย่างไร ฉันยังรู้วิธีอนุญาตสำหรับบริการที่มีอยู่เช่น จุ๊ๆ หากฉันต้องการใช้พอร์ตที่กำหนดเองผ่าน:

พอร์ต sudo semanage -a -t ssh_port_t -p tcp 2222

แต่ปัญหาของฉันคือ selinux ได้กำหนดไฟล์ ssh_port_t พิมพ์. จะเกิดอะไรขึ้นหากฉันมีแอปแบบกำหนดเองที่ฉันไม่สามารถหรือไม่ต้องการทำงานในคอนเทนเนอร์ด้วยเหตุผลบางอย่าง ฉันจะอนุญาตพอร์ตสำหรับสิ่งที่ทำได้อย่างไร ไม่ มีประเภทที่กำหนดไว้ล่วงหน้าแล้ว พอร์ต semanage --list?

สำหรับตัวอย่างนี้ สมมติว่าฉันพยายามเรียกใช้ /path/myNiftyGameServer และต้องการให้เชื่อมต่อบนพอร์ต udp 12345 (ซึ่งปัจจุบันไม่ได้ใช้ในระบบของฉัน) ฉันจะทำสิ่งนี้ได้อย่างไร

ฉันไม่อ้างว่าเป็นกูรู แต่ฉันรู้สึกว่าค่อนข้างเชี่ยวชาญกับ bash และ Linux โดยทั่วไป แต่ก็ยังเป็นมือใหม่เมื่อพูดถึง SELinux (ฉันรู้เกี่ยวกับป้ายกำกับ เรียกคืนคอนและพื้นฐานบางอย่าง น้ำเชื้อ คำสั่งแต่ฉันยังเรียนรู้อยู่)

โปรดสันนิษฐานว่าฉันไม่เต็มใจที่จะปิดการใช้งาน SELinux (เพราะฉันเป็นเช่นนั้น) หากคำถามนี้ดูเหมือนใช้ไม่ได้จริง ก็เป็นเรื่องปกติที่จะเสนอคำแนะนำเพิ่มเติม แต่ฉันถามเป็นส่วนใหญ่เพราะฉันสงสัยว่าจะแก้ปัญหานี้อย่างไรใน SELinux และไม่สามารถหาทางออกได้ด้วยตัวเอง ยกเว้นประเภทที่มีอยู่เช่น ssh ของฉัน ตัวอย่างด้านบน โปรดอย่าลังเลที่จะแนะนำหัวข้อการอ่านที่เกี่ยวข้องอื่นๆ สำหรับมือใหม่ SELinux

แก้ไข: จากการค้นหาเพิ่มเติมและจากการค้นพบของฉัน เซิร์ฟเวอร์ Starbound บน Centos และ ก นโยบายเซิร์ฟเวอร์เฉพาะของ Soldatฉันเดาว่าบางทีฉันอาจต้องเรียนรู้วิธีเขียนนโยบาย SELinux? บ้าไปแล้วที่ฉันต้องการขนาดนั้นเมื่อบริการไม่มีชื่อ แต่ฉันยังต้องการเรียนรู้วิธีการทำ

แก้ไข 2: หลังจากใช้เวลาอ่านอย่างละเอียดแล้วลิงก์ Starbound ดูเหมือนจะไม่ใช่สิ่งที่ฉันตามหา การเขียนนโยบาย SELinux เพียงอย่างเดียวสำหรับเซิร์ฟเวอร์ Apache แยกต่างหาก (มีการกำหนด Apache ไว้แล้ว) แทนที่จะเป็นเซิร์ฟเวอร์เกม Soldat one ดูเหมือนจะใกล้เคียงกับสิ่งที่ฉันตามหา แต่ฉันคิดว่าฉันต้องการข้อมูลเบื้องต้นเกี่ยวกับการเขียนนโยบายเพื่อให้สามารถไปถึงที่นั่นได้ โดยเฉพาะอย่างยิ่ง ฉันสนใจเฉพาะวิธีเปิดพอร์ตสำหรับเซิร์ฟเวอร์ที่กำหนดเอง/บริการบนเว็บเท่านั้น การตั้งค่าการเข้าถึงพาธของไฟล์ก็ฟังดูดีเหมือนกัน แต่ฉันสามารถจัดการได้ด้วยบัญชีผู้ใช้ แม้ว่าฉันจะเปิดพอร์ตเครือข่ายใน firewall-cmd (ไฟร์วอลล์) ก็ตาม SELinux ก็ยังถูกบล็อกถ้าฉันจำไม่ผิด (ฉันรู้ว่าฉันมีสิ่งนี้ ฉบับที่ผ่านมา แต่ผมคิดว่า ผมสามารถสอบซ่อมได้เพื่อความแน่ใจ)

Score:1
ธง jp

สิ่งสำคัญที่ต้องทำความเข้าใจที่นี่คือนโยบายเริ่มต้นของ SELinux เป้าหมาย. นั่นคือมันจำกัดเฉพาะสิ่งที่รู้เท่านั้น นานมาแล้วเราได้ลองใช้วิธีการอื่น (บล็อกทุกสิ่งที่นโยบายไม่อนุญาต) และสิ่งต่างๆ มากมายพังตลอดเวลาจนทุกคนปิดใช้

ดังนั้นของคุณ myNiftyGameServer กำลังจะทำงานในโดเมนที่ไม่ จำกัด ถึงอย่างไร โดยค่าเริ่มต้น â ถ้าคุณต้องการทำให้รัดกุม คุณจะต้องเรียกใช้ในคอนเทนเนอร์หรือเขียนนโยบายเฉพาะ

นั่นเป็นเหตุผลที่คุณไม่พบวิธีง่าย ๆ ในการเพิ่มประเภทพอร์ตแบบสุ่ม ... มันจะไม่มีประโยชน์มากนัก

มีคำแนะนำฉบับย่อที่เหมาะสมสำหรับการสร้างนโยบายที่กำหนดเองสำหรับ daemon ใน RHEL 8 เอกสาร

br flag
เพิ่งทดสอบสิ่งนี้และแน่นอนว่าคุณถูกต้อง ขอบคุณสำหรับการชี้แจงความเข้าใจผิดของฉันและสำหรับลิงค์

โพสต์คำตอบ

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