Header Ads Widget

Ticker

6/recent/ticker-posts

Cài đặt XRDP trên Ubuntu để thực hiện Remote Desktop từ Windows đến Linux

Keyword: How to install XRDP on Ubuntu to Remote Desktop from Windows to Linux
Đợt trước mình đã hướng dẫn cho các bạn sử dụng vino service ( Sharing trên Ubuntu thông qua giao thức VNC ) đó là một dịch vụ mặc định trên mõi chiếc máy Ubuntu đã có sẵn, nghe thì nghĩ nó ổn đấy vì nếu cần thì chúng ta chỉ cần dùng nó để Remote Desktop là được rồi, cần gì mình phải giới thiệu cho các bạn thêm thằng XRDP này để làm gì đúng không nào ? Nó hoàn toàn thất bại ở điểm là dịch vụ vino chỉ chạy khi chúng ta login vào tài khoản người dùng thôi, còn nếu như bạn bị tắt máy hay đột ngột cúp điện và bạn mở máy lên lại không login vào thì service không chịu khởi động cùng hệ thống, đó là lý do mình tìm đến giải pháp khác chính là sử dụng thằng XRDP để thay thế.
XRDP
Install XRDP on Ubuntu
XRDP là một dịch vụ cho phép chúng ta thực hiện Remote Desktop đến máy Linux bằng giao thức RDP của Windows mà chúng ta vẫn hay sử dụng, nên vì thế nó sẻ rất tiện lợi cho những ai sử dụng Windows để Remote đến các máy Ubuntu Linux trong công ty hay gì đó chẳng hạn, các bạn theo dõi Blog mình lâu rồi nên cũng biết rồi đó mình sẻ vào phần chính của chủ đề luôn không dài dòng nữa nhé.
Ở đây mình sẻ hướng dẫn các bạn thực hiện trước rồi sau đó mình sẻ upload con script mà mình đã viết lên cho các bạn tham khảo nha, đầu tiên chúng ta sẻ kiểm tra và chắc chắn rằng ubuntu hiện tại không bị lỗi hay là chưa update bằng các câu lệnh sau
sudo apt-get install -f
sudo apt autoremove -y
sudo apt update -y
Sau đó chúng ta thực hiện quá trình cài đặt xrdp và các packages hỗ trợ cho nó
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils -y
sudo apt install xrdp -y
Tiếp đến ta thực hiện add ssl cho xrdp để tạo sự bảo mật an toàn
sudo adduser xrdp ssl-cert
Thực hiện add thêm 2 source link đến source list và update
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get install launchpad-getkeys -y
sudo launchpad-getkeys
sudo apt update -y
sudo apt autoremove -y
sudo apt-get install -f -y
sudo apt-get dist-upgrade -y
Ok như vậy là xong phần thiết lập để chung ta tiếp tục thực hiện cài đặt các gói bổ sung cũng như các driver cần thiết cho ubuntu vậy
sudo apt-get install xfonts-75dpi -y
sudo apt-get install xfonts-100dpi -y
sudo apt-get install xfonts-cyrillic -y
Sau khi đã cài đặt các gói driver cần thiết cho ubuntu xong ta lại thực hiện tiếp cài đặt xorgxrdp để máy Windows có thể remote đến máy Ubuntu một cách dễ dàng được, nhưng muốn cài đặt xorgxrdp thì trong ubuntu của các bạn phải có những gói sau nếu không muốn bị lỗi
sudo apt-get install xorg-video-abi-24 -y
sudo apt-get install xserver-xorg-core -y
sudo apt-get install xserver-xorg-core-hwe-18.04 -y
sudo apt-get install xserver-xorg-input-all -y
sudo apt-get install xorgxrdp -y
Sau khi bạn thực hiện cài đặt các gói trên bàn phím hoặc chuột của bạn có thể đang bị vấn đề đó chính là không thể sử dụng được dù đen vẫn còn đang sáng, chúng ta thực hiện chạy tiếp lệnh cài driver sau để có lại chuột và bàn phím nhé
  • Ubuntu 18.04:
sudo apt-get install xserver-xorg-input-all-hwe-18.04 -y
  • Ubuntu 16.04:
sudo apt-get install xserver-xorg-input-all-hwe-16.04 -y
Các bạn chú ý rằng nếu như các bạn đã cài đặt 2 gói packages kia nhưng mà vẫn không sử dụng được chuột hoặc bàn phím thì nên sử dụng câu lệnh sau để chạy nhé
sudo apt-get install xserver-xorg-input-all -y
Vấn đề đặt ra nằm ở chỗ là khi bạn chạy câu lệnh cài xserver-xorg-input-all thì đồng thời nó cũng sẻ xóa luôn thằng xorgxrdp vì vậy mình đã dùng cách trên hay còn gọi là 1 cú trick để đánh lừa được hệ thống ubuntu, mình đã cài đặt thằng xserver-xorg-input-all trước sau đó cài tiếp thằng xorgxrdp và khi đã cài xorgxrdp bị mất chuột và bàn phím mình lại cài một driver chuột và bàn phím khác vào để thay thế hoặc các bạn sẻ bị ngược lại nghĩa là khi các bạn cài đặt thằng xserver-xorg-input-all-hwe-18.04 nó cũng sẻ xóa xorgxrdp vì bậy mình lại cài tiếp thằng xorgxrdp vào rồi chạy tiếp câu lệnh cài driver khác là thằng xserver-xorg-input-all để thay thế, nó hơi nhức não chỗ này, các bạn cứ thay đổi qua lại giữa 2 driver đến khi check có thằng xorgxrdp mà chuột và bàn phím của bạn hoạt động ổn định nghĩa là thành công hehe
Sau khi đã cài đặt xong bạn đã có thể remote đến xrdp được rồi đấy, nhưng mình sẻ hướng dẫn các bạn thêm một số bước khác đó chính là fix một số lỗi khi đăng nhập vào tài khoản nó hay yêu cầu bảng yes hoặc no vớ vẫn haha
sudo vi /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla
Chèn các thông tin sau vào file đó và save lại
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes

[Allow Package Management all Users]
Identity=unix-user:*
Action=org.debian.apt.*;io.snapcraft.*;org.freedesktop.packagekit.*;com.ubuntu.update-notifier.*
ResultAny=no
ResultInactive=no
ResultActive=yes
Sau đó để có thể quản lý port hoặc các policy chặn user có thể copy file hay gì đó thì các bạn có thể chuyển đổi những mục sau thành false hết nhé
sudo vi /etc/xrdp/xrdp.ini
rdpdr=false
rdpsnd=false
drdynvc=false
cliprdr=false
rail=false
xrdpvr=false
tcutils=false
port=yourport
Tìm những dòng trên và thay đổi lại, để user có thể truy cập nhiều login thì ta phải edit tiếp ở mục sau, bởi vì khi bạn không chỉnh sửa thì trên ubuntu của bạn chỉ có thể Remote 1 user thôi, giống như Multi Remote của Windows vậy đấy
sudo vi /etc/X11/Xwrapper.config
Thay đổi phần allowed_users=console thành allowed_users=anybody như vậy là xong và thực hiện save nó lại, sau đó khởi động lại service của xrdp và restart ubuntu và kiểm tra kết quả nhé
sudo systemctl restart xrdp
Còn đây là script của bản thân mình code cho công ty các bạn có thể xem và tham khảo nó
#!/bin/bash
##echo "enter your package name"
##read name
##dpkg -s $name &> /dev/null
sudo -s
sudo apt autoremove -y
sudo apt-get install -f
sudo apt autoremove -y
sudo apt-get install -f 
dpkg -s xorgxrdp &> /dev/null
        if [ $? -ne 0 ]
                then
                        echo "not installed"
						##-----------------------Install XRD-----------------------------------
						sudo apt update -y
						sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils -y
						sudo apt install xrdp -y
						##-----------------------Add SSL-CERT for XRDP-------------------------
						sudo adduser xrdp ssl-cert
						##-----------------------Fix Colord User-------------------------------
						echo "[Allow Colord all Users]
						Identity=unix-user:*
						Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
						ResultAny=no
						ResultInactive=no
						ResultActive=yes

						[Allow Package Management all Users]
						Identity=unix-user:*
						Action=org.debian.apt.*;io.snapcraft.*;org.freedesktop.packagekit.*;com.ubuntu.update-notifier.*
						ResultAny=no
						ResultInactive=no
						ResultActive=yes" >> /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla
						sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 957D2708A03A4626
						sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 531EE72F4C9D234C
						add-apt-repository -y 'deb http://repo.nexus.com/repository/apt-ppa-launchpad-net/nilarimogard/webupd8/ubuntu bionic main'
						add-apt-repository -y 'deb http://repo.nexus.com/repository/apt-ppa-launchpad-net/oibaf/graphics-drivers/ubuntu bionic main'
						sudo apt-get install launchpad-getkeys -y
						sudo launchpad-getkeys
						sudo apt update -y
						sudo apt autoremove -y
						sudo apt-get install -f -y
						sudo apt-get dist-upgrade -y
						##-----------------------Policy Company-------------------------------------
						sed -i 's/rdpdr=true/rdpdr=false/' /etc/xrdp/xrdp.ini
						sed -i 's/rdpsnd=true/rdpsnd=false/' /etc/xrdp/xrdp.ini
						sed -i 's/drdynvc=true/drdynvc=false/' /etc/xrdp/xrdp.ini
						sed -i 's/cliprdr=true/cliprdr=false/' /etc/xrdp/xrdp.ini
						sed -i 's/rail=true/rail=false/' /etc/xrdp/xrdp.ini
						sed -i 's/xrdpvr=true/xrdpvr=false/' /etc/xrdp/xrdp.ini
						sed -i 's/tcutils=true/tcutils=false/' /etc/xrdp/xrdp.ini
						sed -i 's/port=3389/port=yourport/' /etc/xrdp/xrdp.ini
						sed -i 's/allowed_users=console/allowed_users=anybody/' /etc/X11/Xwrapper.config
						sudo chmod go-w /etc/xrdp/xrdp.ini
						##------------------------Block Edit With Sudo------------------------------
						if  [[ -e /usr/bin/chattr ]]; then
							sudo /usr/bin/chattr +i /etc/xrdp/xrdp.ini
						else
							sudo /backup/.chr +i /etc/xrdp/xrdp.ini
						fi
						sudo ufw allow yourport
						##------------------------Fix Monitor Show----------------------------------
						sudo apt-get install xfonts-75dpi -y
						sudo apt-get install xfonts-100dpi -y
						sudo apt-get install xfonts-cyrillic -y
						sudo chmod g+r /dev/tty0
						sudo chmod g+r /dev/dri/card0 
						sudo apt-get install xorg-video-abi-24 -y
						sudo apt-get install xserver-xorg-core -y
						sudo apt-get install xserver-xorg-core-hwe-18.04 -y
						sudo apt-get install xserver-xorg-input-all -y
						sudo apt-get install xorgxrdp -y
						if [ $(lsb_release -cs) = "bionic" ]; then
							sudo apt-get install xserver-xorg-input-all-hwe-18.04 -y
						else
							sudo apt-get install xserver-xorg-input-all-hwe-16.04 -y
						fi
						sudo apt-get autoremove -y
						sudo apt-get install -f
						##-------------------------Open VNC Sharing---------------------------------
						sudo apt-get install dconf-editor -y
						dbus-launch gsettings set org.gnome.Vino prompt-enabled false
						dbus-launch gsettings set org.gnome.Vino authentication-methods "['vnc']"
						dbus-launch gsettings set org.gnome.Vino require-encryption false
						dbus-launch gsettings set org.gnome.Vino vnc-password $(echo -n '1234@abcd'|base64)
						dbus-launch gsettings set org.gnome.settings-daemon.plugins.sharing active true
						eths=$(nmcli -t -f uuid,type c s --active | grep 802 | awk -F  ":" '{ print "'\''" $1 "'\''" }' | paste -s -d, -)
						dbus-launch gsettings set org.gnome.settings-daemon.plugins.sharing.service:/org/gnome/settings-daemon/plugins/sharing/vino-server/ enabled-connections "[ $eths ]"
						##--------------------------End VNC Sharing----------------------------------
						echo "history -c && history -w" >> ~/.bash_logout
						echo "history -c && history -w" >> /etc/profile.d/script.sh
						sudo chmod +x /etc/profile.d/script.sh
						sudo systemctl restart xrdp
						sudo service gdm3 restart
						rm -- "$0"
						reboot
                else
                        echo "installed"
						rm -- "$0"
        fi
Cuối cùng đã xong rồi đấy chúc các bạn thành công, nếu có thắc mắc gì đừng ngại để lại comment bên dưới mình sẻ giải đáp giúp cho nhé
Nguồn: itblognote.com

Post a Comment

0 Comments