ฉันจำได้ว่าอ่านว่าเซิร์ฟเวอร์ไม่มี GUI เพราะ X11 เป็นความเสี่ยงด้านความปลอดภัย ทำไม?
ฉันจำได้ว่าอ่านว่าเซิร์ฟเวอร์ไม่มี GUI เพราะ X11 เป็นความเสี่ยงด้านความปลอดภัย ทำไม?
คำตอบ:
เอกสารชุมชนของ Ubuntu อธิบายเหตุผลที่แท้จริงว่าทำไมจึงไม่แนะนำให้เรียกใช้ GUI บนระบบเซิร์ฟเวอร์ที่ใช้งานจริง:
นักพัฒนา Ubuntu Server ส่วนใหญ่ไม่แนะนำให้ติดตั้ง X บนเซิร์ฟเวอร์ มีสาเหตุหลายประการที่ไม่ติดตั้ง GUI
เหตุผลบางประการที่ไม่ติดตั้ง GUI รวมถึง:
- คุณจะมีรหัสมากขึ้นโดยมีจุดอ่อนด้านความปลอดภัยแพ็คเกจเพิ่มเติมที่จำเป็นต้องอัปเดตและการหยุดทำงานของเซิร์ฟเวอร์มากกว่า
- แพ็คเกจ X11 และเดสก์ท็อปไม่รองรับตลอดอายุการใช้งาน 5 ปีเต็มของการเปิดตัวเซิร์ฟเวอร์ LTS
- ประสิทธิภาพอาจลดลงเนื่องจากทรัพยากร (หน่วยความจำพื้นที่ว่างในฮาร์ดดิสก์ CPU ฯลฯ ) จะถูกใช้โดย GUI
- วิธีปฏิบัติที่ดีที่สุดคือติดตั้งซอฟต์แวร์ที่จำเป็นบนเซิร์ฟเวอร์ที่ใช้งานจริงเท่านั้น
- GUI อาจรวมถึงบริการเครือข่ายอื่น ๆ ที่ไม่เหมาะสมสำหรับเซิร์ฟเวอร์
- หนึ่งในเป้าหมายของ 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
)
ในทางตรงกันข้ามปัญหาที่ระบุไว้ข้างต้นไม่ใช่เรื่องง่ายที่จะเอาชนะได้โดยการกำหนดค่าใหม่
ทุกกระบวนการทำงานมีความเสี่ยงด้านความปลอดภัย โดยเฉพาะอย่างยิ่งผู้ที่ฟังพอร์ตเครือข่าย (X11 ทำ)
แนวปฏิบัติทั่วไปที่ดีคือไม่เรียกใช้สิ่งใดบนเซิร์ฟเวอร์ที่ไม่จำเป็นต้องอยู่ที่นั่นและ X11 ไม่จำเป็นต้องอยู่บนเซิร์ฟเวอร์ที่คุณจะเข้าร่วม SSH
ฉันสงสัยว่าบทความที่คุณอ่านกำลังพูดถึงช่องโหว่ที่เฉพาะเจาะจงใน X11 (จะได้รับการแก้ไขหากเป็นเช่นนั้นช่องโหว่ที่ไม่ได้มีแนวโน้มที่จะยุ่งเหยิงเป็นเวลานาน) แต่เป็นการปฏิบัติที่ดีโดยทั่วไป
-nolisten tcp
โดยค่าเริ่มต้น
นี่เป็นเพราะ X Window System ก่อให้เกิดความเสี่ยงด้านความปลอดภัยอย่างร้ายแรงหากระบบไม่ปลอดภัยอย่างเหมาะสม X11 "display" เป็นเซิร์ฟเวอร์ X11 ที่ทำงานบนเดสก์ท็อปของคุณและรวมถึงหน้าจอแป้นพิมพ์และเมาส์ หากจอแสดงผล X11 ของคุณไม่ปลอดภัยจะอนุญาตให้โปรแกรมทำงานที่ใดก็ได้บนอินเทอร์เน็ตเพื่อเชื่อมต่อกับมันและการเชื่อมต่ออาจไม่ปรากฏแก่คุณ เมื่อเชื่อมต่อแล้วโปรแกรมนั้นจะสามารถเข้าถึงจอแสดงผลของคุณได้อย่างสมบูรณ์ซึ่งหมายความว่าสามารถ:
กฎนิ้วหัวแม่มือไม่ควรใช้xhost +
- มันเป็นการปิดการใช้งานความปลอดภัยของหน้าจอของคุณอย่างสมบูรณ์
วิธีที่ดีคือการส่งต่อ X คือผ่าน ssh
นำมาจาก : http://www2.slac.stanford.edu/computing/security/xwindow/
xhost +
คำสั่ง
xhost +
ไม่สามารถลบล้างได้-nolisten tcp
แต่เพียงเปิดคุณถึงการเชื่อมต่อใด ๆ จาก localhost
เหตุผลที่แท้จริงคือผู้ดูแลระบบสามารถคิดว่าตัวเองเป็นซุปเปอร์สมาร์ทด้วยการเรียกใช้สิ่งต่าง ๆ จากบรรทัดคำสั่ง ไม่มีความเสี่ยงด้านความปลอดภัยในการใช้งาน GUI บนเซิร์ฟเวอร์ Ubuntu