VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04
В bài viết trước chúng tôi đã thảo luận về việc chạy máy chủ VNC trên bất kỳ loại máy ảo nào. Tùy chọn này có rất nhiều nhược điểm, trong đó nhược điểm chính là yêu cầu cao về thông lượng của các kênh truyền dữ liệu. Hôm nay chúng tôi sẽ thử kết nối với máy tính để bàn đồ họa trên Linux thông qua RDP (Giao thức máy tính từ xa). Hệ thống VNC dựa trên việc truyền các mảng pixel bằng giao thức RFB (Bộ đệm khung từ xa) và RDP cho phép bạn gửi các nguyên hàm đồ họa phức tạp hơn và các lệnh cấp cao. Nó thường được sử dụng để lưu trữ Dịch vụ Máy tính Từ xa trên Windows, nhưng cũng có sẵn các máy chủ dành cho Linux.

Mục lục:

Cài đặt môi trường đồ họa
Nga hóa máy chủ và cài đặt phần mềm
Cài đặt và cấu hình máy chủ RDP
Thiết lập tường lửa
Kết nối với máy chủ RDP
Phiên quản lý phiên và phiên người dùng
Chuyển đổi bố cục bàn phím

Cài đặt môi trường đồ họa

Chúng tôi sẽ sử dụng một máy ảo với Ubuntu Server 18.04 LTS với hai lõi điện toán, RAM 10 gigabyte và ổ cứng (HDD) 10 gigabyte. Cấu hình yếu hơn không phù hợp với máy tính để bàn có đồ họa, mặc dù điều này phụ thuộc vào các tác vụ đang được giải quyết. Đừng quên sử dụng mã khuyến mãi HabrahabrXNUMX để được giảm giá XNUMX% cho đơn hàng của bạn.

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04
Việc cài đặt môi trường máy tính để bàn với tất cả các phụ thuộc được thực hiện bằng lệnh sau:

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

Như trường hợp trước, chúng tôi chọn XFCE do yêu cầu tài nguyên máy tính tương đối thấp.

Nga hóa máy chủ và cài đặt phần mềm

Thông thường các máy ảo chỉ được triển khai với bản địa hóa tiếng Anh. Trên máy tính để bàn, bạn có thể cần tiếng Nga, rất dễ cài đặt. Đầu tiên chúng ta hãy cài đặt bản dịch cho các chương trình hệ thống:

sudo apt-get install language-pack-ru

Hãy thiết lập bản địa hóa:

sudo update-locale LANG=ru_RU.UTF-8

Hiệu ứng tương tự có thể đạt được bằng cách chỉnh sửa thủ công tệp /etc/default/locale.

Để bản địa hóa Gnome và KDE, kho lưu trữ có các gói ngôn ngữ-pack-gnome-ru và ngôn ngữ-pack-kde-ru - bạn sẽ cần chúng nếu sử dụng các chương trình từ môi trường máy tính để bàn này. Trong XFCE, bản dịch được cài đặt cùng với các ứng dụng. Tiếp theo bạn có thể cài đặt từ điển:

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

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

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

Ngoài ra, việc cài đặt bản dịch có thể được yêu cầu đối với một số chương trình ứng dụng:

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

Việc này hoàn tất việc chuẩn bị môi trường máy tính để bàn, tất cả những gì còn lại là cấu hình máy chủ RDP.

Cài đặt và cấu hình máy chủ RDP

Kho lưu trữ Ubuntu có máy chủ Xrdp được phân phối miễn phí mà chúng tôi sẽ sử dụng:

sudo apt-get install xrdp

Nếu mọi thứ đều ổn, máy chủ sẽ tự động khởi động:

sudo systemctl status xrdp

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04
Máy chủ Xrdp chạy với quyền người dùng xrdp và theo mặc định lấy chứng chỉ /etc/ssl/private/ssl-cert-snakeoil.key, chứng chỉ này có thể được thay thế bằng chứng chỉ của riêng bạn. Để có quyền đọc tệp, bạn cần thêm người dùng vào nhóm ssl-cert:

sudo adduser xrdp ssl-cert

Các cài đặt mặc định có thể được tìm thấy trong tệp /etc/default/xrdp và tất cả các tệp cấu hình máy chủ khác đều nằm trong thư mục /etc/xrdp. Các tham số chính nằm trong tệp xrdp.ini, không cần thay đổi. Cấu hình được ghi lại rõ ràng và bao gồm các trang hướng dẫn tương ứng:

man xrdp.ini
man xrdp

Tất cả những gì còn lại là chỉnh sửa tập lệnh /etc/xrdp/startwm.sh, tập lệnh này được thực thi khi phiên người dùng được khởi tạo. Trước tiên, hãy tạo một bản sao lưu của tập lệnh từ bản phân phối:

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

Để khởi động môi trường máy tính để bàn XFCE, bạn sẽ cần một tập lệnh như thế này:

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

Xin lưu ý: trong các tập lệnh, tốt hơn là bạn nên viết đường dẫn đầy đủ đến các tệp thực thi - đây là một thói quen tốt. Hãy làm cho tập lệnh có thể thực thi được và tại thời điểm này, quá trình thiết lập máy chủ Xrdp có thể được coi là hoàn tất:

sudo chmod 755 /etc/xrdp/startwm.sh

Khởi động lại máy chủ:

sudo systemctl restart xrdp

Thiết lập tường lửa

Theo mặc định, Xrdp lắng nghe cổng TCP 3389 trên tất cả các giao diện. Tùy thuộc vào cấu hình máy chủ ảo, bạn có thể cần định cấu hình tường lửa Netfilter. Trên Linux, việc này thường được thực hiện bằng tiện ích iptables, nhưng trên Ubuntu thì tốt hơn nên sử dụng ufw. Nếu địa chỉ IP của máy khách được biết, việc cấu hình được thực hiện bằng lệnh sau:

sudo ufw allow from IP_Address to any port 3389

Bạn có thể cho phép kết nối từ bất kỳ IP nào như thế này:

sudo ufw allow 3389

Giao thức RDP hỗ trợ mã hóa, nhưng việc đưa máy chủ Xrdp ra mạng công cộng là một ý tưởng tồi. Nếu client không có IP cố định thì server chỉ nên nghe localhost để tăng tính bảo mật. Tốt nhất là truy cập nó thông qua đường hầm SSH, điều này sẽ chuyển hướng lưu lượng truy cập từ máy khách một cách an toàn. Chúng tôi có cách tiếp cận tương tự đã sử dụng ở bài viết trước cho máy chủ VNC.

Kết nối với máy chủ RDP

Để làm việc với môi trường máy tính để bàn, tốt hơn là tạo một người dùng không có đặc quyền riêng biệt:

sudo adduser rdpuser

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04
Hãy thêm người dùng vào nhóm sudo để anh ta có thể thực hiện các tác vụ liên quan đến quản trị. Nếu không có nhu cầu như vậy, bạn có thể bỏ qua bước này:

sudo gpasswd -a rdpuser sudo

Bạn có thể kết nối với máy chủ bằng bất kỳ ứng dụng khách RDP nào, bao gồm cả ứng dụng khách Windows Remote Desktop Services tích hợp sẵn. Nếu Xrdp đang nghe giao diện bên ngoài thì sẽ không cần thực hiện thêm hành động nào. Chỉ cần chỉ định địa chỉ IP VPS, tên người dùng và mật khẩu trong cài đặt kết nối là đủ. Sau khi kết nối chúng ta sẽ thấy như thế này:

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04
Sau khi thiết lập môi trường máy tính để bàn ban đầu, chúng ta sẽ có được một máy tính để bàn chính thức. Như bạn có thể thấy, nó không tiêu tốn nhiều tài nguyên, mặc dù mọi thứ sẽ phụ thuộc vào ứng dụng được sử dụng.

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04
Nếu máy chủ Xrdp chỉ nghe localhost thì lưu lượng trên máy khách sẽ phải được đóng gói vào đường hầm SSH (sshd phải chạy trên VPS). Trên Windows, bạn có thể sử dụng máy khách SSH đồ họa (ví dụ: PuTTY) và trên hệ thống UNIX, bạn cần có tiện ích ssh:

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

