4


終了スクリプト

この章では、終了スクリプトの使用、追加、変更、および削除について説明します。この章で取り上げるスクリプトは、Solaris OS システムを強化および最小化するために Solaris Security Toolkit ソフトウェアで使用されるスクリプトです。

Solaris Security Toolkit ソフトウェアのデフォルトのスクリプトは、OS の動作を必要とせずに、ネットワークサービスを含むすべてのサービスを無効にします。使用環境によっては、この処理が適していない場合もあります。使用しているシステムに必要なセキュリティー変更を確認してから、この章に記載されている情報を使用して変更を行ってください。

この章では、以下の項目を説明します。


終了スクリプトのカスタマイズ

終了スクリプトは、Solaris Security Toolkit ソフトウェアの中核としての機能を果たします。このスクリプトは、大部分のセキュリティー変更を一括して実行します。また、セキュリティープロファイル (ドライバ) の設計に応じて、それに伴う変更を、さまざまな方法で組み合わせたりグループ化することができる単独ファイルに取り出します。

この節では、既存の終了スクリプトのカスタマイズと、新しい終了スクリプトの作成についての手順と推奨事項を説明します。また、終了スクリプト機能を使用する際のガイドラインについても説明します。



注 - 変更をより多くのユーザーのために役立てたいときは、拡張機能に関するバグレポートや要望を提出することをご検討ください。Solaris Security Toolkit 開発チームは、ユーザーに役立つソフトウェアの改善方法を常に求めております。



既存の終了スクリプトをカスタマイズする

終了スクリプトは、Solaris Security Toolkit ドライバと同じように、カスタマイズすることができます。Solaris Security Toolkit ソフトウェアで提供されているスクリプトを変更するときは、慎重に行ってください。直接元のスクリプトを変更せずに、必ず終了スクリプトのコピーを作成して、それを変更するようにしてください。元のスクリプトを変更すると、Solaris Security Toolkit ソフトウェアをアップグレードまたは削除するときに、変更が失われる可能性があります。また、できる限りスクリプトの変更は必要最低限にとどめ、その変更について記録に残しておいてください。

終了スクリプトは、環境変数を使用してカスタマイズします。大部分の終了スクリプトの動作はこの方法でカスタマイズできるため、実際のスクリプトを変更する必要はありません。この方法が使用できない場合には、コードを変更する必要があります。

すべての環境変数のリストと、環境変数を定義する際のガイドラインについては、第 6 章を参照してください。



注 - JumpStart サーバーに Solaris Security Toolkit ソフトウェアをインストールすると、終了スクリプトは、JumpStart クライアント上で実行されているメモリー常駐 mini-root から実行されます。mini-root には、Solaris OS のほぼすべての機能が格納されています。終了スクリプトを作成する場合、クライアントディスクは /a にマウントされているため、chroot コマンドを使用してコマンドを実行する必要があることもあります。スタンドアロンモードで Solaris Security Toolkit ソフトウェアをインストールしたときは、この制約はありません。




procedure icon  終了スクリプトをカスタマイズするには

元のファイルが更新されたときに、カスタマイズしたファイルが更新された新しいファイルで上書きされないように終了スクリプトをカスタマイズするには、次の手順を実行します。なお、pkgrm コマンドを使用してソフトウェアを削除しても、カスタマイズしたファイルは削除されません。

1. カスタマイズするスクリプトとその関連ファイルをコピーします。

2. コピーしたファイルを、カスタムスクリプトおよびカスタムファイルとして識別される名前に変更します。

命名規則については、『Solaris Security Toolkit 4.1 管理マニュアル』の第 1 章「Solaris Security Toolkit ソフトウェアの構成およびカスタマイズ」を参照してください。

3. カスタムスクリプトとファイルを変更します。

コード例 4-1 では、install-openssh.fin を使用してソフトウェアを自動的にインストールする方法を示しています。このコーディング例では、OpenSSH のバージョンを "2.5.2p2" としていますが、OpenSSH の現在のバージョンは "3.5p1" です。当然、インストールするバージョンは、そのソフトウェアがインストールされた時期によって異なります。このスクリプトは、市販の Secure Shell 製品をサポートするように変更することもできます。

コード例 4-1 install-openssh.fin スクリプト例

#!/bin/sh
# NOTE: This script is not intended to be used for Solaris 9+.
  logMessage "Installing OpenSSH software.\n"
if check_os_revision 5.5.1 5.8 ; then
   OPENSSH_VERSION="2.5.2p2"
   OPENSSH_NAME="OBSDssh"
   OPENSSH_PKG_SRC="${OPENSSH_NAME}-${OPENSSH_VERSION}-`uname -p`
`uname -m`-`uname -r`.pkg"
   OPENSSH_PKG_DIR="${JASS_ROOT_DIR}/${JASS_PACKAGE_DIR}"
# Install the OpenSSH package onto the client
   if [ "${JASS_STANDALONE}" = "1" ]; then
      logNotice "This script cannot be used in standalone mode due
to the potential for overwriting the local OBSHssh installation."
   else
logMessage "Installing ${OPENSSH_NAME} from
${OPENSSH_PKG_DIR}/${OPENSSH_PKG_SRC}"
      if [ -f ${OPENSSH_PKG_DIR}/${OPENSSH_PKG_SRC} ]; then
         add_pkg -d ${OPENSSH_PKG_DIR}/${OPENSSH_PKG_SRC}
${OPENSSH_NAME} add_to_manifest X "pkgrm ${OPENSSH_NAME}"
      else
      logFileNotFound "${OPENSSH_NAME}"
[...]

この場合、異なるバージョンの OpenSSH をサポートするようにこのスクリプトを変更する唯一の方法は、直接このスクリプトを変更する方法です。変更を終了したら、スクリプトの新しい名前がわかるように、このスクリプトを使用しているセキュリティープロファイルを変更してください。



注 - すでに述べたように、Solaris Security Toolkit ソフトウェアのほとんどの機能は変数でカスタマイズできるので、このスクリプトを直接変更する方法が必要となることはめったにないはずです。



kill スクリプトが無効にされないようにする

通常、キーワード disable から始まる終了スクリプトは、サービスを無効にします。このスクリプトの多くは、実行コントロールディレクトリ (/etc/rc*.d) に格納されているシェルスクリプトを変更します。ほとんどの場合、実行コントロールスクリプトは、start スクリプトと kill スクリプトの 2 つのタイプに分類されます。その名前からわかるように、start スクリプトはサービスを開始し、kill スクリプトはサービスを停止します。また、start スクリプト名は大文字の S から始まり、kill スクリプト名は大文字の K から始まります。

kill スクリプトは、システムのシャットダウンまたは再起動の準備段階で頻繁に使用されます。kill スクリプトは、変更が失われることなくシステム状態が維持されるように、論理的な順序でサービスをシャットダウンします。一般に、start スクリプトと kill スクリプトはどちらも、/etc/init.d ディレクトリ内のファイルへのハードリンクです (ただし、必ずそうであるとは限りません)。

Solaris Security Toolkit ソフトウェアのデフォルトのアクションでは、start スクリプトと kill スクリプトがいずれも無効になります。この無効化は、JASS_KILL_SCRIPT_DISABLE 環境変数を使用すると変更できます。デフォルトでは、この変数は 1 に設定されており、Solaris Security Toolkit ソフトウェアに start スクリプトと kill スクリプトの両方を無効にするよう指示しています。

このアクションが実行されない方がよい場合があります。たとえば、kill スクリプトは、管理者が手動で開始したサービスを停止するときによく使用されます。Solaris Security Toolkit ソフトウェアでこのスクリプトを無効にした場合、こういったサービスが正常に停止されないか、または正しい順序で停止されないことがあります。kill スクリプトが無効にされないようにするには、user.init ファイルまたはその関連ドライバで、JASS_KILL_SCRIPT_DISABLE 環境変数を 0 に設定してください。

新しい終了スクリプトを作成する

新しい終了スクリプトを作成して、配備する Solaris Security Toolkit ソフトウェアに統合することができます。終了スクリプトは Bourne シェルで作成されるため、新機能を追加するのは比較的簡単です。UNIX シェルスクリプトの作成経験があまりない開発者は、同様の機能を実行する既存の終了スクリプトを調べて、目的のタスクを実行する方法を習得し、アクションの正しい順序を理解してください。

新しい終了スクリプトを作成するときは、以下の規則を考慮してください。これらの規則を理解していれば、スタンドアロンモード、JumpStart モード、および元に戻す処理でスクリプトは確実に機能するようになります。

新しい終了スクリプトを追加するときは、対応する監査スクリプトも必ず追加してください。監査スクリプトは、既存システム上での変更の状態を判定するときに使用されるスクリプトです。詳細については、第 5 章を参照してください。

/」ディレクトリがシステムの実際の root ディレクトリであることを前提にして、スクリプトを構成しないでください。スクリプトの構成が適切でないと、ターゲットの実際の root ディレクトリが「/a」であった場合、スクリプトは JumpStart モードでは機能しなくなります。この規則は、JASS_ROOT_DIR 環境変数を使用すれば簡単に実現できます。この環境変数とその他の環境変数についての詳細は、第 6 章を参照してください。

