Ubuntu + XRDP + x11RDPターミナルサーバー、サウンドサポート、インターネットサーフィン用-ステップバイステップガイド

私は、インストールのために完成した.debパッケージへのリンクがある記事の最後に、すぐに最も短気な人を送ります。



そして、他の皆のために...



それは何で、何のためですか



まず、このソリューションは、小規模企業の従業員がインターネットに安全にアクセスできるようにするための非常に低予算のオプションとして使用できます。



歴史ナンバーワン。 (実際のイベントに基づく)



報告期間の終わりに、すべてが「耳」になっている会計士が、

電子メールには「税務警察」からの恐ろしい手紙が添付されており、彼女の会社はひどいチェックを受けているので、手紙に添付されているファイルにある公式文書にすぐに慣れる必要があります。

パニックで、会計士は添付ファイルを開こうとします...内部LANに現在接続されているすべての会社のコンピューターは、会社の仕事を1日以上麻痺させる暗号化ウイルスの一部を受け取ります。



端末を介したアクセスの実装の場合には! コンピューターはインターネットへの直接アクセスをブロックしました。 従業員がサーフィンネットワーク(メール、スカイプ、メッセンジャー)を必要とした場合、デスクトップ上のアイコンをクリックするだけで、何でもできる代替デスクトップに移動します。 感染した場合、メールを表示するとき、またはその他の方法で、ウイルスは企業ネットワークや他のコンピューターにアクセスできない単独のローカルマシン(ターミナルセッション)に入ります。 また、このセッションでは、重要なドキュメントと会計データベースは保存されません。 したがって、セッション内で情報が完全に削除されたとしても、損害はまったくありません。 また、メッセンジャーからのメッセージが表示された場合やスカイプコールが届いた場合は、ターミナルセッションを単純にトレイに最小化し、必要に応じて開くことができます。



履歴番号2。 (実際のイベントに基づく)



従業員の1人が、ハッキングされたライセンスプログラムをフラッシュドライブに持ち込んでコンピューターにインストールしたとします。この場合、ADドメイン構造は考慮しません。 このプログラムをインストールした後、彼女はインターネットを介して開発者に、そのようなIPを使用してハッキングされたバージョンをコンピューターに配置し、それを静かに使用することを簡単に訴えることができます。

次は技術の問題です。 さらに、対決は非常に深刻です。

サーバーターミナルオプションを実装する場合、ローカルコンピューターは単にネットワークにアクセスできず、スパイプログラムは家から汚れたリネンを取り除くことができないため、このオプションも機能しません。



まえがき



このガイドは、問題の本質を理解したい初心者のシステム管理者を主な対象としています。 したがって、テキストの上級者にとっては、多くの余分なものが存在する可能性があります。 このマニュアルでは、安全なインターネットサーフィンに使用されるLinuxターミナルサーバーの設定プロセスを可能な限り詳細に説明し、既知の問題の解決策を説明します。



すべてを成功させるために、まず、この説明と同じソフトウェアバージョンを使用することを強くお勧めします。 次に、得られた経験に基づいて、このプロジェクトを自分に都合の良いハードウェアとソフトウェアに実装できます。



組み立てとテストは、virtualboxから仮想マシンで実行されました。 純鉄を使用する場合、ドライバーの設定に関する問題も発生する場合があります。 ソフトウェアからは、Ubuntu 16.04 LTSサーバー/ x11RDP 7.6 / xRPD 0.9.2が使用されました。 他のバージョンでは、このソリューションはテストもテストもされていません。



XRDP



XRDPは、外部リクエストをRDPポート3389でリッスンする特別なプロキシサーバーです。 接続を受け入れ、設定に応じて、内部OSポートにリダイレクトします。



インストールのために、必要なパッケージをコンパイルします。



sudo apt install -y git autoconf libtool pkg-config libxrandr-dev nasm libssl-dev libpam0g-dev \ libxfixes-dev libx11-dev libxfixes-dev libssl-dev libxrandr-dev libjpeg-dev flex \ bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 xutils libpulse-dev make libfuse-dev
      
      





