วิธีแยกออกจาก“ กลุ่มการจับคู่” ใน SSHD ได้อย่างไร


14

มีกลุ่มการจับคู่ในการกำหนดค่า SSHD:

cat /etc/ssh/sshd_config
...
    Match Group FOOGROUP
    ForceCommand /bin/customshell
...

มีผู้ใช้จำนวนมากบนเครื่องที่อยู่ใน "FOOGROUP"

คำถามของฉัน:ฉันจะแยกผู้ใช้ที่อยู่ใน "FOOGROUP" ออกจาก "กลุ่มการจับคู่" ได้อย่างไร

คำตอบ:


15

Matchผู้ประกอบการสามารถใช้ข้อโต้แย้งหลายช่วยให้กฎมีความยืดหยุ่นมาก ในกรณีนี้คุณสามารถทำสิ่งนี้เพื่อบรรลุสิ่งที่คุณต้องการ

Match Group FOOGROUP User !username
  ForceCommand /bin/customshell

!ขัดแย้งโต้เถียงผ่านไปUserเกณฑ์ดังนั้นแม้ว่าผู้ใช้จะusernameอยู่ในกลุ่มFOOGROUPที่Matchจะไม่ประสบความสำเร็จและusernameจะไม่ได้รับเปลือกที่กำหนดเองเมื่อเข้าสู่ระบบใน


และคุณแน่ใจ 100% ว่าจะยกเว้น "! ชื่อผู้ใช้" เท่านั้น? และผู้ใช้อื่น ๆ ที่อาจอยู่ใน FOOGROUP จะไม่ถูกแตะต้อง?
evachristine

2
ใช่. ฉันทดสอบก่อนโพสต์และทำงานตามที่ฉันอธิบาย
D_Bye

1
ดูเหมือนว่า*,!usernameเป็นวิธีที่สะอาดกว่า แต่อีกกรณีหนึ่งวิธีการแก้ปัญหาของคุณล้มเหลวมีการผสมชนิดนี้Matchด้วยChrootDirectory(ทดสอบทั้ง openssh 5.3p1 และ 7.4p1)
Ouki

4

คุณต้องใช้หลายส่วนในรายการไฟล์ปรับแต่งของคุณ แต่ในวิธีที่เฉพาะเจาะจงมาก มีข้อผิดพลาดในการตั้งค่าบางอย่างที่ทำให้เกิดการแนะนำโดยทั่วไปและง่ายที่สุดคือไวยากรณ์ ("จับคู่กลุ่มผู้ใช้ FOOGROUP User! ชื่อผู้ใช้") เพื่อทำให้คนอื่น ๆ ในกลุ่มไม่สามารถจับคู่หรือปล่อยให้พวกเขาหนีคุก chroot

บน Debian Jessie โดยใช้ OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.2d ฉันได้รับผลลัพธ์ที่ทุกคนในกลุ่มไม่สามารถเชื่อมต่อได้อีกต่อไป คนอื่น ๆรายงานการพักคุก ในทั้งสองกรณีไวยากรณ์ของ

Match Group FOOGROUP User *,!username

ดูเหมือนว่าจะทำงานโดยไม่มีผลข้างเคียง ข้อผิดพลาดบางประเภทใน parser ไม่ต้องสงสัยเลย


0

ด้วยตัวเลือกด้านล่างฉันสามารถคุกผู้ใช้ SFTP ภายในไดเรกทอรีที่ระบุและผู้ใช้ที่ระบุสามารถเข้าสู่ระบบผ่าน ssh

Match Group groupname User *,!username

ขอบคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.