システムのセキュリティを維持することは極めて重要です。システムのセキュリティを管理する1つの方法として、システムのサービスに対するアクセスを注意深く管理することがあります。特定のサービスに対して公開アクセスを許可する必要があるかもしれません(たとえば、Webサーバーを運営する場合のhttpd)。しかし、サービスを提供する必要がないならば、 バグの不正アクセスを受ける可能性を最小限にするためサービスをオフにすべきでしょう。
システムサービスへのアクセスを管理する手段はいくつかあります。 使用する手段は、サービス、システムの設定、 Linuxに関するユーザーの専門知識のレベル、などに基づいて決定してください。
サービスへのアクセスを拒否する一番簡単な方法は、サービスをオフにすることです。 xinetdで管理されるサービス(このセクションの後半で説明します)と、 /etc/rc.d/init.d階層内にあるサービス(Sys サービスとも呼ばれる) の起動/停止を設定するには、次の3つの異なるアプリケーションを使用します。
サービス設定ツール — グラフィカルアプリケーションです。 各サービスの説明を表示、各サービスがブート時にスタートしたかどうかを表示 (ランレベル3、4、5用)、及び各サービスを起動、停止、再起動を許可することができます。
ntsysv — テキストベースのアプリケーションです。 ブート時に各ランレベルで起動させるサービスを設定します。 xinetd以外のサービスには変更内容はすぐに反映されません。 このプログラムを使用してxinetd以外のサービスの、起動、停止、 または再起動はできません。
chkconfig — コマンドラインユーティリティです。 さまざまなランレベルでサービスの起動や停止を実行できます。 xinetd以外のサービスには変更内容はすぐに反映されません。 xinetd以外のサービスはこのユーティリティを使用して起動、 停止、または再起動をすることはできません。
これらのツールの方がほかの手段よりも使いやすくなっています。 — 他の手段とは、 /etc/rc.dの下にあるディレクトリ中の多数のシンボリックリンクを 手作業で編集したり、/etc/xinetd.dの中のxinetd 設定ファイルを編集することです。
システムサービスへのアクセスを管理する別の方法として、iptablesによってIPファイアウォールを設定することもできます。しかし、Linuxの初心者には、iptablesが最良の策ではない場合があるということを理解しておいてください。初心者にとってiptablesの設定は複雑かもしれません。その操作は経験のあるLinuxのシステム管理者に任せるのが最善です。
その半面、iptablesを使用するメリットは、その柔軟性にあります。たとえば、あるサービスへの特定ホストアクセスを許可するようにカスタマイズしたい場合でも、iptablesならば可能です。iptablesの詳細については、Red Hat Enterprise Linux リファレンスガイド及び Red Hat Enterprise Linux セキュリティガイドを参照してください。
別の方法としては、個人のマシンに一般アクセス規則を設定できるユーティリティを探している場合や、初めてLinuxを使用する場合は、セキュリティレベル 設定ツール(redhat-config-securitylevel)を使用してください。これを使用してシステム用のセキュリティレベルを選択することができます。インストールプログラムにあるファイアウォールの設定 スクリーンに似ています。
詳細については、第20章を参照してください。 もっと具体的なファイアウォールの規則が必要な場合は、 Red Hat Enterprise Linux リファレンスガイドのiptablesの章を参照してください。
サービスへのアクセスを設定する前に、Linuxランレベルを理解する必要があります。ランレベルとは状態、あるいはモードです。 これは/etc/rc.d/rc<x>.d ディレクトリに一覧表示されたサービスで定義されます。 <x>はランレベルの数字になります。
次のようなランレベルがあります。
0 — 停止
1 — シングルユーザーモード
2 — 未使用(ユーザー定義可能)
3 — 完全マルチユーザーモード
4 — 未使用(ユーザー定義可能)
5 — 完全マルチユーザーモード(Xベースのログイン画面)
6 — リブート
テキストログイン画面を使用すると、ランレベル3で実行していることになります。 グラフィックログイン画面を使用すると、ランレベル5で実行していることになります。
デフォルトのランレベルを変更するには、/etc/inittabファイルを変更します。このファイルは、その最上部あたりに次のような1行があります。
id:5:initdefault: |
この行の数字を希望するランレベルに変更します。 システムをリブートするまで変更内容は反映されません。
ランレベルを直ちに変更するには、telinitコマンドを使用して その後にランレベルの数字を付けます。 このコマンドを使用するにはrootになっていなければなりません。 telinitコマンドは/etc/inittabファイルを 変更せず、現在実行中のランレベルを変更するだけです。 システムがリブートされると、/etc/inittabファイルで 指定されているランレベルで起動します。