XRDP (X Remote Desktop Protocol) là một phần mềm và giao thức máy tính từ xa mã nguồn mở, cho phép người dùng truy cập vào giao diện đồ họa của máy chủ Linux từ một máy tính khác. Trong bài viết này mình sẽ giúp bạn hiểu rõ về khái niệm XRDP, cách thức hoạt động, ưu nhược điểm và hướng dẫn chi tiết cách cài đặt, cấu hình trên CentOS và Ubuntu.
Những điểm chính
- Khái niệm: Biết được XRDP là một phần mềm và giao thức máy tính từ xa mã nguồn mở dành cho Linux, cho phép truy cập giao diện đồ họa của máy chủ Linux từ xa qua giao thức RDP.
- Cách hoạt động: Biết được XRDP sử dụng giao thức RDP để mã hóa và truyền tải kết nối, đảm bảo trải nghiệm mượt mà.
- Ưu nhược điểm: Nắm được ưu nhược điểm của XRDP để linh hoạt khi sử dụng.
- Các bước cài đặt trên CentOS: Nắm được quy trình các bước cài đặt XRDP trên CentOS.
- Các bước cài đặt trên Ubuntu: Nắm được quy trình các bước cài đặt XRDP trên Ubuntu.
- Hướng dẫn cách cấu hình XRDP: Được hướng dẫn chi tiết cách cấu hình XRDP chi tiết.
- Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến XRDP.
XRDP là gì?
XRDP (X Remote Desktop Protocol) là một phần mềm và giao thức máy tính từ xa mã nguồn mở, cho phép bạn điều khiển môi trường desktop đồ họa (GUI) của một máy chủ Linux từ xa. Về cơ bản, XRDP hoạt động như một “remote desktop” cho Linux, sử dụng giao thức RDP của Microsoft để tạo phiên kết nối an toàn, cho phép người dùng truy cập vào ứng dụng, tệp tin và quản lý tài nguyên Linux từ máy tính cục bộ. Điều này cực kỳ hữu ích cho các quản trị viên hệ thống hoặc người dùng cần truy cập và quản lý máy chủ Linux mà không cần dòng lệnh.

Cách XRDP hoạt động
Khi một người dùng từ một máy tính từ xa thực hiện kết nối đến một hệ thống Linux có cài đặt XRDP, quá trình sẽ diễn ra theo các bước:
- Tạo phiên kết nối: Đầu tiên, XRDP sẽ tạo ra một phiên kết nối (session) mới dành riêng cho người dùng đó.
- Tạo môi trường desktop ảo: Tiếp theo, một môi trường desktop Linux ảo sẽ được tạo ra trên máy tính từ xa. Tất cả các ứng dụng và tài nguyên trên hệ thống Linux sẽ được hiển thị và có thể tương tác được bên trong môi trường ảo này.
- Sử dụng giao thức RDP: Toàn bộ kết nối giữa máy tính của người dùng và hệ thống Linux được thiết lập thông qua giao thức RDP. Giao thức này đóng vai trò quan trọng trong việc đảm bảo kết nối được mã hóa an toàn và đồng thời giảm thiểu độ trễ, mang lại trải nghiệm mượt mà khi sử dụng.
Ngoài ra, XRDP còn có khả năng tương thích cao, hỗ trợ nhiều lựa chọn máy khách để kết nối (như Microsoft Remote Desktop, rdesktop, FreeRDP) và có thể hoạt động với nhiều môi trường desktop Linux phổ biến (như GNOME, Xfce, KDE).

