VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04

VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04
В المادة السابقة ناقشنا تشغيل خادم VNC على جهاز افتراضي من أي نوع. يحتوي هذا الخيار على الكثير من العيوب، وأهمها هو المتطلبات العالية لإنتاجية قنوات نقل البيانات. سنحاول اليوم الاتصال بسطح مكتب رسومي على Linux عبر RDP (بروتوكول سطح المكتب البعيد). يعتمد نظام VNC على نقل صفائف البكسل باستخدام بروتوكول RFB (Remote Framebuffer)، ويسمح لك RDP بإرسال أساسيات رسومات أكثر تعقيدًا وأوامر عالية المستوى. يتم استخدامه عادةً لاستضافة خدمات سطح المكتب البعيد على نظام التشغيل Windows، ولكن تتوفر أيضًا خوادم Linux.

главление:

تثبيت البيئة الرسومية
الترويس للخادم وتثبيت البرامج
تثبيت وتكوين خادم RDP
إعداد جدار الحماية
الاتصال بخادم RDP
مدير الجلسة وجلسات المستخدم
تبديل تخطيطات لوحة المفاتيح

تثبيت البيئة الرسومية

سنأخذ جهازًا افتراضيًا مزودًا بـ Ubuntu Server 18.04 LTS مع مركزين للحوسبة وأربعة غيغابايت من ذاكرة الوصول العشوائي ومحرك أقراص ثابت (HDD) يبلغ 10 غيغابايت. التكوين الأضعف غير مناسب لسطح المكتب الرسومي، على الرغم من أن هذا يعتمد على المهام التي يتم حلها. لا تنس استخدام الرمز الترويجي Habrahabr10 للحصول على خصم XNUMX% على طلبك.

VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04
يتم تثبيت بيئة سطح المكتب بكل التبعيات بالأمر التالي:

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

كما في الحالة السابقة، اخترنا XFCE نظرًا لمتطلبات موارد الحوسبة المنخفضة نسبيًا.

الترويس للخادم وتثبيت البرامج

غالبًا ما يتم نشر الأجهزة الافتراضية مع الترجمة باللغة الإنجليزية فقط. على سطح المكتب، قد تحتاج إلى اللغة الروسية، وهي سهلة الإعداد. أولاً، لنقم بتثبيت الترجمات لبرامج النظام:

sudo apt-get install language-pack-ru

لنقم بإعداد الترجمة:

sudo update-locale LANG=ru_RU.UTF-8

يمكن تحقيق نفس التأثير عن طريق تحرير ملف /etc/default/locale.

لتوطين GNOME وKDE، يحتوي المستودع على حزم language-pack-gnome-ru وlanguage-pack-kde-ru - ستحتاج إليها إذا كنت تستخدم برامج من بيئات سطح المكتب هذه. في XFCE، يتم تثبيت الترجمات مع التطبيقات. بعد ذلك يمكنك تثبيت القواميس:

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

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

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

بالإضافة إلى ذلك، قد يكون تثبيت الترجمات مطلوبًا لبعض البرامج التطبيقية:

# Браузер 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

هذا يكمل إعداد بيئة سطح المكتب، ويبقى فقط تكوين خادم RDP.

تثبيت وتكوين خادم RDP

تحتوي مستودعات Ubuntu على خادم Xrdp موزع مجانًا، والذي سنستخدمه:

sudo apt-get install xrdp

إذا سارت الأمور على ما يرام، فيجب أن يبدأ الخادم تلقائيًا:

sudo systemctl status xrdp

VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04
يعمل خادم Xrdp بحقوق مستخدم xrdp ويأخذ افتراضيًا الشهادة /etc/ssl/private/ssl-cert-snakeoil.key، والتي يمكن استبدالها بشهادتك الخاصة. لتتمكن من الوصول لقراءة الملف، تحتاج إلى إضافة المستخدم إلى مجموعة ssl-cert:

sudo adduser xrdp ssl-cert