終了スクリプトで使用するプログラムが、再配置された root ディレクトリをサポートしていない場合があります。その場合には、すでに説明したように、chroot(1M) コマンドを相対 root ディレクトリ内で実行する必要があります。たとえば、usermod(1M) コマンドは、ユーザーに代替 root ディレクトリの指定を許可しません。この場合、次のように chroot(1M) コマンドを使用する必要があります。

chroot ${JASS_ROOT_DIR} /usr/sbin/usermod ...arguments...

Solaris Security Toolkit ソフトウェアでは、プラットフォームの実際の root ディレクトリの位置を自動的に検出し、その値を JASS_ROOT_DIR 変数に割り当てます。root ファイルシステムの特定のパスをハードコードするのではなく、この変数を使用してください。たとえば、終了スクリプト内で /etc/inet/inetd.conf を使用する代わりに、JASS_ROOT_DIR/etc/inet/inetd.conf を使用してください。

フレームワーク関数を使用すると、新しいスクリプトによる変更が、他の場所での変更と整合性が保たれていることと、変更を安全に元に戻せることが保証されます。フレームワーク関数のリストについては、第 1 章を参照してください。

元に戻す処理に適合しているフレームワーク関数の例を次に示します。

たとえば、usermod(1M) のようなプログラムは、/etc/passwd ファイルを直接変更するより優先されます。ソフトウェアにできる限り柔軟性を持たせ、作成される終了スクリプトをできる限り OS のバージョンに依存しないものにするためには、このような優先は必要です。また、システムの構成方法が複雑であったりあいまいであったりすると、スクリプトの使用期間でのデバッグや維持管理が困難になる可能性もあります。サポート可能な変更方法に関する例については、Sun BluePrints OnLine 掲載記事『Solaris Operating Environment Security: Updated for Solaris Operating Environment 9』を参照してください。

ある関数が 1 つのバージョンの OS で必要ない場合は、その関数を使用しないでください。これにより、ソフトウェアが既存リリースと下位互換性を持つようになり、さらに今後のリリースをサポートする可能性が高くなります。その上、終了スクリプトで OS バージョンを認識可能であれば、警告とエラーメッセージの数を飛躍的に減少させることができます。Solaris Security Toolkit ソフトウェアの終了ディレクトリには、そのスクリプトが使用されている OS を認識可能で、必要な場合に変更するだけでよいサンプルスクリプトが格納されています。この機能を使用しているサンプルスクリプトは、次のとおりです。

ソフトウェア開発者に対してこのプロセスをさらに簡単にするために、次の 2 つの関数がフレームワークに含まれています。

これらの関数についての詳細は、第 1 章を参照してください。

終了スクリプトは、実際に変更を行う必要があるかどうかを検出できなければなりません。

たとえば、/etc/default/inetinit スクリプトにすでに TCP_STRONG_ISS=2 という設定があるかどうかを、enable-rfc1948.fin スクリプトでチェックするとします。この設定があれば、ファイルをバックアップしたり、他の変更を行う必要はありません。

if [ `grep -c "TCP_STRONG_ISS=2" ${INETINIT}` = 0 ]; then
# The following command will remove any exiting TCP_STRONG_ISS
# value and then insert a new one where TCP_STRONG_ISS is set
# to 2.  This value corresponds to enabling RFC 1948 
# unique-per-connection ID sequence number generation.
logMessage "\nSetting 'TCP_STRONG_ISS' to '2' in ${INETINIT}.\n"
backup_file ${INETINIT}
cat ${INETINIT}.${JASS_SUFFIX} |\
sed '/TCP_STRONG_ISS=/d' > ${INETINIT}
echo "TCP_STRONG_ISS=2" >> ${INETINIT}
fi

この方法により、不必要なバックアップファイル数が減るだけでなく、同じファイルで何回も重複した変更を行うことから発生するエラーや混乱を防止することもできます。また、この機能を実装すると、終了スクリプトに対応している監査スクリプトの実装に必要なコードの作成も適切に実行することができます。


標準の終了スクリプトの使用

終了スクリプトは、セキュリティー強化処理時にシステムの変更と更新を行います。終了スクリプトがその他の処理や操作で使用されることはありません。

finish.init ファイルは、終了スクリプトの構成変数をすべて処理するファイルです。user.init ファイルを変更すると、デフォルトの変数を無効にすることができます。このファイルには、各変数と、その変数の終了スクリプトでの影響と使用についての詳しい説明が記載されています。また、各変数の説明については、第 6 章を参照してください。

finish.init スクリプトに含まれている変数を使用すると、組織のセキュリティーポリシーと要件に合うように、大部分の終了スクリプトをカスタマイズすることができます。変数を使用すれば Solaris Security Toolkit ソフトウェアのほとんどすべての部分をカスタマイズできるため、ソースコードを変更する必要はありません。新しい Solaris Security Toolkit ソフトウェアリリースに移行する際の問題をできるだけ少なくするために、このスクリプトを使用することを強く推奨します。

この節では、Finish ディレクトリに格納されている標準の終了スクリプトについて説明します。Finish ディレクトリ内のスクリプトは、以下のカテゴリに分かれています。

これらの標準の終了スクリプトに加え、Solaris Security Toolkit ソフトウェアでは、製品固有の終了スクリプトも提供しています。製品固有の終了スクリプトのリストについては、製品固有の終了スクリプトの使用を参照してください。

無効化 (disable) 終了スクリプト

この節では、以下の無効化 (disable) 終了スクリプトについて説明します。

disable-ab2.fin

このスクリプトは、AnswerBook2trademark (ab2) サーバーが起動しないようにします。ab2 サーバーソフトウェアは、Solaris OS Server パックの Documentation CD-ROM に収録されています。Solaris OS バージョン 9 では ab2 ソフトウェアは使用されなくなったため、このスクリプトは Solaris OS バージョン 2.5.1 〜 8 を実行しているシステムにのみ適用されます。

disable-apache.fin

このスクリプトは、Solaris OS バージョン 8 と 9 に付属している Apache Web Server が起動しないようにします。このスクリプトで無効にするのは、Solaris OS Distribution パッケージに含まれている Apache サービスだけです。システムにインストールされているその他の Apache ソフトウェアには影響を与えません。このサービスについての詳細は、apache(1M) のマニュアルページを参照してください。

disable-asppp.fin

このスクリプトは、非同期ポイントツーポイントプロトコル (ASPPP) サービスが開始されないようにします。このサービスは、RFC 1331「The Point-to-Point Protocol (PPP) for the transmission of multi-protocol datagrams over Point-to-Point links」に記載されている機能を実装します。このスクリプトは、Solaris OS バージョン 2.5.1 〜 8 にのみ適用されます。Solaris 9 OS では、このサービスは PPP サービスに置き換わっており、disable-ppp.fin 終了スクリプトを使用して無効にします。この機能についての詳細は、aspppd(1M) のマニュアルページを参照してください。

disable-autoinst.fin



caution icon

注意 - sys-unconfig(1M) プログラムで提供されている機能を使用して、システムの構成を製造時の状態に戻す必要がある場合には、disable-autoinst.fin スクリプトを使用しないでください。





caution icon

注意 - JumpStart 環境を使用している場合は、以下の段落で説明する実行コントロール (起動) スクリプトを無効にして、侵入者によるシステムの再構成を防止してください。これらの実行コントロールスクリプトは、JumpStart 環境では使用しません。



このスクリプトは、自動構成に関連する実行コントロールスクリプトを無効にして、システムが再インストールされないようにします。実行コントロールスクリプトが使用されるのは、/etc/.UNCONFIGURED ファイルまたは /AUTOINSTALL ファイルが作成されている場合だけです。最初のインストールと構成が終われば、通常はこういったスクリプトを使用可能にしておく理由はありません。

disable-automount.fin



注 - このサービスは、遠隔手続き呼び出し (RPC) ポートマッパーに依存するため、disable-automount.fin使用されていないときは、disable-rpc.fin スクリプトも使用しないでください



このスクリプトは、NFS 自動マウントサービスを無効にします。自動マウントサービスは、autofs ファイルシステムからのファイルシステムのマウント要求とアンマウント要求に応答します。このスクリプトが使用されると、NFS 自動マウントサービスが無効になり、すべての自動マウントマップ形式が影響を受けます。この機能についての詳細は、automountd(1M) のマニュアルページを参照してください。

disable-dhcp.fin

このスクリプトは、Solaris OS バージョン 8 と 9 に搭載されている Dynamic Host Configuration Protocol (DHCP) Server を無効にします。このサービスについての詳細は、dhcpd(1M) のマニュアルページを参照してください。

disable-directory.fin

このスクリプトは、Solaris 9 OS に付属している Sun Java System Directory Server (旧称 Sun ONE Directory Server) が起動しないようにします。このスクリプトは、Sun Java System Directory Server 専用です。別パッケージの製品や、Solaris OS の他のバージョンに付属している Sun Java System Directory Server には影響を与えません。デフォルトでは、Solaris Security Toolkit ソフトウェアが無効にするのは、Solaris OS で提供されているサービスだけです。このサービスについての詳細は、directoryserver(1M) のマニュアルページを参照してください。

