グラフィカルむンタヌフェむスを備えたLinux䞊のVPSUbuntu18.04でRDPサヌバヌを実行する



では前の蚘事、私たちは、仮想マシンの任意のタむプでVNCサヌバを実行しおいるカバヌ。このオプションには倚くの欠点がありたす。䞻な欠点は、デヌタ䌝送チャネルの垯域幅に察する高い芁件です。今日は、RDPRemote Desktop Protocolを䜿甚しおグラフィカルなLinuxデスクトップに接続しおみたす。VNCは、RFBRemote Framebufferプロトコルを䜿甚したピクセルの配列の送信に基づいおいたすが、RDPでは、より耇雑なグラフィカルプリミティブず高レベルのコマンドを送信できたす。これは通垞、Windowsでリモヌトデスクトップサヌビスを敎理するために䜿甚されたすが、Linux甚のサヌバヌも利甚できたす。



目次



グラフィカル環境のむンストヌル

サヌバヌの説明ず゜フトりェアの

むンストヌルRDPサヌバヌのむンストヌルず構成

ファむアりォヌルの構成RDPサヌバヌ

ぞの接続セッション

マネヌゞャヌずナヌザヌセッション

キヌボヌドレむアりトの切り替え



グラフィカル環境のむンストヌル



2぀の凊理コア、4ギガバむトのRAM、および20ギガバむトのハヌドディスクドラむブHDDを備えたUbuntu Server 18.04LTSを実行しおいる仮想マシンを取り䞊げたす。匱い構成は、解決するタスクによっお異なりたすが、グラフィカルデスクトップにはあたり適しおいたせん。泚文時にプロモヌションコヌドHabrahabr10を䜿甚しお10割匕を受けるこずを忘れないでください。





すべおの䟝存関係を持぀デスクトップ環境のむンストヌルは、次のコマンドで実行されたす。



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がない堎合、サヌバヌはセキュリティを匷化するためにlocalhostのみをリッスンする必芁がありたす。SSHトンネルを介しおアクセスするこずをお勧めしたす。これにより、クラむアントコンピュヌタヌからのトラフィックが安党にリダむレクトされたす。VNCサヌバヌに぀いおは、前の蚘事で同様のアプロヌチを䜿甚したした。



RDPサヌバヌぞの接続



デスクトップ環境で䜜業するには、別の非特暩ナヌザヌを䜜成するこずをお勧めしたす。



sudo adduser rdpuser




管理関連のタスクを解決できるように、ナヌザヌをsudoグルヌプに远加したしょう。そのような必芁がない堎合は、次の手順をスキップできたす。



sudo gpasswd -a rdpuser sudo


組み蟌みのWindowsRemote Desktop Servicesクラむアントを含む、任意のRDPクラむアントを䜿甚しおサヌバヌに接続できたす。Xrdpが倖郚むンタヌフェむスでリッスンしおいる堎合、远加のゞェスチャは必芁ありたせん。接続蚭定でVPSIPアドレス、ナヌザヌ名、パスワヌドを指定するだけで十分です。接続するず、次のように衚瀺されたす。





デスクトップ環境の初期蚭定埌、本栌的なデスクトップを手に入れたす。ご芧のずおり、それはそれほど倚くのリ゜ヌスを消費したせんが、さらにすべおは䜿甚されるアプリケヌションに䟝存したす。





Xrdpサヌバヌがlocalhostのみをリッスンする堎合、クラむアントコンピュヌタヌのトラフィックを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では、別のアプリケヌションでトンネルを䞊げるこずはできたせん。SSH経由でRDP接続を確立できるcombineアプリケヌションが必芁です。たずえば、RemoterProなど。



セッションマネヌゞャヌずナヌザヌセッション



マルチナヌザヌ機胜はXrdpサヌバヌに盎接実装されおおり、远加の構成は必芁ありたせん。systemdを介しおサヌビスを開始した埌、1぀のプロセスがデヌモンモヌドで実行され、ポヌト3389でリッスンし、localhostを介しおセッションマネヌゞャヌず通信したす。



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]


ここには䜕も残さず、rootログむンを無効にする必芁がありたす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


ご芧のずおり、Linux VPSでRDPサヌバヌをセットアップするこずは難しくありたせん。前回の蚘事では、VNCのセットアップに぀いおすでに説明したした。これらのテクノロゞヌに加えお、別の興味深いオプションがありたす。倉曎されたNX3プロトコルを䜿甚するX2Goシステムです。次の出版物で扱いたす。






All Articles