15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
12.12.2023

Cara Menginstal dan Mengonfigurasi XRDP di Ubuntu 22.04

XRDP adalah implementasi open-source dari server Remote Desktop Protocol (RDP) Microsoft untuk Linux. XRDP memungkinkan klien yang kompatibel dengan RDP — termasuk Windows Remote Desktop Connection, Remmina, dan FreeRDP — untuk membuat sesi desktop grafis penuh pada mesin Linux jarak jauh. Pada Ubuntu 22.04, XRDP berfungsi sebagai jembatan antara klien RDP dan sesi tampilan X11 atau Xorg yang mendasarinya, menghadirkan pengalaman desktop jarak jauh yang responsif dan terenkripsi tanpa memerlukan VNC atau perangkat lunak proprietary.

Panduan ini mencakup instalasi lengkap, konfigurasi sertifikat SSL, penguatan firewall, integrasi lingkungan desktop, dan prosedur koneksi untuk XRDP pada Ubuntu 22.04 LTS — termasuk kasus-kasus khusus dan masalah pasca-instalasi yang sering diabaikan oleh sebagian besar tutorial.

Apa Itu XRDP dan Cara Kerjanya

XRDP beroperasi pada model klien-server. Daemon xrdp mendengarkan pada port TCP 3389 dan menangani handshake RDP, negosiasi sesi, dan enkripsi transport melalui TLS. Secara internal, XRDP menjalankan manajer sesi xrdp-sesman yang mengautentikasi pengguna melalui PAM (Pluggable Authentication Modules) dan meluncurkan sesi X11 melalui backend yang dapat dikonfigurasi — biasanya Xvfb (virtual framebuffer) atau sesi Xorg langsung.

Komponen arsitektur utamanya adalah:

  • xrdp daemon — menangani negosiasi protokol RDP dan terminasi TLS
  • xrdp-sesman — mengelola siklus hidup sesi pengguna dan autentikasi PAM
  • X11 backend — menyediakan framebuffer grafis (Xvfb, Xorg, atau X11rdp)
  • chansrv — menangani berbagi clipboard, pengalihan audio, dan pemetaan drive

Arsitektur ini berarti XRDP tidak menggantikan display manager Anda — XRDP berjalan berdampingan dengannya, membuat sesi grafis terisolasi untuk setiap pengguna yang terautentikasi.

XRDP vs. Alternatif: Perbandingan Protokol dan Fitur

FiturXRDP (RDP)x11vnc (VNC)NoMachine (NX)TeamViewer
ProtokolRDP (standar Microsoft)VNC/RFBProtokol NXProprietary
Klien Windows bawaanYa (MSTSC bawaan)Tidak (memerlukan klien)Tidak (memerlukan klien)Tidak (memerlukan klien)
Enkripsi TLSYa (native)Opsional (melalui stunnel)YaYa
Dukungan multi-sesiYaTidak (tampilan tunggal)YaYa
Berbagi clipboardYaYaYaYa
Pengalihan audioYa (melalui PulseAudio)TerbatasYaYa
Performa pada WANBaikBurukSangat baikBaik
Open sourceYa (Apache 2.0)YaSebagianTidak
Port3389590040005938

Bagi tim yang sudah menggunakan infrastruktur Windows, XRDP adalah pilihan yang paling efisien secara operasional karena tidak memerlukan perangkat lunak klien tambahan pada mesin Windows.

Prasyarat

Sebelum melanjutkan, pastikan hal-hal berikut:

  • Server atau instans desktop Ubuntu 22.04 LTS yang sedang berjalan
  • Akun pengguna dengan hak akses sudo
  • Lingkungan desktop yang terinstal (GNOME, XFCE, atau MATE — detail di bawah)
  • Akses SSH ke server untuk konfigurasi awal
  • UFW atau iptables tersedia untuk manajemen firewall

Jika Anda menjalankan VPS headless tanpa lingkungan desktop yang terinstal sebelumnya, Anda harus menginstalnya terlebih dahulu sebelum XRDP dapat menghadirkan sesi grafis. Instalasi XFCE minimal sangat direkomendasikan untuk penggunaan desktop jarak jauh karena jejak memorinya yang kecil.

Langkah 1 — Perbarui Paket Sistem

Selalu sinkronkan indeks paket Anda dan terapkan pembaruan yang tertunda sebelum menginstal perangkat lunak baru. Ini mencegah konflik dependensi dan memastikan Anda mendapatkan versi XRDP terbaru yang telah dipatch.

sudo apt update && sudo apt upgrade -y

Reboot jika pembaruan kernel diterapkan:

sudo reboot

Langkah 2 — Instal Lingkungan Desktop (Khusus Server Headless)