disable-dmi.fin

このスクリプトは、デスクトップ管理インタフェース (DMI) が起動しないようにします。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。このサービスについての詳細は、dmispd(1M) と snmpXdmid(1M) のマニュアルページを参照してください。

disable-dtlogin.fin



注 - このサービスは、RPC ポートマッパーに依存するため、disable-rpc.fin使用されていないときは、disable-dtlogin.fin スクリプトも使用しないでください



このスクリプトは、起動時に、共通デスクトップ環境 (CDE) サービスなどのウィンドウ環境が開始されないようにします。ただし、後からは (システムの起動後など)、ウィンドウ環境が開始されないようにはしません。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。このサービスについての詳細は、dtlogin(1X) と dtconfig(1) のマニュアルページを参照してください。

disable-ipv6.fin

このスクリプトは、/etc/hostname6.* 内の関連ホスト名ファイルを削除することにより、特定のネットワークインタフェースでの IPv6 の使用を無効にします。また、これにより、in.ndpd サービスが実行されなくなります。このスクリプトは、Solaris OS バージョン 8 または 9 を実行しているシステムにのみ適用されます。IPv6 機能がシステムで必要な場合は、このスクリプトを使用しないでください。

disable-kdc.fin

このスクリプトは、Kerberos 鍵配布センター (KDC) サービスが開始されないようにします。JASS_DISABLE_MODEconf に設定されていると、kdc.conf ファイルが無効になるので、Kerberos クライアントとしての機能に影響することに注意してください。Kerberos クライアントとしてシステムを機能させる必要がある場合は、このスクリプトをこの方法では使用しないでください。このスクリプトは、Solaris OS バージョン 9 を実行しているシステムにのみ適用されます。このサービスについての詳細は、krb5kdc(1M) と kdc.conf(4) のマニュアルページを参照してください。

disable-keyboard-abort.fin



注 - 一部のシステムには、キースイッチを安全位置に設定できるものがあります。これらのシステムでは、キースイッチを安全位置に設定すると、このコマンドによるソフトウェアのデフォルト設定が無効になります。



このスクリプトは、システムがキーボードのアボートシーケンスを無視するように構成します。通常、キーボードのアボートシーケンスが開始されると、オペレーティングシステムが中断されて、コンソールは OpenBoottrademark PROM モニターまたはデバッガに入ります。このスクリプトを使用すると、システムは中断されなくなります。この機能についての詳細は、kbd(1) のマニュアルページを参照してください。このスクリプトは、Solaris OS バージョン 2.6 〜 9 でのみ使用されます。

disable-keyserv-uid-nobody.fin

このスクリプトは、nobody UID によるセキュリティー保護された RPC へのアクセスを無効にします。Solaris 9 OS では、/etc/init.d/rpcENABLE_NOBODY_KEYS 変数を NO に設定すると、アクセスが無効になります。Solaris 9 OS より前のバージョンでは、/etc/init.d/rpc 実行コントロールファイルの keyserv コマンドに -d オプションを追加すると、アクセスが無効になります。このサービスについての詳細は、keyserv(1M) のマニュアルページを参照してください。

disable-ldap-client.fin

このスクリプトは、Lightweight Directory Access Protocol (LDAP) クライアントデーモンがシステム上で起動しないようにします。この LDAP クライアントデーモンは、システムにディレクトリ検索機能を提供するサービスです。システムが LDAP クライアントとして機能していたり、ディレクトリ検索機能を必要とする場合は、このスクリプトを使用しないでください。このスクリプトは、Solaris OS バージョン 8 および 9 に適用されます。このサービスについての詳細は、ldap_cachemgr(1M) と ldapclient(1M) のマニュアルページを参照してください。

disable-lp.fin

このスクリプトは、ラインプリンタ (lp) サービスが開始されないようにします。このスクリプトは、サービスを無効にするだけでなく、lp/etc/cron.d/cron.deny ファイルに追加して、/var/spool/cron/crontabs ディレクトリ内の lp コマンドをすべて削除することで、cron サブシステムへの lp ユーザーのアクセスも削除します。

lp パッケージがシステムにインストールされている場合もいない場合もあるため、このスクリプトは update-cron-deny.fin スクリプトとは機能が異なります。また、cron-deny-update.fin スクリプトで削除される機能は必要ありませんが、lp サブシステムは必要な場合があります。

disable-mipagent.fin

このスクリプトは、モバイルインターネットプロトコル (MIP) エージェントが開始されないようにします。このエージェントは、RFC 2002「IP Mobility Support」に記載されている MIP ホームエージェントと外部エージェント機能を実装するサービスです。このスクリプトは、Solaris OS バージョン 8 および 9 にのみ適用されます。このサービスについての詳細は、mipagent(1M) のマニュアルページを参照してください。

disable-named.fin



注 - このサービスを無効にしても、システムがドメインネームシステム (DNS) クライアントとして動作する機能には影響しません



このスクリプトは、named(1M) コマンドで DNS サーバーが起動されないようにします。このスクリプトは、Solaris OS に付属している DNS サービス専用です。

disable-nfs-client.fin



注 - このサービスが必要な場合には、このスクリプトを使用しないでください。また、このサービスは RPC サービスに依存しているため、disable-rpc.fin スクリプトも使用しないでください



このスクリプトは、NFS クライアントサービスが開始されないようにします。また、ネットワークステータスモニター (statd) デーモンとロックマネージャー (lockd) デーモンも無効にします。このスクリプトを使用した場合でも、管理者はシステム上に遠隔ファイルシステムをマウントすることができます。しかし、遠隔ファイルシステムでは、ステータスモニターデーモンやロックマネージャーデーモンは利用できません。このサービスについての詳細は、statd(1M) と lockd(1M) のマニュアルページを参照してください。

disable-nfs-server.fin

このスクリプトは、NFS サービスが開始されないようにします。また、NFS のログ、マウント、アクセスチェック、およびクライアントサービスのサポートを提供するデーモンも無効にします。システムが遠隔クライアントとファイルシステムを共有する必要がある場合は、このスクリプトを使用しないでください。このサービスについての詳細は、nfsd(1M)、mountd(1M)、および dfstab(4) のマニュアルページを参照してください。



注 - このサービスが必要な場合には、このスクリプトを使用しないでください。また、このサービスは RPC サービスに依存しているため、disable-rpc.fin スクリプトも使用しないでください



disable-nscd-caching.fin



caution icon

注意 - ネームサービスを集中的に使用しているシステムでは、パフォーマンスに影響する可能性があります。



このスクリプトは、ネームサービスキャッシュデーモン (NSCD) による passwdgrouphosts、および ipnodes エントリのキャッシュを無効にします。Solaris 8 OS では、役割によるアクセス制御 (RBAC) 機能のバグを修正する、パッチ 110386 バージョン 02 以降が適用されている必要があります。適用されていない場合は、エラーメッセージが表示されます。

NSCD は、ネームサービス要求のキャッシュを行います。このデーモンは、保留中の要求に対するパフォーマンスを向上させ、ネームサービスのネットワークトラフィックを削減するために用意されています。nscd では、passwdgrouphosts などのデータベースのキャッシュエントリを保持します。セキュリティー上の理由から、このデーモンではシャドウパスワードファイルはキャッシュしません。システムライブラリコールによるネームサービス要求はすべて、nscd に送られます。Solaris 8 OS では IPv6 と RBAC が追加されたため、nscd キャッシング機能は、さらに多くのネームサービスデータベースに対応するよう拡張されました。

ネームサービスデータをキャッシュすることで スプーフィング攻撃を受けやすくなるため、必要最低限のデータのみをキャッシュするように nscd の構成を変更することをお勧めします。ネームサービス要求がスプーフィング攻撃を受けやすいと考えられるときに、/etc/nscd.conf ファイルで正の数の生存時間 (ttl) をゼロに設定すれば、構成が変更されます。具体的には、passwdgroup、および Solaris 8 と 9 OS RBAC 情報の正負の数の ttl がゼロになるように、構成を変更してください。

nscd -g オプションは、サーバー上の現在の nscd 構成を表示するときに使用することができ、nscd を調整する際に役立つオプションです。

アプリケーションでは直接ネームサービス呼び出しを行って、これによりアプリケーションとネームサービスバックエンドのさまざまなバグを見つけ出しているため、完全に nscd を無効にすることはお勧めしません。

disable-picld.fin

このスクリプトは Platform Information and Control Library (PICL) サービスが開始されないようにします。このサービスを無効にすると、環境条件を監視するシステムの機能に影響することがあるため、注意して使用してください。このスクリプトは、Solaris OS バージョン 8 または 9 を実行しているシステムにのみ適用されます。このサービスについての詳細は、picld(1M) のマニュアルページを参照してください。

disable-power-mgmt.fin

