第4章 VNCによるリモートアクセス

目次

4.1. 一時的VNCセッション
4.2. 永続的VNCセッション

概要

VNC (Virtual Network Computing)では、グラフィカルなデスクトップを使用してリモートコンピュータを制御できます。これは、リモートシェルアクセスとは対照的です。VNCはプラットフォームに依存しないので、VNCを使用すれば、任意のオペレーティングシステムからリモートマシンにアクセスできます。

SUSE Linux Enterprise Serverでは、次の2種類のVNCセッションをサポートしています: クライアントからのVNC接続が続く限り、存続する一時的セッション、および明示的に終了されるまで存続するな永続的セッション。

[Note]セッションタイプ

両方のタイプのセッションを1つのコンピュータの異なるポートから同時に提供ができます。ただし、オープンセッションを1つのタイプからもう一方のタイプに変換することはできません。

4.1. 一時的VNCセッション

一時的セッションは、リモートクライアントによって開始されます。これにより、サーバにグラフィカルなログイン画面が開きます。この画面でセッションを開始するユーザを選択できます。さらに、ログインマネージャでサポートされている場合はデスクトップ環境も選択できます。そのようなVNCセッションへのクライアント接続を終了すると、そのセッション内で開始したアプリケーションもすべて終了します。一時的なVNCセッションは共用できませんが、1つのホストで同時に複数のセッションを実行することは可能です。

