การปิดใช้งานจำเป็นต้องมีหรือไม่


39

ฉันพยายามตั้งค่าสคริปต์การปรับใช้โดยใช้Capistrano ในขั้นตอนcap deploy:setupสคริปต์กำลังเชื่อมต่อกับเซิร์ฟเวอร์ของฉันและพยายามเรียกใช้คำสั่งที่สร้างไดเรกทอรี จากนั้นฉันเห็นข้อผิดพลาด:msudo: sorry, you must have a tty to run sudo

มีวิธีแก้ไขปัญหาที่แนะนำให้ปิดใช้งาน requiretty บนเซิร์ฟเวอร์ของฉัน https://unix.stackexchange.com/a/49078/26271

ฉันสงสัยว่าจะปลอดภัยหรือไม่

คำตอบ:


40

มีข้อได้เปรียบด้านความปลอดภัยที่ จำกัด มากในการมีrequirettyเซิร์ฟเวอร์ หากมีรหัสที่ไม่ใช่รากเป็นประโยชน์ (กสคริปต์ PHP ตัวอย่างเช่น) ที่ตัวเลือกวิธีการที่ใช้ประโยชน์จากรหัสจะไม่สามารถที่จะปรับสิทธิพิเศษโดยตรงโดยการทำงานrequirettysudo

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

นอกจากนี้ - และrequirettyสร้างความเสียหายมากขึ้น- ไม่จำเป็นต้องมีสิทธิ์พิเศษในการสร้าง tty เช่นคาดหวัง ดังนั้นคุณอาจปิดrequirettyตัวเอง: มันไม่ได้ให้ประโยชน์ด้านความปลอดภัย มันให้ประโยชน์การตรวจสอบที่ไม่รุนแรงเมื่อดำเนินการโดยผู้ใช้ (เนื่องจากบันทึกให้ความรู้ที่ดีขึ้นว่าใครเป็นคนเรียกsudoและมาจากที่ใด) แต่ไม่ใช่เมื่อดำเนินการจากงานเบื้องหลัง


1
คุณหมายถึงว่าถ้าผู้ใช้สามารถเรียกใช้expect(หรือscreenตัวอย่าง) แล้วrequirettyจะไร้ประโยชน์จากมุมมองความปลอดภัย? (ฉันไม่เข้าใจสิ่งที่คุณหมายถึงโดย "สาปแช่ง" ในประโยคนั้น)
จอร์ชสDupéron

@ GeorgesDupéronใช่แล้ว เนื่องจากทุกคนสามารถสร้าง tty ได้requirettyตัวเลือกจึงไม่ป้องกันใครจากการใช้ sudo
Gilles 'หยุดความชั่วร้าย'

3
requirettyสามารถป้องกันผู้ใช้จากการรั่วไหลของรหัสผ่านของพวกเขาใน cleartext หากพวกเขากำลังดำเนินการคำสั่ง sudo ซึ่งต้องใช้รหัสผ่านผ่าน ssh มีการบังคับให้ผู้ใช้โทร ssh -t
Chris Betti

1
@Chris Betti - ทำไมจึงเป็นสิ่งที่ดีในการบังคับใช้ ssh -t ... ?
รอบ

ความคิดของฉันในเวลานั้นคือในกรณีนี้ถ้าคุณกำลังดำเนินการคำสั่ง sudo ระยะไกลที่พร้อมท์ให้ใส่รหัสผ่านจะเป็นการดีกว่าที่จะใช้ประโยชน์จากโปรแกรม askpass ของเครื่องระยะไกลมากกว่ากรอกรหัสผ่านใน cleartext ผ่านคอนโซล ฉันไม่มีความคิดจริง ๆ หากทำเช่นนั้นจะช่วยเพิ่มความปลอดภัยนอกเหนือไปจากการป้องกันสถานการณ์ที่รหัสผ่านของคุณถูกสะท้อนไปยังหน้าจอในขณะที่คุณพิมพ์ ฉันเชื่อว่าฉันคิดว่าโปรแกรม askpass จะไม่ถูกเรียกใช้หากไม่มี tty หรือ pseudo-tty
Chris Betti
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.