Câu trả lời:
Tài liệu cộng đồng của Ubuntu giải thích lý do thực sự tại sao không nên chạy GUI trên hệ thống máy chủ sản xuất:
Hầu hết các nhà phát triển Ubuntu Server không khuyên bạn nên cài đặt X trên máy chủ. Có nhiều lý do để không cài đặt GUI.
Một số lý do để không cài đặt GUI bao gồm:
- Bạn sẽ có nhiều mã hơn với các lỗ hổng bảo mật, nhiều gói cần cập nhật hơn và thời gian ngừng hoạt động của máy chủ nhiều hơn.
- Các gói X11 và máy tính để bàn không được hỗ trợ cho toàn bộ vòng đời 5 năm của phiên bản máy chủ LTS.
- Hiệu năng có thể bị ảnh hưởng vì tài nguyên (bộ nhớ, dung lượng ổ cứng, CPU, v.v.) sẽ bị GUI sử dụng.
- Cách tốt nhất là chỉ cài đặt phần mềm cần thiết trên máy chủ sản xuất.
- GUI có thể bao gồm các dịch vụ mạng khác không phù hợp với máy chủ.
- Một trong những mục tiêu của Ubuntu Desktop Edition là giúp người dùng sử dụng Linux dễ dàng hơn. Khi cài đặt một số môi trường máy tính để bàn, các dịch vụ mà bạn có thể không muốn cụ thể sẽ được cài đặt. Ví dụ: avahi-daemon , được sử dụng để giúp định cấu hình mạng, thêm một cổng mở khác và có thể đưa ra xung đột DNS không mong muốn với tên miền .local.
Vì vậy, đối với máy chủ an toàn nhất, tốt nhất là không cài đặt GUI.
"ServerGUI" của "Người đóng góp cho wiki tài liệu Ubuntu", được sao chép ở đây theo sự cho phép của CC-BY-SA 3.0 .
Trái với quan niệm sai lầm phổ biến, X11 là một máy chủ thực sự không liên quan gì đến việc tại sao chạy GUI trên máy chủ sản xuất được coi là không lý tưởng từ góc độ bảo mật. X11 hầu như không bao giờ được cấu hình theo mặc định để có thể truy cập qua mạng nữa, trên bất kỳ hệ điều hành nào. Không có phiên bản Ubuntu nào từng có X11 chạy máy chủ có thể truy cập mạng trong cấu hình mặc định. (Để truy cập X11 trên Ubuntu thông qua TCP, bạn phải chuyển tiếp nó qua SSH hoặc cấu hình lại thủ công máy chủ.)
Hơn nữa, ngay cả khi X11 đã chạy một máy chủ có thể truy cập mạng , đây sẽ không phải là lý do để không cài đặt nó trên hệ thống máy chủ sản xuất. Bất cứ ai chạy một máy chủ sản xuất có lẽ có khả năng cấu hình nó theo nhu cầu của họ và kiểm tra nó để đảm bảo các dịch vụ không mong muốn không chạy. (Nếu họ không thể, điều đó sẽ gây ra mối đe dọa lớn hơn cho bảo mật của họ so với sẽ được tạo bằng cách cài đặt GUI.) Ngay cả khi X11 phải có một cổng nghe trên giao diện mạng vật lý ( không phải là trường hợp ), cổng có thể dễ dàng bị chặn bằng cách cấu hình lại netfilter
bằng cách sử dụng tích hợp iptables
(hoặc giao diện cấp cao hơn như ufw
).
Ngược lại, các vấn đề được liệt kê ở trên không dễ khắc phục bằng cách cấu hình lại.
Mỗi quá trình chạy là một rủi ro bảo mật. Đặc biệt là những người nghe trên một cổng mạng (X11 không).
Thực hành tốt chung là không chạy bất cứ thứ gì trên máy chủ mà không nhất thiết phải ở đó và X11 chắc chắn không cần phải ở trên máy chủ mà bạn sẽ SSH vào.
Tôi nghi ngờ bài báo bạn đọc đã nói về một lỗ hổng cụ thể trong X11 (nó sẽ được sửa nếu vậy, các lỗ hổng không có xu hướng tồn tại lâu không được trộn lẫn), mà chỉ là thông lệ tốt nói chung.
-nolisten tcp
theo mặc định
Điều này là do Hệ thống X Window gây rủi ro bảo mật nghiêm trọng nếu nó không được bảo mật đúng cách. "Màn hình" X11 là máy chủ X11 chạy trên máy tính để bàn của bạn và bao gồm màn hình, bàn phím và chuột. Nếu màn hình X11 của bạn không an toàn, nó sẽ cho phép một chương trình chạy ở bất kỳ đâu trên Internet để kết nối với nó và kết nối có thể hoàn toàn vô hình với bạn. Sau khi kết nối, chương trình đó có toàn quyền truy cập vào màn hình của bạn, điều đó có nghĩa là nó có thể:
Quy tắc ngón tay cái KHÔNG được sử dụng xhost +
- Nó hoàn toàn vô hiệu hóa bảo mật màn hình của bạn.
Một cách tốt là chuyển tiếp X là thông qua ssh
Lấy từ : http://www2.slac.stanford.edu/computing/security/xwindow/
xhost +
lệnh
xhost +
-nolisten tcp
mặc dù không thể ghi đè , chỉ cần mở cho bạn bất kỳ kết nối nào từ localhost.
Lý do thực sự là các quản trị viên có thể nghĩ rằng họ là siêu thông minh bằng cách chạy các công cụ từ dòng lệnh. Không có rủi ro bảo mật khi chạy GUI trên máy chủ Ubuntu.