このスクリプトは、電源管理サービスが開始されないようにします。(このサービスを使用すると、モニターの電源が切断し、ディスクが停止して、システム自体の電源も切断します。)このスクリプトを使用すると、電源管理機能が無効になります。また、システム管理者が JumpStart モードの自動インストール時に電源管理状態に関する問い合わせを受けないように、noautoshutdown ファイルも作成されます。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。このサービスについての詳細は、powerd(1M)、pmconfig(1M)、および power.conf(4) のマニュアルページを参照してください。

disable-ppp.fin

このスクリプトは、ポイントツーポイントプロトコル (PPP) サービスが開始されないようにします。このサービスは Solaris 8 OS (7/01) から導入され、以前の非同期 PPP サービスを補完するものです。このサービスでは、シリアルポイントツーポイントリンクを介して、データグラムを伝送する方法を提供します。このスクリプトは、Solaris OS バージョン 8 または 9 を実行しているシステムにのみ適用されます。このサービスについての詳細は、pppd(1M) と pppoed(1M) のマニュアルページを参照してください。

disable-preserve.fin

このスクリプトは、システムの再起動時に、保存されている (すでに編集が終わった) ファイルが /usr/preserve に移動されないようにします。通常、こういったファイルは、システムのクラッシュやセッションの損失が原因で突然終了したエディタによって作成されます。これらのファイルは、ファイル名の先頭に「Ex」が追加されて、/var/tmp に格納されます。

disable-remote-root-login.fin

このスクリプトは、直接遠隔 root ログインを行わないように、/etc/default/login ファイルの CONSOLE 変数を変更します。これは Solaris OS 2.5.1 最終更新バージョン以降でのデフォルトの動作でしたが、この設定が変更されないようにこのスクリプトが用意されています。この設定は、Secure Shell など、システムへのアクセス許可に /bin/login プログラムを使用しないように構成できるプログラムには影響を与えません。この機能についての詳細は、login(1) のマニュアルページを参照してください。

disable-rhosts.fin

このスクリプトは、/etc/pam.confPluggable Authentication Module (PAM) 構成を変更して、rloginrsh に対する rhosts 認証を無効にします。

disable-rlogin-rhosts.fin 終了スクリプトは、そのアクションが分かりやすいように disable-rhosts.fin に名前が変更されました。また、rhosts 認証がいずれのサービスでも無効となるように、/etc/pam.conf ファイルの rsh エントリと rlogin エントリが両方ともコメントアウトされます。

このスクリプトは、Solaris OS バージョン 2.6 〜 9 にのみ適用されます。この機能についての詳細は、in.rshd(1M)、in.rlogind(1M)、および pam.conf(4) のマニュアルページを参照してください。

disable-rpc.fin



注 - システムで、自動マウント、NFS、ネットワーク情報サービス (NIS)、NIS+、CDE、およびボリューム管理 (Solaris OS バージョン 9 のみ) のいずれかのサービスを使用している場合は、RPC ポートマッパー機能を無効にしないでください。



このスクリプトは、遠隔手続き呼び出し (RPC) サービスが開始されないようにします。このサービスを無効にすると、NFS や CDE などの付属サービスと、Sun Cluster などの別パッケージのサービスに影響を与えることに注意してください。また、サン以外のソフトウェアパッケージには、このサービスが利用可能であることを前提としているものもあります。このサービスを無効にするときは、RPC サービスを必要とするサービスやツールがないことを確認してから行ってください。このサービスについての詳細は、rpcbind(1M) のマニュアルページを参照してください。

disable-samba.fin

このスクリプトは、Samba ファイルと印刷の共有サービスが開始されないようにします。このスクリプトで無効にするのは、Solaris OS Distribution パッケージに含まれている Samba サービスだけです。システムにインストールされているその他の Samba ソフトウェアには影響を与えません。このサービスについての詳細は、smbd(1M)、nmbd(1M)、および smb.conf(4) のマニュアルページを参照してください。

disable-sendmail.fin



注 - Solaris Security Toolkit ソフトウェアの変更では、Solaris OS で電子メールが受信されないようにするだけです。送信する電子メールは正常に処理されます。



このスクリプトは、Solaris OS バージョン 2.5.1、2.6、および 7 では、sendmail デーモンの起動スクリプトと停止スクリプトを無効にし、cron サブシステムに 1 時間に 1 回 sendmail を実行するエントリを追加します。

Solaris 8 OS では、同様の機能を実装する /etc/default/sendmail ファイルがインストールされています。この方法では送信電子メールをパージするため、デーモンを継続的に実行させるよりもセキュリティーが確保されます。

Solaris 9 OS では、また別の sendmail オプションが実装されており、デーモンはループバックインタフェース上で待機のみを行います。詳細については、Sun BluePrints OnLine 掲載記事『Solaris Operating Environment Security: Updated for Solaris Operating Environment 9』を参照してください。

disable-slp.fin

このスクリプトは、サービスロケーションプロトコル (SLP) サービスが開始されないようにします。このサービスは、Internet Engineering Task Force (IETF) により発行される RFC 2165 および RFC 2608 の定義に従って、SLP バージョン 1 および 2 に共通サーバー機能を提供します。SLP は、ネットワークサービスの検出と選択を行うスケーラブルなフレームワークを提供します。このスクリプトは、Solaris OS バージョン 8 または 9 を実行しているシステムにのみ適用されます。このサービスについての詳細は、slpd(1M) のマニュアルページを参照してください。

disable-sma.fin

このスクリプトは、NET-SNMP に基づくシステム管理エージェント (SMA) サービスが開始されないようにします。

disable-snmp.fin

このスクリプトは、Simple Network Management Protocol (SNMP) サービスが開始されないようにします。システムで機能しているサン以外の SNMP エージェントを、このスクリプトで無効にすることはできません。このスクリプトで無効にできるのは、Solaris OS に搭載されている SNMP エージェントだけです。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。このサービスについての詳細は、snmpdx(1M) と mibiisa(1M) のマニュアルページを参照してください。

disable-spc.fin

このスクリプトは、SunSofttrademark Print Client 起動スクリプトをすべて無効にします。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。

disable-ssh-root-login.fin

このスクリプトは、root アカウントへの遠隔アクセスを制限するように、Solaris 9 OS に搭載されている Secure Shell サービスを構成します。デフォルトでは、Solaris 9 OS に付属の Secure Shell によって、遠隔 root アクセスが拒否されます。このスクリプトは Secure Shell サービスの機能を確認して、それによって、disable-remote-root-login.fin スクリプトの機能と同様のメカニズムを実行します。/etc/ssh/sshd_configPermitRootLogin パラメータが no に設定されます。この機能についての詳細は、sshd_config(4) のマニュアルページを参照してください。

disable-syslogd-listen.fin



注 - SYSLOG サーバーには遠隔でログに記録する機能があるので、このスクリプトは SYSLOG サーバーでは使用しないでください。



このスクリプトは、ログシステムメッセージ (syslogd) サービスが遠隔ログメッセージを受け取らないようにします。Solaris 9 OS より前の Solaris OS バージョンでは、-t オプションが syslogd(1M) コマンド行に追加されます。Solaris 9 OS では、/etc/default/syslogd ファイルの LOG_FROM_REMOTE 変数が NO に設定されます。このスクリプトによって、デーモンが User Diagram Protocol (UDP) ポート 514 で待機しなくなることに注意してください。システムログサービスを使用し、遠隔システムからのシステムログメッセージを受信する必要がないシステムでは、このスクリプトは便利です。

disable-system-accounts.fin

このスクリプトは、root 以外の特定の未使用のシステムアカウントを無効にします。JASS_ACCT_DISABLE 変数に、システムで無効にするアカウントのリストを明示的に列挙します。

disable-uucp.fin

このスクリプトは、UNIX-to-UNIX コピープログラム (UUCP) 起動スクリプトを無効にします。また、nuucp システムアカウントが、/var/spool/cron/crontabs ディレクトリ内の uucp crontab エントリとともに削除されます。このサービスについての詳細は、uucp(1C) と uucico(1M) のマニュアルページを参照してください。

disable-vold.fin



注 - リムーバブルメディア (フロッピーディスク、CD-ROM など) の自動取り付けおよび取り外しを行う必要がある場合は、このスクリプトを使用しないでください





注 - Solaris OS バージョン 9 でこのサービスが必要な場合は、このスクリプトを使用しないでください。また、このサービスは RPC サービスと rpc.smserverd サービスに依存しているため、これらのサービスを無効にしないでください。RPC サービスを無効にしないときには、disable-rpc.fin スクリプトを使用しないでください。同様に、rpc.smserverd サービスを無効にしないときには、JASS_SVCS_ENABLE パラメータに、rpc.smserverd サービスを表わす 100155 を追加してください。



このスクリプトは、ボリューム管理デーモン (VOLD) が起動しないようにします。vold は、/vol に格納されるファイルシステムイメージを作成して維持管理するデーモンです。デフォルトでは、このイメージには、フロッピーディスク、CD-ROM などのリムーバブルメディアデバイスの記号名が含まれます。このサービスについての詳細は、vold(1M) のマニュアルページを参照してください。

