ทำไม X11 ถึงมีความเสี่ยงด้านความปลอดภัยในเซิร์ฟเวอร์


11

ฉันจำได้ว่าอ่านว่าเซิร์ฟเวอร์ไม่มี GUI เพราะ X11 เป็นความเสี่ยงด้านความปลอดภัย ทำไม?

คำตอบ:


8

เอกสารชุมชนของ Ubuntu อธิบายเหตุผลที่แท้จริงว่าทำไมจึงไม่แนะนำให้เรียกใช้ GUI บนระบบเซิร์ฟเวอร์ที่ใช้งานจริง:

นักพัฒนา Ubuntu Server ส่วนใหญ่ไม่แนะนำให้ติดตั้ง X บนเซิร์ฟเวอร์ มีสาเหตุหลายประการที่ไม่ติดตั้ง GUI

เหตุผลบางประการที่ไม่ติดตั้ง GUI รวมถึง:

  1. คุณจะมีรหัสมากขึ้นโดยมีจุดอ่อนด้านความปลอดภัยแพ็คเกจเพิ่มเติมที่จำเป็นต้องอัปเดตและการหยุดทำงานของเซิร์ฟเวอร์มากกว่า
  2. แพ็คเกจ X11 และเดสก์ท็อปไม่รองรับตลอดอายุการใช้งาน 5 ปีเต็มของการเปิดตัวเซิร์ฟเวอร์ LTS
  3. ประสิทธิภาพอาจลดลงเนื่องจากทรัพยากร (หน่วยความจำพื้นที่ว่างในฮาร์ดดิสก์ CPU ฯลฯ ) จะถูกใช้โดย GUI
  4. วิธีปฏิบัติที่ดีที่สุดคือติดตั้งซอฟต์แวร์ที่จำเป็นบนเซิร์ฟเวอร์ที่ใช้งานจริงเท่านั้น
  5. GUI อาจรวมถึงบริการเครือข่ายอื่น ๆ ที่ไม่เหมาะสมสำหรับเซิร์ฟเวอร์
    1. หนึ่งในเป้าหมายของ Ubuntu Desktop Edition คือการทำให้ผู้ใช้สามารถใช้งาน Linux ได้ง่ายขึ้น เมื่อติดตั้งสภาพแวดล้อมเดสก์ทอปบางบริการที่คุณอาจไม่ต้องการโดยเฉพาะจะถูกติดตั้ง ตัวอย่างเช่นavahi-daemonซึ่งใช้เพื่อช่วยกำหนดค่าเครือข่ายเพิ่มพอร์ตเปิดใหม่และอาจทำให้เกิดข้อขัดแย้ง DNS ที่ไม่ต้องการกับโดเมน. local

ดังนั้นสำหรับเซิร์ฟเวอร์ที่ปลอดภัยที่สุดจะเป็นการดีที่สุดที่จะไม่ติดตั้ง GUI

"ServerGUI" โดย "ร่วมให้ข้อมูลเอกสารวิกิพีเดียอูบุนตู" ทำซ้ำที่นี่ได้รับอนุญาตตาม CC-BY-SA 3.0

ตรงกันข้ามกับความเข้าใจผิดที่ค่อนข้างสามัญ X11 การเป็นเซิร์ฟเวอร์นั้นไม่เกี่ยวข้องกับเหตุผลที่ทำไมการรัน GUI บนเซิร์ฟเวอร์ที่ใช้งานจริงนั้นถือว่าไม่เหมาะสำหรับมุมมองด้านความปลอดภัย X11 ไม่เคยถูกกำหนดค่าตามความเป็นจริงให้สามารถเข้าถึงได้ผ่านเครือข่ายอีกต่อไปในทุกระบบปฏิบัติการ Ubuntu รุ่นใดที่ไม่เคยมี X11 ใช้เซิร์ฟเวอร์ที่เข้าถึงเครือข่ายในการกำหนดค่าเริ่มต้น (ในการเข้าถึง X11 บน Ubuntu ผ่าน TCP คุณต้องส่งต่อแม้ว่า SSH หรือกำหนดค่าเซิร์ฟเวอร์ใหม่ด้วยตนเอง)

