2)不要サービス/ポートの停止
第2回目は、ポート制御についての解説です。
Linuxはインストールした状態では必要のないサービスが起動しています。
不要なサービスはセキュリティーホールばかりでなく、無駄なリソースの消費にもなりますので、必要のないサービスは停止する必要があります。
インターネットリサーチ・コンサルティング・企画、ウェブ翻訳から、Web制作、システム開発までオープンソース・ネットワークビジネスを提供
サービスとポート
ポートはサービスがプロトコルを利用してネットワーク通信を行う際の出入り口です。そこで基本的にサービスを停止することで、ポートを閉じることが出来ます。
ネットワーク通信を行っている不要なサービスが多ければ、利用するポートも増えるため、攻撃を受ける危険性も高くなります。
サービスの調査
起動済サービスを調査するには、netstatコマンドで、利用中のポート番号とポートのサービス状況を調べることができます。その後、psコマンドを利用してアクセス番号を調べ、/etc/serviceからアクセス番号を利用してサービスを判別することができます。
- 1. netstatコマンドで、通信を行っているポート番号を調べる。
- # netstat –anp
*netstatコマンドのオプションについて
- -a = 現在のすべての接続を表示する。
- -n = 出力をIPアドレスなど数値のみに抑制する(DNS逆引きを行わないなど)。ほかのオプション内容へ影響する。
- -p = 各ソケットが属しているプログラムの PID と名前を表示する。
- 2. psコマンドで、プロトコルとポート番号から利用しているプログラムを調べられるので、プログラム名からサービスを推測し特定する。
- # ps -ef
*psコマンドのオプションについて
- -e = 実行中の全プロセスを表示する。
- -f = プロセスの詳細情報を表示する。
不要なサービスの調査
Linux が起動すると、さまざまなシステム・サービスを司るプログラム(デーモン)が起動します。どのサービスが不要であるかは、サーバーごとに異なるため一概に定義することはできません。
誤って必要なサービスを停止すると本来のサーバー動作に支障をきたします。
そこで、どのパッケージが必要なものか否かを調査する手段が必要となります。この調査手段について解説します。
調査を行うには、iptablesコマンドで、パッケージが利用しているポートを予め全て閉じてしまい、必要に応じて各々ポートを開けていく方法があります。
*iptablesコマンドについて
# iptables -A INPUT -i インターフェイス名 -p プロトコル名 --dport ポート番号 -j 設定内容
例1 eth0に対して、5680 番ポートへの外部からの接続を禁止するコマンド
# iptables -A INPUT -i eth0 -p tcp --dport 5680 -j DROP
例2 例1で閉じたポートへの外部からの接続を許可するコマンド
# iptables -D INPUT -i eth0 -p tcp --dport 5680 -j DROP
サービスの停止
不要なサービスが分かれば、以下の手順でサービスを停止することが出来ます。
- 1. serviceコマンドを利用して、現在動作中のサービスを停止します。
- # service サービス名 stop
- 2. chkconfigコマンドを利用して自動起動を無効にします。
- # chkconfig サービス名 off
パッケージの削除
今後、確実に必要としないことがあらかじめ分かっているサービスがあれば、そのサービスを提供するパッケージ自体を削除することを推奨します。不要パッケージの削除は以下のコマンドで行います。
- 1. Red Hat Linux、TurboLinux、Vine Linuxの場合
- # rpm –e パッケージ名
- 2. Debian の場合(apt-get remove パッケージ名 で依存関係パッケージも同時に削除可能)
- # dpkg --purge パッケージ名
次回予告
次回は、「リモート操作の通信暗号化」について解説します。


