サーバの要塞化を実現する方法の1つとして、不必要なサービスの無効化があります。デフォルトで起動しているサービスのほとんどは、設定ファイルを変更したり、サービスを提供しているプロセスを起動しないようにすることによって、サービスを無効にすることができます。アクセス制限やパケットフィルタリングでは、サービスを利用できるマシンやユーザーを限定しますが、まったく必要としないサービスについては、サービス自体を無効にした方がよいでしょう。
Solaris 8において、デフォルトで起動しているサービスを無効にして、telnetやftpサービスのみを有効にするには、「/etc/rc2.d」にある以下のファイル名の前に「_(アンダースコア)」という文字を付け、名称を変更します。
(例:「/etc/rc2.d/S71rpc」→「/etc/rc2.d/_S71rpc」)
S71rpc S73nfs.client S74autofs
S74xntpd S80lp S85power
S88sendmail S90loc.ja.cssd S90wbem
S95IIim S99dtlogin
次に、「/etc/rc3.d」にある以下のファイルの名称も同様に変更します。
(例:「/etc/rc3.d/S15nfs.server」→「/etc/rc3.d/_S15nfs.server」)
S15nfs.server S76snmpdx S77dmi
また、「/etc/inetd.conf」でリスト3にある行だけを残して、すべての行をコメント化(「#」を行の先頭に追加)します。
間違いがないことを確認した後、マシンを再起動します。再起動後、使用しているポートと、起動しているプロセスは以下のようになるはずです(リスト4・5)。telnet(21)とftp(23)が使用しているポートのみLISTENになっていることを確認してください。
こうしてみると、インストール直後のデフォルト状態にあるOSには、かなりの数の不要なサービスとプロセスが起動していることが分かります。これらの不要なサービスを無効にしておくことで、サービスを攻撃に利用されることを防ぎます。このように要塞化されたサーバ*1では、最低限のプロセスしか起動していないので、サーバの状態を把握しやすくなります。サーバの管理のしやすさという面でも、ぜひ行っておきたい作業の1つです。
*1ここで紹介した不要なサービスの無効化は、あくまで要塞化の一手順にすぎません。これを行っておけば完璧というものではないので注意してください
サーバのログには、不正アクセスに関する兆候や形跡だけでなく、アプリケーションのエラーも出力されます。そのため、セキュリティ対策だけでなく、サーバを安定して稼働させるためにも、ログから正しい情報を読み取ることができなくてはなりません。
Solarisの場合、「/var/adm/messages」「/var/log/syslog」にほとんどのサービスのメッセージが出力されます(Solarisなどの標準的なUNIXの場合、これらのログファイルの場所は「/etc/syslog.conf」で定義されています)。これらのファイルにはテキスト形式でログが記録されるので、「failed」「refused」「reject」「error」などのキーワードで、不審なアクセスがないかチェックします。
また、普段使っていないはずのIPアドレスから接続がないかを確認します。Solarisはデフォルトではログが記録されないため、「/etc/init.d/inetsvc」の以下の行を変更してマシンを再起動します。
【変更前】
/usr/sbin/inetd -s &
【変更後】
/usr/sbin/inetd -s -t &
この変更後、例えばtelnetでリモートログインすると、
のようなログが出力されます。
ログの監視には、swatchのようなツールを使うという方法もありますが、あくまでキーワードによるパターンマッチングでしかないので、やはり普段からログに慣れておくということが大切です。
Copyright © ITmedia, Inc. All Rights Reserved.