Mengapa X11 merupakan risiko keamanan di server?


11

Saya ingat membaca bahwa server tidak memiliki GUI karena X11 adalah risiko keamanan. Mengapa?

Jawaban:


8

Dokumentasi komunitas Ubuntu menjelaskan alasan sebenarnya mengapa tidak disarankan untuk menjalankan GUI pada sistem server produksi:

Sebagian besar pengembang Ubuntu Server tidak merekomendasikan menginstal X di server. Ada beberapa alasan untuk tidak menginstal GUI.

Beberapa alasan untuk tidak menginstal GUI meliputi:

  1. Anda akan memiliki lebih banyak kode yang rentan terhadap keamanan, lebih banyak paket yang perlu diperbarui, dan lebih banyak downtime server.
  2. Paket X11 dan desktop tidak didukung untuk siklus hidup 5 tahun penuh dari rilis server LTS.
  3. Kinerja dapat menurun karena sumber daya (memori, ruang hard disk, CPU, dll.) Akan dikonsumsi oleh GUI.
  4. Ini adalah praktik terbaik untuk hanya menginstal perangkat lunak yang diperlukan di server produksi.
  5. GUI dapat mencakup layanan jaringan lain yang tidak pantas untuk server.
    1. Salah satu tujuan Ubuntu Desktop Edition adalah untuk mempermudah pengguna menggunakan Linux. Saat memasang beberapa lingkungan desktop, layanan yang mungkin tidak Anda inginkan secara khusus akan diinstal. Misalnya avahi-daemon , yang digunakan untuk membantu mengkonfigurasi jaringan, menambahkan port terbuka lain dan dapat memperkenalkan konflik DNS yang tidak diinginkan dengan domain .local.

Jadi untuk server yang paling aman, yang terbaik adalah tidak menginstal GUI.

"ServerGUI" oleh "Kontributor ke wiki dokumentasi Ubuntu", direproduksi di sini sebagaimana diizinkan oleh CC-BY-SA 3.0 .

Bertentangan dengan kesalahpahaman yang agak umum, X11 menjadi server benar-benar tidak ada hubungannya dengan mengapa menjalankan GUI pada server produksi dianggap tidak ideal dari perspektif keamanan. X11 sebenarnya tidak pernah dikonfigurasi secara default untuk dapat diakses melalui jaringan lagi, pada sistem operasi apa pun. Tidak ada versi Ubuntu yang pernah menjalankan X11 server yang dapat diakses jaringan dalam konfigurasi default. (Untuk mengakses X11 di Ubuntu melalui TCP, Anda harus meneruskannya melalui SSH atau mengkonfigurasi ulang server secara manual.)

Selain itu, bahkan jika X11 menjalankan server yang dapat diakses jaringan , ini tidak akan menjadi alasan untuk tidak menginstalnya pada sistem server produksi. Siapa pun yang menjalankan server produksi mungkin mampu mengonfigurasinya untuk kebutuhan mereka dan mengauditnya untuk memastikan layanan yang tidak diinginkan tidak berjalan. (Jika mereka tidak bisa, itu akan menimbulkan ancaman yang jauh lebih besar untuk keamanan mereka daripada yang akan dibuat dengan menginstal GUI.) Bahkan jika X11 harus memiliki port mendengarkan pada antarmuka jaringan fisik ( yang tidak terjadi ), port dapat dengan mudah diblokir dengan mengkonfigurasi ulang built-in netfiltermenggunakan iptables(atau frontend tingkat yang lebih tinggi seperti ufw).

Sebaliknya, masalah yang tercantum di atas tidak mudah diatasi dengan konfigurasi ulang.


1
10,04 memiliki masa dukungan yang berbeda untuk server vs desktop, 12,04 dan yang lebih baru tidak. Juga, gui yang menganggur tidak mengkonsumsi cpu, dan ram yang digunakannya akan ditukar.
psusi

