Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması
В önceki haber Herhangi bir sanal makinede VNC sunucusu çalıştırmayı tartıştık. Bu seçeneğin birçok dezavantajı vardır; bunlardan en önemlisi, veri iletim kanallarının verimi için yüksek gereksinimlerdir. Bugün Linux üzerinde grafiksel bir masaüstüne RDP (Uzak Masaüstü Protokolü) aracılığıyla bağlanmayı deneyeceğiz. VNC sistemi, RFB (Uzak Çerçeve Arabelleği) protokolünü kullanarak piksel dizilerinin iletilmesine dayanır ve RDP, daha karmaşık grafik temelleri ve üst düzey komutlar göndermenize olanak tanır. Genellikle Windows'ta Uzak Masaüstü Hizmetlerini barındırmak için kullanılır, ancak Linux için sunucular da mevcuttur.

İçindekiler:

Grafik ortamının kurulumu
Sunucunun Ruslaştırılması ve yazılım kurulumu
RDP sunucusunu kurma ve yapılandırma
Güvenlik duvarı kurma
Bir RDP sunucusuna bağlanma
Oturum Yöneticisi ve Kullanıcı Oturumları
Klavye düzenlerini değiştirme

Grafik ortamının kurulumu

İki bilgi işlem çekirdeği, dört gigabayt RAM ve yirmi gigabayt sabit sürücüye (HDD) sahip Ubuntu Server 18.04 LTS içeren bir sanal makine alacağız. Daha zayıf bir yapılandırma, grafiksel masaüstü için uygun değildir, ancak bu, çözülen görevlere bağlıdır. Siparişinizde %10 indirim kazanmak için Habrahabr10 promosyon kodunu kullanmayı unutmayın.

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması
Masaüstü ortamının tüm bağımlılıklarla kurulumu aşağıdaki komutla yapılır:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Önceki durumda olduğu gibi, nispeten düşük bilgi işlem kaynağı gereksinimleri nedeniyle XFCE'yi seçtik.

Sunucunun Ruslaştırılması ve yazılım kurulumu

Çoğu zaman sanal makineler yalnızca İngilizce yerelleştirmeyle dağıtılır. Masaüstünde kurulumu kolay olan Rusçaya ihtiyacınız olabilir. Öncelikle sistem programlarının çevirilerini yükleyelim:

sudo apt-get install language-pack-ru

Yerelleştirmeyi ayarlayalım:

sudo update-locale LANG=ru_RU.UTF-8

Aynı etki, /etc/default/locale.d dosyasını manuel olarak düzenleyerek de elde edilebilir.

GNOME ve KDE'nin yerelleştirilmesi için depoda language-pack-gnome-ru ve language-pack-kde-ru paketleri bulunur; bu masaüstü ortamlarındaki programları kullanıyorsanız bunlara ihtiyacınız olacaktır. XFCE'de çeviriler uygulamalarla birlikte yüklenir. Daha sonra sözlükleri yükleyebilirsiniz:

# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru

# Тезаурус для LibreOffice
sudo apt-get install mythes-ru

# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict

Ayrıca bazı uygulama programları için çevirilerin yüklenmesi gerekebilir:

# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru

# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru

# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru

Bu, masaüstü ortamının hazırlanmasını tamamlar, geriye kalan tek şey RDP sunucusunu yapılandırmaktır.

RDP sunucusunu kurma ve yapılandırma

Ubuntu depolarında kullanacağımız serbestçe dağıtılmış bir Xrdp sunucusu vardır:

sudo apt-get install xrdp

Her şey yolunda giderse sunucu otomatik olarak başlamalıdır:

sudo systemctl status xrdp

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması
Xrdp sunucusu, xrdp kullanıcı haklarıyla çalışır ve varsayılan olarak /etc/ssl/private/ssl-cert-snakeoil.key sertifikasını alır; bu sertifika, kendinizinkiyle değiştirilebilir. Dosyayı okuma erişimine sahip olmak için kullanıcıyı SSL-cert grubuna eklemeniz gerekir:

sudo adduser xrdp ssl-cert

Varsayılan ayarlar /etc/default/xrdp dosyasında bulunabilir ve diğer tüm sunucu yapılandırma dosyaları /etc/xrdp dizininde bulunur. Ana parametreler xrdp.ini dosyasındadır ve değiştirilmesine gerek yoktur. Yapılandırma iyi bir şekilde belgelenmiştir ve ilgili kılavuz sayfaları eklenmiştir:

man xrdp.ini
man xrdp

Geriye kalan tek şey, kullanıcı oturumu başlatıldığında çalıştırılan /etc/xrdp/startwm.sh betiğini düzenlemektir. Öncelikle dağıtımdaki betiğin yedek kopyasını oluşturalım:

sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh

XFCE masaüstü ortamını başlatmak için şunun gibi bir komut dosyasına ihtiyacınız olacak:

#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4

Lütfen unutmayın: komut dosyalarında yürütülebilir dosyaların tam yolunu yazmak daha iyidir - bu iyi bir alışkanlıktır. Betiği çalıştırılabilir hale getirelim ve bu noktada Xrdp sunucusunun kurulumu tamamlanmış sayılabilir:

sudo chmod 755 /etc/xrdp/startwm.sh

Sunucuyu yeniden başlatın:

sudo systemctl restart xrdp

Güvenlik duvarı kurma

Xrdp varsayılan olarak tüm arayüzlerde TCP bağlantı noktası 3389'u dinler. Sanal sunucu konfigürasyonuna bağlı olarak Netfilter güvenlik duvarı yapılandırmanız gerekebilir. Linux'ta bu genellikle iptables yardımcı programı kullanılarak yapılır, ancak Ubuntu'da ufw kullanmak daha iyidir. İstemcinin IP adresi biliniyorsa aşağıdaki komutla yapılandırma gerçekleştirilir:

sudo ufw allow from IP_Address to any port 3389

Herhangi bir IP'den bağlantılara şu şekilde izin verebilirsiniz:

sudo ufw allow 3389

RDP protokolü şifrelemeyi destekler, ancak Xrdp sunucusunu genel ağlara açmak kötü bir fikirdir. İstemcinin sabit bir IP'si yoksa, güvenliği artırmak için sunucunun yalnızca localhost'u dinlemesi gerekir. Trafiği istemci bilgisayardan güvenli bir şekilde yönlendirecek bir SSH tüneli aracılığıyla erişmek en iyisidir. Benzer bir yaklaşımımız var önceki makalede kullanılmış VNC sunucusu için.

Bir RDP sunucusuna bağlanma

Masaüstü ortamıyla çalışmak için ayrı bir ayrıcalıksız kullanıcı oluşturmak daha iyidir:

sudo adduser rdpuser

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması
Kullanıcıyı yönetimle ilgili görevleri gerçekleştirebilmesi için sudo grubuna ekleyelim. Böyle bir ihtiyaç yoksa bu adımı atlayabilirsiniz:

sudo gpasswd -a rdpuser sudo

Yerleşik Windows Uzak Masaüstü Hizmetleri istemcisi de dahil olmak üzere herhangi bir RDP istemcisini kullanarak sunucuya bağlanabilirsiniz. Xrdp harici arayüzü dinliyorsa ek bir işlem yapılmasına gerek kalmayacaktır. Bağlantı ayarlarında VPS IP adresini, kullanıcı adını ve şifresini belirtmeniz yeterlidir. Bağlandıktan sonra şöyle bir şey göreceğiz:

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması
Masaüstü ortamının ilk kurulumundan sonra tam teşekküllü bir masaüstüne sahip olacağız. Gördüğünüz gibi her şey kullanılan uygulamalara bağlı olsa da çok fazla kaynak tüketmiyor.

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması
Xrdp sunucusu yalnızca localhost'u dinliyorsa, istemci bilgisayardaki trafiğin bir SSH tüneline paketlenmesi gerekecektir (sshd'nin VPS'de çalışıyor olması gerekir). Windows'ta grafiksel bir SSH istemcisi (örneğin, PuTTY) kullanabilirsiniz ve UNIX sistemlerinde ssh yardımcı programına ihtiyacınız vardır:

ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip

Tünel başlatıldıktan sonra, RDP istemcisi artık uzak sunucuya değil, yerel ana bilgisayara bağlanacaktır.

Mobil cihazlarda bu daha zordur: Tüneli yükseltebilen SSH istemcilerinin satın alınması gerekecektir ve iOS ve iPadOS'ta, enerji tüketiminin çok iyi optimizasyonu nedeniyle üçüncü taraf uygulamaların arka planda çalışması zordur. iPhone ve iPad'de ayrı bir uygulamada tünel oluşturamayacaksınız; SSH aracılığıyla kendisi RDP bağlantısı kurabilen bir hasat uygulamasına ihtiyacınız olacak. Mesela Uzak Pro.

Oturum Yöneticisi ve Kullanıcı Oturumları

Çok kullanıcılı çalışma yeteneği doğrudan Xrdp sunucusunda uygulanır ve ek yapılandırma gerektirmez. Hizmeti systemd aracılığıyla başlattıktan sonra, bir işlem daemon modunda çalışır, 3389 numaralı bağlantı noktasını dinler ve localhost aracılığıyla oturum yöneticisiyle iletişim kurar.

ps aux |grep xrdp

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması

sudo netstat -ap |grep xrdp

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması
Oturum yöneticisi genellikle kullanıcılar tarafından görülmez, çünkü istemci ayarlarında belirtilen kullanıcı adı ve şifre ona otomatik olarak aktarılır. Bu olmazsa veya kimlik doğrulama sırasında bir hata oluşursa masaüstü yerine etkileşimli bir oturum açma penceresi görünecektir.

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması
Oturum yöneticisinin otomatik başlatılması /etc/default/xrdp dosyasında belirtilir ve yapılandırma /etc/xrdp/sesman.ini dosyasında saklanır. Varsayılan olarak şuna benzer:

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false

[Sessions]

Burada hiçbir şeyi değiştirmenize gerek yok, sadece kök haklarıyla oturum açmayı devre dışı bırakmanız gerekiyor (AllowRootLogin=false). Sistemde yetkilendirilen her kullanıcı için ayrı bir xrdp işlemi başlatılır: Oturumu sonlandırmadan bağlantıyı keserseniz, kullanıcı işlemleri varsayılan olarak çalışmaya devam eder ve oturuma tekrar bağlanabilirsiniz. Ayarlar /etc/xrdp/sesman.ini dosyasından ([Oturumlar] bölümü) değiştirilebilir.

Klavye düzenlerini değiştirme

Genellikle iki yönlü bir panoda sorun yoktur, ancak Rusça klavye düzeniyle biraz oynamanız gerekecektir (Rusça yerel ayarı zaten olmalıdır) yüklü). Xrdp sunucusunun klavye ayarlarını düzenleyelim:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Yapılandırma dosyasının sonuna aşağıdaki satırları eklemeniz gerekir:

[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru

Geriye kalan tek şey dosyayı kaydetmek ve Xrdp'yi yeniden başlatmak:

sudo systemctl restart xrdp

Gördüğünüz gibi Linux VPS üzerinde RDP sunucusu kurmak zor değil ancak önceki haber VNC kurulumunu zaten tartıştık. Bu teknolojilere ek olarak ilginç bir seçenek daha var: değiştirilmiş bir NX 3 protokolünü kullanan X2Go sistemi. Bir sonraki yayında bunu ele alacağız.

Grafik arayüzlü Linux'ta VPS: Ubuntu 18.04'te bir RDP sunucusunun başlatılması

Kaynak: habr.com

Yorum ekle