นอกจากนี้แม้ว่า X11 เรียกใช้เซิร์ฟเวอร์ที่เข้าถึงเครือข่ายได้แต่นี่ก็ไม่ใช่เหตุผลที่จะไม่ติดตั้งบนระบบเซิร์ฟเวอร์ที่ใช้งานจริง ใครก็ตามที่รันเซิร์ฟเวอร์ที่ใช้งานจริงนั้นสามารถกำหนดค่าได้ตามความต้องการและตรวจสอบเพื่อให้แน่ใจว่าบริการที่ไม่พึงประสงค์นั้นไม่ได้ทำงานอยู่ (หากพวกเขาไม่สามารถที่จะก่อให้เกิดภัยคุกคามที่ไกลมากขึ้นในการรักษาความปลอดภัยของพวกเขามากกว่าจะถูกสร้างขึ้นโดยมี GUI การติดตั้ง.) แม้ว่า X11 ได้ที่จะมีการฟังพอร์ตที่มีอินเตอร์เฟซเครือข่ายทางกายภาพ ( ซึ่งเป็นกรณีที่ไม่ ) พอร์ต สามารถถูกบล็อกได้อย่างง่ายดายโดยการกำหนดค่าการnetfilterใช้งานในตัวiptables(หรือส่วนหน้าในระดับที่สูงขึ้นเช่นufw)

ในทางตรงกันข้ามปัญหาที่ระบุไว้ข้างต้นไม่ใช่เรื่องง่ายที่จะเอาชนะได้โดยการกำหนดค่าใหม่


1
10.04 มีอายุการใช้งานการสนับสนุนที่แตกต่างกันสำหรับเซิร์ฟเวอร์และเดสก์ท็อป 12.04 และใหม่กว่าไม่รองรับ นอกจากนี้ gui ที่ไม่ทำงานจะไม่ใช้ cpu ใด ๆ และ ram ที่ใช้จะถูกสลับออก
psusi

@psusi ประเด็นเกี่ยวกับการเปลี่ยนแปลงระยะเวลาการสนับสนุนเป็นสิ่งที่ดี สำหรับปัญหาเกี่ยวกับ CPU และ RAM (1) ฉันไม่เห็นด้วยจากประสบการณ์ที่ idle GUI ไม่เคยใช้ CPU และ (2) ถ้า GUI กำลังทำงานอยู่จากนั้นเมื่อมีคนทำงานที่เครื่องในท้องถิ่นพวกเขามีแนวโน้มที่จะใช้มันหรือไม่ พวกเขาต้องการหรือไม่และนั่นจะทำให้ใช้ทรัพยากร CPU และหน่วยความจำมากขึ้น อย่างไรก็ตามจุดที่ 1, 4 และ 5 นั้นเป็นเหตุผลที่สำคัญที่สุดในการพิจารณาว่าไม่ได้มี GUI ที่ทำงานบนเซิร์ฟเวอร์ที่ใช้งานจริงและเหตุผลเหล่านี้ไม่เกี่ยวข้องกับวงจรชีวิตหรือปัญหาการใช้ทรัพยากร
Eliah Kagan

ฉันขอเพิ่ม Xorg ที่ทำงานเป็นรูทได้หรือไม่
Wadih M.

5

ทุกกระบวนการทำงานมีความเสี่ยงด้านความปลอดภัย โดยเฉพาะอย่างยิ่งผู้ที่ฟังพอร์ตเครือข่าย (X11 ทำ)

แนวปฏิบัติทั่วไปที่ดีคือไม่เรียกใช้สิ่งใดบนเซิร์ฟเวอร์ที่ไม่จำเป็นต้องอยู่ที่นั่นและ X11 ไม่จำเป็นต้องอยู่บนเซิร์ฟเวอร์ที่คุณจะเข้าร่วม SSH

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


