この章では、Trusted Extensions の管理ツールを使用して遠隔システムを管理する方法について説明します。
デフォルトでは、Trusted Extensions では遠隔管理が許可されていません。Trusted Extensions が設定されたシステムを、信頼できない遠隔システムで管理できるとしたら、遠隔管理によって重大なセキュリティーリスクが発生します。そのため、システムは遠隔で管理されているオプションなしで最初にインストールされます。
ネットワークが構成されるまで、すべての遠隔ホストには admin_low のセキュリティーテンプレートが割り当てられます。したがって、どの接続でも CIPSO プロトコルは使用されず、受け付けられません。この初期状態の間、システムは複数のメカニズムによって遠隔攻撃から保護されています。このメカニズムには、netservices 設定、デフォルトログインポリシー、PAM ポリシーなどがあります。
netservices サービス管理機能 (SMF) プロファイルが limited に設定されている場合、遠隔サービスは Secure Shell だけが有効になっています。しかし、ログインポリシーおよび PAM ポリシーのため、ssh サービスを使用して遠隔ログインすることはできません。
/etc/default/login ファイルの CONSOLE のデフォルトポリシーによって root による遠隔ログインが禁止されているため、root アカウントを使用して遠隔ログインすることはできません。
遠隔ログインは、PAM の 2 つの設定の影響も受けます。
pam_roles モジュールは、アカウントタイプ role からのローカルログインを常に拒否します。デフォルトでは、このモジュールは遠隔ログインも拒否します。ただし、システムの pam.conf エントリで allow_remote を指定すれば、遠隔ログインを受け付けるようにシステムを構成することができます。
また、pam_tsol_account モジュールは、CIPSO プロトコルを使用しない限り、大域ゾーンへの遠隔ログインを拒否します。このポリシーの目的は、ほかの Trusted Extensions システムを使用して遠隔管理を実行できるようにすることです。
遠隔ログイン機能を有効にするには、両方のシステムでその接続先を CIPSO セキュリティーテンプレートに割り当てる必要があります。この方法が現実的でない場合は、pam.conf ファイルで allow_unlabeled オプションを指定して、ネットワークプロトコルポリシーを引き下げることができます。これらのポリシーのいずれかを引き下げた場合、任意のマシンが大域ゾーンにアクセスできないようにデフォルトのネットワークテンプレートを変更する必要があります。admin_low テンプレートは慎重に使用し、tnrhdb データベースを修正して、ワイルドカードアドレス 0.0.0.0 が ADMIN_LOW ラベルのデフォルトにならないようにしてください。詳細は、「Trusted Extensions の遠隔管理 (作業マップ)」および「トラステッドネットワーク上で接続できるホストを制限する」を参照してください。
通常、管理者はrlogin および ssh コマンドを使用して、コマンド行から遠隔システムを管理します。Solaris 管理コンソールも使用できます。Trusted CDE では、dtappsession プログラムで遠隔から Trusted CDE アクションを起動できます。Solaris 10 5/09 リリースから、仮想ネットワークコンピュータ (virtual networking computer、VNC) を使用してマルチレベルデスクトップを遠隔表示できるようになります。
Trusted Extensions では、次の遠隔管理方式が可能です。
root ユーザーは、端末から遠隔ホストにログインすることができます。「Trusted Extensions でコマンド行から遠隔でログインする」を参照してください。この方式は、Solaris システムの場合と同じように機能します。この方式はセキュリティー保護されません。
役割は、役割ワークスペースで端末から遠隔ホストにログインすることができます。「Trusted Extensions でコマンド行から遠隔でログインする」を参照してください。
管理者は、遠隔システム上で実行中の Solaris 管理コンソールサーバーを起動することができます。「Trusted Extensions システムから Solaris 管理コンソールを使ってシステムを遠隔管理する」を参照してください。
Trusted_Extensions フォルダのアクションは、 dtappsession コマンドを使用して遠隔で起動することができます。「dtappsession で Trusted Extensions を遠隔管理する」を参照してください。
ユーザーは、VNC クライアントプログラムを使用して Trusted Extensions システム上の Xvnc サーバーに接続して、遠隔のマルチレベルデスクトップにログインできます。「Xvnc を使用して Trusted Extensions システムに遠隔アクセスする」を参照してください。
Solaris OS の場合と同じように、遠隔ログインを許可するには、各ホスト上の /etc/default/login ファイルの設定を変更する必要があります。また、場合によっては pam.conf ファイルを変更する必要もあります。Trusted Extensions では、セキュリティー管理者が変更を行います。手順については、『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions での root による遠隔ログインを有効にする」および『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions での役割による遠隔ログインを有効にする」を参照してください。
Trusted Extensions と Solaris のどちらのホストでも、遠隔ログインには承認が必要な場合と不要な場合があります。承認が必要なログインの条件とタイプについては、「Trusted Extensions での遠隔ログイン管理」で説明しています。デフォルトで、役割には「リモートログイン」承認が与えられています。
Trusted Extensions で、ユーザーはトラステッドパスメニューから役割になります。その結果、役割がトラステッドワークスペースで機能するようになります。デフォルトでは、トラステッドパス以外から役割になることはできません。サイトポリシーで許可される場合、セキュリティー管理者はこのデフォルトポリシーを変更できます。これで、Solaris 管理コンソール 2.1 クライアントソフトウェアを実行しているラベルなしホストの管理者は、トラステッドホストを管理できるようになります。
デフォルトポリシーを変更するには、『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions での役割による遠隔ログインを有効にする」を参照してください。
システムの遠隔管理については、「Trusted Extensions でコマンド行から遠隔でログインする」を参照してください。
このポリシー変更は、遠隔のラベルなしシステム上のユーザーが Trusted Extensions ホストにユーザーアカウントを持っている場合にのみ適用されます。Trusted Extensions のユーザーは、管理者役割になれる必要があります。管理者役割は、Solaris 管理コンソールを使用して遠隔システムを管理できます。
Trusted Extensions 以外のホストからの遠隔管理が有効な場合、管理環境は Trusted Extensions の管理ワークスペースより安全性が低くなります。パスワードやほかのセキュリティーデータを入力するときは注意してください。予防策として、信頼できないアプリケーションはすべて、Solaris 管理コンソールを起動する前に停止してください。
2 つの Trusted Extensions ホスト間の遠隔ログインは、現在のログインセッションの延長とみなされます。
rlogin コマンドがパスワードを要求しない場合、承認は必要ありません。遠隔ホスト上のユーザーのホームディレクトリにある /etc/hosts.equiv または .rhosts ファイルに、遠隔ログインを試行しているユーザー名またはホストがリストされている場合、パスワードは必要ありません。詳細は、rhosts(4) および rlogin(1) のマニュアルページを参照してください。
ほかのすべての遠隔ログインの場合、ftp コマンドを使用したログインの場合も含めて、「リモートログイン」承認が必要です。
「リモートログイン」承認を含む権利プロファイルの作成については、「Solaris 管理コンソールでのユーザーと権利の管理 (作業マップ)」を参照してください。
次の作業マップでは、遠隔の Trusted Extensions システムを管理するためのタスクについて説明します。
作業 |
説明 |
参照先 |
---|---|---|
root が Trusted Extensions システムに遠隔でログインできるようにします。 |
root ユーザーがラベル付きシステムから遠隔で作業できるようにします。 |
『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions での root による遠隔ログインを有効にする」 |
役割が Trusted Extensions システムに遠隔でログインできるようにします。 |
役割がラベル付きシステムから遠隔で作業できるようにします。 |
『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions での役割による遠隔ログインを有効にする」 |
ラベルなしシステムから Trusted Extensions システムへの遠隔ログインを有効にします。 |
任意のユーザーや役割がラベルなしシステムから遠隔で作業できるようにします。 |
『Oracle Solaris Trusted Extensions 構成ガイド』の「ラベルなしシステムからの遠隔ログインを有効にする」 |
Trusted Extensions システムに遠隔でログインします。 |
役割として Trusted Extensions システムにログインします。 | |
システムを遠隔で管理します。 |
dtappsession コマンドを使用して、Trusted_Extensions アクションで遠隔システムを管理します。 | |
Trusted Extensions システムから、Solaris 管理コンソールを使用して遠隔ホストを管理します。 | ||
ラベルなしシステムから、Solaris 管理コンソールを使用して遠隔の Trusted Extensions ホストを管理します。 | ||
遠隔システムを管理および使用する |
任意のクライアントから、遠隔の Trusted Extensions で Xvnc サーバーを使用して、クライアントにマルチレベルセッションを表示します。 | |
特定ユーザーが大域ゾーンにログインできるようにします。 |
Solaris 管理コンソールのユーザーツールやネットワークツールを使用して、特定ユーザーが大域ゾーンにアクセスできるようにします。 |
telnet コマンドは基本および役割のアイデンティティーを pam_roles モジュールに渡すことができないため、このコマンドを使用して遠隔の役割になることはできません。
ユーザーと役割は、ローカルシステムと遠隔システムで同一に定義されている必要があります。
役割は、「リモートログイン」承認を持っている必要があります。デフォルトでは、この承認は Remote Administration 、Maintenance、および Repair 権利プロファイルにあります。
セキュリティー管理者は、遠隔で管理できるすべてのシステム上で『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions での役割による遠隔ログインを有効にする」の手順を完了しておきます。システムをラベルなしシステムから管理できる場合は、『Oracle Solaris Trusted Extensions 構成ガイド』の「ラベルなしシステムからの遠隔ログインを有効にする」の手順も完了しておいてください。
役割を引き受けることができるユーザーのワークスペースから、遠隔ホストにログインします。
rlogin コマンド、ssh コマンド、または ftp コマンドを使用します。
rlogin -l または ssh コマンドを使用してログインする場合は、役割の権利プロファイルにあるすべてのコマンドを使用できます。
ftp コマンドを使用する場合は、ftp(1) のマニュアルページで使用可能なコマンドを参照してください。
dtappsession プログラムを使用すると、管理者は CDE を実行している遠隔システムを管理することができます。
dtappsession は、遠隔システムにモニターがないときに役立ちます。たとえば、大規模サーバーでドメインを管理するとき、dtappsession がしばしば使用されます。詳細は、dtappsession(1) のマニュアルページを参照してください。
ラベル付きシステムでは、大域ゾーンの管理役割である必要があります。ラベルなしシステムでは、遠隔システムで定義されている役割である必要があります。役割のプロファイルシェルから、遠隔ログインを実行します。
(省略可能) 遠隔セッション専用のワークスペースを作成します。
遠隔の CDE アプリケーションとローカルアプリケーションとの混同を避けるために、この手順専用の管理役割ワークスペースを作成します。詳細は、『Oracle Solaris Trusted Extensions ユーザーズガイド』の「特定のラベルのワークスペースを追加する」を参照してください。
遠隔ホストにログインします。
rlogin コマンドまたは ssh コマンドを使用することができます。
$ ssh remote-host |
遠隔の管理を開始します。
端末ウィンドウで、dtappsession コマンドに続いてローカルホストの名前を入力します。
$ /usr/dt/bin/dtappsession local-host |
遠隔ホスト上で実行されているアプリケーションマネージャーが、ローカルホスト上で表示されます。「終了」ダイアログボックスも表示されます。
遠隔ホストを管理します。
Trusted CDE から遠隔セッションを起動した場合、Trusted_Extensions フォルダのアクションを使用することができます。
終了したら、「終了」ボタンをクリックします。
アプリケーションマネージャーを閉じてもログインセッションは終了しないため、これはお勧めできません。
端末ウィンドウで、遠隔のログインセッションを終了します。
hostname コマンドを使用して、ローカルホスト上にいることを確認します。
$ exit $ hostname local-host |
Solaris 管理コンソールは、ユーザー、権利、役割、およびネットワークを管理するための遠隔管理インタフェースを提供します。コンソールを使用する役割になります。この手順では、コンソールをローカルシステムで実行し、遠隔システムをサーバーとして指定します。
次の手順を完了しておきます。
両方のシステムでの手順 – 『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions で Solaris 管理コンソールサーバーを初期化する」
遠隔システムでの手順 – 『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions での役割による遠隔ログインを有効にする」および『Oracle Solaris Trusted Extensions 構成ガイド』の「Solaris 管理コンソール でのネットワーク接続の受け付けを有効にする」
LDAP サーバーである遠隔システムでの手順 – 『Oracle Solaris Trusted Extensions 構成ガイド』の「LDAP のための Solaris 管理コンソールの設定 (作業マップ)」
ローカルシステムで、遠隔システム上で同一に定義されているユーザーとしてログインします。
システムの管理に使用する役割になります。
その役割で、Solaris 管理コンソールを起動します。
詳細は、『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions で Solaris 管理コンソールサーバーを初期化する」を参照してください。
「システムの構成」でツールを選択します。
「ユーザー」などのツールを選択すると、ダイアログボックスに Solaris 管理コンソールのサーバー名、ユーザー名、役割名、および役割のパスワードを入力する場所が表示されます。それらのエントリが正しいことを確認します。
ローカルシステムと遠隔システムで同一に定義されている役割で、Solaris 管理コンソールサーバーにログインします。
役割のパスワードを入力し、役割として「ログイン」を押します。これで、Solaris 管理コンソールを使ってシステムを管理できます。
Solaris 管理コンソールを使って dtappsession を実行することもできますが、dtappsession のもっとも簡単な使用方法については、「dtappsession で Trusted Extensions を遠隔管理する」に説明されています。
この手順では、Solaris 管理コンソールのクライアントとサーバーを遠隔システムで実行し、ローカルシステムでコンソールを表示します。
Trusted Extensions システムによってラベル ADMIN_LOW がローカルシステムに割り当てられている必要があります。
Trusted Solaris システムなど、CIPSO プロトコルを実行していないシステムは、Trusted Extensions システムの観点からラベルなしシステムとみなされます。
遠隔システムの Solaris 管理コンソールサーバーは、遠隔接続を受け入れるように構成する必要があります。手順については、『Oracle Solaris Trusted Extensions 構成ガイド』の「Solaris 管理コンソール でのネットワーク接続の受け付けを有効にする」を参照してください。
どちらのシステムにも、Solaris 管理コンソールを使用できる同じ役割が割り当てられている同じユーザーが必要です。ユーザーは通常のユーザーのラベル範囲で構いませんが、役割の範囲は ADMIN_LOW ~ ADMIN_HIGH である必要があります。
大域ゾーンで、管理者役割になっている必要があります。
ローカルの X サーバーを有効にして遠隔の Solaris 管理コンソールを表示します。
# xhost + TX-SMC-Server # echo $DISPLAY :n.n |
ローカルシステムで、Solaris 管理コンソールの役割を引き受けることができるユーザーになります。
# su - same-username-on-both-systems |
そのユーザーで、遠隔サーバーに役割としてログインします。
$ rlogin -l same-rolename-on-both-systems TX-SMC-Server |
Solaris 管理コンソールが使用する環境変数に正しい値が設定されていることを確認します。
その役割で、コマンド行から Solaris 管理コンソールを起動します。
$ /usr/sbin/smc & |
「システムの構成」でツールを選択します。
「ユーザー」などのツールを選択すると、ダイアログボックスに Solaris 管理コンソールのサーバー名、ユーザー名、役割名、および役割のパスワードを入力する場所が表示されます。それらのエントリが正しいことを確認します。
その役割として、サーバーにログインします。
役割のパスワードを入力し、役割として「ログイン」を押します。これで、Solaris 管理コンソールを使ってシステムを管理できます。
LDAP サーバーではないシステムからネットワークデータベース情報にアクセスしようとしても、処理に失敗します。コンソールを使用すると、遠隔ホストにログインしてツールボックスを開くことができます。ただし、情報にアクセスしたり情報を変更したりしようとした場合、LDAP サーバーではないシステム上で Scope=LDAP を選択したことを示す、次のエラーメッセージが表示されます。
Management server cannot perform the operation requested. ... Error extracting the value-from-tool. The keys received from the client were machine, domain, Scope. Problem with Scope. |
役割がない状態で遠隔ログインできるようにするには、ユーザーのデフォルトのラベル範囲とゾーンのデフォルト動作を変更します。この手順は、ラベル付きシステムを遠隔で使用しているテスターに対して実行する場合があります。セキュリティーのため、テスターのシステムはほかのユーザーと無関係のラベルで実行されている必要があります。
このユーザーが大域ゾーンにログインする正当な理由が必要です。
大域ゾーンでセキュリティー管理者役割になります。
特定のユーザーが大域ゾーンにログインできるようにするためには、そのユーザーに管理ラベルの範囲を割り当てます。
Solaris 管理コンソールを使用して、ADMIN_HIGH の認可上限と、ADMIN_LOW の最小ラベルを各ユーザーに割り当てます。詳細は、「Solaris 管理コンソールでユーザーのラベル範囲を修正する」を参照してください。
ユーザーのラベル付きゾーンもログインを許可する必要があります。
ラベル付きゾーンから大域ゾーンに遠隔ログインできるようにするには、次のようにします。
遠隔ログイン用マルチレベルポートを大域ゾーンに追加します。
Solaris 管理コンソールを使用します。TCP プロトコル上のポート 513 で遠隔ログインが可能です。例については、「ゾーンにマルチレベルポートを作成する」を参照してください。
tnzonecfg の変更をカーネルに読み込みます。
# tnctl -fz /etc/security/tsol/tnzonecfg |
遠隔ログインサービスを再起動します。
# svcadm restart svc:/network/login:rlogin |
仮想ネットワークコンピューティング (Virtual Network Computing、VNC) テクノロジは、クライアントを遠隔サーバーに接続し、クライアントのウィンドウに遠隔サーバーのデスクトップを表示します。Xvnc は UNIX バージョンの VNC であり、標準 X サーバーをベースにしています。Trusted Extensions では、どのプラットフォーム上のクライアントでも、Trusted Extensions ソフトウェアが実行されている Xvnc に接続して、Xvnc サーバーにログインし、マルチレベルデスクトップ上で表示して作業できます。
Xvnc サーバーとして使用するシステムに Trusted Extensions ソフトウェアをインストールして設定しておきます。また、ラベル付きゾーンを作成してブートしておきます。Xvnc サーバーはホスト名または IP アドレスによって VNC クライアントを認識します。
Xvnc サーバーとして使用するシステムの大域ゾーンのスーパーユーザーになります。
Xvnc サーバーを構成します。
詳細は、Xvnc(1) および vncconfig(1) のマニュアルページを参照してください。
Solaris 10 10/08 または Solaris 10 5/08 リリースを実行している場合、サーバーを構成する前にシステムにパッチを適用してください。SPARC システムでは、パッチ 125719 の最新バージョンをインストールします。x86 システムでは、パッチ 125720 の最新バージョンをインストールします。
X サーバーの構成ディレクトリを作成します。
# mkdir -p /etc/dt/config |
/usr/dt/config/Xservers ファイルを /etc/dt/config ディレクトリにコピーします。
# cp /usr/dt/config/Xservers /etc/dt/config/Xservers |
/etc/dt/config/Xservers ファイルを編集して、X サーバーや Xorg ではなく Xvnc プログラムを起動します。
次の例では、パスワードなしでサーバーにログインするようにエントリが構成されています。デスクトップに正常にログインするには、ローカル UID は console ではなく none にします。
例では表示の便宜上、エントリが分割されています。実際には、エントリは 1 行で入力してください。
# :0 Local local_uid@console root /usr/X11/bin/Xserver :0 -nobanner :0 Local local_uid@none root /usr/X11/bin/Xvnc :0 -nobanner -AlwaysShared -SecurityTypes None -geometry 1024x768x24 -depth 24 |
構成の安全性を高めるには、-SecurityTypes VncAuth パラメータを使用してパスワードを要求します。パスワードの要件については、Xvnc(1) のマニュアルページで説明しています。
サーバーを再起動するか、Xvnc サーバーを起動します。
# reboot |
再起動後、Xvnc プログラムが実行されていることを確認します。
# ps -ef | grep Xvnc root 2145 932 0 Jan 18 ? 6:15 /usr/X11/bin/Xvnc :0 -nobanner -AlwaysShared -SecurityTypes None -geometry 1024 |
Trusted Extensions の Xvnc サーバーの VNC クライアントすべてに対して、VNC クライアントソフトウェアをインストールします。
クライアントシステムでは、ソフトウェアを選択できます。次の例では、Sun の VNC ソフトウェアを使用します。
# cd SUNW-pkg-directory # pkgadd -d . SUNWvncviewer |
VNC クライアントの端末ウィンドウで、サーバーに接続します。
% /usr/bin/vncviewer Xvnc-server-hostname |
表示されるウィンドウで、名前とパスワードを入力します。
ログイン手順に進みます。残りの手順については、『Oracle Solaris Trusted Extensions ユーザーズガイド』の「Trusted Extensions へのログイン」を参照してください。
スーパーユーザーとしてサーバーにログインした場合は、サーバーをすぐに管理できます。一般ユーザーとしてサーバーにログインした場合は、システムを管理する役割になってください。