デフォルトでは、UBUNTU 16.04のリポジトリにxRDP v0.6.0パッケージがあり、サウンド伝送の実装のソリューションが見つかりませんでした。 したがって、ソースからxRDPの新しいバージョンを収集します。



多くのサイトでは、gitを使用して新しいバージョンを複製することをお勧めします。

git clone git://github.com/FreeRDP/xrdp.git


ただし、この場合、テスト時に、v0.9.2とは大幅に異なる完全に新しいバージョンに遭遇し、何らかの問題が発生する可能性があるというリスクがあります。 したがって、開発者サイトから固定パッケージXRDP v0.9.2をダウンロードして解凍します。



 cd~ wget https://github.com/neutrinolabs/xrdp/archive/v0.9.2.zip unzip v0.9.2 mv xrdp-0.9.2 xrdp
      
      





XRPDを使用してディレクトリに移動し、コンパイルを開始しましょう。



 cd ~/xrdp ./bootstrap
      
      





この段階で、完成したアセンブリにサウンドサポートモジュールを追加する必要があることをコンパイラに伝える必要があります。 これについては、ディスクのXRDPソースを含むディレクトリにあるファイルで詳細を確認できます。



猫〜/ xrdp / sesman / chansrv / pulse / pulse-notes.ubuntu.txt


サウンド転送に必要なライブラリをインストールします。



 sudo apt-get install -y libjson0-dev libsndfile1-dev
      
      





パッケージの構成、アセンブル、およびインストール時に、サウンド--enable-load_pulse_modulesを有効にするキーを追加します。



 ./configure --enable-load_pulse_modules --enable-jpeg --enable-fuse --disable-ipv6 make sudo make install
      
      





次に、セキュリティキーをコピーします。 このファイルには、リモートクライアントの認証に使用されるRSAキーペアが含まれています。 公開鍵は自己署名されています。 これが行われないと、接続時にRDPプロトコルエラーが発生します。



 sudo mkdir /usr/share/doc/xrdp sudo cp /etc/xrdp/rsakeys.ini /usr/share/doc/xrdp/rsakeys.ini
      
      





自動ロードするXRDPを追加します。 起動には、systemdを使用します。



 sudo sed -i.bak 's/EnvironmentFile/#EnvironmentFile/g' /lib/systemd/system/xrdp.service sudo sed -i.bak 's/sbin\/xrdp/local\/sbin\/xrdp/g' /lib/systemd/system/xrdp.service sudo sed -i.bak 's/EnvironmentFile/#EnvironmentFile/g' /lib/systemd/system/xrdp-sesman.service sudo sed -i.bak 's/sbin\/xrdp/local\/sbin\/xrdp/g' /lib/systemd/system/xrdp-sesman.service sudo systemctl daemon-reload sudo systemctl enable xrdp.service
      
      





再起動します。



 sudo reboot
      
      





インストールが成功したかどうかを確認します。



 xrdp -v
      
      





$ xrdp:リモートデスクトッププロトコルサーバー。

著作権©Jay Sorg 2004-2014

詳細については、 www.xrdp.orgを参照してください。

バージョン0.9.2


すべてが正しく完了したら、別のコンピューターから任意のRDPクライアントを使用してサーバーに接続することができます。 または、同じテストマシンにfreerdpクライアントをインストールします。



 sudo apt install -y freerdp-x11
      
      





そして、システム内でローカルに接続します。



 xfreerdp /v:127.0.0.1
      
      





XRDPプロキシサーバーが制御を転送する必要があるソフトウェアのサーバー部分をまだインストールしていないため、起動時のスクリーンセーバーを超えることはありません。



x11RDP



サーバー部分として、異なるデータ転送プロトコルをサポートするサーバーモジュールを使用できます。 このバージョンでは、x11RDP v7.6を使用します。



小さな余談



問題は、以前にインストールされたXRDP 0.9.2プロキシは、変更なしでは以前のバージョンのx11RDP v7.1サーバーに接続を転送できないため、キーボードレイアウトの切り替え時に既知の問題がないことです。新しいセッション、および古いセッションに再接続するとき。