手順4.1 一時的VNCセッションを有効にする

  1. まず、[YaST]+[ネットワークサービス]+[リモート管理(VNC)]の順に選択します。

  2. [(リモート管理を許可する]にチェックマークを付けます。

  3. 必要な場合は、[ファイアウォールでポートを開く]にもチェックマークを付けます (たとえば、ネットワークインタフェースを外部ゾーンに属するように設定する場合)。ネットワークインタフェースが複数ある場合は、[ファイアウォールの詳細]で、特定のインタフェースにだけファイアウォールポートを開くように制限します。

  4. [完了]で設定を確認します。

  5. 必要なパッケージの一部をまだ入手できない場合は、足りないパッケージのインストールを承認する必要があります。

[Note]使用可能な設定

SUSE Linux Enterprise Serverのデフォルト設定では、1024x768ピクセルの解像度と16ビットの色数でセッションが提供されます。セッションで使用できるポートは、正規の VNCビューアの場合はポート5901(VNCディスプレイ1に相当)、Webブラウザの場合はポート5801です。

その他の設定は、異なるポートで使用できます。4.1.2項 「一時的VNCセッションを設定する」を参照してください。

VNCディスプレイ番号とXディスプレイ番号は、一時的セッションでは互いに独立しています。VNCディスプレイ番号は、サーバがサポートするすべての設定に手動で割り当てられます(上記の例では1)。VNCセッションは、設定の1つを使用して開始されるたびに、自動的に未使用のXディスプレイ番号を取得します。

4.1.1. 一時的VNCセッションを開始する

一時的VNCセッションを開始するには、VNCビューアをクライアントコンピュータにインストールしておく必要があります。SUSE Linux製品の標準ビューアは、tightvncパッケージで提供されるvncviewerです。WebブラウザとJavaアプレットの使用によっても、VNCセッションを表示できます。

VNCビューアを起動し、サーバのデフォルト設定でセッションを開始するには、次のコマンドを使用します。

vncviewer jupiter.example.com:1

VNCディスプレイ番号の代わりに、2つのコロンを使用してポート番号を指定することもできます。

vncviewer jupiter.example.com::5901

または、Javaを有効にしたWebブラウザで、URLとしてhttp://jupiter.example.com:5801を入力することにより、VNCセッションを表示できます。

4.1.2. 一時的VNCセッションを設定する

デフォルト設定を変更する必要も意志もない場合は、このセクションをスキップできます。

一時的VNCセッションは、xinetdデーモンを介して開始されます。設定ファイルは、/etc/xinetd.d/vncにあります。このファイルは、デフォルトで、6つの設定ブロックを提供します: VNCビューア用に3ブロック(vnc1からvnc3まで)、Javaアプレット用に3ブロック(vnchttpd1からvnchttpd3まで)。デフォルトでは、vnc1vnchttpd1だけが有効です。

設定を有効にするには、disable = yes行の最初のカラムに#文字を付けて行をコメント化するか、 その行を完全に削除します。設定を無効にするには、その行をコメント解除するか、追加します。

Xvncサーバは、server_argsオプションで設定できます。オプションのリストについては、Xnvc --helpを参照してください。

カスタム設定を追加する際には、それらの設定が、同じホスト上の他の設定、他のサービス、または既存の永続的VNCセッションですでに使用中のポートを使用しないことを確認してください。

設定の変更を有効にするには、次のコマンドを入力します:

rcxinetd reload
[Important]ファイアウォールとVNCポート

手順4.1「一時的VNCセッションを有効にする」で説明されているように、リモート管理をアクティブにすると、ファイアウォール内でポート5801および5901が開きます。VNCセッションで使用されるネットワークインタフェースがファイアウォールで保護されている場合、VNCセッションの追加ポートをアクティブにする際には各ポートを手動で開く必要があります。手順については、第15章 Masquerading and Firewalls (↑Security Guide (セキュリティガイド))を参照してください。

4.2. 永続的VNCセッション

永続的VNCセッションは、サーバ上で開始されます。セッションとこのセッションで開始されたすべてのアプリケーションは、クライアント接続とは関わりなく、セッションが終了するまで実行されます。

永続的セッションは、複数のクライアントから同時にアクセスすることが可能です。この機能は、1つのクライアントがフルアクセスをもち、他のすべてのクライアントが表示オンリーアクセスを持つデモに最適です。また、トレイナが訓練生のデスクトップにアクセスする必要があるトレーニングでも使用できます。ただし、ほとんどの場合、VNCセッションの共用が必要とされることはありません。

ディスプレイマネージャを起動する一時的セッションとは対照的に、永続的セッションでは、操作準備のできたデスクトップを起動し、そのデスクトップがVNCセッションを開始したユーザとしてセッションを実行します。

永続的セッションへのアクセスは、可能な2タイプのパスワードによって保護されます:

  • フルアクセスを付与する通常のパスワード。または、

  • 非対話的(表示オンリー)アクセスを付与するオプションの表示オンリーパスワード。

1つのセッションに、両方の種類のクライアント接続が一度に複数存在できます。

手順4.2 永続的VNCセッションを開始する

  1. シェルを開き、VNCセッションを所有するユーザとしてログインしていることを確認します。

  2. VNCセッションで使用されるネットワークインタフェースがファイアウォールで保護されている場合は、ファイアウォール内でセッションによって使用されるポートを手動で開く必要があります。複数のセッションを開始する場合は、一連のポートを開くことができます。ファイアウォールの設定方法の詳細については、第15章 Masquerading and Firewalls (↑Security Guide (セキュリティガイド))を参照してください。

    vncserverは、ディスプレイ:1にはポート5901 、ディスプレイ:2にはポート5902という順序でポートを使用します。永続的セッションの場合、VNCディスプレイとXディスプレイは、通常、同じ番号です。

  3. 1024x769ピクセルの解像度と16ビットの色数でセッションを開始するには、次のコマンドを入力します。

    vncserver -geometry 1024x768 -depth 16

    vncserverコマンドは、何も指定されない場合、未使用のディスプレイ番号を選択し、その選択内容をプリントします。追加オプションについては、man 1 vncserverを参照してください。

初めてvncviewerを実行すると、セッションへのフルアクセス用パスワードが要求されます。必要な場合は、セッションへの表示オンリーアクセス用パスワードも入力できます。

ここで指定するパスワードは、同じユーザによって開始される今後のセッションにも使用されます。それらのパスワードは、vncpasswdコマンドで変更できます。

[Important]セキュリティ上の考慮事項

必ず、かなりの長さ(8文字以上)の強力なパスワードを使用してください。これらのパスワードは共用しないでください。

VNC接続は暗号化されていないので、2つのコンピュータ間のネットワークを傍受できる者たちによってセッション開始時に転送されるパスワードが読み取られる恐れがあります。

VNCセッションを終了するには、通常のローカルXセッションのシャットダウンのように、VNC環境内部で実行中のデスクトップ環境をVCNビューアからシャットダウンします。

セッションを手動で終了したい場合は、VNCサーバでシェルを開き、終了したいVNCセッションを所有するユーザとしてログインしていることを確認します。次のコマンドを実行して、ディスプレイ:1で実行されているセッションを終了します: vncserver -kill :1

4.2.1. 永続的VNCセッションに接続する

永続的VNCセッションに接続するには、VCNビューアをインストールする必要があります。SUSE Linux製品の標準ビューアは、tightvncパッケージで提供されるvncviewerです。WebブラウザとJavaアプレットの使用によっても、VNCセッションを表示できます。

VNCビューアを起動し、VNCサーバのディスプレイ:1に接続するには、次のコマンドを使用します。

vncviewer jupiter.example.com:1

VNCディスプレイ番号の代わりに、2つのコロンを使用してポート番号を指定することもできます。

vncviewer jupiter.example.com::5901

または、Javaを有効にしたWebブラウザで、URLとしてhttp://jupiter.example.com:5801を入力することにより、VNCセッションを表示できます。

4.2.2. 永続的VNCセッションを設定する

永続的VNCセッションは、$HOME/.vnc/xstartupを編集することによって設定できます。デフォルトでは、このシェルスクリプトは、xtermtwmウィンドウマネージャを起動します。代わりとして、GNOMEまたはKDEを起動するには、twmで始まる行を次のいずれかで置き換えます。

/usr/bin/gnome     # GNOME
/usr/bin/startkde  # KDE
[Note]ユーザごとに1つの設定

永続的VNCセッションは、ユーザごとの単一設定として設定されます。1人のユーザが開始する複数のセッションでは、すべて同じ起動ファイルとパスワードファイルが使用されます。