不要なデーモンを停止させる (CentOS 6.5)

個人的な備忘録その2。
サーバーのリソースが圧迫防止と、セキュリティの観点から、使わないサービスを停止させます。
環境は、さくらVPSの初期状態となっています。自身の環境と照らしあわせて、適宜変更することをおすすめします。

----
# 1.初期状態で起動しているデーモンを確認
```sh
% chkconfig --list
abrt-ccpp        0:off   1:off   2:off   3:off   4:off   5:off   6:off
abrt-oops        0:off   1:off   2:off   3:off   4:off   5:off   6:off
abrtd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
acpid            0:off   1:off   2:on    3:on    4:on    5:on    6:off
atd              0:off   1:off   2:off   3:on    4:on    5:on    6:off
auditd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
blk-availability 0:off   1:on    2:on    3:on    4:on    5:on    6:off
cpuspeed         0:off   1:on    2:off   3:off   4:off   5:off   6:off
crond            0:off   1:off   2:on    3:on    4:on    5:on    6:off
haldaemon        0:off   1:off   2:off   3:off   4:off   5:off   6:off
ip6tables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables         0:off   1:off   2:on    3:on    4:on    5:on    6:off
irqbalance       0:off   1:off   2:off   3:on    4:on    5:on    6:off
kdump            0:off   1:off   2:off   3:off   4:off   5:off   6:off
lvm2-monitor     0:off   1:on    2:off   3:off   4:off   5:off   6:off
mdmonitor        0:off   1:off   2:off   3:off   4:off   5:off   6:off
messagebus       0:off   1:off   2:off   3:off   4:off   5:off   6:off
netconsole       0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs            0:off   1:off   2:off   3:off   4:off   5:off   6:off
network          0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpd             0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpdate          0:off   1:off   2:on    3:on    4:on    5:on    6:off
postfix          0:off   1:off   2:on    3:on    4:on    5:on    6:off
psacct           0:off   1:off   2:off   3:off   4:off   5:off   6:off
quota_nld        0:off   1:off   2:off   3:off   4:off   5:off   6:off
rdisc            0:off   1:off   2:off   3:off   4:off   5:off   6:off
restorecond      0:off   1:off   2:off   3:off   4:off   5:off   6:off
rngd             0:off   1:off   2:off   3:off   4:off   5:off   6:off
rsyslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
saslauthd        0:off   1:off   2:off   3:off   4:off   5:off   6:off
smartd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
sshd             0:off   1:off   2:on    3:on    4:on    5:on    6:off
svnserve         0:off   1:off   2:off   3:off   4:off   5:off   6:off
sysstat          0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post        0:off   1:on    2:off   3:off   4:off   5:off   6:off
yum-updateonboot 0:off   1:off   2:off   3:off   4:off   5:off   6:off
```
みにくい・・・orz


* 現在のランベルで起動している件数を確認

```sh
% chkconfig --list | awk '{printf "%s\t\t%s\n", $1,$5}' | grep 3:on | wc -l
14
```
14件 ぉ、思ったより少ない。

# 2.各デーモンについて調べ、起動・停止を判断する
## abrt-ccpp, abrt-oops, abrtd
* ホスト機の動作を監視し、スクリプトエラーなどをログファイルに記録するデーモン。
* 問題の早期発見につながるため、起動させるべきですが、使用方法を理解していないでログばかり吐き出されても仕方ないので、もう少し勉強してから運用方針を考えます

## acpid
* 省電力用休止状態をサポート。
* 本来ノートPC用で通常のサーバーでは不要なのですが、これを off にするとさくらVPSのホスト側からシャットダウンできなくなるので、このサーバーでは on に設定

## atd
* 単発的にスケジュール化した コマンド を実行させるデーモン。
* 指定時間にコマンド実行を行える，`at`コマンドを使用したい場合に利用します

## auditd
* システム監査結果のログ保存などを行う。
* SELinuxの詳細なログを収集する。SELinuxを使わないのであれば不要

## blk-availability
* LVM2のミラーデバイスを管理する。
* LVM2 (Logical Volume Manager Version2 : 論理ボリュームマネージャー) という物理的に異なる複数のハードディスクを1つの仮想ディスクとみなす技術をサポートしています。
* 使わないので停止させます

## cpuspeed
*システムのアイドル比率に応じてCPUの動作周波数を上下させるためのデーモン。
* 主にノートPCのバッテリー動作時間を少し伸ばすためにある。サーバーとしては不要

## crond
* 継続的にスケジュール化した コマンド を実行させるデーモン。
* みんな大好き`cron`コマンドを使用したい時に使います。

## haldaemon
* D-BUSサポートを行うデーモン。
* サーバーにモニターがないため不要

## ip6tables
* IPv6対応のファイアーボール設定。
* IPv4しか使わない予定で、セキュリティホールになる可能性があるため、今回は必要ないです

## iptables
* IPv4対応のファイアーボール設定。
* 無いと困ります。

## irqbalance
* マルチCPU のサーバーを使用する際、効率よく処理を分散させるデーモン。
* 今回のサーバーは マルチCPU なので on

## kdump
* システムに異常が起こって強制的に停止や再起動が行われるとき、メインメモリ上の内容をハードディスク上に記録するためのデーモンです。
* Kdump のログは解読が難解なため、少なくとも筆者は記録されても扱えないです ＞＜
* 今回は off に設定します

