Score:0

Linux: การสำรองพอร์ตย้อนกลับให้กับผู้ใช้ที่ไม่มีการรับรองความถูกต้อง เป็นไปได้ไหม

ธง nl

ฉันต้องการให้ผู้ใช้ที่เริ่มกระบวนการฟังบนพอร์ตบนอินเทอร์เฟซย้อนกลับเป็นผู้ใช้คนเดียวที่สามารถเชื่อมต่อกับพอร์ตนี้ได้ สำรองท่าเรือ. ไม่มีการรับรองความถูกต้อง

ฉันต้องการให้ผู้ใช้รายอื่นสามารถทำเช่นเดียวกันกับพอร์ตย้อนกลับที่มีอยู่

มีกลไกใดเช่น selinux หรือ apparmor ที่สามารถบรรลุสิ่งนี้ได้หรือไม่?

[แก้ไข] ขอชี้แจงว่าสถานการณ์นี้เป็น cntlm ในเครื่องที่มีผู้ใช้หลายคน ผู้ใช้แต่ละรายใช้ cntlm เพื่อตรวจสอบสิทธิ์กับพร็อกซีด้วยข้อมูลรับรองของตนเองไปยังพอร์ตเฉพาะบนอินเทอร์เฟซย้อนกลับ ฉันกำลังพยายามหาวิธีแยกสิ่งนี้เพื่อให้ผู้ใช้ไม่สามารถเชื่อมต่อโดยใช้การเชื่อมต่อพร็อกซีซึ่งกันและกัน

mx flag
ฉันเพิ่งพบว่าสามารถทำได้ด้วย iptables https://unix.stackexchange.com/questions/486945/restrict-local-port-access-to-a-specific-user
A.B avatar
cl flag
A.B
หากการแก้ไขของคุณเปลี่ยนจากพอร์ตที่กำหนดเองจากผู้ใช้ใดๆ เป็นรายการพอร์ตคงที่ที่ตรงกับรายชื่อผู้ใช้ที่ตายตัว ก็จะทำให้ปัญหาง่ายขึ้นอย่างมาก
Score:2
ธง cn

หากการวนกลับหมายถึงการเชื่อมต่อเครือข่ายเฉพาะกับ localhost ให้พิจารณา ซ็อกเก็ต AF_UNIX. ซ็อกเก็ตโดเมน AKA UNIX AKA วิธีที่ไม่ใช่ IP คุณสามารถเชื่อมต่อกับฐานข้อมูล PostgreSQL หรือ MySQL

บน Linux สิ่งนี้มีข้อได้เปรียบในการเคารพสิทธิ์ของไฟล์ หากไม่มีการเขียนไปยังซ็อกเก็ตในฐานะผู้ใช้ มันจะไม่ทำงาน อาจเป็นไปได้ว่าพฤติกรรมนี้ไม่ได้มาตรฐาน

เครือข่าย IP ไม่มี ID ผู้ใช้ระบบปฏิบัติการของผู้ที่สร้างแพ็กเก็ต บางทีในกฎไฟร์วอลล์ nftables คุณสามารถกรอง uid ได้ แต่เฉพาะในไฟร์วอลล์โฮสต์เท่านั้นสำหรับซ็อกเก็ตในเครื่อง ดีกว่าจะเป็นโปรโตคอลการตรวจสอบความถูกต้อง

A.B avatar
cl flag
A.B
หากมีการอธิบายลักษณะการทำงานใน POSIX (https://pubs.opengroup.org/onlinepubs/9699919799/functions/connect.html ดู EACCES) แสดงว่าเป็นพฤติกรรมที่เป็นมาตรฐาน
John Mahowald avatar
cn flag
man 7 unix บน Linux เตือนว่า "ในบางระบบ (เช่น BSD ที่เก่ากว่า) การอนุญาตซ็อกเก็ตจะถูกละเว้น" อาจเป็นสิ่งที่สืบทอดมา แต่ควรตรวจสอบว่านี่เป็นแอปพลิเคชันพกพาที่ไม่มีการตรวจสอบสิทธิ์เลยหรือไม่
Score:0
ธง mx

Iptables ทำในสิ่งที่ฉันต้องการจะทำ นี่คือตัวอย่าง iptables ที่ฉันทดสอบและใช้งานได้ ฉันแค่ต้องเขียน wrapper เพื่อประกบคำสั่ง cntlm ในคำสั่ง iptables ฉันสามารถเรียกมันว่า lunch.sh

# เพื่อจองพอร์ต 7777 ให้กับผู้ใช้ "foo"
iptables -I เอาต์พุต -o lo -p tcp --dport 7777 -j DROP
iptables -I OUTPUT -o lo -p tcp --dport 7777 --match-owner --uid-owner foo -j ยอมรับ

#ปลดพอร์ต 
iptables -D เอาต์พุต -o lo -p tcp --dport 7777 -j DROP
iptables -D OUTPUT -o lo -p tcp --dport 7777 --match-owner --uid-owner foo -j ยอมรับ

โพสต์คำตอบ

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