セキュリティのアプローチは、常に次のような2つの異なる種類に分類されます。能動的アプローチと受動的アプローチです。セキュリティに対する能動的アプローチには、システムのセキュリティモデルに裂け目を作らないためのアクションすべてが含まれます。受動的アプローチとは、そのセキュリティモデルに基づくシステムセキュリティを監視するためのアクションを指します。
すべてのユーザーは、セキュリティに対して能動的アプローチと受動的アプローチの両方を講じる必要があります。これらの各アプローチは相互に補強しあうものです。たとえば、サーバーのログからあるユーザーがセキュリティを侵害しようとしている事実が判明した場合(セキュリティに対する受動的アプローチ)、最初のログインプロンプト段階でこれを防御するアプリケーションをインストールする(セキュリティに対する能動的アプローチ)ことになるでしょう。同様に、システム保護のためにシャドウパスワードを使用していなければ(能動的アプローチ)、Tripwireのようなツールを使用してシステム上の主要なファイルに対する変更を監視することになるでしょう(受動的アプローチ)。Tripwireについての詳細は、Chapter 10を参照してください。
Red Hat Linuxには、セキュリティに対する両アプローチを導入するためのさまざまなツールが収録されています。ただし、システム保護について過度にツールに依存するのを防ぐには、各アプローチによる手法を適切に使用することが重要です。
Red Hat Linux向けのセキュリティツールの大半は、システムを能動的に保護するものです。最も一般的で便利なオープンソースツールには、次のようなものがあります。
Shadow Utilities—暗号化パスワードを使用してシステム上のローカルユーザーやグループを管理する、業界標準のツールのコレクション。
Kerberos 5—ネットワーク認証サービスを提供するセキュアシステム。サービスに対するアクセスを得るためにプレーンテキストのパスワードがネットワーク上で転送されるのを防ぎます(Kerberos 5についての詳細はChapter 9を参照してください)。
OpenSSL—暗号化レイヤー上の操作をサポートするさまざまなサービスを保護するのに役立ちます(OpenSSLについての詳細は『オフィシャル Red Hat Linux カスタマイズガイド』を参照してください)。
OpenSSH—非常に普及しているが安全性の低いツールであるtelnet、rsh、そしてftpを、強力で安全性の高いsshとscpに簡単に置き換えるためのユーティリティセット(OpenSSHについての詳細は『オフィシャル Red Hat Linux カスタマイズガイド』を参照してください)。
セキュリティに対する能動的アプローチをサポートする手法として、以下のものがあります。
rootとしてコマンドを実行できるユーザー数を制限する—故意か過失かを問わず、セキュリティ上の問題の多くが、少なくとも間接的には、誰かがrootパスワードを知ったか、sudoによってrootレベルのコマンドを実行する権限を与えられたことに起因しています。
システム上にインストールされているソフトウェアを把握し、新たに発見されるセキュリティホールに警戒し続ける—システム上にどのパッケージがインストールされているかを把握していないかぎり、警戒すべき対象もわかりません。また、Red Hat Networkのような情報源を絶えず見ておかなければ、更新が必要だということも知りえません。
システムで実行するサービスは実際に必要なものだけにする—基本的に、実行するサービスが多いほど、侵害や不正なアクセスの可能性が高まります。システムリソースを(また、利用しないものを維持する手間も)節約し、利用していないパッケージは削除しましょう。最低でも、ntsysvのようなツールを実行して、システム起動時に不必要なサービスが起動されないようにします(『オフィシャル Red Hat Linux カスタマイズガイド』の「サービスに対するアクセスの制御」を参照してください)。
ユーザーに安全なパスワードの作成と頻繁な変更を要求する—セキュリティ上の問題のほとんどは、システムに対する不正アクセスから始まります。入り口の鍵を保護することによって、ユーザーに能動的なセキュリティ手法の実践を要求すれば、このリスクを最小限に抑えることができます。
ファイルのパーミッションを必要以上に緩和しない—誰でも書き込めるようにする必要性があるファイルはまずないでしょう。
Red Hat Linux向けのセキュリティツールのほとんどはセキュリティに対する能動的アプローチ用に設計されていますが、受動的セキュリティのためのツールもいくつかあります。これらに対する管理上の負担はずっと少なくなっています。
Tripwire—指定したシステムファイルやディレクトリが変更されると警告を発するように設計されたアプリケーション。これによって、少なくとも不正なユーザーがシステムへのアクセスを得た場合や、権限のあるユーザーが重要なファイルに不要な変更を加えた場合に、それを知ることができます(Tripwireについての詳細はChapter 10を参照してください)。
COPS—特定のホストのオープンになっているポートを調べたり、不十分なユーザーパスワードがないか監視したりといった数多くの操作を行うためのセキュリティツールのコレクション。
セキュリティに対する受動的アプローチをサポートする手法には、以下のものがあります。
システムログの監視を日常の習慣にする—Red Hat Linuxは、デフォルトで、非常に多くの役に立つデータを/var/logディレクトリ内のmessagesファイルを中心とするシステムログに記録しています。grep "session opened for user root" /var/log/messages | lessのような単純なタスクをrootとして実行すれば、そのシステムに対する強力な部分監査を行い、誰がrootとしてシステムにアクセスしているかを監視できます。これにより、たとえば、問題のファイルの変更時刻と/var/log/messagesファイルのログイン時刻とを比較するだけで、rootしか書き込めない特定のファイルを変更した可能性のあるユーザーを絞り込むことができます。ただし、これは確実な手法とはいえません。なぜなら、重要なファイルへの書き込み権限を取得した何者かが、同時に/var/log/messagesの変更権限も取得して、その証跡を消去してしまっている可能性もあるからです。