また、x11RDP v7.1サーバーが動作するXRDP 0.6.0プロキシの古いバージョンを使用する場合、XRDP 0.6.0は--enable-load_pulse_modulesキーをサポートしないため、サウンドを転送できません。



x11RDP v 7.6をインストールするには、ディレクトリに戻りましょう。



 cd ~/xrdp/xorg/X11R7.6
      
      





パッケージをインストールしてビルドするディレクトリを作成します。



 sudo mkdir /opt/X11rdp time sudo ./buildx.sh /opt/X11rdp
      
      





組み立ては15〜30分間長時間行われます timeコマンドを使用すると、プロセスの最後にどのくらいの時間が費やされたかを確認できます。



simliksを作成します。



 sudo ln -s /opt/X11rdp/bin/X11rdp /usr/local/bin/X11rdp sudo ln -s /usr/share/fonts/X11 /opt/X11rdp/lib/X11/fonts
      
      





これで、RDPプロキシと、プロキシが制御を転送するRDPサーバーの両方ができました。 ただし、RDPサーバーが表示できるグラフィカルアプリケーションはありません。



さらにテストするために、すべてのインストールが成功したことを確認するために、xtermグラフィカルターミナルエミュレータをインストールします。



 sudo apt -y install xterm
      
      





そして、サイドから、または以前にfreerdpをインストールした場合はローカルからサーバーに接続してみてください。



 xfreerdp /v:127.0.0.1
      
      





次に、メニューからx11RDPを選択して、コントロールの転送先のプロキシを指定し、ubuntuサーバーのログインとパスワードを入力する必要があります。



すべてが正しければ、画面に端末xtermのグラフィカルインターフェイスが表示されます。



言語コンソールと言語切り替えモードの設定



ubuntuのほぼすべての基本的なキーボード設定は、setxkbmapパッケージを使用して行われます。



まず、ターミナルセッションを閉じて、ubuntuサーバーのコンソールに戻ります。

キーボードで何が起こっているのか見てみましょう。



 setxkbmap -print –verbose
      
      





$キーコード:xfree86 +エイリアス(qwerty)

タイプ:完全

compat:完全

シンボル:pc + us + ru:2 +グループ(alt_shift_toggle)

ジオメトリ:pc(pc104)

xkb_keymap {

xkb_keycodes {include "xfree86 + aliases(qwerty)"};

xkb_types {include "complete"};

xkb_compat {include "complete"};

xkb_symbols {include "pc + us + ru:2 + group(alt_shift_toggle)"};

xkb_geometry {include "pc(pc104)"};

};



次に、ターミナルサーバーに接続し、xtermターミナルで同じコマンドを実行します。



 setxkbmap -print –verbose
      
      





$次のコンポーネントを使用してキーマップを構築しようとしています。

キーコード:xfree86 +エイリアス(qwerty)

タイプ:完全

compat:完全

シンボル:pc + us + inet(pc105)

ジオメトリ:pc(pc105)

xkb_keymap {

xkb_keycodes {include "xfree86 + aliases(qwerty)"};

xkb_types {include "complete"};

xkb_compat {include "complete"};

xkb_symbols {include "pc + us + inet(pc105)"};

xkb_geometry {include "pc(pc105)"};

};


測定値の不一致に注意してください。 私たちのubuntuサーバーではすべて問題ありません:

シンボル:pc + us + ru:2 +グループ(alt_shift_toggle)


ロシア語のコンソールがあり、alt_shift言語切り替えキーが定義されています。 ターミナルサーバーでは、反対に:



シンボル:pc + us + inet(pc105)


英語のみがあり、言語切り替えキーは定義されていません。



別の奇妙な点があります。 ローカルでは、ubuntuサーバーでは、キーボードモデルはpc104として定義されています。



ジオメトリ:pc(pc104)


そして、ターミナルサーバーでpc105として:



ジオメトリ:pc(pc105)


仮想マシンではなく、純粋なハードウェアでテストすることにした場合

これは、使用する機器の種類によって異なる場合があります。



ubuntuサーバーに戻って、システム構成ファイルにインストールされているものを確認しましょう

