実践!ターミナル・サービス 第2回 セキュリティ編:利用アプリとセッションに制限をかける  続き

使用アプリを制限してセキュリティを高める
 ターミナル・サーバーをアプリケーション・サーバーとして使用する場合,1人のユーザーの不用意な操作により,他のリモート・ユーザーが影響を受ける可能性がある。例えば,ターミナル・サーバーでInternet Explorerを起動してインターネットに接続し,ウイルスをダウンロードしてしまうケースなどが考えられる。

 こうしたトラブルを防ぐには,あらかじめリモート・ユーザーが実行できる操作を限定してしまう方法がある。グループ・ポリシーを使えば,ターミナル・サーバー上で実行できるアプリケーションを制限できるので,管理者が許可していないアプリケーションの実行を禁止すればよい。

 使用できるアプリケーションの制限には,いくつかのレベルがある。ユーザーへの制限が多い順に解説しよう。


△ 図をクリックすると拡大されます
図11●ログオンすると自動的にアプリケーションが起動する

●ログオンすると特定のアプリケーションが起動する
 ユーザーがログオンすると自動的にアプリケーションが起動して,他のアプリケーションは使用できない設定である。アプリケーションのウインドウを小型化すると,デスクトップは灰色で,スタート・メニューやデスクトップ上のアイコンはどれも表示されず利用できない(図11)。アプリケーションを終了させると同時に,ユーザーは自動的にログオフされる。設定方法は以下の通り。

 

 

 


△ 図をクリックすると拡大されます
図12●接続時に起動するアプリケーションを指定する

(1)グループ・ポリシー・オブジェクト・エディタを起動する
(2)左ペインで[ユーザーの構成]-[管理用テンプレート]-[Windowsコンポーネント]-[ターミナルサービス]を展開する。
(3)右ペインで[接続時にプログラムを起動する]を有効にして,[起動時にプログラムを起動するのプロパティ]画面で,起動させたいアプリケーションのパスとプログラム名を入力する(図12)。

 

 

 


△ 図をクリックすると拡大されます
図13●許可するアプリケーションを指定する

●特定のアプリケーションのみ実行を許可する
 ユーザーはリモート・ログオンした後,指定されたアプリケーションしか起動できない設定である。この場合,アプリケーションを起動する/しないの選択はある。設定方法は以下の通り。

(1)グループ・ポリシー・オブジェクト・エディタを起動する。
(2)左ペインで[ユーザーの構成]-[管理用テンプレート]-[システム]を展開する。
(3)右ペインで[許可されたWindowsアプリケーションだけを実行する]を有効にして,許可したいアプリケーションのプログラム名を入力する(図13)。ここではExcelとPowerPointを設定する。


△ 図をクリックすると拡大されます
図14●許可されていないアプリケーションを起動する

 では,実際にユーザーからターミナル・サーバーにアクセスし,許可されていないアプリケーションであるInternet Explorerを起動してみよう(図14)。

 

 

 

 

 


△ 図をクリックすると拡大されます
図15●許可されていないアプリケーションを起動しようとすると,このようなエラー・メッセージが出る

 すると図15のようなダイアログ画面が表示され,実行できない。

 

 

 

●特定のアプリケーションのみ実行できない
 アプリケーションは一通り実行できるが,指定されたアプリケーションのみは実行できない設定である。設定方法は「特定のアプリケーションのみ実行を許可する」と同様だが,(3)で今度は[指定されたWindowsアプリケーションを実行しない]を有効にして,許可しないアプリケーションのプログラム名を入力する。

 ユーザーへの制限が多いほど安全性は高まるが,利便性は低くなる。環境によって制限を使い分けてほしい。

ローカル・リソース・マッピングを制限して,安全性を高める
  前回紹介したように,リモート・デスクトップ接続では,ローカル・マシンのデバイスを利用するため,クライアントにつながったローカル・リソースをターミナル・サーバー側にマッピングできる。これはリモート・ユーザーにとって便利な機能だが,セキュリティ・リスクにつながる場合もある。例えば,ウイルスに感染したローカル・ディスクをターミナル・サーバーにマッピングすると,ウイルスはすぐにサーバー側に広まってしまうだろう。このように,ローカル・リソースのマッピングは細心の注意を払わなければならない。


△ 図をクリックすると拡大されます
図16●ターミナル・サービス構成で[RDP-Tcp]のプロパティを表示する

 そこで,サーバー側でローカル・リソース・マッピングを制限する方法を解説しよう。手順は以下の通りだ。

(1)「ターミナル・サービス構成」を起動する。
(2)左ペインで[ターミナルサービス構成]-[接続]と展開する。
(3)右ペインで[RDP-Tcp]を選択し,プロパティを表示する(図16)。
(4)プロパティ画面の[クライアントの設定]タブで,無効の設定をする。

 ユーザーが多い場合は,グループ・ポリシーで設定するとよい。ここでは,ドライブのマッピングを禁止する手順を示そう。

(1)グループ・ポリシー・オブジェクト・エディタを起動する。
(2)左ペインで[コンピュータの構成]-[管理用テンプレート]-[Windowsコンポーネント]-[ターミナルサービス]-[クライアント/サーバーデータリダイレクト]と展開する。
(3)右ペインで[ドライブのリダイレクトを許可しない]を[有効]にする。ここでプリンタなど,その他のリソースに関しても同様に設定できる。