Ưu nhược điểm của XRDP
Miễn phí và mã nguồn mở: XRDP là phần mềm miễn phí và có mã nguồn mở, giúp người dùng tiết kiệm chi phí bản quyền so với các giải pháp khác.
Tương thích với nhiều phiên bản Linux: XRDP hoạt động tốt trên nhiều bản phân phối Linux (Ubuntu, CentOS, Debian, Fedora,…).
Hỗ trợ đa người dùng: Nhiều người có thể kết nối vào cùng một máy chủ cùng lúc (mỗi người một phiên làm việc riêng), mang lại sự linh hoạt cho các tổ chức và doanh nghiệp.
Sử dụng giao thức RDP: Người dùng Windows có thể sử dụng công cụ Remote Desktop Connection có sẵn mà không cần cài thêm phần mềm.
Cấu hình có thể phức tạp: Đòi hỏi kiến thức cơ bản về Linux, đặc biệt khi cấu hình tường lửa hoặc môi trường desktop.
Hiệu suất thấp: XRDP có thể không mượt mà bằng các giải pháp thương mại, phụ thuộc nhiều vào tài nguyên máy chủ và chất lượng mạng.
Vấn đề bảo mật: Người dùng cần cấu hình tường lửa cẩn thận để chỉ cho phép các kết nối tin cậy, tránh bị tấn công từ bên ngoài.
Các bước cài đặt XRDP trên CentOS
Bước 1: Cập nhật Server
Đầu tiên, bạn cần cập nhật hệ thống của mình bằng cách chạy các lệnh sau. Sau khi cập nhật xong, hãy khởi động lại server.
yum clean all
yum -y update
rebootBước 2: Kích hoạt EPEL Repository
Gói XRDP có sẵn trên EPEL repository, do đó bạn cần kích hoạt gói này để có thể cài đặt.
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpmBước 3: Cài đặt Giao diện đồ họa (GUI)
Để có thể sử dụng remote desktop, bạn cần cài đặt một môi trường giao diện đồ họa cho người dùng.
yum groupinstall -y "Server with GUI"
systemctl set-default graphical.targetBước 4: Cài đặt XRDP và các gói phụ thuộc
Tiếp đó bạn tiến hành cài đặt XRDP cùng với TigerVNC, một gói phụ thuộc cần thiết.
yum -y install xrdp tigervnc-serverBước 5: Khởi động dịch vụ XRDP
Sau khi cài đặt, bạn cần khởi động dịch vụ XRDP và thiết lập để tự động chạy mỗi khi hệ thống khởi động.
systemctl start xrdp.service
systemctl enable xrdp.serviceBạn có thể kiểm tra trạng thái dịch vụ và xác nhận XRDP đang lắng nghe trên cổng 3389 bằng các lệnh:
systemctl status xrdp.service
netstat -lntp | grep xrdpBước 6: Cấu hình tường lửa
Bạn cần mở cổng 3389 trên tường lửa để cho phép các kết nối remote desktop.
- Nếu bạn sử dụng firewalld:
sudo firewall-cmd --permanent --add-port=3389/tcp
sudo firewall-cmd --reload- Nếu bạn sử dụng iptables:
iptables -I INPUT -p tcp --dport 3389 -j ACCEPTBước 7: Kiểm tra kết nối
Sau khi hoàn tất các bước trên, bạn có thể sử dụng một ứng dụng remote desktop client (ví dụ: Remote Desktop Connection trên Windows) để kết nối đến địa chỉ IP của máy chủ CentOS của mình. Đăng nhập bằng tên người dùng và mật khẩu của bạn để truy cập vào môi trường desktop Linux từ xa.

Các bước cài đặt XRDP trên Ubuntu
Bước 1: Cài đặt môi trường
Trước tiên, bạn cần cập nhật hệ thống và cài đặt một môi trường desktop. XRDP cần một môi trường desktop để hiển thị cho người dùng từ xa. XFCE là một lựa chọn nhẹ và hiệu quả, phù hợp cho các máy chủ.
Cập nhật danh sách gói của hệ thống:
sudo apt update
sudo apt upgradeCài đặt môi trường desktop XFCE:
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utilsMặc định, XRDP sử dụng VNC để hiển thị môi trường desktop. Bạn cần cài đặt một máy chủ VNC, ví dụ như TigerVNC, để hoạt động với XRDP:
sudo apt install tigervnc-standalone-server tigervnc-xorg-extension tigervnc-viewerBước 2: Cài đặt XRDP
Gói XRDP có sẵn trong kho lưu trữ mặc định của Ubuntu, bạn chạy lệnh sau để cài đặt:
sudo apt install xrdpSau khi cài đặt, dịch vụ XRDP sẽ tự động khởi động. Bạn có thể kiểm tra trạng thái của dịch vụ bằng lệnh:
sudo systemctl status xrdpTheo mặc định, XRDP sử dụng tệp /etc/ssl/private/ssl-cert-snakeoil.key mà chỉ các thành viên của nhóm ssl-cert mới đọc được. Thêm người dùng xrdp vào nhóm này:
sudo adduser xrdp ssl-certSau đó bạn khởi động lại dịch vụ XRDP và cấu hình để tự động chạy khi khởi động hệ thống:
sudo systemctl restart xrdp
sudo systemctl enable xrdpBước 3: Thay đổi file cấu hình XRDP
Các tệp cấu hình cho XRDP được đặt trong thư mục /etc/xrdp, và tệp cấu hình chính là xrdp.ini. Đối với một kết nối cơ bản, bạn không cần thực hiện bất kỳ thay đổi nào trong các tệp cấu hình này vì XRDP sẽ tự động sử dụng môi trường desktop mặc định (trong trường hợp này là XFCE).
Nếu bạn có thực hiện thay đổi trong tệp cấu hình, hãy khởi động lại dịch vụ XRDP để áp dụng:
sudo systemctl restart xrdpBước 4: Cấu hình tường lửa
Để cho phép các kết nối từ xa, bạn cần mở cổng 3389 trên tường lửa của mình.
- Nếu bạn đang sử dụng UFW (tường lửa mặc định trên Ubuntu):
sudo ufw allow 3389/tcp- Nếu bạn đang sử dụng firewalld:
sudo firewall-cmd --permanent --add-port=3389/tcp
sudo firewall-cmd --reload- Nếu bạn đang sử dụng iptables:
sudo iptables -I INPUT -p tcp --dport 3389 -j ACCEPTBước 5: Kiểm tra kết nối
Sau khi hoàn tất các bước trên, bạn có thể kết nối đến máy chủ Ubuntu của mình từ một máy tính khác bằng cách sử dụng một ứng dụng Remote Desktop Client (như Remote Desktop Connection trên Windows hoặc Remmina trên Linux).
Khi kết nối, hãy nhập địa chỉ IP của máy chủ Ubuntu và đăng nhập bằng tên người dùng và mật khẩu của bạn. Một môi trường desktop Linux (XFCE) sẽ được hiển thị trên máy tính của bạn.