Sau khi khởi tạo đường hầm, máy khách RDP sẽ không kết nối với máy chủ từ xa nữa mà với máy chủ cục bộ.

Khó khăn hơn với các thiết bị di động: Sẽ phải mua các máy khách SSH có khả năng nâng cao đường hầm, còn trong iOS và iPadOS, hoạt động nền của các ứng dụng bên thứ ba gặp khó khăn do tối ưu hóa mức tiêu thụ năng lượng quá tốt. Trên iPhone và iPad, bạn sẽ không thể tạo đường hầm trong một ứng dụng riêng biệt; bạn sẽ cần một ứng dụng thu hoạch có thể tự thiết lập kết nối RDP thông qua SSH. Chẳng hạn như chẳng hạn Remoter Pro.

Phiên quản lý phiên và phiên người dùng

Khả năng làm việc của nhiều người dùng được triển khai trực tiếp trên máy chủ Xrdp và không yêu cầu cấu hình bổ sung. Sau khi khởi động dịch vụ qua systemd, một quy trình sẽ chạy ở chế độ daemon, lắng nghe trên cổng 3389 và giao tiếp qua localhost với trình quản lý phiên.

ps aux |grep xrdp

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04
Trình quản lý phiên thường không hiển thị với người dùng vì thông tin đăng nhập và mật khẩu được chỉ định trong cài đặt máy khách sẽ tự động được chuyển sang nó. Nếu điều này không xảy ra hoặc có lỗi trong quá trình xác thực, một cửa sổ đăng nhập tương tác sẽ xuất hiện thay vì màn hình nền.

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04
Việc tự động khởi chạy trình quản lý phiên được chỉ định trong tệp /etc/default/xrdp và cấu hình được lưu trữ trong /etc/xrdp/sesman.ini. Theo mặc định, nó trông giống như thế này:

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

Bạn không phải thay đổi bất cứ điều gì ở đây, bạn chỉ cần tắt đăng nhập bằng quyền root (AllowRootLogin=false). Đối với mỗi người dùng được ủy quyền trong hệ thống, một quy trình xrdp riêng sẽ được khởi chạy: nếu bạn ngắt kết nối mà không kết thúc phiên, quy trình người dùng sẽ tiếp tục chạy theo mặc định và bạn có thể kết nối lại với phiên. Có thể thay đổi cài đặt trong tệp /etc/xrdp/sesman.ini (phần [Phiên]).

Chuyển đổi bố cục bàn phím

Thường không có vấn đề gì với khay nhớ tạm hai chiều, nhưng với bố cục bàn phím tiếng Nga, bạn sẽ phải thử một chút (ngôn ngữ tiếng Nga phải có sẵn). Cài đặt). Hãy chỉnh sửa cài đặt bàn phím của máy chủ Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Bạn cần thêm các dòng sau vào cuối tệp cấu hình:

[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

Tất cả những gì còn lại là lưu tệp và khởi động lại Xrdp:

sudo systemctl restart xrdp

Như bạn có thể thấy, việc thiết lập máy chủ RDP trên VPS Linux không khó, nhưng bài viết trước Chúng ta đã thảo luận về việc thiết lập VNC. Ngoài những công nghệ này, còn có một lựa chọn thú vị khác: hệ thống X3Go sử dụng giao thức NX 2 đã được sửa đổi. Chúng tôi sẽ giải quyết nó trong ấn phẩm tiếp theo.

VPS trên Linux với giao diện đồ họa: khởi chạy máy chủ RDP trên Ubuntu 18.04

Nguồn: www.habr.com

Thêm một lời nhận xét