disable-wbem.fin



注 - このサービスが必要な場合には、このスクリプトを使用しないでください。また、このサービスは RPC サービスに依存しているため、disable-rpc.fin スクリプトも使用しないでください



このスクリプトは、Web-Based Enterprise Management (WBEM) サービスが開始されないようにします。WBEM は、エンタープライズコンピューティング環境の管理を統合する、管理およびインターネット関連テクノロジです。Distributed Management Task Force (DMTF) によって開発された WBEM を使用すると、組織で WWW テクノロジをサポートおよび促進する標準ベースの統合管理ツールセットを配布できるようになります。Solaris Management Console を使用する必要がある場合は、このスクリプトを使用しないでください。このスクリプトは、Solaris OS バージョン 8 または 9 を実行しているシステムにのみ適用されます。このサービスについての詳細は、wbem(5) のマニュアルページを参照してください。

disable-xserver.listen.fin

このスクリプトは、ポート 6000 で TCP を介して要求を待機および受信する X11 サーバー機能を無効にします。このスクリプトは、/etc/dt/config/Xserversファイルの X サーバー構成行に、オプション -nolisten TCP を追加します。このファイルが存在していない場合は、/usr/dt/config/Xservers の元の場所からコピーされます。このスクリプトは、Solaris 9 OS にのみ適用されます。この機能についての詳細は、Xserver(1) のマニュアルページを参照してください。

有効化 (enable) 終了スクリプト

この節では、以下の有効化 (enable) 終了スクリプトについて説明します。

enable-32bit-kernel.fin

このスクリプトは、Sun SPARC システムの EEPROM で使用される boot-file 変数の値を /kernel/unix に設定します。この設定により、32 ビットカーネルを使用してシステムが起動するようになります。Solaris OS バージョン 7、8、および 9 で実行可能で、32 ビット専用モードで実行されなければならない製品には便利です。このスクリプトは、Sun4Utrademark システムにのみ適用されます。32 ビットモード OS のみサポートするアプリケーションを使用している環境での便宜を図るために、このスクリプトは用意されています。

enable-bsm.fin

このスクリプトは、SunSHIELDtrademark Solaris 基本セキュリティーモジュール (BSM) 監査サービスを有効にします。また、Sun BluePrints OnLine 掲載記事『Auditing in the Solaris 8 Operating Environment』に記載されているデフォルトの監査構成もインストールします。必要に応じて、audit_warn という別名が追加され、これには root アカウントが割り当てられます。また、アボートシーケンスを許可するために、アボート無効コードが無効にされます。この設定は、プラットフォームへの物理的なアクセスが常に可能とは限らない、完全自動データセンター環境で最も使用されています。システムの再起動後に、Solaris BSM サブシステムが有効になり、監査が開始されます。このサービスについての詳細は、bsmconv(1M) のマニュアルページを参照してください。

enable-coreadm.fin

このスクリプトは、Solaris OS バージョン 7、8、および 9 に搭載されている coreadm 機能を構成します。生成されたコアファイルを、JASS_CORE_DIR で指定したディレクトリに格納するようにシステムを構成します。さらに、コアファイルに関する情報が収集できるように、各コアファイルには JASS_CORE_PATTERN で指定されたタグが付けられます。通常、収集される情報には、実行可能なプロセス名とコアファイルの作成日時だけでなく、プロセス ID、実効ユーザー ID、およびプロセスの実効グループ ID も含まれます。この機能についての詳細は、coreadm(1M) のマニュアルページを参照してください。

enable-ftp-syslog.fin

このスクリプトは、in.ftpd デーモンに、SYSLOG サブシステム経由で試みられたファイル転送プロトコル (FTP) アクセスをすべて記録させます。/etc/inetd/inetd.conf ファイルの in.ftpd コマンドに -l オプションを追加すると、このオプションが有効になります。詳細は、in.ftpd(1M) のマニュアルページを参照してください。

enable-ftpaccess.fin

このスクリプトは、Solaris 9 OS での FTP サービスの ftpaccess 機能を有効にします。set-banner-ftp.fin スクリプトと set-ftpd-umask.fin スクリプトで行ったセキュリティー変更を使用するためには、この機能が必要です。たとえば、セキュリティー変更とは、デフォルトのあいさつ文、ファイル生成マスク、および ftpaccess(4) マニュアルページに記載されているその他のパラメータを設定する変更です。このスクリプトは、/etc/inet/inetd.conf ファイルの in.ftpd エントリに -a 引数を追加します。このスクリプトは、Solaris OS バージョン 9 を実行しているシステムにのみ適用されます。

enable-inetd-syslog.fin

このスクリプトは、着信 TCP 接続要求をすべて記録するように、インターネットサービスデーモン (INETD) を構成します。つまり、inetd デーモンが待機している TCP サービスに接続されると、SYSLOG によるログエントリが行われます。Solaris 9 OS より前のバージョンでは、-t オプションを inetd コマンド行に追加してログを有効にします。Solaris 9 OS では、/etc/default/inetd ファイルの ENABLE_CONNECTION_LOGGING 変数を YES に設定します。

enable-priv-nfs-ports.fin



注 - すでに /etc/system ファイルでキーワード値ペアが定義されている場合は、このファイルの値が正しく設定されていることを確認するために書き直されます。まだ定義されていない場合は、キーワード値ペアがファイルに付加されます。



このスクリプトは、制限付き NFS ポートアクセスを有効にするように、/etc/system ファイルを変更します。変数を設定すると、1024 より小さいポートから発信されている NFS 要求だけが受信されます。

enable-process-accounting.fin

必要な Solaris OS パッケージ (現在は、SUNWaccrSUNWaccu) がシステムにインストールされている場合、このスクリプトは、Solaris OS プロセスアカウンティングを有効にします。このサービスについての詳細は、acct(1M) のマニュアルページを参照してください。

enable-rfc1948.fin

このスクリプトは、RFC 1948 のサポートを有効にする /etc/default/inetinit ファイルを作成または変更します。(この RFC では、コネクションごとに一意の ID シーケンス番号を生成する方法が定義されています。)/etc/default/inetinit ファイルの変数 TCP_STRONG_ISS を 2 に設定します。詳細は、http://ietf.org/rfc1948.html を参照してください。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。

enable-stack-protection.fin



注 - このスクリプトの変数を設定してシステムを再起動すると、スタックを直接実行しようとしても拒否され、SYSLOG を介して試みられたスタック実行が記録されます。一般的なバッファーオーバーフロー攻撃からシステムを保護するときに、この機能を有効にします。



SPARC システムでのみ、この スクリプトは、/etc/system ファイルを変更して、スタックの保護と例外のログ記録を有効にします。noexec_user_stack noexec_user_stack_log/etc/systemファイルに追加すると、これらのオプションが有効になります。

すでに /etc/system ファイルでキーワード値ペアが定義されている場合は、このファイルの値が正しく設定されていることを確認するために書き直されます。まだ定義されていない場合は、キーワード値ペアがファイルに付加されます。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。この機能を有効にすると、システムが SPARC バージョン 8 の アプリケーションバイナリインタフェース (ABI) に適合しなくなるため、一部のアプリケーションで問題が発生する可能性があります。

Solaris OS バージョン 9 では、コアの Solaris 実行可能ファイルの多くがマップファイル (/usr/lib/ld/map.noexstk) に対してリンクされています。このマップファイルでプログラムのスタックを実行不可にすると、このスクリプトと同様の機能が提供されます。しかし、この変更はシステムに対してグローバルなものとなるため、このスクリプトをそのまま使用することをお勧めします。

enable-tcpwrappers.fin



注 - サンプルの hosts.allow ファイルと hosts.deny ファイルは、組織に適した構成となるようにカスタマイズしてから使用してください。ファイルテンプレートは、JASS_ROOT_DIR/Files/etc に格納されています。



このスクリプトは、TCP ラッパーを使用するようにシステムを構成します。Solaris 9 OS に付属する TCP ラッパーを使用すると、管理者は TCP サービスへのアクセスを制限することができます。デフォルトでは、/etc/inet/inetd.conf ファイルで stream, nowait として定義されているすべてのサービスが保護されます。このスクリプトは、ENABLE_TCPWRAPPERS パラメータを YES に設定するように /etc/default/inetd ファイルを構成します。さらに、TCP ラッパーで保護されるサービスへのアクセスを制御する、サンプルの /etc/hosts.allow ファイルと /etc/hosts.deny ファイルもインストールします。

インストール (install) 終了スクリプト

この節では、以下のインストール (install) 終了スクリプトについて説明します。

install-at-allow.fin

このスクリプトは、/etc/cron.dat.allow ファイルを作成して、at コマンドの実行を制限します。そして、このファイルに、JASS_AT_ALLOW 変数で定義されたユーザーのリストを格納します。at アクセスを要求するユーザーはすべて、この at.allow ファイルに追加する必要があります。at 機能と batch 機能へのアクセスを判定するときには、このスクリプトを update-at-deny.fin スクリプトとともに使用してください。この機能についての詳細は、at(1) のマニュアルページを参照してください。

install-fix-modes.fin



注 - FixModes ソフトウェアで実行される変更は Solaris 9 OS に統合されていますが、別パッケージのアプリケーションやサン以外のアプリケーションの多くにとって FixModes を使用するメリットがあるため、今までとおり FixModes を使用することをお勧めします。



このスクリプトは、JASS_PACKAGE_DIR ディレクトリからクライアントに fix-modes ソフトウェアをコピーし、そのプログラムを実行します。(FixModes ソフトウェアは Casper Dik により作成されています。参考文献を参照してください。) FixModes ソフトウェアは、Solaris システムのアクセス権を強化するために使用します。

install-ftpusers.fin

このスクリプトは、FTP サービスへのアクセスの制限に使用される ftpusers ファイルを作成または変更します。また、JASS_FTPUSERS 変数にリストされているユーザーを ftpusers ファイルに追加します。ただし、ユーザーを追加するのは、このファイルにユーザー名が含まれていない場合だけです。

デフォルトの ftpusers ファイルは、Solaris OS バージョン 8 と 9 に含まれています。このファイルへのパスはバージョンによって異なります。Solaris OS バージョン 8 以前のファイルパスは /etc です。Solaris OS バージョン 9 のパスは、/etc/ftpd です。着信 FTP サービスの使用を許可しないアカウントをすべて、このファイルで指定する必要があります。少なくともこのファイルには、root アカウントだけでなく、すべてのシステムアカウント (たとえば、binuucpsmtpsys など) を含めるようにしてください。これらのアカウントは、侵入者や未承認アクセスを試みるユーザーのターゲットとなることが多いためです。Telnet 経由でのサーバーへの root アクセスが無効になることはよくありますが、FTP 経由での root アクセスが無効になることはありません。この構成では、変更した構成ファイルをアップロードしてシステム構成を変更しようとする侵入者は、バックドアを設置できます。

install-Sun_ONE-WS.fin

このスクリプトは、対象プラットフォームに Sun Java System Web Server ソフトウェアをインストールします。JumpStart テクノロジを使用したソフトウェアの自動インストール方法のサンプルとして、このスクリプトが用意されています。詳細については、Sun BluePrints OnLine 掲載記事『Minimizing the Solaris Operating Environment』を参照してください。

install-jass.fin

このスクリプトは、Solaris Security Toolkit ソフトウェアが実行されるときに、JumpStart クライアント上に自動的に Solaris Security Toolkit ソフトウェアをインストールします。クライアントにパッチをインストールした後で Solaris Security Toolkit ソフトウェアが実行可能な状態になるように、この方法を使用します。Solaris Security Toolkit ソフトウェアパッケージのインストールは、Solaris OS コマンド pkgadd を使用して行われます。デフォルトでは、Solaris Security Toolkit ソフトウェアパッケージは /opt/SUNWjass ディレクトリにインストールされますが、このスクリプトでは JASS_PACKAGE_DIR ディレクトリにインストールされます。

install-loginlog.fin

このスクリプトは、システムで使用される /var/adm/loginlog ファイルを作成し、失敗したログインを記録します。失敗したログインは、ログインの最大失敗回数を超えてから記録されます。この回数は、/etc/default/login 構成ファイルに設定されている RETRIES 変数で指定します。set-login-retries.fin スクリプトも参照してください。詳細は、loginlog(4) のマニュアルページを参照してください。

install-md5.fin

このスクリプトは、メッセージダイジェスト 5 (MD5) アルゴリズムソフトウェアを自動的にインストールします。このソフトウェアは、ファイルシステムオブジェクトのデジタルフィンガープリントを作成するときに使用されます。このソフトウェアについては、Sun BluePrints OnLine 掲載記事『The Solaris Fingerprint Database - A Security Tool for Solaris Software and Files』に記載されています。デフォルトでは、MD5 ソフトウェアは JASS_MD5_DIR パラメータで指定されているディレクトリにインストールされます。

install-nddconfig.fin

このスクリプトは、nddconfig ファイルをインストールします。このファイルは、Sun BluePrints OnLine 掲載記事『Solaris Operating Environment Network Settings for Security』に基づき、よりセキュリティー保護された値を各種ネットワークパラメータに設定するときに使用されます。

install-newaliases.fin

このスクリプトは、newaliases シンボリックリンクを /usr/lib/sendmail プログラムに追加します。SUNWnisu パッケージがインストールされていないか、または削除されている場合、最小化インストールを行う際に、このリンクが必要となることがあります。このリンクは、newaliasesSUNWnisu パッケージに含まれていた Solaris OS バージョン 2.5.1 〜 8 を実行しているシステムで必要です。

install-openssh.fin



注 - Solaris 9 OS には Secure Shell ソフトウェアが含まれているので、Solaris 9 OS をインストールするときはこのスクリプトは使用しません。



このスクリプトは、OpenSSH の OpenBSD バージョンを /opt/OBSDssh にインストールします。このスクリプトが記述されているパッケージは、Sun BluePrints OnLine 掲載記事『Configuring OpenSSH for the Solaris Operating Environment』の記載に基づいています。ホストキーが存在する場合は、このスクリプトはホストキーを上書きしません。

OBSDssh-3.5p1-sparc-sun4u-5.8.pkg というストリーム形式パッケージの Solaris OS が、JASS_PACKAGE_DIR ディレクトリ内にあることを前提として、インストールが行われます。

install-recommended-patches.fin

このスクリプトは、JASS_HOME_DIR/Patches ディレクトリにある適用可能なパッチを JumpStart サーバーにインストールします。スクリプトが正常に実行できるように、適切な推奨およびセキュリティパッチクラスタをダウンロードし、JASS_HOME_DIR/Patches ディレクトリに圧縮解除します。

install-sadmind-options.fin

このスクリプトは、JASS_SADMIND_OPTIONS 環境変数で指定されているオプションを、/etc/inet/inetd.conf ファイルの sadmind デーモンのエントリに追加します。このサービスについての詳細は、sadmind(1M) のマニュアルページを参照してください。

install-security-mode.fin

このスクリプトは、OpenBoot PROM セキュリティーモードの現在の状態を表示します。このスクリプトでは直接 EEPROM パスワードを設定しないため、JumpStart のインストール時に EEPROM パスワードの設定をスクリプト作成することはできません。スクリプトを出力すると、コマンド行から EEPROM パスワードを設定する方法がわかります。このスクリプトは、SPARC テクノロジベースのシステムにのみ適用されます。この機能についての詳細は、eeprom(1M) のマニュアルページを参照してください。

install-shells.fin



注 - このスクリプトでシェルを /etc/shells ファイルに追加するのは、シェルがシステム上に存在し、実行可能で、このファイルに含まれていない場合だけです。



このスクリプトは、JASS_SHELLS 環境変数で指定されているユーザーシェルを /etc/shells ファイルに追加します。Solaris OS 関数 getusershell(3C) は、システム上の有効なシェルを判定するときに /etc/shells ファイルで主に使用されます。詳細は、shells(4) のマニュアルページを参照してください。JASS_SHELLS 環境変数についての詳細は、JASS_SHELLSを参照してください。

install-strong-permissions.fin



caution icon

注意 - Solaris Security Toolkit ソフトウェアでは、このスクリプトによる変更を自動的に元に戻すことはできないため、このスクリプトを使用するときは注意してください。このスクリプトで設定するアクセス権が、使用する環境とアプリケーションに適していることを確認してください。



このスクリプトは、システム上でグループおよびユーザーのアクセスを制限することにより、各種のアクセス権と所有権を変更して、セキュリティーを向上させます。

install-sulog.fin

このスクリプトは、すべてのスーパーユーザー (su) の試行動作を記録できるようにする /var/adm/sulog ファイルを作成します。この機能についての詳細は、sulog(4) のマニュアルページを参照してください。

install-templates.fin

このスクリプトは特別な用途のためなので、ドライバから直接呼び出さないでください。JASS_FILES パラメータまたはいずれかの OS 固有値が空でない場合に、このスクリプトが driver.run プログラムから直接呼び出されます。このスクリプトは、対象システム上にファイルテンプレートのコピーを自動的に作成します。当初、この機能は driver.run スクリプトにありましたが、ファイルテンプレートの検証をよりサポートするために別スクリプトに分けられました。この終了スクリプトは、必要となったときに、JASS_FILES パラメータの内容に基づいて最初に実行されます。

最小化 (minimize) 終了スクリプト

Solaris OS 最小化手順を実装する方法のスクリプト例として、minimize-Sun_ONE-WS.fin スクリプトが用意されています。このスクリプトは、Sun Java System Web Server ソフトウェアが実行されている、Web サーバーとして使用されているシステムを最小化するときに使用されます。

印刷 (print) 終了スクリプト

この節では、以下の印刷 (print) 終了スクリプトについて説明します。

print-jass-environment.fin

このスクリプトは、Solaris Security Toolkit ソフトウェアで使用される環境変数をすべて印刷します。このスクリプトは診断を目的としたもので、多くの場合、環境変数を使用する前にその状態を記録できるように、ドライバの最初に呼び出されます。

print-jumpstart-environment.fin

このスクリプトは、JumpStart のインストールで使用されるすべての環境変数を印刷します。このスクリプトは診断を目的としたもので、JumpStart のインストール時に発生した問題のデバッグに役立ちます。

print-rhosts.fin

このスクリプトは、JASS_ROOT_DIR ディレクトリ内の任意のディレクトリに格納されている、.rhosts ファイルと hosts.equiv ファイルをすべて一覧表示します。JASS_RHOSTS_FILE 変数が定義されていない場合、結果は標準出力に表示されます。この変数が定義されている場合は、結果はすべて指定されているファイルに書き込まれます。

print-sgid-files.fin

このスクリプトは、設定グループ ID アクセス権を持つ JASS_ROOT_DIR ディレクトリ内の任意のディレクトリにあるファイルをすべて印刷します。JASS_SGID_FILE 変数が定義されていない場合、結果は標準出力に表示されます。この変数が定義されている場合は、結果はすべて指定されているファイルに書き込まれます。

print-suid-files.fin

このスクリプトは、設定ユーザー ID アクセス権を持つ JASS_ROOT_DIRディレクトリ内の任意のディレクトリにあるファイルをすべて印刷します。JASS_SUID_FILE 変数が定義されていない場合、結果は標準出力に表示されます。この変数が定義されている場合は、結果はすべて指定されているファイルに書き込まれます。

print-unowned-objects.fin

このスクリプトは、有効なユーザーやグループが割り当てられていないシステム上のファイル、ディレクトリ、およびその他のオブジェクトをすべて、JASS_ROOT_DIR から順に一覧表示します。JASS_UNOWNED_FILE 変数が定義されていない場合、結果は標準出力に表示されます。

print-world-writable-objets.fin

このスクリプトは、システム上の world-writable オブジェクトをすべて、JASS_ROOT_DIR から順に一覧表示します。JASS_WRITABLE_FILE 変数が定義されていない場合、結果は標準出力に表示されます。この変数が定義されている場合は、結果はすべて指定されているファイルに書き込まれます。

削除 (remove) 終了スクリプト

remove-unneeded-accounts.fin スクリプトは、passmgmt コマンドを使用して、/etc/passwd ファイルと /etc/shadow ファイルから、未使用の Solaris OS アカウントを削除します。このスクリプトは、JASS_ACCT_REMOVE 変数で定義されているアカウントを削除します。

設定 (set) 終了スクリプト

この節では、以下の設定 (set) 終了スクリプトについて説明します。

set-banner-dtlogin.fin

このスクリプトは、dtlogin サービスのサービスバナーをインストールします。このバナーは、共通デスクトップ環境 (CDE) で提供されるようなグラフィカルインタフェースを使用して、システムへの認証に成功すると、ユーザーに表示されます。このスクリプトは、ファイルテンプレート JASS_ROOT_DIR/etc/dt/config/Xsession.d/0050.warning で指定されているファイルの内容を表示するようにシステムを構成します。デフォルトでは、/etc/motd ファイルの内容が表示されます。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。

set-banner-ftpd.fin

このスクリプトは、変数 JASS_BANNER_FTPD で定義されているファイル転送プロトコル (FTP) サービスバナーをインストールします。Solaris OS 8 以前のバージョンでは、このバナーは /etc/default/ftpd ファイルで BANNER 変数を使用して定義されます。Solaris OS バージョン 9 では、このバナーは /etc/ftpd/banner.msg ファイルを使用して定義されます。詳細は、in.ftpd(1M) または ftpaccess(4) (Solaris 9 OS の場合) のマニュアルページを参照してください。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。

install-ftpaccess.fin スクリプトを使用していない場合は、Solaris OS バージョン 9 システムでこのスクリプトを使って行った変更は有効になりません。

set-banner-telnet.fin

このスクリプトは、変数 JASS_BANNER_TELNET で定義されている Telnet サービスバナーをインストールします。このバナーは、/etc/default/telnetd ファイルの BANNER 変数を使用して定義されます。詳細は、in.telnetd(1M) のマニュアルページを参照してください。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。

set-banner-sendmail.fin

このスクリプトは、変数 JASS_BANNER_SENDMAIL で定義されている Sendmail サービスバナーをインストールします。このバナーは、/etc/mail/sendmail.cf ファイルの SmtpGreetingMessage パラメータまたは De パラメータを使用して定義されます。Solaris OS バージョン 7、8、および 9 では、SmtpGreetingMessage パラメータが使用されます。それ以前の Solaris OS リリースでは、De パラメータを使用してこの機能を実装します。詳細は、sendmail(1M) のマニュアルページを参照してください。

set-banner-sshd.fin

このスクリプトは、システムの認証の前に /etc/issue の内容をユーザーに表示するよう Secure Shell サービスを構成することにより、Secure Shell サービスバナーをインストールします。このタスクは、/etc/ssh/sshd_config ファイルで Banner パラメータを /etc/issue に設定すれば実行されます。この機能についての詳細は、sshd_config(4) のマニュアルページを参照してください。このスクリプトは、Solaris OS バージョン 9 を実行しているシステムでのみ使用されます。

set-ftpd-umask.fin

このスクリプトは、FTP サービス用のデフォルトのファイル生成マスクを設定します。Solaris 9 OS より前のバージョンでは、JASS_FTPD_UMASK 変数で定義されている UMASK 値を /etc/default/ftpd ファイルに追加することで、デフォルトのファイル生成マスクを設定します。Solaris 9 OS では、/etc/ftpd/ftpaccess ファイルで定義されている defumask パラメータを設定します。詳細は、in.ftpd(1M) または ftpaccess(4) (Solaris 9 OS の場合) のマニュアルページを参照してください。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。

install-ftpaccess.fin スクリプトを使用していない場合は、Solaris OS バージョン 9 システムでこのスクリプトを使って行った変更は有効になりません。

set-login-retries.fin

このスクリプトは、/etc/default/login ファイルの RETRIES 変数を、JASS_LOGIN_RETRIES 変数で定義されている値に設定します。ログしきい値を下げると、より多くの情報を取得できます。install-loginlog.fin スクリプトを使用すると、試みて失敗したログインを記録できます。この機能についての詳細は、login(1) のマニュアルページを参照してください。

set-power-restrictions.fin

このスクリプトは、JASS_POWER_MGT_USER 変数と JASS_CPR_MGT_USER 変数を使用して、/etc/default/power の構成を変更し、電源管理機能へのユーザーアクセスを制限します。その結果、システムの電源管理と中断/再開機能へのアクセスが制御されます。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。このスクリプトは、たとえば PROM プロンプトでの電源切断など、ソフトウェアで制御可能な電源装置に対してのみ機能します。

set-rmmount-nosuid.fin



注 - Solaris OS バージョン 8 および 9 はデフォルトで、nosuid オプションを指定してリムーバブルメディアをマウントするように構成されています。このスクリプトは、デフォルトの設定に関係なく、必要なチェックを実行します。



このスクリプトは、/etc/rmmount.conf ファイルに 2 つのエントリを追加して、Set-UID ファイルのマウントを無効にします。システムにアクセスできるユーザーがフロッピーディスクや CD-ROM を挿入して Set-UID バイナリを読み込むと、システムが危険にさらされる可能性があるため、マウントを無効にすることが重要です。この機能についての詳細は、rmmount.conf(4) のマニュアルページを参照してください。

set-root-group.fin

このスクリプトは、root ユーザーの一次グループを、グループ識別子 #1 (GID 1other) から JASS_ROOT_GROUP に変更します。これにより、root ユーザーと非特権ユーザーが共通グループになることはありません。

set-root-password.fin



注 - このスクリプトは、JumpStart ソフトウェアのインストール時にのみ実行されます。Solaris Security Toolkit ソフトウェアがコマンド行から呼び出された場合は、実行されません。



このスクリプトは、root パスワードを JASS_ROOT_PASSWORD で定義された初期値に自動的に設定します。このスクリプトで使用されるパスワードは、インストール時にのみ使用し、JumpStart のインストール処理が正常に終了したら、直ちに変更する必要があります。デフォルトでは、JASS_ROOT_PASSWORD パラメータで使用されるパスワードは t00lk1t です。

set-sys-suspend-restrictions.fin

このスクリプトは、JASS_SUSPEND_PERMS 変数に基づいて、/etc/default/sys-suspend の構成を変更し、中断および再開機能へのユーザーアクセスを制限します。このスクリプトは、Solaris OS バージョン 2.6 〜 9 を実行しているシステムにのみ適用されます。詳細は、sys-suspend(1M) のマニュアルページを参照してください。

set-system-umask.fin

このスクリプトは、実行コントロールスクリプトすべてが、JASS_UMASK の設定に基づいた安全なファイル生成マスクで実行されるようにします。不適切に選択されたファイル生成マスクを使用すると、重要なファイルが任意のユーザーから書き込み可能状態になるおそれがあるため、この設定は重要です。