Hướng dẫn cách cấu hình XRDP
Để cấu hình XRDP trên máy chủ của bạn, bạn có thể thực hiện các thay đổi trong tệp cấu hình chính và tệp khởi động phiên làm việc.
Mở tệp cấu hình XRDP: Đầu tiên, bạn sử dụng một trình soạn thảo văn bản như nano hoặc vi để mở tệp cấu hình /etc/xrdp/xrdp.ini:
sudo nano /etc/xrdp/xrdp.iniChỉnh sửa các thông số: Bên trong tệp, bạn có thể tùy chỉnh các thông số sau:
- Cấu hình độ sâu màu (bits-per-pixel): Tìm đến dòng
max_bppvà thay đổi giá trị để phù hợp với độ phân giải bạn muốn. Ví dụ, để sử dụng 24-bit color, hãy đặt giá trị là 24:
max_bpp=24- Cấu hình cấp độ mã hóa: Để tăng cường bảo mật, hãy tìm dòng
crypt_levelvà đặt giá trị thànhhigh:
crypt_level=high- Sau khi chỉnh sửa, bạn hãy lưu và đóng tệp.
Cấu hình phiên Desktop (Tùy chọn): Nếu bạn muốn XRDP khởi động một môi trường desktop khác với môi trường mặc định, bạn cần tạo hoặc chỉnh sửa tệp /etc/xrdp/startwm.sh.
Ví dụ, để cấu hình XRDP sử dụng desktop LXDE, bạn có thể tạo tệp startwm.sh với nội dung như sau:
#!/bin/sh
# startlxde - Session script for LXDE
# Load profile
. /etc/profile
# Start the LXDE session
exec startlxdeKhởi động lại dịch vụ XRDP: Để các thay đổi có hiệu lực, bạn cần khởi động lại dịch vụ XRDP bằng lệnh:
sudo systemctl restart xrdpSau khi hoàn thành các bước trên, cấu hình XRDP của bạn đã được cập nhật.
Câu hỏi thường gặp
XRDP có an toàn để truy cập máy chủ Linux từ xa không?
XRDP mã hóa kết nối RDP, nhưng độ an toàn cuối cùng phụ thuộc vào cấu hình của bạn. Nên kết hợp XRDP với các biện pháp bảo mật mạnh mẽ hơn như SSH tunneling hoặc VPN để tăng cường bảo vệ.
XRDP có làm chậm hiệu suất của máy chủ Linux không?
Có. Việc chạy một môi trường giao diện đồ họa (GUI) và sử dụng XRDP để truy cập từ xa sẽ tiêu tốn nhiều tài nguyên (CPU, RAM, băng thông) hơn so với việc chỉ quản lý máy chủ qua dòng lệnh (SSH).
Sự khác biệt chính giữa XRDP và VNC là gì?
VNC (Virtual Network Computing) là một giao thức hiển thị desktop từ xa. XRDP là một phần mềm triển khai giao thức RDP (của Microsoft) trên Linux. XRDP thường sử dụng VNC làm backend để hiển thị desktop, và RDP thường có hiệu suất tốt hơn VNC.
Tóm lại, XRDP là một giải pháp mã nguồn mở hiệu quả, giúp người dùng truy cập giao diện đồ họa của máy chủ Linux từ xa một cách trực quan thông qua giao thức RDP. Tuy nhiên, cần chú ý đến vấn đề bảo mật và yêu cầu tài nguyên để đảm bảo hệ thống vận hành ổn định và an toàn. Để tiếp tục nâng cao kỹ năng quản trị Linux, bạn có thể xem thêm các bài viết dưới đây của mình:




