リモートアクセスの可能性を広げるrdesktop

コスト削減のため、すぐにでも社内インフラをGNU/Linuxに移行したいと思っている企業は多いが、Windows業務アプリケーションを置き換えられないことがそれを妨げている。rdesktopは、Windowsプラットフォーム上のリモートデスクトップにGNU/Linuxクライアントを接続するオープンソース(GPL)プログラムである。

rdesktopを導入することで、業務アプリケーションをターミナルサーバに(一度に1人がアプリケーションを使えるだけで十分なら1台のWindows XP PCに)移動し、業務アプリケーション以外のコンピューティングを、安定性とセキュリティに優れたGNU/Linuxワークステーションで行うことができる。

rdesktopは、Matt Chapmanのリバース・エンジニアリング・プロジェクトとしてスタートした。その後、改良を重ねて本格的なアプリケーションにまで成長し、Windows用のターミナルサービス・クライアントと同等の機能を提供すると同時に、ほとんどすべてのUnix系オペレーティングシステムで実行できるという、大きな長所を持つに至った。多年にわたってバージョンアップが進められ、最新のバージョン1.3.0では、MicrosoftのRDP 5プロトコルがサポートされた。その結果、Windowsデスクトップの24ビット・フルカラー表示、ターミナルサーバを相手とするテキストのコピーと貼り付け、ローカルPCにおけるサーバのサウンドファイルの再生などの数多くの機能をrdesktopで利用できるようになった。

Windowsと*nixが混在するコンピューティング環境で使用できる統合製品の中でも、rdesktopの占める位置は独特である。VMwareWin4Lin、またはWineと似たような機能があると同時に、本物のWindowsマシンに、あたかもそこで動作しているかのようにGNU/Linuxマシンから接続できるという大きなメリットがある。仮想環境では実際の環境のようには動かない部分も一部にある。

rdesktopでは、Microsoft RDPプロトコルのバージョン4と5の両方がサポートされている。RDPプロトコルは、Windowsデスクトップを構成するすべての要素([スタート]ボタンなど)を表現し、それらと情報をやり取りすることをネットワーク経由で行うプロトコルである。この点では、X11アプリケーションをネットワーク経由で実行する機能とそう変わらない。

これまでにかなりの期間、rdesktopを数多くのWindowsサーバ製品―NT4 Terminal Server Edition、Windows 2000(Administrative Terminal ServicesモードとApplication Serverモード)、Windows 2003(Administrative Terminal ServicesモードとApplication Serverモード)、Windows XP Pro(Remote Desktop Assitanceを使用)―に接続して利用することができた。それにも増して印象的なのは、GNU/Linuxコンピュータだけでなく、Sun Solaris SunRayシン・クライアントターミナルからもこれらのWindowsサーバにアクセスできたことだ。

rdesktopバージョン1.3.0はご機嫌だ。サーバに接続すると、何かの不可抗力でもない限り、安定した接続が成立する。以前のバージョンでは、Windowsで普段はしないことをすると接続が不安定になることもたびたびだった。56Kダイヤルアップ回線を使ってrdesktopを24ビットカラーで実行しているが、接続は実に安定している。この品質の回線ではサウンドの再生はできないが、接続の安定性は非の打ちどころがない。RDP 5を使用すると画面情報をより速く転送できるので、RDP 5対応サーバ(Windows 2003など)にダイヤルアップ回線を通して8ビットカラーモードで接続すると、動作は俊敏そのものとなる。実際、同じ回線でX11アプリケーションを使う場合よりもずっと速い(LBXプロキシングは使用するがNoMachineのようなエクステンションは未使用の場合)。

ただし、良いことばかりではなく、サーバにうまく接続できない場合にその原因を突き止めることは、Windowsの同等機能を使っているときよりも難しい。rdesktopには、サーバからユーザに返されるWindowsエラーメッセージを伝達する機能がない。漠然とした「Connection Reset by Peer」ネットワークエラーが返ってくるのが関の山だ。Windowsターミナル・サーバ・クライアントを使っている場合は、たとえば「ライセンスの期限が切れているのでWindowsサーバが接続を拒否した」といったエラー状況を知ることができる。最悪のケースを挙げると、ターミナル・サーバの接続数が上限に達した場合、rdesktopのウィンドウは表示された瞬間に消失し、エラー診断などはまったく出力されない。そのため、考えられるありとあらゆる原因を当たるために、Windowsサーバのイベントログをチェックしなければならない。これは容易な作業ではない。

多彩な機能

rdesktopでは、以下の機能がサポートされている(たくさんあるので途中で息継ぎを忘れないこと):

  • 8/16/24ビットカラー接続
  • サウンド・リダイレクション(サーバのサウンドデータをローカルPCで再生する)
  • クリップボード・リダイレクション(リモートサーバとの間でテキストのコピーと貼り付けを行う)
  • RDP 4およびRDP 5のサポート(RDP 4では、RDP 5でサポートされている高度な機能の一部は未サポート)
  • Windowsサーバの「本物の」コンソール画面への接続
  • 通常のエクスプローラ・シェルを使わずに、起動するプログラムを指定
  • ユーザ名/パスワード/ドメイン情報を引き渡してログインを自動実行
  • 多種類(多言語)のキーボード・レイアウトのサポート
  • フルスクリーンモードを実現する複数の方法
  • リモートデスクトップをカスタムの画面解像度(932×744など)で実行
  • 必要に応じて有効または無効にできる各種のパフォーマンス向上オプション

これらの機能はどれも実用レベルにあり、一部の威力は目覚しい。24ビットカラーのWindowsデスクトップは、期待どおりのすばらしさである。ログインすると、デスクトップが読み込まれ、Windowsの起動音が再生される(不愉快になる人もいるだろうが)。システム管理者は、リモートサーバの「本物の」コンソールに接続するオプションに特に注意する必要がある。つまり、pcAnywhere、VNC、DameWareなどを使う必要はもはやないと言っていい。

フルスクリーンモードを使ったときの満足度は格別だ。rdesktopでは、フルスクリーンモードに切り替える方法は2つ。1つは、フルスクリーンウィンドウをローカルデスクトップに直接ダンプし、ローカルのウィンドウマネージャ・キーバインドをすべて無効にする方法だ。この方法を使うのが適切なのは、GNU/Linuxマシンをシェルとして使ってWindowsサーバに接続している場合だ。こうすると、Windows伝統のキー・ショートカットがサーバに引き渡される。フルスクリーンモードに切り替えるもう1つの方法として、-gオプションを使ってウィンドウサイズをXデスクトップスクリーンの解像度に一致させ、さらに-Kオプションと-Dオプションを指定するやり方がある。-Kオプションを指定すると、特殊キーの組み合わせがそれまでと同様にウィンドウマネージャに引き渡され、-Dオプションを指定すると、rdesktopデスクトップの「装飾」が解除される。これで、表示されるフルスクリーンウィンドウでは、ほとんどのキー・ショートカット(ウィンドウマネージャにとって何も意味しないコピー操作用のCtrl+Cなどのキー)がWindowsに渡され、一方でウィンドウマネージャのキーバインドが温存される。したがって、KDEやGNOMEでは、フルスクリーンウィンドウを1つの仮想デスクトップに配置し、通常のGNU/Linuxアプリケーションを他の仮想デスクトップに表示し、ホットキーを使ってこれらのデスクトップを簡単に切り替えることができる。私が普段使っているのは、この方法だ。

残念なことに、一部の機能にはまだ改善の余地がある。rdesktopのsourceforge.netプロジェクトページにも記載されているが、クリップボード・リダイレクタに接続しにくくなるというバグがある。同じセッションへの接続解除と接続を何度も繰り返すと、この現象が起きやすい。エラーメッセージが大量にコンソールに吐き出され、ローカルマシンのKDEの動作が極端に遅くなる。おもしろいことに、GNOMEの動作にはこの多量のエラーによる影響は見られない。ただし、必要な措置はどちらも同じで、ターミナルサーバをログアウトし、もう一度ログインするまでは、テキストのコピーと貼り付けを行えない。

気になる点がもう1つ、ログイン自動化機能にある。パスワードをコマンドラインオプションでrdesktopに渡すのだが、これでは誰かがps -efコマンドを実行すると、rdesktopの完全なコマンドラインがパスワードごと丸見えになってしまう。GNU/Linuxの自動ログイン機能はこれよりも巧妙に実装されていて、プロセスリストを表示してもパスワードの部分は「XXXXXX」としか表示されない。ただし、SunのSolaris 8と9では、パスワードはそのまま表示される。したがって、SunRayサーバのようなマルチユーザーシステムでは、ログイン自動化機能は明らかにセキュリティリスクとなる。どうやらLinuxカーネルにはSolarisプラットフォームにはない機能があって、そのおかげでLinuxがより適切に動作するらしい、としか言えない。

まとめ

rdesktopを試してわかったのは、Windowsをおおむね中心とする社内環境と業務アプリケーション(トラブルチケットシステムなど)にGNU/Linuxラップトップを統合する手段としては、驚くほど安定性、機能性、実用性に優れたツールだということだ。RDP 5をサポートしたrdesktopのバージョン1.3.0がリリースされたことで、小企業は社内インフラをGNU/Linuxに低コストで移行するために待ち望んでいたツールを手に入れた。基幹プログラムがGNU/Linuxで動作する、いやしない、と議論が戦わされた日々は過去のものとなった。疑う必要はないのだ!

Darryl Dixon──ニュージーランドの企業に勤務するベテランのUnix管理者。RHCE、MCSE、MCSAの取得者であり、勤務先ではかつてWindows NT管理者として働いていた。プログラムをPythonやCで書くこともあり、プラットフォーム混在環境で利用されている若干のオープンソースツールの作者であることを誇りとする。