Jika instans Ubuntu 22.04 Anda tidak memiliki GUI, instal lingkungan desktop yang ringan. XFCE4 adalah pilihan paling andal untuk XRDP pada server headless — sesi GNOME melalui XRDP pada Ubuntu 22.04 memiliki masalah rendering yang diketahui terkait konflik Wayland/GDM3.

sudo apt install xfce4 xfce4-goodies -y

Atau, untuk MATE:

sudo apt install ubuntu-mate-desktop -y

Catatan penting untuk pengguna GNOME: Ubuntu 22.04 secara default menggunakan sesi Wayland. XRDP tidak mendukung Wayland secara native. Jika Anda bermaksud menggunakan GNOME, Anda harus memaksa sesi Xorg dengan mengedit /etc/gdm3/custom.conf dan menghapus komentar pada WaylandEnable=false. Bahkan begitu, GNOME melalui XRDP pada 22.04 sering menghasilkan layar hitam saat login — XFCE sepenuhnya menghilangkan masalah jenis ini.

Langkah 3 — Instal XRDP

Instal XRDP dari repositori resmi Ubuntu:

sudo apt install xrdp -y

Manajer paket akan menginstal xrdp beserta dependensinya xorgxrdp, yang menyediakan backend driver tampilan berbasis Xorg. Instalasi biasanya selesai dalam waktu kurang dari dua menit pada VPS dengan cPanel standar atau server bare-metal dengan koneksi internet yang stabil.

Langkah 4 — Aktifkan dan Jalankan Layanan XRDP

Aktifkan XRDP agar otomatis berjalan saat boot, lalu jalankan segera:

sudo systemctl enable xrdp
sudo systemctl start xrdp

Verifikasi layanan aktif dan mendengarkan:

sudo systemctl status xrdp

Output yang diharapkan mencakup Active: active (running) dan baris yang mengonfirmasi proses sedang mendengarkan. Untuk mengonfirmasi binding port secara eksplisit:

sudo ss -tlnp | grep 3389

Anda akan melihat output yang mirip dengan:

LISTEN  0  10  0.0.0.0:3389  0.0.0.0:*  users:(("xrdp",pid=XXXX,fd=12))

Jika port tidak terikat, periksa /var/log/xrdp.log untuk kesalahan startup sebelum melanjutkan.

Langkah 5 — Konfigurasi Izin Sertifikat SSL

Selama instalasi, XRDP membuat pengguna sistem khusus bernama xrdp. Daemon menggunakan kunci sertifikat di /etc/ssl/private/ssl-cert-snakeoil.key untuk enkripsi sesi TLS. Secara default, file ini dimiliki oleh grup ssl-cert, dan pengguna xrdp tidak termasuk di dalamnya — menyebabkan kegagalan handshake TLS atau fallback ke sesi yang tidak terenkripsi.

Tambahkan pengguna xrdp ke grup ssl-cert:

sudo usermod -a -G ssl-cert xrdp

Restart XRDP untuk menerapkan perubahan keanggotaan grup:

sudo systemctl restart xrdp

Catatan produksi: Sertifikat ssl-cert-snakeoil adalah sertifikat self-signed yang dihasilkan oleh paket ssl-cert. Untuk lingkungan produksi atau server yang terekspos ke internet, gantikan dengan sertifikat valid dari CA terpercaya. Jika server Anda memiliki domain publik, Anda dapat menggunakan sertifikat dari penyedia SSL Certificates Anda dan mengonfigurasi XRDP untuk mereferensikannya melalui direktif certificate dan key_file di /etc/xrdp/xrdp.ini.

Untuk menggunakan sertifikat kustom:

sudo nano /etc/xrdp/xrdp.ini

Temukan dan perbarui baris-baris ini:

certificate=/etc/ssl/certs/your-domain.crt
key_file=/etc/ssl/private/your-domain.key

Langkah 6 — Konfigurasi Sesi Desktop untuk XRDP

XRDP membaca file konfigurasi sesi per-pengguna di ~/.xsession atau ~/.Xclients untuk menentukan lingkungan desktop mana yang akan diluncurkan. Tanpa file ini, banyak konfigurasi Ubuntu 22.04 menghasilkan layar abu-abu atau hitam setelah autentikasi.

Untuk XFCE, buat file sesi untuk pengguna Anda:

echo "xfce4-session" > ~/.xsession
chmod +x ~/.xsession

Untuk MATE:

echo "mate-session" > ~/.xsession
chmod +x ~/.xsession

Jika Anda mengonfigurasi ini untuk beberapa pengguna pada Dedicated Server, otomatiskan langkah ini dengan loop shell atau alat manajemen konfigurasi seperti Ansible.

Langkah 7 — Konfigurasi Firewall