@psusi Poin tentang perubahan siklus hidup dukungan adalah bagus. Adapun masalah CPU dan RAM, (1) Saya tidak setuju dari pengalaman bahwa GUI idle tidak pernah mengkonsumsi CPU, dan (2) jika GUI sedang berjalan, maka ketika seseorang bekerja di mesin lokal, mereka mungkin menggunakannya, apakah mereka mau atau tidak, dan itu akan menyebabkan CPU mengkonsumsi lebih banyak sumber daya dan memori. Namun, poin 1, 4, dan 5 benar-benar (dan mungkin selalu menjadi) alasan paling signifikan untuk mempertimbangkan tidak menjalankan GUI pada server produksi, dan mereka tidak tergantung pada siklus hidup dukungan atau masalah pemanfaatan sumber daya.
Eliah Kagan

Bolehkah saya menambahkan bahwa Xorg juga berjalan sebagai root secara default.
Wadih M.

5

Setiap proses yang berjalan adalah risiko keamanan. Khususnya yang mendengarkan pada port jaringan (X11 melakukannya).

Praktik umum yang baik adalah tidak menjalankan apa pun di server yang tidak benar-benar perlu ada di sana, dan X11 tentu saja tidak perlu berada di server tempat Anda akan memasukkan SSH.

Saya ragu artikel yang Anda baca berbicara tentang kerentanan khusus di X11 (itu akan diperbaiki jika demikian, kerentanan tidak cenderung bertahan lama tidak diperbaiki), tetapi hanya praktik umum yang baik.


2
Pada sebagian besar distribusi Linux modern (seperti Ubuntu), server X secara default tidak mendengarkan pada port jaringan tetapi hanya menerima koneksi lokal melalui soket domain.
Florian Diesch

@FlorianDiesch Even On yang belum dikonfigurasi dari server?
Amith KK

+1 Besar untuk menyebutkan bahwa X11 adalah server jaringan.
Stefano Palazzo

2
Amith: Ya. xinit / startx digunakan -nolisten tcpsecara default
Florian Diesch

5

Ini karena Sistem X Window menimbulkan risiko keamanan yang serius jika tidak diamankan dengan benar. "Tampilan" X11 adalah server X11 yang berjalan di desktop Anda, dan termasuk layar, keyboard, dan mouse. Jika tampilan X11 Anda tidak aman, itu akan memungkinkan suatu program berjalan di mana saja di Internet untuk menghubungkannya dan koneksi itu mungkin sama sekali tidak terlihat oleh Anda. Setelah terhubung, program itu memiliki akses penuh ke layar Anda, yang berarti dapat:

  • Lihat dan salin konten layar Anda, menggunakan program utilitas X11 standar;
  • Pantau penekanan tombol Anda;
  • Kontrol peramban Netscape dari jarak jauh pada desktop Anda dan Forge keystrokes seolah-olah Anda mengetiknya sendiri (meskipun tidak semua aplikasi X11 rentan terhadap ini).

Aturan praktis TIDAK boleh digunakan xhost +- Ini sepenuhnya menonaktifkan keamanan layar Anda.

Cara yang baik untuk meneruskan X adalah melalui ssh


Diambil dari : http://www2.slac.stanford.edu/computing/security/xwindow/


1
Artikel ini berusia sekitar 10 tahun. Apakah informasinya masih valid?
Stefano Palazzo

1
Sebagian besar, ya ... karena AFAIK kami memiliki xhost +perintah
Amith KK

xhost +tidak dapat mengesampingkan -nolisten tcp, cukup buka Anda untuk koneksi apa pun dari localhost.
alanc

Apakah masalah ini dapat diselesaikan dengan memulai xserver untuk setiap aplikasi secara individual?
phil294

-6

Alasan sebenarnya adalah agar admin dapat menganggap diri mereka super pintar dengan menjalankan hal-hal dari baris perintah. Tidak ada risiko keamanan menjalankan GUI di server Ubuntu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.