デフォルトで



 cat /etc/default/keyboard
      
      





$#キーボード設定ファイル

#キーボード(5)のマニュアルページを参照してください。

XKBMODEL = "pc105"

XKBLAYOUT = "us、ru"

XKBVARIANT = "、"

XKBOPTIONS = "grp:alt_shift_toggle、grp_led:scroll"

バックスペース=「推測」



hwinfo(システムのハードウェアに関する情報のコレクター)をインストールし、ハードウェア情報を確認します。



 sudo apt install -y hwinfo sudo hwinfo | grep XkbModel
      
      





$ XkbModel:pc104


その結果、キーボードのハードウェアモデル(この例ではpc104として定義されています)は、システム構成ファイル内のpc105デバイスを参照します。 Pc104はローカルサーバーで定義され、pc105はターミナルサーバーで定義されます。 この不一致により、特にいくつかの不具合が発生します。 多くの人は、ターミナルサーバーでロケールを設定することに対処できないと書いています。 一部の人にとって、Russificationは、フォールオフセッションに再接続すると消えます。



任意のテキストエディター(この例ではnanoエディターを使用)でシステム構成ファイルを開き、hwinfoから受け取ったデータに従ってデフォルトのキーボードタイプを修正します。



 sudo nano /etc/default/keyboard
      
      





XKBMODEL = "pc104"



XRDP 0.9.2キーボード設定ファイルはファイルにあります

/etc/xrdp/xrdp_keyboard.ini。 プロキシは、このデータを接続しているクライアントのデータとしてxRDPサーバーに送信します。 それを開き、ロシア語ロケールサポートブロックをこのファイルの最後に追加します。



ソース



以前にキーボードモデルを正しいモデル= pc104に修正しました(pc105は元のバージョンにインストールされています)。



 sudo nano /etc/xrdp/xrdp_keyboard.ini
      
      





ファイルの最後に追加します。



[rdp_keyboard_ru]

keyboard_type = 4

keyboard_subtype = 1

モデル= pc104

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



再起動します。



ターミナルサーバーに接続しています。 キーボード設定の確認:



 setxkbmap -print -verbose
      
      





$次のコンポーネントを使用してキーマップを構築しようとしています。

キーコード:xfree86 +エイリアス(qwerty)

タイプ:完全

compat:完全

シンボル:pc + us + ru:2 +グループ(alt_shift_toggle)

ジオメトリ:pc(pc104)