## lvm2-monitor
* LVM2 の障害監視を行うデーモン。
* 使わないので停止させます

## mdmonitor
* ソフトウェアRAID管理デーモン。ソフトウェアRAIDを使う予定が無いため停止させます

## messagebus
* D-BUSサポートを行う。不要

## netconsole
* CentOS6のカーネルが不具合を起こしたとき、ネットワーク接続されたほかのホスト機にダンプを行うためのデーモンです。
* 正直ダンプファイルを読み解く自信が無いため、offにします

## netfs
* Network File System(NFS) クライアントデーモン。
* ファイル共有するつもりがないので不要

## network
* ネットワークシステムのデーモン。
* これが稼動していないとネットワークは一切使用できません。必ず稼動させておきます。

## ntpd
* NTP で上位のNTPサーバーを参照して時刻を調整するためのデーモン
* 時間設定を行えなくなるので稼働させておきます

## ntpdate
* 上記 ntpd のサポートデーモン。システムクロックの補正を精密に行ってくれます。
* 正直無くても大丈夫ですが、あって悪いことはしないので稼働させます

## postfix
* SMTP (Simple Mail Transfer Protocol) サービスデーモンです。
* 今のところメールサーバーとしての運用は考えていないので停止させます。

## psacct
* システム上でユーザーが使用したコマンドやそのコマンドによる負荷などを統計するデーモン。
* おそらく使わないので停止

## quota_nld
* ディスクの使用量制限を設けるシステム"quota"を動作させる際、使用超過をD-BUS等に通知するデーモン。
* おそらく使わないので停止

## rdisc
* CentOS6を ルーター として動作させるときの経路管理を行うデーモン。
* 今回ルーターとして使うつもりはないので停止させます。

## restorecond
* SELinux の運用サポートデーモン。SELinux と連動して、ファイルの作成などを監視して適当なラベルを付与します
* 今回 SELinux を使わないので停止

## rngd
* ハードウェア を元に乱数を発生させるためのデーモン。
* 大量のユーザーを抱えた認証サーバーなどで使用するもの。今回は不要

## rsyslog
* ログファイル を書き出すのデーモン。
* ログがないと運用なんてまず出来ないので稼働させます。

## saslauthd
* SASL (Simple Authentication and Security Layer) という認証のメカニズムを提供するデーモン。
* 使う予定が無いので停止

## smartd
* Self-Monitoring, Analysis and Reporting Technology(S.M.A.R.T) のサポートを行います。
* RAIDを使わないので停止

## sshd
* SSH (Secure SHell) というサーバーをパソコンなどからリモート操作するために必要なデーモン。
* 今後お世話になるので稼働させておきます

## svnserve
* Apache Subversion というソースコードバージョン管理システムで使用するデーモン。
* バージョン管理には我らが Git を使用する予定なので不要です  

## sysstat
* サーバーシステムの稼働状態を監視し、コマンド操作によりレポートを返すためのデーモン。
* 面白そうなので時間があるときに起動させて遊びたいですが、とりあえず停止で良いでしょう

## udev-post
* サーバーに接続されたハードウェアの自動認識を行うデーモン。
* ハードウェアを接続することはまず無いので停止させます。

## yum-updateonboot
* システム起動時に yum のリポジトリを調べ、更新されたパッケージの有無を確認・自動的にインストールするデーモンです
* 常時起動のサーバーは再起動が少ないため、不要です。


# 3.調査結果に基づいてサービスの停止・起動を行う
* 上でなんか沢山調べましたけど、現在のランレベルに対して行う操作は以下の5行だけでしたｗ

```sh
% chkconfig --level 3 acpid off
% chkconfig --level 3 blk-availability off
% chkconfig --level 3 ip6tables off
% chkconfig --level 3 postfix off
% chkconfig --level 3 sysstat off
```



* 上記設定した後、自動起動サービスは以下のとおりになりました。

```sh
% chkconfig --list | awk '{printf "%s\t\t%s\n", $1,$5}' | grep 3:on
atd             3:on
crond           3:on
iptables        3:on
irqbalance      3:on
network         3:on
ntpd            3:on
ntpdate         3:on
rsyslog         3:on
sshd            3:on

% chkconfig --list | awk '{printf "%s\t\t%s\n", $1,$5}' | grep 3:on | wc -l
9
```

# 注意
* `chkconfig` にて変更した内容は、ただ自動起動の設定をいじるだけです。onにしたからといってすぐ起動したりはしません。(offの場合も然り)
* サーバーを再起動させるか、`service` コマンドで手動起動させましょう

----
# 参考文献
* [はじめてのさくら VPS + CentOS の初期設定からチューニングなどの作業まとめ | ウェブル](http://www4413u.sakura.ne.jp/wiki/28.html)
* [◇不要デーモンの停止(CentOS6)◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆](http://www.obenri.com/_minset_cent6/daemon_cent6.html)
* [CentOS 6 - 初期設定 - サービス設定 ： Server World](http://www.server-world.info/query?os=CentOS_6&p=initial_conf&f=4)
* [ITmedia エンタープライズ : Linux Tips「起動デーモンそれぞれの目的が知りたい」](http://www.itmedia.co.jp/help/tips/linux/l0038.html)
* [26.3. chkconfigコマンドによる自動起動の設定](http://vinelinux.org/docs/vine5/manuals/chkconfig.html)