第5章 |
|
この章では、終了スクリプトの使用、追加、変更、および削除について説明します。この章で取り上げるスクリプトは、Solaris OS システムを強化および最小化するために Solaris Security Toolkit ソフトウェアで使用されるスクリプトです。
Solaris Security Toolkit ソフトウェアのデフォルトのスクリプトは、OS の動作を必要とせずに、ネットワークサービスを含むすべてのサービスを無効にします。使用環境によっては、この処理が適していない場合もあります。使用しているシステムに必要なセキュリティー変更を確認してから、この章に記載されている情報を使用して変更を行なってください。
終了スクリプトは、Solaris Security Toolkit ソフトウェアの中核としての機能を果たします。このスクリプトは、大部分のセキュリティー変更を一括して実行します。また、セキュリティープロファイル (ドライバ) の設計に応じて、それに伴う変更を、さまざまな方法で組み合わせたりグループ化することができる単独ファイルに取り出します。
この節では、既存の終了スクリプトのカスタマイズと、新しい終了スクリプトの作成についての手順と推奨事項を説明します。また、終了スクリプト機能を使用する際のガイドラインについても説明します。
注 - 変更をより多くのユーザーのために役立てたいときは、拡張機能に関するバグレポートや要望を提出することをご検討ください。Solaris Security Toolkit 開発チームは、ユーザーに役立つソフトウェアの改善方法を常に求めております。 |
終了スクリプトは、Solaris Security Toolkit ドライバと同じように、カスタマイズすることができます。Solaris Security Toolkit ソフトウェアで提供されているスクリプトは、変更しないでください。直接元のスクリプトを変更せずに、必ず終了スクリプトのコピーを作成して、それを変更するようにしてください。元のスクリプトを変更すると、Solaris Security Toolkit ソフトウェアをアップグレードまたは削除するときに、変更が失われる可能性があります。できる限りスクリプトの変更は必要最低限にとどめ、その変更について記録に残しておいてください。
終了スクリプトは、環境変数を使用してカスタマイズします。Solaris Security Toolkit に含まれる大部分の終了スクリプトの動作はこの方法でカスタマイズできるため、実際のスクリプトを変更する必要はありません。この方法が使用できない場合には、コードを変更する必要があります。
すべての環境変数のリストと、環境変数を定義する際のガイドラインについては、第 7 章を参照してください。
終了スクリプトをカスタマイズするには |
元のファイルが更新されたときに、カスタマイズしたファイルが更新された新しいファイルで上書きされないように終了スクリプトをカスタマイズするには、次の手順を実行します。なお、pkgrm コマンドを使用してソフトウェアを削除しても、カスタマイズしたファイルは削除されません。
1. カスタマイズするスクリプトとその関連ファイルをコピーします。
2. コピーしたファイルを、カスタムスクリプトおよびカスタムファイルとして識別される名前に変更します。
命名規則については、『Solaris Security Toolkit 4.2 管理マニュアル』の第 1 章「Solaris Security Toolkit ソフトウェアの構成およびカスタマイズ」を参照してください。
コード例 5-1 では、install-openssh.fin を使用してソフトウェアを自動的にインストールする方法を示しています。このコーディング例では、OpenSSH のバージョンを "2.5.2p2" としていますが、OpenSSH の現在のバージョンは "3.5p1" です。当然、インストールするバージョンは、そのソフトウェアがインストールされた時期によって異なります。このスクリプトは、市販の Secure Shell 製品をサポートするように変更することもできます。
この場合、異なるバージョンの OpenSSH をサポートするようにこのスクリプトを変更する唯一の方法は、直接このスクリプトを変更する方法です。変更を終了したら、スクリプトの新しい名前がわかるように、このスクリプトを使用しているセキュリティープロファイルを変更してください。
注 - すでに述べたように、Solaris Security Toolkit ソフトウェアのほとんどの機能は変数でカスタマイズできるので、このスクリプトを直接変更する方法が必要となることはめったにないはずです。 |
通常、キーワード 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 シェルで作成されるため、新機能を追加するのは比較的簡単です。Solaris 10 OS では、スタンドアロンでの監査と強化で Perl が使用できるため、Solaris 10 OS を実行しているシステム用の Solaris Security Toolkit スクリプトは Perl で書くことができます。UNIX シェルスクリプトの作成経験があまりない開発者は、同様の機能を実行する既存の終了スクリプトを調べて、目的のタスクを実行する方法を習得し、アクションの正しい順序を理解してください。
新しい終了スクリプトを作成するときは、以下の規則を考慮してください。これらの規則を理解していれば、スタンドアロンモードおよび JumpStart モードでスクリプトは確実に機能するようになります。
新しい終了スクリプトを追加するときは、対応する監査スクリプトも必ず追加してください。監査スクリプトは、既存システム上での変更の状態を判定するときに使用されるスクリプトです。詳細については、第 6 章を参照してください。
/ ディレクトリがシステムの実際の root ディレクトリであることを前提にして、スクリプトを構成しないでください。スクリプトの構成が適切でないと、ターゲットの実際の root ディレクトリが /a であった場合、スクリプトは JumpStart モードでは機能しなくなります。この規則は、JASS_ROOT_DIR 環境変数を使用すれば簡単に実現できます。この環境変数とその他の環境変数についての詳細は、第 7 章を参照してください。
ときには、終了スクリプトで使用するプログラムが、再配置された root ディレクトリをサポートしていない場合があります。その場合には、すでに説明したように、chroot(1M) コマンドを相対 root ディレクトリ内で実行する必要があります。たとえば、usermod(1M) コマンドは、ユーザーに代替 root ディレクトリの指定を許可しません。この場合、次のように chroot(1M) コマンドを使用する必要があります。
Solaris Security Toolkit ソフトウェアでは、プラットフォームの実際の root ディレクトリの位置を自動的に検出し、その値を JASS_ROOT_DIR 変数に割り当てます。root ファイルシステムの特定のパスをハードコードするのではなく、この変数を使用してください。たとえば、終了スクリプト内で /etc/default/login を使用する代わりに、JASS_ROOT_DIR/etc/default/login を使用してください。
フレームワーク関数を使用すると、新しいスクリプトによる変更が、他の場所での変更と整合性が保たれていることと、変更を安全に元に戻せることが保証されます。フレームワーク関数のリストについては、第 2 章を参照してください。
Solaris Security Toolkit のすべての機能を正しく、矛盾のないように動作させるフレームワーク関数の例は次のとおりです。
たとえば、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 つの関数がフレームワークに含まれています。
これらの関数についての詳細は、第 2 章を参照してください。
終了スクリプトは、実際に変更を行う必要があるかどうかを検出できなければなりません。
たとえば、/etc/default/inetinit スクリプトにすでに TCP_STRONG_ISS=2 という設定があるかどうかを、enable-rfc1948.fin スクリプトでチェックするとします。この設定があれば、ファイルをバックアップしたり、他の変更を行う必要はありません。
この方法により、不必要なバックアップファイル数が減るだけでなく、同じファイルで何回も重複した変更を行うことから発生するエラーや混乱を防止することもできます。また、この機能を実装すると、終了スクリプトに対応している監査スクリプトの実装に必要なコードの作成も適切に実行することができます。
終了スクリプトは、セキュリティー強化処理時にシステムの変更と更新を行います。終了スクリプトがそのほかの処理や操作で使用されることはありません。
finish.init ファイルは、終了スクリプトの構成変数をすべて処理するファイルです。user.init ファイルを変更すると、デフォルトの変数を無効にすることができます。このファイルには、各変数と、その変数の終了スクリプトでの影響と使用についての詳しい説明が記載されています。また、各変数の説明については、第 7 章を参照してください。
finish.init スクリプトに含まれている変数を使用すると、組織のセキュリティーポリシーと要件に合うように、大部分の終了スクリプトをカスタマイズすることができます。変数を使用すれば Solaris Security Toolkit ソフトウェアのほとんどすべての部分をカスタマイズできるため、ソースコードを変更する必要はありません。新しい Solaris Security Toolkit ソフトウェアリリースに移行する際の問題をできるだけ少なくするために、このスクリプトを使用することを強く推奨します。
この節では、Finish ディレクトリに格納されている標準の終了スクリプトについて説明します。Finish ディレクトリ内のスクリプトは、以下のカテゴリに分かれています。
これらの標準の終了スクリプトに加え、Solaris Security Toolkit ソフトウェアでは、製品固有の終了スクリプトも提供しています。製品固有の終了スクリプトのリストについては、製品固有の終了スクリプトの使用を参照してください。
この節では、以下の無効化 (disable) 終了スクリプトについて説明します。
注 - Solaris OS 9 以降では ab2 ソフトウェアは使用されなくなったため、このスクリプトは Solaris OS バージョン 2.5.1 〜 8 を実行しているシステムでのみ使用します。 |
このスクリプトは、AnswerBook2 (ab2) サーバーが起動しないようにします。ab2 サーバーソフトウェアは、Solaris OS Server パックの Documentation CD-ROM に収録されています。
このスクリプトは、Solaris OS バージョン 8 と 9 の配布パッケージに付属している Apache Web サーバーのみが起動しないようにします。システムにインストールされているそのほかの Apache ソフトウェアには影響を与えません。このサービスについての詳細は、apache(1M) のマニュアルページを参照してください。
このスクリプトは、Solaris 10 OS の配布パッケージにのみ付属している Apache 2 サービスのみが起動しないようにします。システムにインストールされているその他の Apache ソフトウェアには影響を与えません。このサービスについての詳細は、apache(1M) のマニュアルページを参照してください。
このスクリプトは、Solaris 10 オペレーティングシステムの配布パッケージに付属している Sun Java Application Server が起動しないようにします。
注 - このスクリプトは、Solaris OS バージョン 2.5.1 〜 8 にのみ使用します。Solaris OS バージョン 9 および 10 では、このサービスは PPP サービスに置き換わっており、disable-ppp.fin 終了スクリプトを使用して無効にします。 |
このスクリプトは、非同期ポイントツーポイントプロトコル (ASPPP) サービスが開始されないようにします。このサービスは、RFC 1331「The Point-to-Point Protocol (PPP) for the transmission of multi-protocol datagrams over Point-to-Point links」に記載されている機能を実装します。この機能についての詳細は、aspppd(1M) のマニュアルページを参照してください。
注意 - sys-unconfig(1M) プログラムで提供されている機能を使用して、システムの構成を製造時の状態に戻す必要がある場合には、disable-autoinst.finスクリプトを使用しないでください。 |
注意 - JumpStart 環境を使用している場合は、以下の段落で説明する実行コントロール (起動) スクリプトを無効にして、侵入者によるシステムの再構成を防止してください。これらの実行コントロールスクリプトは、JumpStart 環境では使用しません。 |
このスクリプトは、自動構成に関連する実行コントロールスクリプトを無効にして、システムが再インストールされないようにします。実行コントロールスクリプトが使用されるのは、/etc/.UNCONFIGURED ファイルまたは /AUTOINSTALL ファイルが作成されている場合だけです。最初のインストールと構成が終われば、通常はこういったスクリプトを使用可能にしておく理由はありません。
注 - この NFS 自動マウントサービスは、遠隔手続き呼び出し (RPC) ポートマッパーに依存するため、disable-automount.fin が使用されていないときは、disable-rpc.fin スクリプトも使用しないでください。 |
このスクリプトは、NFS 自動マウントサービスを無効にします。自動マウントサービスは、autofs ファイルシステムからのファイルシステムのマウント要求とアンマウント要求に応答します。このスクリプトが使用されると、NFS 自動マウントサービスが無効になり、すべての自動マウントマップ形式が影響を受けます。この機能についての詳細は、automountd(1M) のマニュアルページを参照してください。
注 - このスクリプトは、Solaris OS バージョン 8、9 および 10 を実行しているシステムでのみ使用します。 |
このスクリプトは、Solaris OS バージョン 8、9、および 10 に搭載されている Dynamic Host Configuration Protocol (DHCP) サーバーを無効にします。このサービスについての詳細は、dhcpd(1M) のマニュアルページを参照してください。
注 - このスクリプトは、Solaris OS バージョン 9 および 10 に付属している Sun Java System Directory Server にのみ使用します。 |
このスクリプトは、Sun Java System Directory Server (旧称 Sun ONE Directory Server) が起動しないようにします。別パッケージの製品や、9 および 10 以外のバージョンの Solaris OS に付属している Sun Java System Directory Server には影響を与えません。デフォルトでは、Solaris Security Toolkit ソフトウェアが無効にするのは、Solaris OS で提供されているサービスだけです。このサービスについての詳細は、directoryserver(1M) のマニュアルページを参照してください。
このスクリプトは、デスクトップ管理インタフェース (DMI) が起動しないようにします。このサービスについての詳細は、dmispd(1M) と snmpXdmid(1M) のマニュアルページを参照してください。
注 - このサービスは、RPC ポートマッパーに依存するため、disable-rpc.fin が使用されていないときは、disable-dtlogin.fin スクリプトも使用しないでください。 |
このスクリプトは、起動時に、共通デスクトップ環境 (CDE) サービスなどのウィンドウ環境が開始されないようにします。ただし、後からは (システムの起動後など)、ウィンドウ環境が開始されないようにはしません。このサービスについての詳細は、dtlogin(1X) と dtconfig(1) のマニュアルページを参照してください。
SUNWfac のパッケージである Framed Access Command Environment (FACE) には誰でも書き込み可能なログファイル /usr/oasys/tmp/TERRLOG が含まれています。このスクリプトはグループおよびその他のユーザーの書き込み権を削除するため、root アカウントのみがファイルに書き込むことができます。つまり、スクリプトはファイル上のアクセス権を次のように変更します。
ログファイル /usr/oasys/tmp/TERRLOG は、/var ではなく、多くの場合ルートファイルシステム上にある /usr の下にあるため、これはサービス拒否攻撃に使用される可能性があります。FACE ログは便利な機能ですが、システム操作には重要ではない場合があります。この機能が必要でない場合は、無効にします。
このスクリプトは、Internet-Intranet Input Method (IIim) デーモンと HyperText Transfer (htt) サーバーが起動しないようにします。IIim デーモンはあるポートにバインドされている htt エージェントで、htt ソフトウェアからの要求を待ち受けます。要求を受け取ると、IIim はその要求を処理し、必要な情報を収集し、必要な操作を実行して、最終的には要求元に情報を返します。IIim は、韓国語、簡体字中国語、繁体字中国語などの国際言語で情報を伝送する際に特に便利です。
注 - このスクリプトは、Solaris OS バージョン 8、9 および 10 を実行しているシステムでのみ使用します。IPv6 機能がシステムで必要な場合は、このスクリプトを使用しないでください。 |
このスクリプトは、/etc/hostname6.* 内の関連ホスト名ファイルを削除することにより、特定のネットワークインタフェースでの IPv6 の使用を無効にします。また、これにより、in.ndpd サービスが実行されなくなります。
このスクリプトは、Kerberos 鍵配布センター (KDC) サービスが開始されないようにします。
このサービスについての詳細は、krb5kdc(1M) と kdc.conf(4) のマニュアルページを参照してください。
注 - 一部のシステムには、キースイッチを安全位置に設定できるものがあります。これらのシステムでは、キースイッチを安全位置に設定すると、このコマンドによるソフトウェアのデフォルト設定が無効になります。 |
このスクリプトは、システムがキーボードのアボートシーケンスを無視するように構成します。通常、キーボードのアボートシーケンスが開始されると、オペレーティングシステムが中断されて、コンソールは OpenBoot PROM モニターまたはデバッガに入ります。このスクリプトを使用すると、システムは中断されなくなります。この機能についての詳細は、kbd(1) のマニュアルページを参照してください。
このスクリプトは、nobody UID によるセキュリティー保護された RPC へのアクセスを無効にします。
このサービスについての詳細は、keyserv(1M) のマニュアルページを参照してください。
注 - このスクリプトは、Solaris OS バージョン 8、9 および 10 を実行しているシステムでのみ使用します。 |
このスクリプトは、Lightweight Directory Access Protocol (LDAP) クライアントデーモンがシステム上で起動しないようにします。この LDAP クライアントデーモンは、システムにディレクトリ検索機能を提供するサービスです。システムが LDAP クライアントとして機能していたり、ディレクトリ検索機能を必要とする場合は、このスクリプトを使用しないでください。このサービスについての詳細は、ldap_cachemgr(1M) と ldapclient(1M) のマニュアルページを参照してください。
このスクリプトは、ラインプリンタ (lp) サービスが開始されないようにします。このスクリプトは、サービスを無効にするだけでなく、lp を /etc/cron.d/cron.deny ファイルに追加して、/var/spool/cron/crontabs ディレクトリ内の lp コマンドをすべて削除することで、cron サブシステムへの lp ユーザーのアクセスも削除します。
lp パッケージがシステムにインストールされている場合もいない場合もあるため、このスクリプトは update-cron-deny.fin スクリプトとは機能が異なります。また、cron-deny-update.fin スクリプトで削除される機能は必要ありませんが、lp サブシステムは必要な場合があります。
注 - このスクリプトは、Solaris OS バージョン 8、9、および 10 を実行しているシステムでのみ使用します。 |
このスクリプトは、モバイルインターネットプロトコル (MIP) エージェントが開始されないようにします。このエージェントは、RFC 2002 「IP Mobility Support」 に記載されている MIP ホームエージェントと外部エージェント機能を実装するサービスです。このサービスについての詳細は、mipagent(1M) のマニュアルページを参照してください。
注 - このスクリプトは、Solaris OS に付属しているドメインネームシステム (DNS) サービス専用です。このサービスを無効にしても、システムが DNS クライアントとして動作する機能には影響しません。 |
このスクリプトは、named(1M) コマンドで DNS サーバーが起動されないようにします。
注 - NFS クライアントサービスが必要な場合には、このスクリプトを使用しないでください。また、このサービスは RPC サービスに依存しているため、disable-rpc.fin スクリプトも使用しないでください。 |
このスクリプトは、NFS クライアントサービスが開始されないようにします。また、ネットワークステータスモニター (statd) デーモンとロックマネージャー (lockd) デーモンも無効にします。このスクリプトを使用した場合でも、管理者はシステム上に遠隔ファイルシステムをマウントすることができます。しかし、遠隔ファイルシステムでは、ステータスモニターデーモンやロックマネージャーデーモンは利用できません。このサービスについての詳細は、statd(1M) と lockd(1M) のマニュアルページを参照してください。
注 - システムが遠隔クライアントとファイルシステムを共有する必要がある場合は、このスクリプトを使用しないでください。NFS サーバーサービスが必要な場合には、このスクリプトを使用しないでください。また、このサービスは RPC サービスに依存しているため、disable-rpc.fin スクリプトも使用しないでください。 |
このスクリプトは、NFS サービスが開始されないようにします。また、NFS のログ、マウント、アクセスチェック、およびクライアントサービスのサポートを提供するデーモンも無効にします。このサービスについての詳細は、nfsd(1M)、mountd(1M)、および dfstab(4) のマニュアルページを参照してください。
このスクリプトは、ネームサービスキャッシュデーモン (NSCD) による passwd、group、hosts、および ipnodes エントリのキャッシュを無効にします。Solaris 8 OS では、役割によるアクセス制御 (RBAC) 機能のバグを修正する、パッチ 110386 バージョン 02 以降が適用されている必要があります。適用されていない場合は、エラーメッセージが表示されます。
NSCD は、ネームサービス要求のキャッシュを行います。このデーモンは、保留中の要求に対するパフォーマンスを向上させ、ネームサービスのネットワークトラフィックを削減するために用意されています。nscd では、passwd、group、hosts などのデータベースのキャッシュエントリを保持します。セキュリティー上の理由から、このデーモンではシャドウパスワードファイルはキャッシュしません。システムライブラリコールによるネームサービス要求はすべて、nscd に送られます。Solaris 8 OS では IPv6 と RBAC が追加されたため、nscd キャッシング機能は、さらに多くのネームサービスデータベースに対応するよう拡張されました。
ネームサービスデータをキャッシュすることで スプーフィング攻撃を受けやすくなるため、必要最低限のデータのみをキャッシュするように nscd の構成を変更することをお勧めします。ネームサービス要求がスプーフィング攻撃を受けやすいと考えられるときに、/etc/nscd.conf ファイルで正の数の生存時間 (ttl) をゼロに設定すれば、構成が変更されます。具体的には、passwd、group、および Solaris 8、9 および 10 OS RBAC 情報の正負の数の ttl がゼロになるように、構成を変更してください。
nscd -g オプションは、サーバー上の現在の nscd 構成を表示するときに使用することができ、nscd を調整する際に役立つオプションです。
アプリケーションでは直接ネームサービス呼び出しを行なって、これによりアプリケーションとネームサービスバックエンドのさまざまなバグを見つけ出しているため、完全に nscd を無効にすることはお勧めしません。
このスクリプトは Platform Information and Control Library (PICL) サービスが開始されないようにします。このサービスを無効にすると、環境条件を監視するシステムの機能に影響することがあるため、注意して使用してください。このサービスについての詳細は、picld(1M) のマニュアルページを参照してください。
注 - このスクリプトは、Solaris OS バージョン 2.6 〜 10 を実行しているシステムにのみ適用されます。 |
このスクリプトは、電源管理サービスが開始されないようにします。(電源管理サービスを使用すると、モニターの電源が切断し、ディスクが停止して、システム自体の電源も切断します。) このスクリプトを使用すると、電源管理機能が無効になります。また、システム管理者が JumpStart モードの自動インストール時に電源管理状態に関する問い合わせを受けないように、noautoshutdown ファイルも作成されます。このサービスについての詳細は、powerd(1M)、pmconfig(1M)、および power.conf(4) のマニュアルページを参照してください。
注 - このスクリプトは、Solaris OS バージョン 8、9、および 10 を実行しているシステムでのみ使用します。 |
このスクリプトは、ポイントツーポイントプロトコル (PPP) サービスが開始されないようにします。このサービスは Solaris 8 OS (7/01) から導入され、以前の非同期 PPP サービスを補完するものです。このサービスでは、シリアルポイントツーポイントリンクを介して、データグラムを伝送する方法を提供します。このサービスについての詳細は、pppd(1M) と pppoed(1M) のマニュアルページを参照してください。
このスクリプトは、システムの再起動時に、保存されている (すでに編集が終わった) ファイルが /usr/preserve に移動されないようにします。通常、こういったファイルは、システムのクラッシュやセッションの損失が原因で突然終了したエディタによって作成されます。これらのファイルは、ファイル名の先頭に Ex が追加されて、/var/tmp に格納されます。
このスクリプトは、直接遠隔 root ログインを行わないように、/etc/default/login ファイルの CONSOLE 変数を変更します。これは Solaris OS 2.5.1 最終更新バージョン以降でのデフォルトの動作でしたが、この設定が変更されないようにこのスクリプトが用意されています。この設定は、Secure Shell など、システムへのアクセス許可に /bin/login プログラムを使用しないように構成できるプログラムには影響を与えません。この機能についての詳細は、login(1) のマニュアルページを参照してください。
このスクリプトは、/etc/pam.conf の Pluggable Authentication Module (PAM) 構成を変更して、rlogin と rsh に対する rhosts 認証を無効にします。
disable-rlogin-rhosts.fin 終了スクリプトは、そのアクションがわかりやすいように disable-rhosts.fin に名前が変更されました。また、rhosts 認証がいずれのサービスでも無効となるように、/etc/pam.conf ファイルの rsh エントリと rlogin エントリが両方ともコメントアウトされます。
この機能についての詳細は、in.rshd(1M)、in.rlogind(1M)、および pam.conf(4) のマニュアルページを参照してください。
このスクリプトは、あるネットワークから別のネットワークへのネットワークパケットのルーティング、つまり「パケット転送」を無効にします。
注意 - システムで、自動マウント、NFS、ネットワーク情報サービス (NIS)、NIS+、CDE、およびボリューム管理 (Solaris OS バージョン 9 および 10 のみ) のいずれかのサービスを使用している場合は、RPC ポートマッパー機能を無効にしないでください。 |
このスクリプトは、遠隔手続き呼び出し (RPC) サービスが開始されないようにします。このサービスを無効にすると、NFS や CDE などの付属サービスと、Sun Cluster ソフトウェアなどの別パッケージのサービスに影響を与えることに注意してください。また、サン以外のソフトウェアパッケージには、このサービスが利用可能であることを前提としているものもあります。このサービスを無効にするときは、RPC サービスを必要とするサービスやツールがないことを確認してから行なってください。このサービスについての詳細は、rpcbind(1M) のマニュアルページを参照してください。
注意 - secure.driverドライバを使用してセキュリティー保護されたシステムは、disable-rpc.finスクリプトが含まれているため、JumpStart や NIS を使用できません。代わりに、disable-rpc.finスクリプトを含まない新しいドライバを作成する必要があります。 |
このスクリプトは、Samba ファイルと印刷の共有サービスが開始されないようにします。このスクリプトで無効にするのは、Solaris OS Distribution パッケージに含まれている Samba サービスだけです。システムにインストールされているそのほかの Samba ソフトウェアには影響を与えません。このサービスについての詳細は、smbd(1M)、nmbd(1M)、および smb.conf(4) のマニュアルページを参照してください。
注 - Solaris Security Toolkit ソフトウェアの変更では、Solaris OS で電子メールが「受信」されないようにするだけです。送信する電子メールは正常に処理されます。 |
このスクリプトは、システムが実行している Solaris OS のバージョンに基づいて、さまざまな sendmail のオプションを無効にします。
注 - このスクリプトは、Solaris OS バージョン 8、9、および 10 を実行しているシステムでのみ使用します。 |
このスクリプトは、サービスロケーションプロトコル (SLP) サービスが開始されないようにします。このサービスは、Internet Engineering Task Force (IETF) により発行される RFC 2165 および RFC 2608 の定義に従って、SLP バージョン 1 および 2 に共通サーバー機能を提供します。SLP は、ネットワークサービスの検出と選択を行うスケーラブルなフレームワークを提供します。このサービスについての詳細は、slpd(1M) のマニュアルページを参照してください。
このスクリプトは、NET-SNMP サービスに基づくシステム管理エージェント (SMA) サービスが開始されないようにします。
このスクリプトは、Simple Network Management Protocol (SNMP) サービスが開始されないようにします。システムで機能しているサン以外の SNMP エージェントを、このスクリプトで無効にすることはできません。このスクリプトで無効にできるのは、Solaris OS 配布パッケージに搭載されている SNMP エージェントだけです。このサービスについての詳細は、snmpdx(1M) と mibiisa(1M) のマニュアルページを参照してください。
このスクリプトは、SunSoft Print Client 起動スクリプトをすべて無効にします。
このスクリプトは、root アカウントへの遠隔アクセスを制限するように、Solaris OS バージョン 9 および 10 に搭載されている Secure Shell サービスを構成します。デフォルトでは、Solaris 9 および 10 OS に付属の Secure Shell によって、遠隔 root アクセスが拒否されます。このスクリプトは Secure Shell サービスの機能を確認して、それによって、disable-remote-root-login.fin スクリプトの機能と同様のメカニズムを実行します。/etc/ssh/sshd_config の PermitRootLogin パラメータが no に設定されます。この機能についての詳細は、sshd_config(4) のマニュアルページを参照してください。
注 - SYSLOG サーバーはネットワーク上のほかのマシンに関する SYSLOG メッセージを待機および受信できなければなりませんが、その機能はこの終了スクリプトにより無効になっているため、このスクリプトは SYSLOG サーバーでは使用しないでください。このスクリプトは、Solaris OS バージョン 8、9、および 10 を実行しているシステムでのみ使用します。 |
このスクリプトは、ログシステムメッセージ (syslogd) サービスが遠隔ログメッセージを受け取らないようにします。
このスクリプトによって、デーモンが User Diagram Protocol (UDP) ポート 514 で待機しなくなります。SYSLOG メッセージをローカルに格納する、または SYSLOG メッセージを別のネットワークアクセス可能なシステムに転送するシステムでは、このスクリプトは便利です。
このスクリプトは、root 以外の特定の未使用のシステムアカウントを無効にします。JASS_ACCT_DISABLE 変数に、システムで無効にするアカウントのリストを明示的に列挙します。
このスクリプトは、UNIX-to-UNIX コピープログラム (UUCP) 起動スクリプトを無効にします。また、nuucp システムアカウントが、/var/spool/cron/crontabs ディレクトリ内の uucp crontab エントリとともに削除されます。このサービスについての詳細は、uucp(1C) と uucico(1M) のマニュアルページを参照してください。
注 - リムーバブルメディア (フロッピーディスク、CD-ROM など) の自動取り付けおよび取り外しを行う必要がある場合は、このスクリプトを使用しないでください。 |
このスクリプトは、ボリューム管理デーモン (VOLD) が起動しないようにします。vold は、/vol に格納されるファイルシステムイメージを作成して維持管理するデーモンです。デフォルトでは、このイメージには、フロッピーディスク、CD-ROM などのリムーバブルメディアデバイスの記号名が含まれます。このサービスについての詳細は、vold(1M) のマニュアルページを参照してください。
注 - このスクリプトは、Solaris OS バージョン 8、9、および 10 を実行しているシステムでのみ使用します。 |
注 - WBEM サービスが必要な場合、または Solaris Management Console を使用する必要がある場合は、このスクリプトを使用しないでください。また、このサービスは RPC サービスに依存しているため、disable-rpc.fin スクリプトも使用しないでください。 |
このスクリプトは、Web-Based Enterprise Management (WBEM) サービスが開始されないようにします。WBEM は、エンタープライズコンピューティング環境の管理を統合する、管理およびインターネット関連テクノロジです。Distributed Management Task Force (DMTF) によって開発された WBEM を使用すると、組織で WWW テクノロジをサポートおよび促進する標準ベースの統合管理ツールセットを配布できるようになります。このサービスについての詳細は、wbem(5) のマニュアルページを参照してください。
このスクリプトは、フォントファイルをクライアントにサービス提供する TCP/IP ベースのサービスである、X Font Server (XFS) を無効にします。XFS は、X ベースのグラフィカルユーザーインタフェース (GUI) の実行には必要ありません。
このスクリプトは、ポート 6000 で TCP を介して要求を待機および受信する X11 サーバー機能を無効にします。このスクリプトは、/etc/dt/config/Xserversファイルの X サーバー構成行に、オプション -nolisten TCP を追加します。このファイルが存在していない場合は、/usr/dt/config/Xservers の元の場所からコピーされます。この機能についての詳細は、Xserver(1) のマニュアルページを参照してください。
この節では、以下の有効化 (enable) 終了スクリプトについて説明します。
このスクリプトは、/etc/security/policy.conf ファイルの LOCK_AFTER_RETRIES 変数の値を正しく定義します。定義されると、LOCK_AFTER_RETRIES で指定されている値をアカウントが超えれば、そのアカウントはロックされ、ロックを解除するには管理者の支援が必要になります。
注意 - システム管理者によりアカウントのロックが解除されると、そのパスワードは削除されます。未承認のログインを防止するため、そのアカウントにはただちに新しいパスワードを設定する必要があります。 |
基本監査報告機能 (BART) は、ファイルシステムレベル全体で動作するファイル追跡ツールです。BART を使用すると、配備されたシステムにインストールされているソフトウェアスタックのコンポーネントに関する情報を、すばやく、簡単かつ確実に収集できます。BART を使用すると、時間がかかる管理作業を単純化することによって、システムのネットワーク管理コストを大幅に削減できます。
BART によって、既知のベースラインを基準として、システム上でどのファイルレベルの変更が起こったかを判断できます。bart create コマンドは、完全にインストールおよび構成されたシステムから、ベースラインまたは「制御」マニフェストを作成します。bart compare コマンドは、このベースラインと、あとの時点のシステムのスナップショットを比較し、インストールされてからシステムで発生したファイルレベルの変更をリストするレポートを生成します。
注 - svc は、Solaris Security Toolkit の制御下にない /etc の下にあるファイルを編集するため、bart compare コマンドが失敗する場合があります。これらの失敗は実際には失敗ではない場合がありますが、ログを確認する必要があります。 |
Solaris Security Toolkit 4.2 ソフトウェアは、次の 2 つの BART 規則ファイルをインストールします。
システムの BART ファイルレベルチェックからの出力は、/var/opt/SUNWjass/BART/manifests ディレクトリの JASS_TIMESTAMP.txt ファイルに格納されます。
この enable-bart.fin スクリプトが BART を有効にします。このスクリプトが、BART 規則ファイルが存在するかどうか、また存在する場合はその構成が実行中のドライバおよびその BART 規則ファイルと矛盾がないかどうかを判断します。
BART 規則ファイルの構成が実行中のドライバおよびその BART 規則ファイルと矛盾する場合、スクリプトは $JASS_FILES/var/opt/SUNWjass/bart/ から規則ファイルをコピーします。正しい BART 構成ファイルが配置されれば、スクリプトは BART を実行して、/var/opt/SUNWjass/BART/manifests に JASS_TIMESTAMP.txt という形式の新しいマニフェストファイル (20050711152248.txt など) を生成します。
注 - Solaris Security Toolkit 4.2 ソフトウェアには、BART マニフェストファイルをチェックするためのインタフェースは用意されていません。 |
注 - このスクリプトは、Solaris OS バージョン 8 〜 10 を実行しているシステムでのみ使用します。Solaris 10 OS では、子ゾーンで BSM を有効にする前に、必ずまず大域ゾーンで BSM を有効にしてください。 |
このスクリプトは、SunSHIELD Solaris 基本セキュリティーモジュール (BSM) 監査サービスを有効にします。また、Sun BluePrints OnLine 掲載記事『Auditing in the Solaris 8 Operating Environment』に記載されているデフォルトの監査構成もインストールします。必要に応じて、audit_warn という別名が追加され、これには root アカウントが割り当てられます。また、アボートシーケンスを許可するために、アボート無効コードが無効にされます。この設定は、プラットフォームへの物理的なアクセスが常に可能とは限らない、完全自動データセンター環境で最も使用されています。システムの再起動後に、Solaris BSM サブシステムが有効になり、監査が開始されます。このサービスについての詳細は、bsmconv(1M) のマニュアルページを参照してください。
このスクリプトは、Solaris OS バージョン 7 〜 10 に搭載されている coreadm 機能を構成します。生成されたコアファイルを、JASS_CORE_DIR で指定したディレクトリに格納するようにシステムを構成します。さらに、コアファイルに関する情報が収集できるように、各コアファイルには JASS_CORE_PATTERN で指定されたタグが付けられます。通常、収集される情報には、実行可能なプロセス名とコアファイルの作成日時だけでなく、プロセス ID、実効ユーザー ID、およびプロセスの実効グループ ID も含まれます。この機能についての詳細は、coreadm(1M) のマニュアルページを参照してください。
このスクリプトは、Solaris 9 および Solaris 10 OS での FTP サービスの ftpaccess 機能を有効にします。set-banner-ftp.fin スクリプトと set-ftpd-umask.fin スクリプトで行ったセキュリティー変更を使用するためには、この機能が必要です。たとえば、デフォルトのあいさつ文、ファイル生成マスク、およびそのほかのパラメータを設定する変更は、ftpaccess(4) マニュアルページに記載されています。
詳細は、in.ftpd(1M) のマニュアルページを参照してください。
このスクリプトは、in.ftpd デーモンに、SYSLOG サブシステム経由で試みられたファイル転送プロトコル (FTP) アクセスをすべて記録させます。
詳細は、in.ftpd(1M) のマニュアルページを参照してください。
このスクリプトは、着信 TCP 接続要求をすべて記録するように、インターネットサービスデーモン (INETD) を構成します。つまり、inetd デーモンが待機している TCP サービスに接続されると、SYSLOG によるログエントリが行われます。
詳細は、inetd.conf(4) のマニュアルページを参照してください。
Solaris 10 OS は、内容により IP パケットにフィルタを適用するフリーウェアの IP フィルタ (ipfilter) を統合することで、統合ファイアウォール機能を実現しています。このスクリプトは、すべての使用可能なネットワークインタフェースに関して ipfilter を有効にし、実行中のドライバに固有の規則のデフォルトセットを作成します。これらの構成済み規則ファイルは file_copy キーワード接尾辞を使用して、どのファイルがどのドライバと関連付けられているかを特定します。
次の構成済み IPF 規則が Solaris Security Toolkit の $JASS/FILES/etc/opt/ipf ディレクトリに含まれています。
注 - Sun Cluster 3x ソフトウェアは IP フィルタをサポートしないため、suncluster3x-secure.driver ではこのスクリプトを使用しないでください。 |
enable-ipfilter.fin スクリプトは次の動作を行います。
このスクリプトは、ドライバの JASS_PASS_HISTORY 環境変数に基づいてさまざまな HISTORY 値の定義を許可することにより、システム上のパスワードの履歴チェックを有効にします。/etc/default/passwd ファイルをチェックし、HISTORY 値が指定されているかどうかを判断します。
このスクリプトは、制限付き NFS ポートアクセスを有効にするように、/etc/system ファイルを変更します。変数を設定すると、1024 より小さいポートから発信されている NFS 要求だけが受信されます。
/etc/system ファイルでキーワード値ペアが正しく定義されていない場合は、ファイルで値が書き直されます。まだ定義されていない場合は、キーワード値ペアがファイルに付加されます。
必要な Solaris OS パッケージ (現在は、SUNWaccr と SUNWaccu) がシステムにインストールされている場合、このスクリプトは、Solaris OS プロセスアカウンティングを有効にします。このサービスについての詳細は、acct(1M) のマニュアルページを参照してください。
このスクリプトは、RFC 1948 のサポートを有効にする /etc/default/inetinit ファイルを作成または変更します。(この RFC では、コネクションごとに一意の ID シーケンス番号を生成する方法が定義されています。) /etc/default/inetinit ファイルの変数 TCP_STRONG_ISS を 2 に設定します。詳細は、http://ietf.org/rfc1948.html を参照してください。
注 - このスクリプトは、Solaris OS バージョン 2.6 〜 10 を実行している SPARC システムでのみ使用します。 |
注 - この機能を有効にすると、システムが SPARC バージョン 8 のアプリケーションバイナリインタフェース (ABI) に適合しなくなるため、一部のアプリケーションで問題が発生する可能性があります。 |
SPARC システムでのみ、このスクリプトは、/etc/system ファイルを変更して、スタックの保護と例外のログ記録を有効にします。noexec_user_stack と noexec_user_stack_log を /etc/systemファイルに追加すると、これらのオプションが有効になります。
すでに /etc/system ファイルでキーワード値ペアが定義されている場合は、このファイルの値が正しく設定されていることを確認するために書き直されます。まだ定義されていない場合は、キーワード値ペアがファイルに付加されます。このスクリプトの変数を設定してシステムを再起動すると、スタックを直接実行しようとしても拒否され、SYSLOG を介して試みられたスタック実行が記録されます。一般的なバッファーオーバーフロー攻撃からシステムを保護するときに、この機能を有効にします。
Solaris OS バージョン 9 および 10 では、コアの Solaris 実行可能ファイルの多くがマップファイル (/usr/lib/ld/map.noexstk) に対してリンクされています。このマップファイルでプログラムのスタックを実行不可にすると、このスクリプトと同様の機能が提供されます。しかし、この変更はシステムに対してグローバルなものとなるため、このスクリプトをそのまま使用することをお勧めします。
注 - このスクリプトは、付属の TCP ラッパーパッケージを使用している Solaris OS バージョン 9 および 10 を実行しているシステムでのみ使用します。 |
注 - サンプルの hosts.allow ファイルと hosts.deny ファイルは、組織に適した構成となるようにカスタマイズしてから使用してください。ファイルテンプレートは、JASS_ROOT_DIR/Files/etc に格納されています。 |
このスクリプトは、TCP ラッパーを使用するようにシステムを構成します。Solaris 9 OS の最新アップデートと Solaris 10 OS のすべてのリリースに付属する TCP ラッパーを使用すると、管理者は TCP サービスへのアクセスを制限することができます。デフォルトでは、/etc/inet/inetd.conf ファイルで stream, nowait として定義されているすべてのサービスが保護されます。このスクリプトは、ENABLE_TCPWRAPPERS パラメータを YES に設定するように /etc/default/inetd ファイルを構成します。さらに、TCP ラッパーで保護されるサービスへのアクセスを制御する、サンプルの /etc/hosts.allow ファイルと /etc/hosts.deny ファイルもインストールします。
この節では、以下のインストール (install) 終了スクリプトについて説明します。
このスクリプトは、/etc/cron.d に at.allow ファイルを作成して、at コマンドの実行を制限します。そして、このファイルに、JASS_AT_ALLOW 変数で定義されたユーザーのリストを格納します。at アクセスを要求するユーザーはすべて、この at.allow ファイルに追加する必要があります。at 機能と batch 機能へのアクセスを判定するときには、このスクリプトを update-at-deny.fin スクリプトとともに使用してください。この機能についての詳細は、at(1) のマニュアルページを参照してください。
このスクリプトは、JASS_PACKAGE_DIR ディレクトリからクライアントに fix-modes ソフトウェアをコピーし、そのプログラムを実行します。FixModes ソフトウェアは、Solaris システムのアクセス権を強化するために使用します。
このスクリプトは、FTP サービスへのアクセスの制限に使用される ftpusers ファイルを作成または変更します。また、JASS_FTPUSERS 変数にリストされているユーザーを ftpusers ファイルに追加します。ただし、ユーザーを追加するのは、このファイルにユーザー名が含まれていない場合だけです。
デフォルトの ftpusers ファイルは、Solaris OS バージョン 8、9、および 10 に含まれています。このファイルへのパスはバージョンによって異なります。
着信 FTP サービスの使用を許可しないアカウントをすべて、このファイルで指定する必要があります。少なくともこのファイルには、root アカウントだけでなく、すべてのシステムアカウント (たとえば、bin、uucp、smtp、sys など) を含めるようにしてください。これらのアカウントは、侵入者や未承認アクセスを試みるユーザーのターゲットとなることが多いためです。Telnet 経由でのサーバーへの root アクセスが無効になることはよくありますが、FTP 経由での root アクセスが無効になることはありません。この構成では、変更した構成ファイルをアップロードしてシステム構成を変更しようとする侵入者は、バックドアを設置できます。
このスクリプトは、Solaris Security Toolkit ソフトウェアが実行されるときに、JumpStart クライアント上に自動的に Solaris Security Toolkit ソフトウェアをインストールします。クライアントの初期インストール後に Solaris Security Toolkit ソフトウェアが実行可能な状態になるように、この方法を使用します。Solaris Security Toolkit ソフトウェアパッケージのインストールは、Solaris OS コマンド pkgadd を使用して行われます。このスクリプトでは、Solaris Security Toolkit ソフトウェアが JASS_PACKAGE_DIR ディレクトリにインストールされていることが前提となっています。Solaris Security Toolkit ソフトウェアパッケージ SUNWjass は、デフォルトでは /opt ディレクトリにインストールされます。
このスクリプトは、システムで使用される /var/adm/loginlog ファイルを作成し、失敗したログインを記録します。失敗したログインは、ログインの最大失敗回数を超えてから記録されます。この回数は、/etc/default/login 構成ファイルに設定されている RETRIES 変数で指定します。set-login-retries.fin スクリプトも参照してください。詳細は、loginlog(4) のマニュアルページを参照してください。
注 - このスクリプトは、Solaris OS バージョン 2.5.1 〜 9 を実行しているシステムでのみ使用します。 |
このスクリプトは、メッセージダイジェスト 5 (MD5) アルゴリズムソフトウェアを自動的にインストールします。このソフトウェアは、ファイルシステムオブジェクトのデジタルフィンガープリントを作成するときに使用されます。このソフトウェアについては、Sun BluePrints OnLine 掲載記事『The Solaris Fingerprint Database - A Security Tool for Solaris Software and Files』に記載されています。デフォルトでは、MD5 ソフトウェアは JASS_MD5_DIR パラメータで指定されているディレクトリにインストールされます。
このスクリプトは、nddconfig ファイルをインストールします。このファイルは、Sun BluePrints OnLine 掲載記事『Solaris Operating Environment Network Settings for Security』に基づき、よりセキュリティー保護された値を各種ネットワークパラメータに設定するときに使用されます。
注 - このスクリプトは、Solaris OS バージョン 2.5.1 〜 8 を実行しているシステムでのみ使用します。 |
このスクリプトは、newaliases シンボリックリンクを /usr/lib/sendmail プログラムに追加します。SUNWnisu パッケージがインストールされていないか、または削除されている場合、最小化インストールを行う際に、このリンクが必要となることがあります。このリンクは、newaliases が SUNWnisu パッケージに含まれていた Solaris OS 2.5.1 〜 8 を実行しているシステムで必要です。
注 - このスクリプトは、Solaris OS バージョン 2.5.1 〜 8 を実行しているシステムでのみ使用します。Solaris 9 および 10 OS には Secure Shell ソフトウェアが含まれているので、Solaris 9 または 10 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 ディレクトリ内にあることを前提として、インストールが行われます。
このスクリプトは、JASS_HOME_DIR/Patches ディレクトリにあるパッチを JumpStart サーバーにインストールします。スクリプトが正常に実行できるように、推奨およびセキュリティパッチクラスタをダウンロードし、JASS_HOME_DIR/Patches ディレクトリに圧縮解除します。
このスクリプトは、JASS_SADMIND_OPTIONS 環境変数で指定されているオプションを、/etc/inet/inetd.conf ファイルの sadmind デーモンのエントリに追加します。このサービスについての詳細は、sadmind(1M) のマニュアルページを参照してください。
このスクリプトは、OpenBoot PROM セキュリティーモードの現在の状態を表示します。このスクリプトでは直接 EEPROM パスワードを設定しないため、JumpStart のインストール時に EEPROM パスワードの設定をスクリプト作成することはできません。スクリプトを出力すると、コマンド行から EEPROM パスワードを設定する方法がわかります。この機能についての詳細は、eeprom(1M) のマニュアルページを参照してください。
注 - このスクリプトでシェルを /etc/shells ファイルに追加するのは、シェルがシステム上に存在し、実行可能で、このファイルに含まれていない場合だけです。 |
このスクリプトは、JASS_SHELLS 環境変数で指定されているユーザーシェルを /etc/shells ファイルに追加します。Solaris OS 関数 getusershell(3C) は、システム上の有効なシェルを判定するときに /etc/shells ファイルで主に使用されます。詳細は、shells(4) のマニュアルページを参照してください。JASS_SHELLS 環境変数についての詳細は、JASS_SHELLSを参照してください。
注意 - Solaris Security Toolkit ソフトウェアでは、このスクリプトによる変更を自動的に元に戻すことはできないため、このスクリプトを使用するときは注意してください。このスクリプトで設定するアクセス権が、使用する環境とアプリケーションに適していることを確認してください。 |
このスクリプトは、システム上でグループおよびユーザーのアクセスを制限することにより、各種のアクセス権と所有権を変更して、セキュリティーを向上させます。
Solaris 10 OS には多くのアクセス権と所有権の変更が組み込まれているため、このスクリプトは Solaris 10 OS には使用しません。このスクリプトを実行できないわけではありませんが、Solaris 10 OS への変更点を考慮すると、実行結果によりセキュリティーが改善されることはありません。
このスクリプトは、すべてのスーパーユーザー (su)の試行動作を記録できるようにする /var/adm/sulog ファイルを作成します。この機能についての詳細は、sulog(4) のマニュアルページを参照してください。
JASS_FILES パラメータまたはいずれかの OS 固有値が空でない場合に、このスクリプトが driver.run プログラムから直接呼び出されます。このスクリプトは、対象システム上にファイルテンプレートのコピーを自動的に作成します。当初、この機能は driver.run スクリプトにありましたが、ファイルテンプレートの検証をよりサポートするために別スクリプトに分けられました。この終了スクリプトは、必要となったときに、JASS_FILES パラメータの内容に基づいて最初に実行されます。
この節では、以下の印刷 (print) 終了スクリプトについて説明します。
このスクリプトは、Solaris Security Toolkit ソフトウェアで使用される環境変数をすべて印刷します。このスクリプトは診断を目的としたもので、多くの場合、環境変数を使用する前にその状態を記録できるように、ドライバの最初に呼び出されます。
このスクリプトは、JumpStart のインストールで使用されるすべての環境変数を印刷します。このスクリプトは診断を目的としたもので、JumpStart のインストール時に発生した問題のデバッグに役立ちます。
注 - スクリプトが必要とする追加の処理時間が受け入れられる場合、print-rhosts.fin スクリプトは手動で有効にする必要があります。 |
このスクリプトは、JASS_ROOT_DIR ディレクトリ内の任意のディレクトリに格納されている、.rhosts ファイルと hosts.equiv ファイルをすべて一覧表示します。JASS_RHOSTS_FILE 変数が定義されていない場合、結果は標準出力に表示されます。この変数が定義されている場合は、結果はすべて指定されているファイルに書き込まれます。
このスクリプトは、設定グループ ID アクセス権を持つ JASS_ROOT_DIR ディレクトリ内の任意のディレクトリにあるファイルをすべて印刷します。JASS_SGID_FILE 変数が定義されていない場合、結果は標準出力に表示されます。この変数が定義されている場合は、結果はすべて指定されているファイルに書き込まれます。
このスクリプトは、設定ユーザー ID アクセス権を持つ JASS_ROOT_DIRディレクトリ内の任意のディレクトリにあるファイルをすべて印刷します。JASS_SUID_FILE 変数が定義されていない場合、結果は標準出力に表示されます。この変数が定義されている場合は、結果はすべて指定されているファイルに書き込まれます。
このスクリプトは、有効なユーザーやグループが割り当てられていないシステム上のファイル、ディレクトリ、およびそのほかのオブジェクトをすべて、JASS_ROOT_DIR から順に一覧表示します。JASS_UNOWNED_FILE 変数が定義されていない場合、結果は標準出力に表示されます。この変数が定義されている場合は、結果はすべて指定されているファイルに書き込まれます。
このスクリプトは、システム上の world-writable オブジェクトをすべて、JASS_ROOT_DIR から順に一覧表示します。JASS_WRITABLE_FILE 変数が定義されていない場合、結果は標準出力に表示されます。この変数が定義されている場合は、結果はすべて指定されているファイルに書き込まれます。
この節では、以下の削除 (remove) 終了スクリプトについて説明します。
remove-unneeded-accounts.fin スクリプトは、passmgmt コマンドを使用して、/etc/passwd ファイルと /etc/shadow ファイルから、未使用の Solaris OS アカウントを削除します。このスクリプトは、JASS_ACCT_REMOVE 変数で定義されているアカウントを削除します。
この節では、以下の設定 (set) 終了スクリプトについて説明します。
このスクリプトは、dtlogin サービスのサービスバナーをインストールします。このバナーは、共通デスクトップ環境 (CDE) または GNU ネットワークオブジェクトモデル環境 (GNOME) で提供されるようなグラフィカルインタフェースを使用して、システムへの認証に成功すると、ユーザーに表示されます。このスクリプトは、ファイルテンプレート JASS_ROOT_DIR/etc/dt/config/Xsession.d/0050.warning で指定されているファイルの内容を表示するようにシステムを構成します。デフォルトでは、/etc/motd ファイルの内容が表示されます。
このスクリプトは、次のファイル転送プロトコル (FTP) サービスバナーをインストールします。
注 - install-ftpaccess.fin スクリプトを使用していない場合、Solaris 9 または 10 OS システムでは、set-banner-ftpd.fin スクリプトを使って行った変更は有効になりません。 |
このスクリプトは、変数 JASS_BANNER_SENDMAIL で定義されている Sendmail サービスバナーをインストールします。このバナーは、/etc/mail/sendmail.cf ファイルの SmtpGreetingMessage パラメータまたは De パラメータを使用して定義されます。Solaris OS バージョン 9 〜 10 では、SmtpGreetingMessage パラメータが使用されます。
詳細は、sendmail(1M) のマニュアルページを参照してください。
このスクリプトは、システムの認証の前に /etc/issue の内容をユーザーに表示するよう Secure Shell サービスを構成することにより、Secure Shell サービスバナーをインストールします。このタスクは、/etc/ssh/sshd_config ファイルで Banner パラメータを /etc/issue に設定すれば実行されます。この機能についての詳細は、sshd_config(4) のマニュアルページを参照してください。
このスクリプトは、変数 JASS_BANNER_TELNET で定義されている Telnet サービスバナーをインストールします。このバナーは、/etc/default/telnetd ファイルの BANNER 変数を使用して定義されます。詳細は、in.telnetd(1M) のマニュアルページを参照してください。
Solaris 10 OS には、システム上でパスワード暗号化に使用されるアルゴリズムを制御する、新しいチューニング可能属性がいくつか導入されています。新しいアルゴリズムは、LDAP、NIS+、および NIS を使用したネームサービスベースの格納だけでなく、ローカルのパスワード格納に使用できます。ネームサービスに対してこの機能を有効にする手順については、『Solaris 10 システム管理 (セキュリティサービス)』の「システム、ファイル、およびデバイスのセキュリティ」の章を参照してください。
このスクリプトは、ローカルに格納されたパスワードに対してさまざまなパスワードハッシュアルゴリズムを使用することで、強力なパスワードを使用できるようにしています。すべてのパスワードを失効させるのは secure.driver のみであるため、ユーザーは、新しい暗号化アルゴリズムで暗号化された新しいパスワードの選択を強制されます。
チューニング可能属性は、次のように /etc/security/policy.conf ファイルに追加されています。
CRYPT_ALGORITHMS_ALLOW の値は、次のようにマッピングされています。
secure.driver のパスワードが失効するのは次の場合です。
そのほかすべてのドライバは、ユーザーがユーザーパスワードを変更する際に、新しい暗号化アルゴリズムを使用してパスワードが再度暗号化されることを知らせるメッセージを表示します。
このスクリプトは、FTP サービス用のデフォルトのファイル生成マスクを設定します。
注 - install-ftpaccess.fin スクリプトを使用していない場合、Solaris 9 または 10 OS システムでは、set-ftpd-umask.fin スクリプトを使って行った変更は有効になりません。 |
このスクリプトは、/etc/default/login ファイルの RETRIES 変数を、JASS_LOGIN_RETRIES 変数で定義されている値に設定します。ログしきい値を下げると、より多くの情報を取得できます。install-loginlog.fin スクリプトを使用すると、試みて失敗したログインを記録できます。この機能についての詳細は、login(1) のマニュアルページを参照してください。
注 - このスクリプトは、たとえば PROM プロンプトでの power off など、ソフトウェアで制御可能な電源装置に対してのみ機能します。 |
このスクリプトは、JASS_POWER_MGT_USER 変数と JASS_CPR_MGT_USER 変数を使用して、/etc/default/power の構成を変更し、電源管理機能へのユーザーアクセスを制限します。その結果、システムの電源管理と中断/再開機能へのアクセスが制御されます。
注 - このスクリプトは、Solaris OS バージョン 2.6 〜 10 を実行しているシステムでのみ使用します。Solaris OS バージョン 8 〜 10 はデフォルトで、nosuid オプションを指定してリムーバブルメディアをマウントするように構成されています。このスクリプトは、デフォルトの設定に関係なく、必要なチェックを実行します。 |
このスクリプトは、/etc/rmmount.conf ファイルに 2 つのエントリを追加して、Set-UID ファイルのマウントを無効にします。システムにアクセスできるユーザーがフロッピーディスクや CD-ROM を挿入して Set-UID バイナリを読み込むと、システムが危険にさらされる可能性があるため、マウントを無効にすることが重要です。この機能についての詳細は、rmmount.conf(4) のマニュアルページを参照してください。
このスクリプトは、root ユーザーの一次グループを JASS_ROOT_GROUP へ、さらにグループ識別子 #1 (GID 1、other) からグループ識別子 #0 (GID 0、root) へ変更します。これにより、root ユーザーと非特権ユーザーが共通グループになることはありません。
多くの Solaris セキュリティー強化スクリプトおよび手順では、root アカウントにシングルスラッシュ (/) 以外のホームディレクトリを与えることを推奨しています。Solaris OS の root アカウントのホームディレクトリを変更すると、次のように、セキュリティーとシステム管理の点で利点があり、また Solaris OS とそのほかの UNIX システム (Linux/*BSD を含む) との互換性が高くなります。
ルートディレクトリを /root に変更することで、独自のドットファイルではなく、root ユーザーのドットファイルを取得するリスクがなくなります。
このスクリプトは、root アカウントが /etc/passwd ファイルに / のホームディレクトリを持っているかどうかを確認し、持っている場合このスクリプトは次の動作を行います。
注 - このスクリプトは、JumpStart ソフトウェアのインストール時にのみ実行されます。Solaris Security Toolkit ソフトウェアがコマンド行から起動された場合は、実行されません。 |
このスクリプトは、root パスワードを JASS_ROOT_PASSWORD で定義された初期値に自動的に設定します。このスクリプトで使用されるパスワードは、インストール時にのみ使用し、JumpStart のインストール処理が正常に終了したら、直ちに変更する必要があります。デフォルトでは、JASS_ROOT_PASSWORD パラメータで使用されるパスワードは t00lk1t です。
このスクリプトは、ローカル環境内のユーザーに対するより厳しいパスワード要件をインストールします。Solaris 10 OS の passwd(1) コマンドは、より強力なユーザーパスワード用の新しい一連の機能を定義しています。Solaris Security Toolkit ソフトウェアは、デフォルト設定よりも強力なこれらの値を多数設定しています。このスクリプトは、さまざまなパスワードチェック用の正しい値が /etc/default/passwd ファイルの JASS_PASS_* 環境変数で正しく定義されていることを確認します。これらの環境変数およびそのほかの環境変数の定義と値については第 7 章を参照してください。
このスクリプトは、JASS_SUSPEND_PERMS 変数に基づいて、/etc/default/sys-suspend の構成を変更し、中断および再開機能へのユーザーアクセスを制限します。詳細は、sys-suspend(1M) のマニュアルページを参照してください。
このスクリプトは、実行コントロールスクリプトすべてが、JASS_UMASK の設定に基づいた安全なファイル生成マスクで実行されるようにします。不適切に選択されたファイル生成マスクを使用すると、重要なファイルが任意のユーザーから書き込み可能状態になるおそれがあるため、この設定は重要です。
このスクリプトは、システムで dtterm が認識されない問題を回避するように、vt100 のデフォルトの端末タイプを設定します。このスクリプトは主に、グラフィカルコンソールを備えておらず、通常は端末コンソールまたはそのほかのシリアルリンクを介してアクセスするシステムで使用されます。このスクリプトは便宜上の理由から用意されているだけであり、システムのセキュリティーには影響を与えません。
注 - Solaris 2.5.1 OS を実行するシステムでは、この set-tmpfs-limit.aud スクリプトの機能はサポートされていないため使用しないでください。 |
このスクリプトは、tmpfs ファイルシステムの一部として使用可能なディスク容量の制限を設定します。この制限により、メモリーの使い果たしを防止することができます。このスクリプトがデフォルトで制限する使用可能ディスク容量は、JASS_TMPFS_LIMIT で定義されている値です。この機能についての詳細は、mount_tmpfs(1M) のマニュアルページを参照してください。
このスクリプトで行う変更によって、次回システムでパスワードが変更される際のシステムのパスワードポリシーが構成されます。セキュリティー強化処理によってアプリケーションと操作機能に悪影響がないように、このプロファイルをさらに調整する必要があります。
このスクリプトでは、以下の機能を有効にすると、より厳密なパスワード要件を使用できます。
このスクリプトは、次の変数で定義されている値を使用して、/etc/default/passwd ファイルに適切なエントリを設定することで、要件を実装します。
特に、非特権ユーザーからのアクセスがあるシステムで、このスクリプトの使用をお勧めします。
このスクリプトで変更するのは、/etc/default/passwd ファイルの設定だけです。任意のユーザーに対するパスワードの有効期限は有効にしません。パスワードの有効期限要件は、次回のパスワード変更時に、各ユーザーに対して実装されます。パスワード変更まで待たずに、パスワードの有効期限を有効にするには、passwd(1) コマンドを使用してください。
このスクリプトは、デフォルトのファイル生成マスク (UMASK) を、ユーザー起動ファイル /etc/.login、/etc/profile、/etc/skel/local.cshrc、/etc/skel/local.login、/etc/skel/local.profile、および /etc/default/login の JASS_UMASK で定義されている値に設定します。
この節では、以下の更新 (update) 終了スクリプトについて説明します。
このスクリプトは、JASS_AT_DENY にリストされているアカウントを、/etc/cron.d/at.deny ファイルに追加します。このスクリプトは、これらのアカウントを持つユーザーの at 機能と batch 機能の使用を拒否します。at 機能と batch 機能へのアクセスを判定するときには、このスクリプトを install-at-allow.fin スクリプトとともに使用します。この機能についての詳細は、at(1) のマニュアルページを参照してください。
このスクリプトは、JASS_CRON_ALLOW にリストされているアカウントを、/etc/cron.d/cron.allow ファイルに追加します。このスクリプトは、これらのアカウントを持つユーザーの cron 機能の使用を許可します。cron 機能へのアクセスを判定するときには、このスクリプトを update-cron-deny.fin スクリプトとともに使用します。この機能についての詳細は、crontab(1) のマニュアルページを参照してください。
このスクリプトは、JASS_CRON_DENY にリストされているアカウントを、/etc/cron.d/cron.deny ファイルに追加します。このスクリプトは、これらのアカウントを持つユーザーの cron 機能の使用を拒否します。cron 機能へのアクセスを判定するときには、このスクリプトを update-cron-allow.fin スクリプトとともに使用します。このスクリプトでは、root アカウントユーザーのアクセスは無効にしません。この機能についての詳細は、crontab(1) のマニュアルページを参照してください。
このスクリプトは、cron ログ情報の格納に使用する最大サイズ制限を調整します。
このスクリプトで使用されるサイズ制限は、JASS_CRON_LOG_SIZE 環境変数によって決まります。Solaris OS で定義されているデフォルトの制限は 0.5 MB です。
このスクリプトは、JASS_SVCS_DISABLE 変数で定義されている、inetd で始まるすべてのサービスを無効にします。つまり、このスクリプトでは、JASS_SVCS_ENABLE 変数で表示されるサービスを有効にします。同じサービスが両方の変数に含まれている場合は、そのサービスは有効になります。JASS_SVCS_ENABLE 変数の方が優先されます。
in.telnetd、in.ftpd、in.rshd などの共通サービスを含む、基本 OS のすべてのサービスが、Solaris OS バージョン 2.5.1 〜 10 ではデフォルトで無効になります。
特定の Sun 製品のセキュリティー強化を行うために、製品固有の終了スクリプトが存在します。これらのスクリプトは、Finish ディレクトリに格納されています。製品固有の終了スクリプトを 表 5-1 に示します。
サンの新製品や更新されたサン製品のセキュリティーを強化するために、定期的に新しい終了スクリプトがリリースされます。最新のスクリプトのリストについては、以下の Security Web サイトを参照してください。
http://www.sun.com/security/jass
このスクリプトは、システムを Sun Cluster 3.x ノードとして自動的に構成します。このスクリプトは、クラスターキーワードを /etc/nsswitch.conf ファイルに設定して、Sun Cluster 3.x システムの配布を簡略化します。キーワードはホストフィールドに格納する必要があります。詳細については、Sun BluePrints OnLine 掲載記事『Securing Sun Cluster 3.x Software』を参照してください。
注 - このスクリプトは Sun Fire ハイエンドシステムの SC およびドメインにのみ使用します。ほかのシステムでは実行されません。このスクリプトは、System Management Services (SMS) バージョン 1.2 〜 1.4.1 でのみ使用します。 |
このスクリプトは、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』を参照してください。
このスクリプトは、SC と 1 つまたは複数のドメイン間の TCP/IP 接続を無効にします。詳細については、Sun BluePrints OnLine 掲載記事『Securing the Sun Fire 12K and 15K System Controller』を参照してください。
注 - このスクリプトは Sun Fire ハイエンドシステムの SC にのみ使用します。ほかのシステムでは実行されません。 |
このスクリプトは、フェイルオーバーデーモン fomd による Secure Shell の使用を自動的に有効にします。このスクリプトは、Secure Shell 構成の多くを自動的に行うだけでなく、従来の r* サービスを無効にします。
詳細については、Sun BluePrints OnLine 掲載記事『Securing the Sun Fire 12K and 15K System Controller』を参照してください。
Copyright© 2005, Sun Microsystems, Inc. All rights reserved.