2
ในการกระจาย Linux ที่ทันสมัยที่สุด (เช่น Ubuntu) เซิร์ฟเวอร์ X โดยค่าเริ่มต้นจะไม่ฟังบนพอร์ตเครือข่าย แต่ยอมรับเฉพาะการเชื่อมต่อภายในผ่านซ็อกเก็ตโดเมน
Florian Diesch

@FlorianDiesch แม้จะอยู่ในหนึ่งไม่ได้กำหนดค่าจากเซิร์ฟเวอร์?
Amith KK

Big +1 สำหรับการกล่าวถึงว่า X11 เป็นเซิร์ฟเวอร์เครือข่าย
Stefano Palazzo

2
Amith: ใช่ xinit / startx ใช้-nolisten tcpโดยค่าเริ่มต้น
Florian Diesch

5

นี่เป็นเพราะ X Window System ก่อให้เกิดความเสี่ยงด้านความปลอดภัยอย่างร้ายแรงหากระบบไม่ปลอดภัยอย่างเหมาะสม X11 "display" เป็นเซิร์ฟเวอร์ X11 ที่ทำงานบนเดสก์ท็อปของคุณและรวมถึงหน้าจอแป้นพิมพ์และเมาส์ หากจอแสดงผล X11 ของคุณไม่ปลอดภัยจะอนุญาตให้โปรแกรมทำงานที่ใดก็ได้บนอินเทอร์เน็ตเพื่อเชื่อมต่อกับมันและการเชื่อมต่ออาจไม่ปรากฏแก่คุณ เมื่อเชื่อมต่อแล้วโปรแกรมนั้นจะสามารถเข้าถึงจอแสดงผลของคุณได้อย่างสมบูรณ์ซึ่งหมายความว่าสามารถ:

  • ดูและคัดลอกเนื้อหาของหน้าจอของคุณโดยใช้โปรแกรมอรรถประโยชน์ X11 มาตรฐาน
  • ตรวจสอบการกดแป้นของคุณ
  • ควบคุมเบราว์เซอร์ Netscape จากระยะไกลบนเดสก์ท็อปของคุณและการกดแป้นพิมพ์ปลอมราวกับว่าคุณกำลังพิมพ์ด้วยตัวเอง (แม้ว่าแอปพลิเคชั่น X11 บางตัวอาจไม่ได้รับผลกระทบนี้)

กฎนิ้วหัวแม่มือไม่ควรใช้xhost +- มันเป็นการปิดการใช้งานความปลอดภัยของหน้าจอของคุณอย่างสมบูรณ์

วิธีที่ดีคือการส่งต่อ X คือผ่าน ssh


นำมาจาก : http://www2.slac.stanford.edu/computing/security/xwindow/


1
บทความนี้มีอายุประมาณ 10 ปี ข้อมูลยังคงใช้ได้หรือไม่?
Stefano Palazzo

1
ส่วนใหญ่ใช่ ... เพราะ AFAIK เรามีxhost +คำสั่ง
Amith KK

xhost +ไม่สามารถลบล้างได้-nolisten tcpแต่เพียงเปิดคุณถึงการเชื่อมต่อใด ๆ จาก localhost
alanc

ปัญหาเหล่านี้จะแก้ไขได้ด้วยการเริ่ม xserver สำหรับแต่ละแอปพลิเคชันหรือไม่
phil294

-6

เหตุผลที่แท้จริงคือผู้ดูแลระบบสามารถคิดว่าตัวเองเป็นซุปเปอร์สมาร์ทด้วยการเรียกใช้สิ่งต่าง ๆ จากบรรทัดคำสั่ง ไม่มีความเสี่ยงด้านความปลอดภัยในการใช้งาน GUI บนเซิร์ฟเวอร์ Ubuntu

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