サーバーに負荷をかけないよう,セッションを設定する
 ここからは,セッションに関する設定について解説しよう。1台のターミナル・サーバーに同時にログオンできる数は決まっていた。ところが,既定では保存するセッション数には制限がなかった。サーバーに負荷がかからないようにセッション数の制限が必要になる。

 既定ではリモート・デスクトップ接続のユーザーがログオフしない限り,セッション情報はいつまでもサーバーに保持される。このため,ユーザーがセッションを切断した場合や意図せず切断された場合にも,元のセッションへ再接続できる。

 しかし,セッションを保持している間は,1セッション当たり16M~20Mバイトのサーバー・メモリーが消費されている。不要なセッションが多数あると,サーバーに負担をかけパフォーマンスを低下させる。これを防ぐには,不要なセッションは終了される設定が望ましいだろう。

 セッションの設定は,「Active Directoryユーザーとコンピュータ」「ターミナル・サービス構成」「グループ・ポリシー・オブジェクト・エディタ」の3カ所のどれからでも行える。複数のユーザーに対してセッション設定をする場合,ユーザーのプロパティで行うのは非効率的なので,「ターミナル・サービス構成」で設定をするのがいいだろう。また,ターミナル・サーバーがドメイン内に複数存在する場合は,グループ・ポリシーを使って一括で設定するとよい。以下にそれぞれの手順を解説しよう。


△ 図をクリックすると拡大されます
図17●ユーザー・プロパティの[セッション]タブ/b>

●「Active Directoryユーザーとコンピュータ」を使った設定
(1)「Active Directoryユーザーとコンピュータ」を起動する。
(2)設定するユーザー(ここでは「YamamotoA」)のプロパティを表示し[セッション]タブを表示する(図17)。この画面では,次のような設定ができる。

[切断されたセッションを終了]…セッションが切断された後,セッション情報を保持する期間を設定する。セッション情報を保持する設定にすると,意図せずに切断された場合でも元のセッションに接続できる。
[アクティブなセッションの制限]…セッションの利用期限を設定する。
[アイドルセッションの制限]…アイドル状態からセッション切断またはセッション終了状態に切り替わるまでの期間を設定する。長時間作業を中断するような使用法では長めに設定するとよいが,サーバーには負荷がかかる。
[セッションの制限に達したり接続が中断した場合]…上記3つで設定した制限に達したときに,どのような処理をするかを決める。
[再接続の許可]…ユーザーが再接続をする際に,クライアントを限定するかどうかを設定する。他のクライアントが作業を引き継ぐようなケースでは[どのクライアントからでも再接続できる]を選択するとよい。


△ 図をクリックすると拡大されます
図18●[RDP-Tcp]の[セッション]タブ

●「ターミナル・サービス構成」を使った設定
(1)「ターミナル・サービス構成」を起動する。
(2)左ペインで[ターミナルサービス構成]-[接続]を展開する。
(3)右ペインで[RDP-Tcp]を選択し,プロパティを表示する(図16と同じ)。
(4)[セッション]タブで設定を選択する(図18)。

 なお,ここで項目を設定した場合,前述したユーザーのプロパティ画面で設定した内容は上書きされる。

 

 


△ 図をクリックすると拡大されます
図19●「グループ・ポリシー・オブジェクト・エディタ」でセッションを設定

●「グループ・ポリシー・オブジェクト・エディタ」で設定
(1)「グループ・ポリシー・オブジェクト・エディタ」を起動する。
(2)左ペインで[コンピュータの構成]-[管理用テンプレート]-[Windowsコンポーネント]-[ターミナルサービス]-[セッション]と展開し,右ペインで設定する項目を有効にする(図19)。

ユーザーに対してセッションを1つに限定する
 サーバーの負荷とは直接の関係はないが,ここでシングル・セッション・ポリシーの設定方法を解説しておこう。

 セッションの情報は,ターミナル・サーバー上のセッション・ディレクトリというデータベースに格納されている。ユーザーがセッションを切断しても元のセッションに接続できるのは,この情報があるからだ。


△ 図をクリックすると拡大されます
図20●「グループ・ポリシー・オブジェクト・エディタ」でシングル・セッション・ポリシーを設定

 しかし,設定によっては元のセッションに接続しないで,新たなセッションで接続してしまうことがある。これを防ぐために「シングル・セッション・ポリシー」というポリシーが用意されている。これは文字通り,ユーザーに対してセッションを1つに限定するものである。設定方法は次の通りだ。

(1)「グループ・ポリシー・オブジェクト・エディタ」を起動する。
(2)左ペインで[コンピュータの構成]-[管理用テンプレート]-[Windowsコンポーネント]-[ターミナルサービス]を展開する。
(3)右ペインで[ターミナルサービスユーザーに対してリモートセッションを1つに制限する]を有効にする(図20)。

 これでシングル・セッション・ポリシーが設定された。

 * * *

 このように基本的に使い方だけでなく,セキュリティを考慮した設定をして,より快適にターミナル・サービスを利用していただきたい。