서버에서 X11이 보안 위험 인 이유는 무엇입니까?


답변:


8

Ubuntu의 커뮤니티 설명서 프로덕션 서버 시스템에서 GUI를 실행하지 않는 실제 이유를 설명합니다 .

대부분의 Ubuntu Server 개발자 서버에 X를 설치 하지 않는 것이 좋습니다. GUI를 설치하지 않는 데는 여러 가지 이유가 있습니다.

GUI를 설치하지 않는 몇 가지 이유는 다음과 같습니다.

  1. 보안 취약성, 업데이트가 필요한 패키지 및 서버 다운 타임이 더 많은 코드를 사용하게됩니다.
  2. X11 및 데스크톱 패키지는 LTS 서버 릴리스의 전체 5 년 수명주기 동안 지원되지 않습니다.
  3. GUI가 리소스 (메모리, 하드 디스크 공간, CPU 등)를 사용하기 때문에 성능이 저하 될 수 있습니다.
  4. 프로덕션 서버에는 필요한 소프트웨어 만 설치하는 것이 가장 좋습니다.
  5. GUI에는 서버에 부적합한 다른 네트워크 서비스가 포함될 수 있습니다.
    1. Ubuntu Desktop Edition의 목표 중 하나는 사용자가 Linux를보다 쉽게 ​​사용할 수 있도록하는 것입니다. 일부 데스크탑 환경을 설치할 때 특별히 원하지 않는 서비스가 설치됩니다. 예를 들어 avahi-daemon 은 네트워킹을 구성하는 데 사용되며 다른 열린 포트를 추가하며 .local 도메인과의 원치 않는 DNS 충돌을 유발할 수 있습니다.

따라서 가장 안전한 서버의 경우 GUI를 설치하지 않는 것이 가장 좋습니다.

"우분투 문서 위키 참여자"로 "ServerGUI"는 CC-BY-SA 3.0에서 허용 여기에 재현 .

다소 일반적인 오해와는 달리, X11은 서버 이므로 실제로 프로덕션 서버에서 GUI를 실행하는 것이 보안 측면에서 바람직하지 않은 것으로 간주되는 이유 는 없습니다 . X11은 사실상 모든 운영 체제에서 더 이상 네트워크를 통해 액세스 할 수 있도록 기본적으로 구성되어 있지 않습니다 . Ubuntu의 어떤 버전도 X11이 기본 구성에서 네트워크 액세스 서버를 실행 한 적이 없습니다. (TCP를 통해 Ubuntu에서 X11에 액세스하려면 SSH를 통해 전달하거나 서버를 수동으로 재구성해야합니다.)

또한 X11이 네트워크 액세스 가능 서버를 실행 했더라도 프로덕션 서버 시스템에 설치하지 않은 이유는 아닙니다. 프로덕션 서버를 실행하는 사람은 필요에 따라 서버를 구성하고 감사하여 바람직하지 않은 서비스가 실행되고 있지 않은지 확인할 수 있습니다. (그들은 할 수없는 경우 즉, GUI를 설치함으로써 생성되는 것보다 자신의 안보에 훨씬 더 큰 위협이됩니다.) X11이 경우에도 있었다 (물리적 네트워크 인터페이스의 포트 청취를하는 경우하지 않은 ) 포트를 를 netfilter사용하여 내장을 재구성하여 쉽게 차단 할 수 있습니다 iptables(또는 같은 고급 프론트 엔드 ufw).

반대로, 위에 나열된 문제는 재구성으로 극복하기가 쉽지 않습니다.


1
10.04는 서버와 데스크톱의 지원 수명이 다르며 12.04 이상은 지원하지 않습니다. 또한 유휴 GUI는 CPU를 소비하지 않으며 사용하는 램이 교체됩니다.
psusi