XRDP mendengarkan pada port TCP 3389. Anda harus secara eksplisit mengizinkan port ini melalui UFW. Namun, mengekspos RDP langsung ke internet pada 0.0.0.0 merupakan risiko keamanan yang signifikan — RDP adalah salah satu layanan yang paling aktif diserang dengan brute-force di internet.

Pendekatan yang direkomendasikan: batasi akses ke rentang IP tertentu atau subnet VPN.

Izinkan akses hanya dari subnet tepercaya tertentu:

sudo ufw allow from 192.168.1.0/24 to any port 3389

Jika Anda terhubung dari satu alamat IP yang diketahui:

sudo ufw allow from YOUR.IP.ADDRESS to any port 3389

Jika Anda harus mengizinkan akses yang lebih luas untuk sementara (tidak direkomendasikan untuk produksi):

sudo ufw allow 3389/tcp

Muat ulang dan verifikasi aturan firewall:

sudo ufw reload
sudo ufw status verbose

Rekomendasi penguatan keamanan:

  • Ubah port default: Edit /etc/xrdp/xrdp.ini dan atur port=33890 (atau port non-standar lainnya), lalu perbarui aturan UFW Anda sesuai. Ini secara dramatis mengurangi kebisingan pemindaian otomatis.
  • Gunakan fail2ban: Instal dan konfigurasikan fail2ban dengan jail xrdp untuk memblokir IP setelah percobaan autentikasi yang gagal berulang kali.
  • Tunnel melalui SSH: Untuk keamanan maksimal, ikat XRDP hanya ke 127.0.0.1 dan akses melalui SSH tunnel. Ini sepenuhnya menghilangkan eksposur internet langsung.

Untuk mengikat XRDP hanya ke localhost:

sudo nano /etc/xrdp/xrdp.ini

Atur:

address=127.0.0.1

Kemudian hubungkan melalui SSH tunnel dari klien Anda:

ssh -L 3389:127.0.0.1:3389 user@your-server-ip -N

Arahkan klien RDP Anda ke 127.0.0.1:3389.

Langkah 8 — Hubungkan ke Desktop Jarak Jauh XRDP

Dari Windows

  1. Tekan Win + R, ketik mstsc, dan tekan Enter untuk membuka Remote Desktop Connection.
  2. Di kolom Computer, masukkan alamat IP server Ubuntu Anda (misalnya, 203.0.113.45).
  3. Klik Connect.
  4. Pada layar login XRDP, pilih jenis sesi (biasanya Xvnc atau Xorg), masukkan nama pengguna dan kata sandi Ubuntu Anda, lalu klik OK.

Dari Linux (Remmina)

  1. Buka Remmina dan buat profil koneksi baru.
  2. Atur protokol ke RDP.
  3. Masukkan IP server, nama pengguna, dan kata sandi Anda.
  4. Atur kedalaman warna ke True color (32 bpp) untuk kualitas visual terbaik.
  5. Hubungkan.

Dari macOS

Gunakan Microsoft Remote Desktop dari Mac App Store — aplikasi ini mendukung RDP secara native dan bekerja dengan mulus bersama XRDP.

Pemecahan Masalah Umum XRDP pada Ubuntu 22.04

Layar Hitam Setelah Login

Ini adalah masalah paling umum pada Ubuntu 22.04. Penyebab dan solusinya:

  • File ~/.xsession tidak ada: Buat seperti yang ditunjukkan pada Langkah 6.
  • Konflik sesi Wayland: Nonaktifkan Wayland di /etc/gdm3/custom.conf.
  • File X lock yang usang: Hapus file /tmp/.X*-lock dan restart XRDP.

Kegagalan Autentikasi Meskipun Kredensial Benar

  • Verifikasi PAM tidak memblokir proses xrdp-sesman: periksa /var/log/xrdp-sesman.log.
  • Pastikan akun pengguna tidak terkunci: sudo passwd -S username.
  • Konfirmasi pengguna tidak diwajibkan mengubah kata sandi mereka pada login berikutnya.

Performa Buruk atau Latensi Tinggi

  • Kurangi kedalaman warna di pengaturan klien RDP (16-bit alih-alih 32-bit).
  • Aktifkan RemoteFX atau H.264 codec di /etc/xrdp/xrdp.ini jika klien Anda mendukungnya.
  • Beralih dari backend Xvnc ke Xorg di pemilih sesi XRDP untuk performa yang lebih baik pada server dengan akselerasi hardware.

Port 3389 Tidak Dapat Dijangkau

  • Konfirmasi XRDP sedang berjalan: sudo systemctl status xrdp
  • Konfirmasi UFW tidak memblokir: sudo ufw status
  • Periksa security group atau network ACL penyedia cloud — banyak penyedia VPS memiliki lapisan firewall tambahan di tingkat hypervisor yang independen dari UFW.

