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

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

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)

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

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

# clock -w

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

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

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

 初期状態では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

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

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

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

id:3:initdefault:

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

 /usr/sbin/setupコマンドを用いてシステム用件に関係ないサービスを停止する。私の場合、次のようになっていた。

初期状態サービス名機能

FreeWnnかな漢字変換サーバ。サーバ上で日本語入力を行わないのであれば不要。

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

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

auditdSELinuxの詳細なログを収集するサービス
*autofsCD-ROMなどのリムーバブル・デバイスのドライブへの挿入を検知し、自動マウントするためのサービス。マウント作業は手動で行えるため、不要。

bluetoothワイヤレス通信サービス
*cannaかな漢字変換サーバ。サーバ上で日本語入力を行わないのであれば不要。

chargenxinetd経由でキャラクタを生成するデーモン

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

cups-lpdcupsと古いlpdプロトコルを用いて通信することを可能にする

daytimexinetd経由でシステム日付を生成するデーモン

daytime-udpdaytimeのudp版

diskdumpシステムクラッシュ発生時にコアダンプファイルを作成

echoxinetd経由でechoするサービス

echo-udpechoのudp版

ekloginKerberosで暗号化されたrloginサーバ
*gpmコンソールでのマウス入力を管理するサービス。コンソールでマウス入力する必要がない場合は不要。

gssftpKerberos化されたftpサーバ
*haldaemonハードウェア情報収集サービス

ibmasmIBM システム管理デバイス・ドライバ
*iiim軽量化されたインプットメソッド(X-Windowで使用)

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

irda赤外線通信規格「irDA」を使った通信を実現するサービス。赤外線通信を行わない場合は不要。
*irqbalanceマルチCPU環境でセカンドCPU以降も割り込み処理を行える
*isdnISDN機器を検知し、通信に必要な設定を施すサービス。日本国内向けのISDN機器には対応していないため、不要。

kloginkerberos化されたrloginサーバ

krb5-telnetKerberos化されたtelnetサーバ

kshellKerberos化されたリモートシェルサーバ
*kudzuハードウェア検出ツール
*mdmonitorRAIDの状態監視サービス

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

netdumpネットワーク越しに、データとメモリダンプを送るサービス
*netfsNFSのマウント/アンマウントを実施するサービス。NFSを使用していなければ不要。サービスを無効にしても、手動でマウント/アンマウントできる。

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

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

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

ntpdNTPを使って時刻合わせをするサービス。
*openibdInfiniBandのデーモンサービス
*pcmciaPCカード管理。PCカードを利用しない場合には不要。
*portmapRPCサービスが利用する通信ポートを割り当てるサービス。RPCはNFS以外にはあまり利用されなくなっている。NFSを利用していなければ不要。

psacctコマンド、負荷状況の統計情報出力サービス
*rawdevices自動的にrawデバイスをマウントします

readaheadページ・キャッシュ内にあるファイルのページを前もって読み出す

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

rhnsdパッケージの自動更新機能を提供する「RedHat Network」を利用するためのサービス。yumを利用するなら不要
*rpcgssdRPCにおいてセキュリティコンテキストを生成するデーモン
*rpcidmapdNFS v4のIDと名前をマッピングするデーモン

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

timexinetd経由のtimeサーバ

time-udptimeサーバのudp版

tog-pegasusOpenPegasus WBEM Services
*xfsX用フォントサーバ。Xを使用しないなら不要。
*xinetd複数のサーバを必要に応じて稼動させるxinetdサーバを起動するサービス。標準ではxinetdサーバ経由で起動するサーバはほとんどないため、不要。セキュリティの面からも、停止させておくのが望ましい。

ypbindNISドメインのサーバを探して接続し、NISバインド情報を保持する

yumyum自動アップデートサービス

 不要なサービスは起動しないよう、チェックを外しておこう。

6.yumの設定

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

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

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

# yum -y install yum-plugin-fastestmirror

 インストール後、プラグインが有効になるようにyumの設定ファイルを更新する。

# echo plugins=1 >> /etc/yum.conf

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

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

# chkconfig yum on
# /etc/rc.d/init.d/yum start

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

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

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

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

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

7.その他の設定

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

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 ]