В
главление:
تثبيت البيئة الرسومية
سنأخذ جهازًا افتراضيًا مزودًا بـ Ubuntu Server 18.04 LTS مع مركزين للحوسبة وأربعة غيغابايت من ذاكرة الوصول العشوائي ومحرك أقراص ثابت (HDD) يبلغ 10 غيغابايت. التكوين الأضعف غير مناسب لسطح المكتب الرسومي، على الرغم من أن هذا يعتمد على المهام التي يتم حلها. لا تنس استخدام الرمز الترويجي Habrahabr10 للحصول على خصم XNUMX% على طلبك.
يتم تثبيت بيئة سطح المكتب بكل التبعيات بالأمر التالي:
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
يعمل خادم 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، والذي سيعيد توجيه حركة المرور بشكل آمن من جهاز الكمبيوتر العميل. لدينا نهج مماثل
الاتصال بخادم RDP
للعمل مع بيئة سطح المكتب، من الأفضل إنشاء مستخدم منفصل لا يتمتع بالامتيازات:
sudo adduser rdpuser
دعنا نضيف المستخدم إلى مجموعة sudo حتى يتمكن من أداء المهام المتعلقة بالإدارة. إذا لم تكن هناك حاجة ، يمكن تخطي هذه الخطوة:
sudo gpasswd -a rdpuser sudo
يمكنك الاتصال بالخادم باستخدام أي عميل RDP، بما في ذلك عميل Windows Remote Desktop Services المدمج. إذا كان Xrdp يستمع إلى الواجهة الخارجية، فلن تكون هناك حاجة إلى إجراءات إضافية. يكفي تحديد عنوان VPS IP واسم المستخدم وكلمة المرور في إعدادات الاتصال. بعد الاتصال سنرى شيئا مثل هذا:
بعد الإعداد الأولي لبيئة سطح المكتب، سنحصل على سطح مكتب كامل. كما ترون، فإنه لا يستهلك الكثير من الموارد، على الرغم من أن كل شيء سيعتمد على التطبيقات المستخدمة.
إذا كان خادم 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
sudo netstat -ap |grep xrdp
عادةً ما يكون مدير الجلسة غير مرئي للمستخدمين، لأنه يتم نقل تسجيل الدخول وكلمة المرور المحددين في إعدادات العميل إليه تلقائيًا. إذا لم يحدث ذلك أو حدث خطأ أثناء المصادقة، فستظهر نافذة تسجيل دخول تفاعلية بدلاً من سطح المكتب.
يتم تحديد التشغيل التلقائي لمدير الجلسة في الملف /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 (قسم [الجلسات]).
تبديل تخطيطات لوحة المفاتيح
عادةً لا توجد مشكلات في الحافظة ذات الاتجاهين، ولكن مع تخطيط لوحة المفاتيح الروسية، سيتعين عليك التلاعب قليلاً (يجب أن تكون اللغة الروسية موجودة بالفعل
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، ولكن
المصدر: www.habr.com