Ubuntu 22.04’te XRDP Nasıl Kurulur ve Yapılandırılır
XRDP, Linux için Microsoft’un Uzak Masaüstü Protokolü (RDP) sunucusunun açık kaynaklı bir uygulamasıdır. Windows Uzak Masaüstü Bağlantısı, Remmina ve FreeRDP dahil olmak üzere herhangi bir RDP uyumlu istemcinin uzak bir Linux makinesinde tam grafiksel masaüstü oturumu kurmasını sağlar. Ubuntu 22.04’te XRDP, RDP istemcisi ile temel X11 veya Xorg görüntü oturumu arasında köprü görevi görerek VNC veya özel yazılım gerektirmeden duyarlı, şifreli bir uzak masaüstü deneyimi sunar.
Bu kılavuz, Ubuntu 22.04 LTS’de XRDP için eksiksiz kurulum, SSL sertifika yapılandırması, güvenlik duvarı sıkılaştırma, masaüstü ortamı entegrasyonu ve bağlantı prosedürünü kapsamaktadır — çoğu öğreticinin atladığı uç durumlar ve kurulum sonrası tuzaklar dahil.
XRDP Nedir ve Nasıl Çalışır
XRDP, istemci-sunucu modeli üzerinde çalışır. xrdp arka plan programı TCP port 3389‘u dinler ve RDP el sıkışmasını, oturum müzakeresini ve TLS aracılığıyla taşıma şifrelemesini yönetir. Dahili olarak, kullanıcıları PAM (Takılabilir Kimlik Doğrulama Modülleri) aracılığıyla doğrulayan ve yapılandırılabilir bir arka uç aracılığıyla X11 oturumu başlatan bir xrdp-sesman oturum yöneticisi oluşturur — genellikle Xvfb (sanal çerçeve arabelleği) veya doğrudan Xorg oturumu.
Temel mimari bileşenler şunlardır:
- xrdp arka plan programı — RDP protokol müzakeresini ve TLS sonlandırmasını yönetir
- xrdp-sesman — kullanıcı oturumu yaşam döngüsünü ve PAM kimlik doğrulamasını yönetir
- X11 arka ucu — grafiksel çerçeve arabelleğini sağlar (Xvfb, Xorg veya X11rdp)
- chansrv — pano paylaşımını, ses yönlendirmesini ve sürücü eşlemeyi yönetir
Bu mimari, XRDP’nin görüntü yöneticinizin yerini almadığı anlamına gelir — kimliği doğrulanmış kullanıcı başına yalıtılmış grafiksel oturumlar oluşturarak onun yanında çalışır.
XRDP ve Alternatifler: Protokol ve Özellik Karşılaştırması
| Özellik | XRDP (RDP) | x11vnc (VNC) | NoMachine (NX) | TeamViewer |
|---|---|---|---|---|
| Protokol | RDP (Microsoft standardı) | VNC/RFB | NX protokolü | Özel |
| Yerel Windows istemcisi | Evet (yerleşik MSTSC) | Hayır (istemci gerektirir) | Hayır (istemci gerektirir) | Hayır (istemci gerektirir) |
| TLS şifreleme | Evet (yerel) | İsteğe bağlı (stunnel aracılığıyla) | Evet | Evet |
| Çoklu oturum desteği | Evet | Hayır (tek ekran) | Evet | Evet |
| Pano paylaşımı | Evet | Evet | Evet | Evet |
| Ses yönlendirme | Evet (PulseAudio aracılığıyla) | Sınırlı | Evet | Evet |
| WAN üzerinde performans | İyi | Zayıf | Mükemmel | İyi |
| Açık kaynak | Evet (Apache 2.0) | Evet | Kısmi | Hayır |
| Port | 3389 | 5900 | 4000 | 5938 |
Halihazırda Windows altyapısı kullanan ekipler için XRDP, Windows makinelerde sıfır ek istemci yazılımı gerektirdiğinden operasyonel açıdan en verimli seçimdir.
Ön Koşullar
Devam etmeden önce aşağıdakileri sağlayın:
- Çalışan bir Ubuntu 22.04 LTS sunucusu veya masaüstü örneği
sudo ayrıcalıklarına sahip bir kullanıcı hesabı
Yüklü bir masaüstü ortamı (GNOME, XFCE veya MATE — ayrıntılar aşağıda)
İlk yapılandırma için sunucuya SSH erişimi
Güvenlik duvarı yönetimi için kullanılabilir UFW veya iptables
Önceden yüklenmiş bir masaüstü ortamı olmayan başsız bir VPS çalıştırıyorsanız, XRDP grafiksel bir oturum sunabilmeden önce bir tane yüklemeniz gerekir. Düşük bellek tüketimi nedeniyle uzak masaüstü kullanımı için minimal XFCE kurulumu kesinlikle önerilir.
Adım 1 — Sistem Paketlerini Güncelleyin
Yeni yazılım yüklemeden önce her zaman paket dizininizi senkronize edin ve bekleyen yükseltmeleri uygulayın. Bu, bağımlılık çakışmalarını önler ve XRDP’nin en son yamalı sürümünü almanızı sağlar.
sudo apt update && sudo apt upgrade -y
Bir çekirdek güncellemesi uygulandıysa yeniden başlatın:
sudo reboot
Adım 2 — Masaüstü Ortamı Yükleyin (Yalnızca Başsız Sunucular)
Ubuntu 22.04 örneğinizde GUI yoksa hafif bir masaüstü ortamı yükleyin. XFCE4, başsız sunucularda XRDP için en güvenilir seçimdir — Ubuntu 22.04’te XRDP üzerinden GNOME oturumlarında Wayland/GDM3 çakışmalarıyla ilgili bilinen görüntüleme sorunları vardır.
sudo apt install xfce4 xfce4-goodies -y
Alternatif olarak, MATE için:
sudo apt install ubuntu-mate-desktop -y
GNOME kullanıcıları için kritik not: Ubuntu 22.04 varsayılan olarak Wayland oturumu kullanır. XRDP, Wayland’ı yerel olarak desteklemez. GNOME kullanmayı düşünüyorsanız, /etc/gdm3/custom.conf dosyasını düzenleyerek ve WaylandEnable=false satırının yorumunu kaldırarak Xorg oturumlarını zorlamanız gerekir. Buna rağmen, 22.04’te XRDP üzerinden GNOME oturumu açarken sıklıkla siyah ekranla karşılaşılır — XFCE bu tür sorunları tamamen ortadan kaldırır.
Adım 3 — XRDP’yi Yükleyin
XRDP’yi resmi Ubuntu depolarından yükleyin:
sudo apt install xrdp -y
Paket yöneticisi, Xorg tabanlı görüntü sürücüsü arka ucunu sağlayan bağımlılığı xorgxrdp ile birlikte xrdp yükleyecektir. Kurulum, kararlı bir internet bağlantısına sahip standart bir cPanel’li VPS veya bare-metal sunucuda genellikle iki dakika içinde tamamlanır.
Adım 4 — XRDP Servisini Etkinleştirin ve Başlatın
XRDP’nin önyüklemede otomatik olarak başlamasını etkinleştirin, ardından hemen başlatın:
sudo systemctl enable xrdp
sudo systemctl start xrdp
Servisin aktif ve dinleme durumunda olduğunu doğrulayın:
sudo systemctl status xrdp
Beklenen çıktı Active: active (running) içerir ve işlemin dinleme durumunda olduğunu doğrulayan bir satır bulunur. Port bağlamasını açıkça doğrulamak için:
sudo ss -tlnp | grep 3389
Aşağıdakine benzer bir çıktı görmelisiniz:
LISTEN 0 10 0.0.0.0:3389 0.0.0.0:* users:(("xrdp",pid=XXXX,fd=12))
Port bağlı değilse, devam etmeden önce başlatma hataları için /var/log/xrdp.log dosyasını kontrol edin.
Adım 5 — SSL Sertifika İzinlerini Yapılandırın
Kurulum sırasında XRDP, xrdp adında özel bir sistem kullanıcısı oluşturur. Arka plan programı, TLS oturum şifrelemesi için /etc/ssl/private/ssl-cert-snakeoil.key konumundaki sertifika anahtarını kullanır. Varsayılan olarak bu dosya ssl-cert grubuna aittir ve xrdp kullanıcısı bu gruba dahil değildir — bu durum TLS el sıkışma hatalarına veya şifrelenmemiş oturumlara geri dönüşe neden olur.
xrdp kullanıcısını ssl-cert grubuna ekleyin:
sudo usermod -a -G ssl-cert xrdp
Grup üyeliği değişikliğini uygulamak için XRDP’yi yeniden başlatın:
sudo systemctl restart xrdp
Üretim notu: ssl-cert-snakeoil sertifikası, ssl-cert paketi tarafından oluşturulan kendinden imzalı bir sertifikadır. Üretim ortamları veya internete açık herhangi bir sunucu için, bunu güvenilir bir CA’dan geçerli bir sertifikayla değiştirin. Sunucunuzun genel bir etki alanı varsa, SSL Sertifikaları sağlayıcınızdan bir sertifika kullanabilir ve XRDP’yi /etc/xrdp/xrdp.ini dosyasındaki certificate ve key_file yönergeleri aracılığıyla buna başvuracak şekilde yapılandırabilirsiniz.
Özel sertifika kullanmak için:
sudo nano /etc/xrdp/xrdp.ini
Bu satırları bulun ve güncelleyin:
certificate=/etc/ssl/certs/your-domain.crt
key_file=/etc/ssl/private/your-domain.key
Adım 6 — XRDP için Masaüstü Oturumunu Yapılandırın
XRDP, hangi masaüstü ortamının başlatılacağını belirlemek için ~/.xsession veya ~/.Xclients konumundaki kullanıcı başına oturum yapılandırma dosyasını okur. Bu dosya olmadan, birçok Ubuntu 22.04 yapılandırması kimlik doğrulamasından sonra gri veya siyah ekran üretir.
XFCE için kullanıcınıza ait oturum dosyasını oluşturun:
echo "xfce4-session" > ~/.xsession
chmod +x ~/.xsession
MATE için:
echo "mate-session" > ~/.xsession
chmod +x ~/.xsession
Bunu bir Dedicated Server üzerinde birden fazla kullanıcı için yapılandırıyorsanız, bu adımı bir kabuk döngüsü veya Ansible gibi bir yapılandırma yönetim aracıyla otomatikleştirin.
Adım 7 — Güvenlik Duvarını Yapılandırın
XRDP, TCP port 3389‘u dinler. Bu portu UFW üzerinden açıkça izin vermeniz gerekir. Ancak, RDP’yi 0.0.0.0 üzerinden doğrudan internete açmak önemli bir güvenlik riski oluşturur — RDP, internette en aktif şekilde kaba kuvvet saldırısına uğrayan servislerden biridir.
Önerilen yaklaşım: erişimi belirli bir IP aralığı veya VPN alt ağıyla kısıtlayın.
Yalnızca belirli bir güvenilir alt ağdan erişime izin verin:
sudo ufw allow from 192.168.1.0/24 to any port 3389
Bilinen tek bir IP adresinden bağlanıyorsanız:
sudo ufw allow from YOUR.IP.ADDRESS to any port 3389
Geçici olarak daha geniş erişime izin vermeniz gerekiyorsa (üretim için önerilmez):
sudo ufw allow 3389/tcp
Güvenlik duvarı kurallarını yeniden yükleyin ve doğrulayın:
sudo ufw reload
sudo ufw status verbose
Güvenlik sıkılaştırma önerileri:
Varsayılan portu değiştirin: /etc/xrdp/xrdp.ini dosyasını düzenleyin ve port=33890 ayarlayın (veya standart dışı herhangi bir port), ardından UFW kuralınızı buna göre güncelleyin. Bu, otomatik tarama gürültüsünü önemli ölçüde azaltır.
fail2ban kullanın: Tekrarlanan başarısız kimlik doğrulama girişimlerinden sonra IP’leri engellemek için xrdp jail’i ile fail2ban yükleyin ve yapılandırın.
SSH üzerinden tünel kurun: Maksimum güvenlik için XRDP’yi yalnızca 127.0.0.1 adresine bağlayın ve bir SSH tüneli aracılığıyla erişin. Bu, doğrudan internet maruziyetini tamamen ortadan kaldırır.
XRDP’yi yalnızca localhost’a bağlamak için:
sudo nano /etc/xrdp/xrdp.ini
Ayarlayın:
address=127.0.0.1
Ardından istemcinizden SSH tüneli aracılığıyla bağlanın:
ssh -L 3389:127.0.0.1:3389 user@your-server-ip -N
RDP istemcinizi 127.0.0.1:3389 adresine yönlendirin.
Adım 8 — XRDP Uzak Masaüstüne Bağlanın
Windows’tan
Win + R tuşlarına basın, mstsc yazın ve Uzak Masaüstü Bağlantısını açmak için Enter’a basın.
Bilgisayar alanına Ubuntu sunucunuzun IP adresini girin (örn. 203.0.113.45).
Bağlan‘a tıklayın.
XRDP giriş ekranında oturum türünü seçin (genellikle Xvnc veya Xorg), Ubuntu kullanıcı adınızı ve parolanızı girin ve Tamam‘a tıklayın.
Linux’tan (Remmina)
Remmina’yı açın ve yeni bir bağlantı profili oluşturun.
Protokolü RDP olarak ayarlayın.
Sunucu IP’sini, kullanıcı adınızı ve parolanızı girin.
En iyi görsel kalite için renk derinliğini Gerçek renk (32 bpp) olarak ayarlayın.
Bağlanın.
macOS’tan
Mac App Store’dan Microsoft Remote Desktop‘u kullanın — RDP’yi yerel olarak destekler ve XRDP ile sorunsuz çalışır.
Ubuntu 22.04’te Yaygın XRDP Sorunlarını Giderme
Girişten Sonra Siyah Ekran
Bu, Ubuntu 22.04’te en yaygın sorundur. Nedenler ve çözümler:
Eksik ~/.xsession dosyası: Adım 6’da gösterildiği gibi oluşturun.
Wayland oturum çakışması: /etc/gdm3/custom.conf dosyasında Wayland’ı devre dışı bırakın.
Eski X kilit dosyası: /tmp/.X*-lock dosyalarını silin ve XRDP’yi yeniden başlatın.
Doğru Kimlik Bilgilerine Rağmen Kimlik Doğrulama Hatası
PAM’ın xrdp-sesman işlemini engellemediğini doğrulayın: /var/log/xrdp-sesman.log dosyasını kontrol edin.
Kullanıcı hesabının kilitli olmadığından emin olun: sudo passwd -S username.
Kullanıcının bir sonraki girişte parolasını değiştirmesinin gerekmediğini doğrulayın.
Düşük Performans veya Yüksek Gecikme
RDP istemci ayarlarında renk derinliğini azaltın (32 bit yerine 16 bit).
İstemciniz destekliyorsa /etc/xrdp/xrdp.ini dosyasında RemoteFX veya H.264 codec‘i etkinleştirin.
Donanım hızlandırmalı sunucularda daha iyi performans için XRDP oturum seçicisinde Xvnc arka ucundan Xorg arka ucuna geçin.
Port 3389’a Erişilemiyor
XRDP’nin çalıştığını doğrulayın: sudo systemctl status xrdpsudo ufw statusGelişmiş Yapılandırma Seçenekleri
Pano Paylaşımını Etkinleştirme
RDP istemcisi ile uzak masaüstü arasındaki pano yönlendirmesi xrdp-chansrv kanal servisini gerektirir. Oturumla birlikte otomatik olarak başlar, ancak pano çalışmıyorsa işlemin çalıştığını doğrulayın:
ps aux | grep xrdp-chansrvÇalışmıyorsa, kullanıcının ana dizinindeki ~/.xrdp/ günlük dosyalarında hataları kontrol edin.
Ses Yönlendirmeyi Etkinleştirme
PulseAudio RDP modülünü yükleyin:
sudo apt install pulseaudio-module-xrdp -yOturumu kapatın ve yeniden bağlanın. Uzak masaüstündeki ses çıkışı yerel istemci hoparlörlerinize yönlendirilecektir.
Çok Kullanıcılı Eşzamanlı Oturumlar
XRDP, kutudan çıktığı gibi birden fazla eşzamanlı oturumu destekler. Her kimliği doğrulanmış kullanıcı yalıtılmış bir X11 oturumu alır. Aktif oturumları doğrulamak için:
sudo xrdp-seslistGeliştirici iş istasyonları veya eğitim ortamları gibi çok sayıda eşzamanlı kullanıcının bulunduğu ortamlarda, bir Dedicated Server, çekişme olmadan birden fazla grafiksel oturumu sürdürmek için gerekli CPU ve RAM kapasitesini sağlar.
Temel Çıkarımlar ve Karar Kontrol Listesi
XRDP’yi üretimde dağıtmadan önce aşağıdakilerin her birini doğrulayın:
- Masaüstü ortamı yüklü ve kullanıcı başına
~/.xsessionyapılandırılmış (XFCE önerilir) xrdpkullanıcısıssl-certgrubuna eklendi — bunu atlamak TLS hatalarına neden olur- GNOME kullanılıyorsa Wayland devre dışı bırakıldı (
/etc/gdm3/custom.conf) - Güvenlik duvarı kuralları port 3389’u yalnızca güvenilir IP’lerle kısıtlıyor — genel bir sunucuda RDP’yi hiçbir zaman 0.0.0.0’a açmayın
- Kendinden imzalı sertifika, üretim dağıtımları için geçerli CA tarafından verilmiş bir sertifikayla değiştirildi
- Kaba kuvvet saldırılarını azaltmak için XRDP jail’i ile fail2ban yapılandırıldı
- Yüksek güvenlikli ortamlar için doğrudan port maruziyetine alternatif olarak SSH tüneli değerlendirildi
- Hiper yönetici düzeyinde güvenlik duvarı kontrol edildi — bulut sağlayıcısı güvenlik grupları UFW’den bağımsızdır
- Oturum hataları için
/var/log/xrdp.logve/var/log/xrdp-sesman.logkonumlarındaki günlük dosyaları izlendi
Sıkça Sorulan Sorular
XRDP, Wayland ile Ubuntu 22.04’ü destekliyor mu?
Hayır. XRDP bir X11/Xorg oturumu gerektirir. Ubuntu 22.04, GNOME altında varsayılan olarak Wayland kullanır. /etc/gdm3/custom.conf dosyasında Wayland’ı devre dışı bırakmanız veya XFCE ya da MATE gibi varsayılan olarak Xorg kullanan bir masaüstü ortamı kullanmanız gerekir.
XRDP’deki Xvnc ve Xorg oturum türleri arasındaki fark nedir?
Xvnc arka ucu, dahili olarak VNC kullanarak sanal bir çerçeve arabelleği oluşturur; çoğu yapılandırmayla uyumludur ancak daha yüksek CPU yüküne sahiptir. Xorg arka ucu, doğrudan Xorg görüntülemesi için xorgxrdp sürücüsünü kullanır ve daha iyi performans ile donanım hızlandırma desteği sunar. Mevcut olduğunda Xorg kullanın.
Birden fazla kullanıcı XRDP’ye aynı anda bağlanabilir mi?
Evet. XRDP, kimliği doğrulanmış her kullanıcı için ayrı, yalıtılmış bir X11 oturumu oluşturur. Oturumlar birbirinden bağımsızdır ve birbirini etkilemez; bu da XRDP’yi tek bir sunucuda çok kullanıcılı uzaktan erişim için uygun kılar.
XRDP port 3389’u doğrudan internete açmak güvenli midir?
Hayır. RDP, kaba kuvvet ve istismar saldırıları için en yoğun hedef alınan protokollerden biridir. Port 3389’u her zaman güvenlik duvarı kuralları aracılığıyla bilinen IP adresleriyle kısıtlayın, fail2ban kullanın ve internete açık herhangi bir dağıtım için XRDP’yi SSH üzerinden tünel kurmayı düşünün.
Ubuntu 22.04’ten XRDP’yi nasıl kaldırırım?
sudo apt purge xrdp -y && sudo apt autoremove -y komutunu çalıştırın. Bu, XRDP paketlerini ve bağımlılıklarını kaldırır. Ayrıca sudo rm -rf /etc/xrdp ile artık yapılandırma dosyalarını silin ve sudo ufw delete allow 3389/tcp ile UFW kuralını kaldırın.