Solaris 8 OS より前のバージョンでは、このスクリプトが各実行レベルで起動スクリプトを作成し、それによってファイル生成マスクを JASS_UMASK に設定します。Solaris OS バージョン 8 および 9 では、/etc/default/initCMASK 変数は JASS_UMASK に設定されます。この機能についての詳細は、init(1M) のマニュアルページを参照してください。

set-term-type.fin

このスクリプトは、システムで dtterm が認識されない問題を回避するように、vt100 のデフォルトの端末タイプを設定します。このスクリプトは主に、グラフィカルコンソールを備えておらず、通常は端末コンソールまたはその他のシリアルリンクを介してアクセスするシステムで使用されます。このスクリプトは便宜上の理由から用意されているだけであり、システムのセキュリティーには影響を与えません。

set-tmpfs-limit.fin

このスクリプトは、tmpfs ファイルシステムの一部として使用可能なディスク容量の制限を設定します。この制限により、メモリーの使い果たしを防止することができます。このスクリプトがデフォルトで制限する使用可能ディスク容量は、JASS_TMPFS_LIMIT で定義されている値です。Solaris OS バージョン 2.5.1 では、この set-tmpfs-limit.fin スクリプトはサポートされていないため実行できません。この機能についての詳細は、mount_tmpfs(1M) のマニュアルページを参照してください。

set-user-password-reqs.fin

このスクリプトで行う変更によって、次回システムでパスワードが変更される際のシステムのパスワードポリシーが構成されます。セキュリティー強化処理によってアプリケーションと操作機能に悪影響がないように、このプロファイルをさらに調整する必要があります。

このスクリプトでは、以下の機能を有効にすると、より厳密なパスワード要件を使用できます。

このスクリプトは、JASS_AGING_MINWEEKSJASS_AGING_MAXWEEKSJASS_AGING_WARNWEEKS、および JASS_PASSLENGTH 変数で定義されている値を使用して、/etc/default/passwd ファイルに適切なエントリを設定することで、要件を実装します。特に、非特権ユーザーからのアクセスがあるシステムで、このスクリプトの使用をお勧めします。

このスクリプトで変更するのは、/etc/default/passwd ファイルの設定だけです。任意のユーザーに対するパスワードの有効期限は有効にしません。パスワードの有効期限要件は、次回のパスワード変更時に、各ユーザーに対して実装されます。パスワード変更まで待たずに、パスワードの有効期限を有効にするには、passwd(1) コマンドを使用してください。

set-user-umask.fin

このスクリプトは、デフォルトのファイル生成マスク (UMASK) を、ユーザー起動ファイル /etc/.login/etc/profile/etc/skel/local.cshrc/etc/skel/local.login/etc/skel/local.profile、および /etc/default/loginJASS_UMASK で定義されている値に設定します。

更新 (update) 終了スクリプト

この節では、以下の更新 (update) 終了スクリプトについて説明します。

update-at-deny.fin

このスクリプトは、JASS_AT_DENY にリストされているアカウントを、/etc/cron.d/at.deny ファイルに追加します。このスクリプトは、これらのアカウントを持つユーザーの at 機能と batch 機能の使用を拒否します。at 機能と batch 機能へのアクセスを判定するときには、このスクリプトを install-at-allow.fin スクリプトとともに使用します。この機能についての詳細は、at(1) のマニュアルページを参照してください。

update-cron-allow.fin

このスクリプトは、JASS_CRON_ALLOW にリストされているアカウントを、/etc/cron.d/cron.allow ファイルに追加します。このスクリプトは、これらのアカウントを持つユーザーの cron 機能の使用を許可します。cron 機能へのアクセスを判定するときには、このスクリプトを update-cron-deny.fin スクリプトとともに使用します。この機能についての詳細は、crontab(1) のマニュアルページを参照してください。

update-cron-deny.fin

このスクリプトは、JASS_CRON_DENY にリストされているアカウントを、/etc/cron.d/cron.deny ファイルに追加します。このスクリプトは、これらのアカウントを持つユーザーの cron 機能の使用を拒否します。cron 機能へのアクセスを判定するときには、このスクリプトを update-cron-allow.fin スクリプトとともに使用します。このスクリプトでは、root アカウントユーザーのアクセスは無効にしません。この機能についての詳細は、crontab(1) のマニュアルページを参照してください。

update-cron-log-size.fin

このスクリプトは、cron ログ情報の格納に使用する最大サイズ制限を調整します。Solaris 9 OS より前のバージョンでは、/etc/cron.d/logchecker スクリプトの LIMIT 変数を調整します。Solaris 9 OS では、(/var/cron/log エントリについて) /etc/logadm.conf ファイルの -s パラメータを調整します。

このスクリプトで使用されるサイズ制限は、JASS_CRON_LOG_SIZE 環境変数によって決まります。Solaris OS で定義されているデフォルトの制限は 0.5 MB です。

update-inetd-conf.fin

このスクリプトは、JASS_SVCS_DISABLE 変数で定義されている、inetd で始まるすべてのサービスを無効にします。つまり、このスクリプトでは、JASS_SVCS_ENABLE 変数で表示されるサービスを有効にします。同じサービスが両方の変数に含まれている場合は、そのサービスは有効になります。JASS_SVCS_ENABLE 変数の方が優先されます。

in.telnetdin.ftpdin.rshd などの共通サービスを含む、基本 OS のすべてのサービスが、Solaris OS バージョン 2.5.1 〜 9 ではデフォルトで無効になります。/etc/inet/inetd.conf ファイルのサービスエントリの各行の先頭に # を挿入することで、サービスを無効にしています。別パッケージまたはサン以外のソフトウェアによってインストールされた追加サービスは、無効になりません。


製品固有の終了スクリプトの使用

この節では、特定のサン製品のセキュリティー強化を行う、製品固有の終了スクリプトについて説明します。これらのスクリプトは、Finish ディレクトリに格納されています。製品固有の終了スクリプトを 表 4-1 に示します。

サンの新製品や更新されたサン製品のセキュリティーを強化するために、定期的に新しい終了スクリプトがリリースされます。最新のスクリプトのリストについては、以下の Security Web サイトを参照してください。

http://www.sun.com/security/jass

表 4-1 製品固有の終了スクリプト

製品

ドライバ名

Sun Cluster 3.x ソフトウェア

suncluster3x-set-nsswitch-conf.fin

Sun Fire ハイエンドシステムドメイン

s15k-static-arp.fin

s15k-install-klmmod-loader.fin

Sun Fire ハイエンドシステムシステムコントローラ

s15k-static-arp.fin

s15k-exclude-domains.fin

s15k-sms-secure-failover.fin


suncluster3x-set-nsswitch-conf.fin

このスクリプトは、システムを Sun Cluster 3.x ノードとして自動的に構成します。このスクリプトは、クラスターキーワードを /etc/nsswitch.conf ファイルに設定して、Sun Cluster 3.x システムの配布を簡略化します。キーワードはホストフィールドに格納する必要があります。このスクリプトは Sun Cluster 3.x システムにのみ適用され、他のシステムでは実行されません。

詳細については、Sun BluePrints OnLine 掲載記事『Securing Sun Cluster 3.x Software』を参照してください。

s15k-static-arp.fin



注 - このスクリプトは Sun Fire ハイエンドシステムの SC およびドメインにのみ適用され、他のシステムでは実行されません。



このスクリプトは、I1 MAN ネットワーク上の静的 ARP アドレスを有効にします。I1 MAN ネットワークは Sun Fire ハイエンドシステムのシャーシ内蔵ネットワークで、SC とドメイン間での TCP/IP ベースの通信に使用されます。動的 ARP の代わりに静的 ARP を使用することにより、SC に対する ARP ベースの攻撃を無効にします。

Sun Fire ハイエンドシステムのオプションの s15k-static-arp.fin スクリプトでは、以下の 4 つのファイルが使用されます。

詳細については、Sun BluePrints OnLine 掲載記事『Securing the Sun Fire 12K and 15K System Controller』と『Securing the Sun Fire 12K and 15K Domains』を参照してください。

s15k-exclude-domains.fin

このスクリプトは、SC と 1 つまたは複数のドメイン間の TCP/IP 接続を無効にします。詳細については、Sun BluePrints OnLine 掲載記事『Securing the Sun Fire 12K and 15K System Controller』を参照してください。

s15k-install-klmmod-loader.fin

このドメイン専用スクリプトは、Sun Fire ハイエンドシステムドメインの開始時に misc/klmmod カーネルモジュールを読み込む、実行時コントロールスクリプト klmmod を追加します。

s15k-sms-secure-failover.fin

このスクリプトは、フェイルオーバーデーモン fomd による Secure Shell の使用を自動的に有効にします。このスクリプトは、Secure Shell 構成の多くを自動的に行うだけでなく、従来の r* サービスを無効にします。このスクリプトは Sun Fire ハイエンドシステム SC にのみ適用され、他のシステムでは実行されません。

詳細については、Sun BluePrints OnLine 掲載記事『Securing the Sun Fire 12K and 15K System Controller』を参照してください。