Opsi Konfigurasi Lanjutan

Mengaktifkan Berbagi Clipboard

Pengalihan clipboard antara klien RDP dan desktop jarak jauh memerlukan layanan channel xrdp-chansrv. Layanan ini dimulai secara otomatis bersama sesi, tetapi jika clipboard tidak berfungsi, verifikasi proses sedang berjalan:

ps aux | grep xrdp-chansrv

Jika tidak berjalan, periksa file log ~/.xrdp/ di dalam direktori home pengguna.

Mengaktifkan Pengalihan Audio

Instal modul RDP PulseAudio:

sudo apt install pulseaudio-module-xrdp -y

Keluar dan hubungkan kembali. Output audio dari desktop jarak jauh akan dialihkan ke speaker klien lokal Anda.

Sesi Bersamaan Multi-Pengguna

XRDP mendukung beberapa sesi simultan secara bawaan. Setiap pengguna yang terautentikasi menerima sesi X11 yang terisolasi. Untuk memverifikasi sesi aktif:

sudo xrdp-seslist

Untuk lingkungan dengan banyak pengguna bersamaan — seperti workstation developer atau lingkungan pelatihan — Dedicated Server menyediakan kapasitas CPU dan RAM yang diperlukan untuk menopang beberapa sesi grafis tanpa persaingan sumber daya.

Poin Utama dan Daftar Periksa Keputusan

Sebelum men-deploy XRDP di produksi, verifikasi setiap hal berikut:

  • Lingkungan desktop terinstal dan ~/.xsession dikonfigurasi per pengguna (XFCE direkomendasikan)
  • Pengguna xrdp ditambahkan ke grup ssl-cert — melewati ini menyebabkan kesalahan TLS
  • Wayland dinonaktifkan jika menggunakan GNOME (/etc/gdm3/custom.conf)
  • Aturan firewall membatasi port 3389 hanya untuk IP tepercaya — jangan pernah mengekspos RDP ke 0.0.0.0 pada server publik
  • Sertifikat self-signed diganti dengan sertifikat yang diterbitkan CA yang valid untuk deployment produksi
  • fail2ban dikonfigurasi dengan jail XRDP untuk memitigasi serangan brute-force
  • SSH tunnel dipertimbangkan sebagai alternatif eksposur port langsung untuk lingkungan keamanan tinggi
  • Firewall tingkat hypervisor diperiksa — security group penyedia cloud independen dari UFW
  • File log dipantau di /var/log/xrdp.log dan /var/log/xrdp-sesman.log untuk kesalahan sesi

Pertanyaan yang Sering Diajukan

Apakah XRDP mendukung Ubuntu 22.04 dengan Wayland?

Tidak. XRDP memerlukan sesi X11/Xorg. Ubuntu 22.04 secara default menggunakan Wayland di bawah GNOME. Anda harus menonaktifkan Wayland di /etc/gdm3/custom.conf atau menggunakan lingkungan desktop yang secara default menggunakan Xorg, seperti XFCE atau MATE.

Apa perbedaan antara jenis sesi Xvnc dan Xorg di XRDP?

Backend Xvnc membuat virtual framebuffer menggunakan VNC secara internal, yang kompatibel dengan sebagian besar konfigurasi tetapi memiliki overhead CPU yang lebih tinggi. Backend Xorg menggunakan driver xorgxrdp untuk rendering Xorg langsung, menawarkan performa yang lebih baik dan dukungan akselerasi hardware. Gunakan Xorg jika tersedia.

Bisakah beberapa pengguna terhubung ke XRDP secara bersamaan?

Ya. XRDP membuat sesi X11 yang terpisah dan terisolasi untuk setiap pengguna yang terautentikasi. Sesi-sesi tersebut independen dan tidak saling mengganggu, menjadikan XRDP cocok untuk akses jarak jauh multi-pengguna pada satu server.

Apakah aman mengekspos port XRDP 3389 langsung ke internet?

Tidak. RDP adalah salah satu protokol yang paling banyak menjadi target serangan brute-force dan eksploitasi. Selalu batasi port 3389 ke alamat IP yang diketahui melalui aturan firewall, gunakan fail2ban, dan pertimbangkan untuk melakukan tunneling XRDP melalui SSH untuk deployment yang menghadap internet.

Bagaimana cara menghapus instalasi XRDP dari Ubuntu 22.04?

Jalankan sudo apt purge xrdp -y && sudo apt autoremove -y. Ini menghapus paket XRDP dan dependensinya. Juga hapus file konfigurasi sisa dengan sudo rm -rf /etc/xrdp dan hapus aturan UFW dengan sudo ufw delete allow 3389/tcp.

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai