CentOS 5.1 インストール後の作業

CentOSインストール後に行っておいたほうがいいであろう各種設定を紹介する。

  1. コンソールの文字化け対策
  2. 時刻の設定
  3. SELinuxの無効化
  4. 仮想コンソールの数を調整
  5. デフォルト・ラン・レベルの設定
  6. 不要なサービスの停止
  7. yumの設定
  8. その他の設定

1.コンソールの文字化け対策

 Fedora Core 1からロケールがUTF-8になった。このままではファイルやディレクトリ、PostgreSQLのテーブル内データなどで日本語を使っている場合、コンソール上で表示できない。
 対策として、次の2つを紹介する。

  1. ロケールがUTF-8のままで、日本語を表示させる。
  2. ロケールをUTF-8からeucJPに変更する。

1-1 ロケールがUTF-8のままで、日本語を表示させる

 ローカルコンソールでUTF-8の日本語を表示させるために、btermを導入する。
 なお、この作業はrootで行う。

インストール

yumで次のようにインストールする。

# yum -y install bogl-bterm

フレームバッファ用モジュール組込み

サーバ起動時にフレームバッファ用モジュールを読み込むよう、/etc/rc.localの最終行に以下をコードを追加する。

modprobe vga16fb

シェルの表示設定

ログイン時のシェルを設定する。/etc/profileの最終行に以下をコードを追加する。

export PS1='[\u@\h \W]# '

再起動

 以上の設定を行ったら、サーバを再起動する。

動作確認

 日本語を文字化けを起こさずに表示させるには、bterm上でコマンドを実行する。btermを起動するには、次のように実行する。

# bterm

 manなどを実行し、文字化けがおこずに日本語が表示されていれば、成功。なお、btermを終了するにはexitを実行すればよい。

1-2 ロケールをUTF-8からeucJPに変更する

 今までどおりEUC-JPで利用したい場合、viで/etc/sysconfig/i18nを開き、次のように修正し、再度ログインする。

LANG="ja_JP.eucJP"
SUPPORTED="ja_JP.eucJP:ja_JP:ja"
SYSFONT="latarcyrheb-sun16"

 上記設定のみだと、manコマンドで表示するドキュメントが文字化けしたままになってしまう。manコマンドは内部的にlessコマンドをページャとして利用するが、lessコマンドがUTF-8とその他の日本語文字コードの相互変換機能を持っていないためである。この問題を回避するには、相互変換機能を持つlvコマンドをページャとして利用すればよい。
 manコマンドをよく利用する場合は、viで/etc/man.configを開き、PAGER行を次のように修正する。

PAGER /usr/bin/lv -i

2.時刻の設定

2-1 時刻の合わせ方

 次のコマンドを実行すると、OS上の時刻をセットできる。

# /usr/sbin/ntpdate NTPサーバのURL(例、clock.nc.fukuoka-u.ac.jp)

 ntpdateなんてコマンドは無い!って怒られたら、ntpをインストールしよう。

# yum -y install ntp

2-2 BIOSの時刻をOSの時刻に合わせる

 2-1で取得した時刻にBIOSの時刻も合わせるには、次のコマンドを実行する。

# clock -w

2-3 一定の時間ごとに時間を合わせる

 cronを利用し、時刻合わせを自動化できる。詳しくはLinux講座のNTPの章を参照。

3.SELinuxの無効化

 CentOS5では、インストール時にSELinuxの有効/無効を設定できなくなった。よって、インストール後に無効にする。  /etc/sysconfig/selinuxをviで開き、次のように修正する。

SELINUX=disabled

 修正後、再起動を行う。再起動後、以下のコマンドで確認しておく。

# getenforce
Permissive ←Permissiveと出れば無効になっている。Enforcingと出たら無効になっていない

4.仮想コンソールの数を調整

 初期状態では6つの仮想コンソールを稼動させている。しかし、これらの仮想コンソールをすべて使用することはほとんどない。よって、必要と思われる最小のコンソール数だけを稼動するように設定を変更する。

 稼動する仮想コンソールは、/etc/inittabファイルで設定されている。必要ないものを削除するか、次のようにコメントアウトする。

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6