يمكن العثور على الإعدادات الافتراضية في الملف /etc/default/xrdp، وجميع ملفات تكوين الخادم الأخرى موجودة في الدليل /etc/xrdp. المعلمات الرئيسية موجودة في ملف xrdp.ini، والتي لا تحتاج إلى تغيير. تم توثيق التكوين بشكل جيد، وتم تضمين صفحات الإدارة المقابلة:

man xrdp.ini
man xrdp

كل ما تبقى هو تحرير البرنامج النصي /etc/xrdp/startwm.sh، والذي يتم تنفيذه عند تهيئة جلسة المستخدم. أولاً، لنقم بعمل نسخة احتياطية من البرنامج النصي من التوزيعة:

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

لبدء تشغيل بيئة سطح المكتب XFCE، ستحتاج إلى برنامج نصي يشبه هذا:

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

يرجى ملاحظة: من الأفضل كتابة المسار الكامل للملفات القابلة للتنفيذ في البرامج النصية - وهذه عادة جيدة. لنجعل البرنامج النصي قابلاً للتنفيذ وفي هذه المرحلة يمكن اعتبار إعداد خادم Xrdp مكتملًا:

sudo chmod 755 /etc/xrdp/startwm.sh

إعادة تشغيل الخادم:

sudo systemctl restart xrdp

إعداد جدار الحماية

افتراضيًا، يستمع Xrdp إلى منفذ TCP رقم 3389 على كافة الواجهات. اعتمادًا على تكوين الخادم الظاهري، قد تحتاج إلى تكوين جدار حماية Netfilter. في نظام التشغيل Linux، يتم ذلك عادةً باستخدام الأداة المساعدة iptables، ولكن في نظام Ubuntu، من الأفضل استخدام ufw. إذا كان عنوان IP الخاص بالعميل معروفًا، فسيتم تنفيذ التكوين باستخدام الأمر التالي:

sudo ufw allow from IP_Address to any port 3389

يمكنك السماح بالاتصالات من أي IP مثل هذا:

sudo ufw allow 3389

يدعم بروتوكول RDP التشفير، لكن تعريض خادم Xrdp للشبكات العامة يعد فكرة سيئة. إذا لم يكن لدى العميل عنوان IP ثابت، فيجب أن يستمع الخادم فقط إلى المضيف المحلي لزيادة الأمان. ومن الأفضل الوصول إليه عبر نفق SSH، والذي سيعيد توجيه حركة المرور بشكل آمن من جهاز الكمبيوتر العميل. لدينا نهج مماثل المستخدمة في المقالة السابقة لخادم VNC.

الاتصال بخادم RDP

للعمل مع بيئة سطح المكتب، من الأفضل إنشاء مستخدم منفصل لا يتمتع بالامتيازات:

sudo adduser rdpuser

VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04
دعنا نضيف المستخدم إلى مجموعة sudo حتى يتمكن من أداء المهام المتعلقة بالإدارة. إذا لم تكن هناك حاجة ، يمكن تخطي هذه الخطوة:

sudo gpasswd -a rdpuser sudo

يمكنك الاتصال بالخادم باستخدام أي عميل RDP، بما في ذلك عميل Windows Remote Desktop Services المدمج. إذا كان Xrdp يستمع إلى الواجهة الخارجية، فلن تكون هناك حاجة إلى إجراءات إضافية. يكفي تحديد عنوان VPS IP واسم المستخدم وكلمة المرور في إعدادات الاتصال. بعد الاتصال سنرى شيئا مثل هذا:

VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04
بعد الإعداد الأولي لبيئة سطح المكتب، سنحصل على سطح مكتب كامل. كما ترون، فإنه لا يستهلك الكثير من الموارد، على الرغم من أن كل شيء سيعتمد على التطبيقات المستخدمة.

VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04
إذا كان خادم Xrdp يستمع فقط إلى المضيف المحلي، فيجب تعبئة حركة المرور على جهاز الكمبيوتر العميل في نفق SSH (يجب تشغيل sshd على VPS). في نظام التشغيل Windows، يمكنك استخدام عميل SSH رسومي (على سبيل المثال، PuTTY)، وفي أنظمة UNIX تحتاج إلى الأداة المساعدة ssh:

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

بعد تهيئة النفق، لن يتصل عميل RDP بالخادم البعيد، بل بالمضيف المحلي.

يكون الأمر أكثر صعوبة مع الأجهزة المحمولة: يجب شراء عملاء SSH القادرين على رفع النفق، وفي iOS وiPadOS، يكون التشغيل في الخلفية لتطبيقات الطرف الثالث أمرًا صعبًا بسبب التحسين الجيد جدًا لاستهلاك الطاقة. على iPhone وiPad، لن تتمكن من إنشاء نفق في تطبيق منفصل؛ ستحتاج إلى تطبيق حصاد يمكنه بنفسه إنشاء اتصال RDP عبر SSH. مثل، على سبيل المثال النائية برو.

مدير الجلسة وجلسات المستخدم

يتم تنفيذ القدرة على العمل متعدد المستخدمين مباشرة في خادم Xrdp ولا تتطلب تكوينًا إضافيًا. بعد بدء الخدمة عبر systemd، يتم تشغيل عملية واحدة في الوضع الخفي، وتستمع على المنفذ 3389 وتتواصل عبر المضيف المحلي مع مدير الجلسة.

ps aux |grep xrdp

VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04
عادةً ما يكون مدير الجلسة غير مرئي للمستخدمين، لأنه يتم نقل تسجيل الدخول وكلمة المرور المحددين في إعدادات العميل إليه تلقائيًا. إذا لم يحدث ذلك أو حدث خطأ أثناء المصادقة، فستظهر نافذة تسجيل دخول تفاعلية بدلاً من سطح المكتب.

VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04
يتم تحديد التشغيل التلقائي لمدير الجلسة في الملف /etc/default/xrdp، ويتم تخزين التكوين في /etc/xrdp/sesman.ini. افتراضيا يبدو شيء من هذا القبيل:

[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]

ليس عليك تغيير أي شيء هنا، كل ما عليك فعله هو تعطيل تسجيل الدخول باستخدام حقوق الجذر (AllowRootLogin=false). لكل مستخدم مرخص له في النظام، يتم إطلاق عملية xrdp منفصلة: إذا قمت بقطع الاتصال دون إنهاء الجلسة، فستستمر عمليات المستخدم في العمل بشكل افتراضي، ويمكنك الاتصال بالجلسة مرة أخرى. يمكن تغيير الإعدادات في الملف /etc/xrdp/sesman.ini (قسم [الجلسات]).

تبديل تخطيطات لوحة المفاتيح

عادةً لا توجد مشكلات في الحافظة ذات الاتجاهين، ولكن مع تخطيط لوحة المفاتيح الروسية، سيتعين عليك التلاعب قليلاً (يجب أن تكون اللغة الروسية موجودة بالفعل تثبيت). لنقم بتعديل إعدادات لوحة المفاتيح لخادم Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

تحتاج إلى إضافة الأسطر التالية إلى نهاية ملف التكوين:

[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

كل ما تبقى هو حفظ الملف وإعادة تشغيل Xrdp:

sudo systemctl restart xrdp

كما ترون، ليس من الصعب إعداد خادم RDP على Linux VPS، ولكن المادة السابقة لقد ناقشنا بالفعل إعداد VNC. بالإضافة إلى هذه التقنيات، هناك خيار آخر مثير للاهتمام: نظام X3Go الذي يستخدم بروتوكول NX 2 المعدل. سنتعامل معها في المنشور القادم.

VPS على Linux مع واجهة المستخدم الرسومية: قم بتشغيل خادم RDP على Ubuntu 18.04

المصدر: www.habr.com

إضافة تعليق