2010年12月31日金曜日

CentOS 不要サービスの停止

Cです。

OSインストール後の最初の作業として「不要サビースの停止作業」をするよね?

この作業の理由を、いまさらだけど言っとこう。

  理由1:不要なサービスを動作させていると、サーバーのリソースを無駄に消費する。
  理由2:動作していると、そのサービスの脆弱性を突いた攻撃の対象となる。

以上の理由からこの作業はする必要があるんだ。

もう、CentOSとかインストール後に一杯動かしてくれてありがとう。
せっかく自動起動にしてくれてるけど、ほとんど停止させちゃう。

CentOS5.5を対象にしたクリーンインストール後(余計なパッケージをインストールしない)
どんだけ動いてるかみてみよう。

#ls -la /etc/rc3.d/

なぜchkconfig --listにしないかって?
それは、ベンダーニュートラル精神の賜物。

確かに、chkconfigはとても便利で私も実際の運用では使用する。
だが、デフォルトで使えるのはRedHat系OSのみ。

chkconfigがやってくれているのは/etc/rc*.d/にあるファイルのリネーム作業で、
いわゆる便利ツールでしかないのだよ。
ベンダーに囲われないベンダーニュートラルな技術を身につけていく必要がある。

さてどうでもいいことはほっといて、作業しよう。


Sが自動起動設定になってるやつで、Kが自動的に起動しない設定になっている。
chkconfig --list と見比べてくれたら解りやすいと思う。

モチロン手動でこのファイルの頭文字をSからKに変えたらchkconfigの結果も反映されるからね。

今回停止するサービスは

ip6tables     --------   IPv6用のファイアウォール
mcstrans  --------   ごめんなさい、いつかONにできる日を夢見て(SElinux トランスレーション)
restorecond ------    ごめんなさい、いつかONにできる日を夢見て(SElinux ラベリング)
netfs     -------    /etc/fstab にNFSとかsambaをマウントするように書いている場合に必要
messagebus -------    D-BUSのデーモン
haldaemon  -------     ハードウェア抽象化レイヤ(プラグアンドプレイ)、今回は無効にしてみよう。
rawdevices  ------     カーネル内部のページキャッシュを使わないIO処理をしてくれる。
            (oracleとかバッファ管理をしてるアプリケーションなどで2重バッファを防ぐときに使う)

こんだけ停止させてみるか。(各サービスが何かは各自調べてくれ、そして私に教えてくれ)

さてココからが本題だ。

chkconfig とかリネームでじゃかじゃかやっていってもいいんだけど、
サーバ構築のたびにやる作業になると思うので、
効率化を図る為にシェルスクリプトを用意しよう。

※シェルスクリプトを実行する前に!!
 今回SELinux関係のサービスを2つ無効にするので、
 シェルスクリプトを動かす前に、SELinuxを無効にしてくれ!
  -> SELinux無効化方法

#!/bin/bash
services=(`ls -1 /etc/init.d/`)

stop_services=("ip6tables" "mcstrans" "restorecond" "netfs" "messagebus" "haldaemon" "rawdevices")

for stop_service in "${stop_services[@]}"
 do
 for service in ${services[@]}
 do
    if [ $service = $stop_service ]; then
       service $stop_service stop
       chkconfig --level 2345 $stop_service off
    fi
 done
  done

for stop_service in "${stop_services[@]}"
 do
    chkconfig --list $stop_service
 done 2>service_stop_error
exit 0

シンプルなシェルスクリプト。
 1、サービス名を/etc/init.d/からとってくる
 2、停止するサービスを指定する。
 3、指定されたサービスを順に停止する
 4、結果をchkconfig --listで表示する
 5、エラーが合った場合はエラー出力ファイルに出力する

これを動かしてやってサービスストップしまくろう。
実行権限700つけてやるの忘れずにね。

0 件のコメント:

コメントを投稿