5.デフォルト・ラン・レベルの設定

 デフォルト・ラン・レベルが3なら「コンソール・ログイン」に、5なら「グラフィカル・ログイン」となる。コンソール・ログインにしておくと、大量のメ イン・メモリを消費するXサーバーを常時稼動させておく必要がないため、Xサーバーを使う場合でも通常はコンソール・ログインにしておくべきである。

 デフォルト・ラン・レベルの設定も/etc/inittabファイルで行う。ランレベルを3にしたい場合は、次のように設定する。

id:3:initdefault:

6.不要なサービスの停止

 /usr/sbin/setupを実行してText Mode Setup Utilityを表示し、「System services」を実行して、システム用件に関係ないサービスを停止する。私の場合、次のようになっていた。

初期状態サービス名機能

NetworkManager有線/無線(コネクション)に必要に応じて自動接続してくれるサービス

NetworkManagerDispatcherNetworkManagerの設定を自動保存するサービス
*acpidコンピュータの電源管理やハードウェア設定などに利用するACPIのイベントを監視し、必要に応じて処理を実施するサービス。LinuxではACPIの対応が不十分で、あまり活用されていないため、不要。ノートPCでは稼動させておいたほうが便利らしい・・・
*anacronコンピュータ停止などで未実行だった定期実行プログラムを、システム再起動時に実行するサービス。
*apmd電源管理機構(APM)システムを監視するデーモン。電源のON/OFFの頻度が低いサーバとして利用するなら不要。
*atdコマンドを指定期間後やシステム負荷の少ない時期に実行するサービス。cronで代用可能なため、不要。
*auditdSELinuxの詳細なログを収集するサービス
*autofsCD-ROMなどのリムーバブル・デバイスのドライブへの挿入を検知し、自動マウントするためのサービス。マウント作業は手動で行えるため、不要。
*avahi-daemon

avahi-dnconfd
*bluetoothワイヤレス通信サービス

conman
*cpuspeedシステムのアイドル比率に応じてCPUの動作周波数を上下させる
*crondコマンドを指定時刻に定期実行するサービス。停止させないほうがよい。
*cupsプリンタサービス

dhcpbd

dund
*gpmコンソールでのマウス入力を管理するサービス。コンソールでマウス入力する必要がない場合は不要。
*haldaemonハードウェア情報収集サービス
*hidd

ibmasmIBM システム管理デバイス・ドライバ
*ip6tables
*iptablesカーネルのファイアウォール設定を実施するサービス。セキュリティ上重要で、設定作業後はシステム・リソースを消費しない。停止させるべきではない。

irda赤外線通信規格「irDA」を使った通信を実現するサービス。赤外線通信を行わない場合は不要。
*irqbalanceマルチCPU環境でセカンドCPU以降も割り込み処理を行える
*kudzuハードウェア検出ツール
*lvm2-monitor
*mcstrans
*mdmonitorRAIDの状態監視サービス

mdmpdRAIDの状態監視サービス(multipath devices)
*messagebusアプリケーション間(サービス等)のメッセージを送るデーモン
*microcode-ctlIntel IA32 マイクロコードの更新をできるようにするためのドライバ

multipathd

netconsole
*netfsNFSのマウント/アンマウントを実施するサービス。NFSを使用していなければ不要。サービスを無効にしても、手動でマウント/アンマウントできる。

netplugdネットワークケーブルのホットプラグ管理デーモン
*networkラン・レベル切り替え時にネットワーク設定を施すサービス。無効にすると、ネットワーク設定を手動で行わなければならないため、通常は有効にしておくべき。

nfsNFSサーバを稼動させるサービス。NFSを使ってファイル共有を行わない場合は不要。
*nfslockNFSのファイル・ロック機能を提供するサービス。NFSを利用しない場合は不要。

nscdネームキャッシュサービスデーモン

oddjobs

pand
*pcscd
*portmapRPCサービスが利用する通信ポートを割り当てるサービス。RPCはNFS以外にはあまり利用されなくなっている。NFSを利用していなければ不要。

psacctコマンド、負荷状況の統計情報出力サービス

rdisc
*readahead_early前もってファイルをページ・キャッシュに読み込む

readhead_later
*restorecond
*rpcgssdRPCにおいてセキュリティコンテキストを生成するデーモン
*rpcidmapdNFS v4のIDと名前をマッピングするデーモン

rpcsvcgssd

saslauthdcyrus-saslからバージョンアップしたデーモン。認証サービスの一つ。
*sendmailメール・サーバーを稼動させるサービス。停止してもローカル配信は行えるため、メール・サーバーを運用しない場合は不要。
*smartdHDDの障害予測サービス
*sshd暗号を利用した安全なリモート作業を提供するSSHのサーバを稼動させるサービス。クライアントからサーバに接続するなら必須。
*syslogシステム・ログ

wpa_supplicant
*xfsX用フォントサーバ。Xを使用しないなら不要。

ypbindNISドメインのサーバを探して接続し、NISバインド情報を保持する
*yum-updatesdyum自動アップデートサービス

 不要なサービスは起動しないよう、チェックを外しておこう。設定変更後、再起動を行う。

7.yumの設定

 CentOS4はRedhat Linuxと同様にup2dateやyumを使ってパッケージのインストール・アンインストール・更新が行える。 ここでは、yumを使えるように設定する方法を紹介する。

6-1 yum-plugin-fastestmirrorのインストール

 ミラーサイトを最も近くのミラーサーバに設定してくれるプラグインを、次のようにインストールする。

# yum -y install yum-plugin-fastestmirror

6-2 yumによる自動更新の設定

 インストール済みのパッケージを自動更新するよう、設定を行う。勝手に更新されてしまうのが怖い場合はやらないほうが良い。

# yum -y install yum-cron
# chkconfig yum-cron on
# /etc/rc.d/init.d/yum-cron start

 cronにより、一定時間ごとにパッケージのアップデートが行われるようになる。

6-3 yum-updatesdの停止

 yumのアップデート通知サービスを停止する。このサービスが動いていると、手動アップデート/インストール時に競合し、アップデート/インストールが失敗するため。

# /etc/rc.d/init.d/yum-updatesd stop
# chkconfig yum-updatesd off

6-4 yumによる手動アップデート

 yumによるアップデートの方法は次の通り。

# yum check-update ←アップデートパッケージの確認
# yum update ←アップデート可能な全てのパッケージをアップデート(アップデートするかどうかをパッケージ毎に聞かれる)
# yum update パッケージ名 ←指定したパッケージをアップデート(確認あり)
# yum -y update ←アップデート可能な全てのパッケージをアップデート(確認なし)
# yum -y update パッケージ名 ←指定したパッケージをアップデート(確認なし)

 なお、kernelやglibといったOSの主要コンポーネントを更新した場合は、OSの再起動が必要である。自動アップデートの場合は何がアップデートされたのかを、ログを見て確認しておくこと。

8.その他の設定

 その他、やっておいたほうがいいと思われるものを紹介する。

7-1 rootになれるユーザを管理者のみにする

 wheelグループに所属するユーザだけがrootになれるようにする。
 viで/etc/pam.d/suを開き、次のように修正する。

auth required /lib/security/$ISA/pam_wheel.so use_uid ←コメントを解除

 次に、/etc/login.defsを開き、最終行に以下のコードを追加する。

SU_WHEEL_ONLY yes

7-2 SSHにおいて、rootでログイン出来ないようにする

 デフォルトでは、rootユーザによるリモートログインが可能になっている。怖いのでrootでのログインを禁止する。
 viで/etc/ssh/sshd_configを開き、次のように修正。

PermitRootLogin no ←コメントを解除し、修正

 保存後、SSHを再起動する。

# /etc/rc.d/init.d/sshd restart


[ TOP ]