xkb_keymap {

xkb_keycodes {include "xfree86 + aliases(qwerty)"};

xkb_types {include "complete"};

xkb_compat {include "complete"};

xkb_symbols {include "pc + us + ru:2 + group(alt_shift_toggle)"};

xkb_geometry {include "pc(pc104)"};



すべてが正常であり、キーボードが正しく検出されます。



ジオメトリ:pc(pc104)



ロシア語はalt_shiftによる切り替えで登場しました。 バックグラウンドで動作するようにセッションを閉じてから再度接続し、以前に開いたセッションに再接続したときにロケールが消えるという既知の問題がないことを確認します。





10.10よりも古いubuntuでは、デフォルトでpulseaudioサーバーが音声を出力します。 デスクトップディストリビューションでは、すでにインストールされています。 サーバーのものはありません。 したがって、インストールしてください。



 sudo apt install -y pulseaudio
      
      





システムにデフォルトでインストールされるパッケージのバージョン番号を見て書き留めましょう。



 pulseaudio –version
      
      





$ pulseaudio 8.0


次に、サウンドのリダイレクト用のライブラリを構築する必要があります。 これについては、XRDPを構築する際に既に見たXRDPソースファイルで詳しく説明されています。

猫〜/ xrdp / sesman / chansrv / pulse / pulse-notes.ubuntu.txt


開始するには、pulseaudioソースをダウンロードします。 これを行うには2つの方法があります。



1.開発者サイト( freedesktop.org/software/pulseaudio/releases/ )から一般バージョンをダウンロードします。以前に決定した正確なバージョンをダウンロードする必要があります。 私たちの場合、pulseaudio 8.0



2.より正確に-deb-srcシステムリポジトリを接続し、このUbuntuディストリビューションの作成者が使用するソースを取得します。



デフォルトでは、ソースリンクはubuntuで無効になっています。 接続するには、リポジトリのリストのファイルを編集します。



 sudo nano /etc/apt/sources.list
      
      





すべてのdeb-srcリポジトリリストの前にある#アイコンを削除する必要があります。



それは:

deb ru.archive.ubuntu.com/ubuntu xenial universe

#deb-src ru.archive.ubuntu.com/ubuntu xenial universe

deb ru.archive.ubuntu.com/ubuntu xenial-updatesユニバース

#deb-src ru.archive.ubuntu.com/ubuntu xenial-updatesユニバース



次のようになりました:

deb ru.archive.ubuntu.com/ubuntu xenial universe

deb-src en.archive.ubuntu.com/ubuntu xenial universe

deb ru.archive.ubuntu.com/ubuntu xenial-updatesユニバース

deb-src ru.archive.ubuntu.com/ubuntu xenial-updatesユニバース


そうでない場合、エラーが発生します。

$ E:パッケージソースURIを入力してsources.listに入力する必要があります


ソースをダウンロード:



 cd ~ sudo apt update apt-get source pulseaudio sudo apt-get build-dep pulseaudio cd ~/pulse* time dpkg-buildpackage -rfakeroot -uc -b
      
      





XRDPインストールディレクトリに移動します。



 cd ~/xrdp/sesman/chansrv/pulse/
      
      





makeファイルを修正します。



 sudo nano Makefile
      
      





行内:



PULSE_DIR = /home/lk/pulseaudio-1.1


pulseaudioライブラリを使用してディレクトリへのパスを変更し、さらに、この場合〜/ pulseaudio *のような構造は機能しないことに注意してください。 ディレクトリアドレスを正確に登録する必要があります。

PULSE_DIR = / home / admin /pulseaudio-8.0


adminをシステムのユーザー名に置き換えます。 修正されたファイルを保存して、次を実行します。



 sudo make
      
      





すべてが正しく行われると、2つの新しいライブラリがディレクトリにコンパイルされます

module-xrdp-sink.soおよびmodule-xrdp-source.so



pulseaudioサーバーライブラリを使用して作業ディレクトリにコピーするだけです。



 sudo chmod 644 *.so sudo cp *.so /usr/lib/pulse*/modules
      
      





再起動後、サウンドが有効になります。



便利なグラフィカルシェルをインストールするために残ります。 ターミナルサーバーの場合、リソースを集中的に使用しないことが望ましいです。



Xfce

要素の最小セット:



 sudo apt-get install xfce4
      
      





要素の完全なセット:



 sudo apt-get install xubuntu-desktop
      
      





Lxde

要素の最小セット:



 sudo apt-get install lxde-core
      
      





要素の完全なセット:



 sudo apt-get install lxde
      
      





インストールされているグラフィカルシェルのバージョンによっては、.xsessionファイルを構成して実行する必要がある場合があります。



LXDEの場合



 echo lxsession > ~/.xsession
      
      







XFCEの場合



 echo xfce4-session > ~/.xsession
      
      





インストール可能なパッケージ



github.com/suminona/xrdp-ru-audio

以下が含まれます:



XRDP v0.9.2 +コンパイルされたライブラリpulseaudio 8.0 + Russificationをサポートするためにkeyboard.iniファイルを修正。 このリンクでx11RDP v7.6バックエンドを収集したくない場合は、xorg v.0.2.0バックエンドの既製のdebパッケージをダウンロードできます。 非常に怠zyなインストール手順



 sudo apt-get -y install pulseaudio sudo dpkg -i xrdp-v0.9.2-rus-audio.deb sudo dpkg -i xorgxrdp-0.2.0.deb sudo apt install -y xfce4 chromium-browser sudo reboot
      
      





パッケージが実際に膝の上に集められ、作業がテストされただけであることを繰り返します

ubuntu 16.04サーバー上。 他のシステムでの.debパケットデータのパフォーマンスは保証されません。



All Articles