@psusi 지원주기 변경에 대한 요점은 좋은 것입니다. CPU 및 RAM 문제와 관련하여 (1) 유휴 GUI가 CPU를 소비하지 않는다는 경험에 동의하지 않으며 (2) GUI가 실행 중이면 누군가 로컬 컴퓨터에서 작업 할 때 CPU를 사용하고 있는지 여부에 관계없이 그들은 원하든 원하지 않든간에 더 많은 CPU 및 메모리 리소스를 소비하게됩니다. 그러나 포인트 1, 4 및 5는 실제로 프로덕션 서버에서 GUI를 실행 하지 않는 것을 고려해야하는 가장 중요한 이유 이며 지원 수명주기 또는 리소스 사용 문제와 무관합니다.
엘리아 케이건

Xorg도 기본적으로 루트로 실행된다고 덧붙일 수 있습니다.
Wadih M.

5

실행중인 모든 프로세스는 보안 위험이 있습니다. 특히 네트워크 포트에서 청취하는 것 (X11은).

일반적인 모범 사례는 반드시 거기에있을 필요가없는 서버에서 아무것도 실행하지 않는 것입니다. 그리고 X11은 반드시 SSH에 접속할 서버에있을 필요는 없습니다.

나는 당신이 읽은 기사가 X11의 특정 취약점에 대해 이야기하고 있다고 의심합니다 (그러면 수정되었을 것입니다. 취약점은 오랫동안 수정되지 않은 채 오래 걸리지 않는 경향이 있습니다).


2
Ubuntu와 같은 대부분의 최신 Linux 배포에서 기본적으로 X 서버는 네트워크 포트를 수신하지 않고 도메인 소켓을 통한 로컬 연결 만 허용합니다.
Florian Diesch

@FlorianDiesch 짝수 구성되지 않은 서버에서?
Amith KK

X11이 네트워크 서버라고 언급하면 ​​+1이됩니다.
Stefano Palazzo

2
아 미스 : 예. xinit에 / startx를 사용 -nolisten tcp기본적으로
플로리안 Diesch

5

X Window 시스템이 제대로 보안되지 않으면 심각한 보안 위험이 발생하기 때문입니다. X11 "디스플레이"는 데스크탑에서 실행되는 X11 서버이며 화면, 키보드 및 마우스를 포함합니다. X11 디스플레이가 안전하지 않으면 인터넷 어디에서나 실행되는 프로그램이 연결되어 연결이 완전히 보이지 않을 수 있습니다. 연결되면 해당 프로그램이 디스플레이에 완전히 액세스 할 수 있으므로 다음을 수행 할 수 있습니다.

  • 표준 X11 유틸리티 프로그램을 사용하여 화면 내용을보고 복사하십시오.
  • 키 입력을 모니터하십시오.
  • 데스크탑에서 Netscape 브라우저와 Forge 키 입력을 마치 직접 입력하는 것처럼 원격으로 제어하십시오 (모든 X11 응용 프로그램이이 기능에 취약하지는 않지만).

썸 규칙은 사용하지 않아야합니다 xhost +-디스플레이 보안을 완전히 비활성화합니다.

X를 전달하는 좋은 방법은 ssh


에서 발췌 : http://www2.slac.stanford.edu/computing/security/xwindow/


1
이 기사는 약 10 살입니다. 정보가 여전히 유효합니까?
스테파노 팔라

1
대부분, 그래 ... AFAIK 때문에 우리는이 xhost +명령을
Amith KK

xhost +-nolisten tcp그러나 재정의 할 수는 없으므로 로컬 호스트에서 모든 연결을 엽니 다.
alanc

각 응용 프로그램마다 xserver를 개별적으로 시작하여 이러한 문제를 해결할 수 있습니까?
phil294

-6

실제 이유는 관리자가 명령 줄에서 작업을 실행하여 스스로를 똑똑하게 생각할 수 있기 때문입니다. Ubuntu 서버에서 GUI를 실행할 경우 보안 위험이 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.