UNIX/Linuxで不要なポートを閉じるには

文:Chad Perrin 翻訳校正:石橋啓一郎
2008-12-16 08:00:00
  • このエントリーをはてなブックマークに追加

 最近私は、いくつかのOSでnetstatやその他のツールを使い、開いているポートとlistenしているサービスを調べる方法について説明する記事を書いた。以前書いた別の記事「10 security tips for all general-purpose OSes」でも指摘したとおり、不必要なサービスを無効にしておく(そして、それらのサービスと結びついているネットワークのポートを閉じる)ことは、悪意のあるセキュリティ攻撃者にさらされる弱点を減らすことに繋がる。この記事では、UNIXおよびLinuxのシステムでポートを閉じ、サービスを停止するための手順をいくつか説明する。

inetd

 多くのUNIXやLinuxのシステムでは、inetdと呼ばれるネットワークサービスデーモンがある。このサービスの設定ファイル/etc/inetd.confではポート番号が列挙されており、inetdはこのファイルで定義されているインターネットソケットに対するコネクションをlistenしている。対象となるポートにコネクションが張られると、inetdはそのサービスソケットを標準入力、標準出力、標準エラーデスクリプタ(STDIN、STDOUT、STDERR)とするサーバプロセスを起動する。

 このようなことをしているのは、1つのデーモンで他の多くのサーバプログラムのためのコネクションをlistenするようにしておけば、他のサーバプログラムを個別に常時実行しておかなくてもよいからだ。これによって、システムに対する負荷を減らすことができるほか、インターネットサービスを集中的に管理することができ、便利になる。inetdはサーバを管理するサーバであるため、「インターネットスーパーサーバ」と呼ばれることもある。

 inetdが管理しているサービスのポートを閉じるには、単に/etc/inetd.confファイルの中の該当するサービスに関する行を探し、それをコメントアウトするだけでよい。/etc/inetd.confの行をコメントアウトするには、その行の最初に#を挿入する。

 grepコマンドを使えば、/etc/inetd.confの中のコメントアウトされていない行を手早く簡単に調べることができる。例えば、もしコメントアウトされていない行がCUPSネットワーク印刷サービスのものだけである場合、次のようなgrepコマンドを使ってコメントアウトされていない行を調べると、出力はその次の行のようなものになるだろう。

  # grep -v "^s*#" /etc/inetd.conf
  printer stream tcp nowait lp /usr/local/libexec/cups/daemon/cups-lpd cups-lpd -o document-format=application/octet/stream

 grepコマンドについては、man grepを参照して欲しい。viなどの設定ファイルの閲覧や編集に一般的に使われるエディタには、多くの場合正規表現を使った検索機能がついている。man inetdおよびman inetd.confコマンドを使えば、システムにマニュアルがインストールされていれば、inetdとその設定ファイルについてのマニュアルページを参照することができる。

xinetd

 いずれかの時点で、誰かがインターネットスーパーサーバは多くのネットワークサービスの入り口であるという点を活用し、アクセスコントロールとログの記録の役割を果たすべきだという判断をした。この目的のために、inetdの代わりとしてxinetdが作られた。上記の追加機能の他は、xinetdは基本的にinetdと同じ種類のプログラムだ。

 inetdとは異なり、xinetdの場合は、設定ファイルの該当する行をコメントアウトするだけでは、listenしているポートを閉じることはできない。xinetdはディレクトリいっぱいのファイルを持っており(/etc/xinetd.dディレクトリ)、それぞれのファイルがxinetdが管理しているサービスに結びついている。サービスを無効にするには、それに対応するファイルを修正する必要がある。

 /etc/xinetd.dディレクトリの中には、echo、imap、telnetなど、対応するサービスに応じて名付けられた一連のファイルが入っている。サービスを無効にするには、対応するファイルを編集し、disableオプションをnoからyesに変更する。この変更を反映するには、xinetdを再起動する必要がある。

  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]