CentOSインストール後に行っておいたほうがいいであろう各種設定を紹介する。
Fedora Core 1からロケールがUTF-8になった。このままではファイルやディレクトリ、PostgreSQLのテーブル内データなどで日本語を使っている場合、コンソール上で表示できない。
対策として、次の2つを紹介する。
- ロケールがUTF-8のままで、日本語を表示させる。
- ロケールを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-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の章を参照。
CentOS5では、インストール時にSELinuxの有効/無効を設定できなくなった。よって、インストール後に無効にする。 /etc/sysconfig/selinuxをviで開き、次のように修正する。
SELINUX=disabled
修正後、再起動を行う。再起動後、以下のコマンドで確認しておく。
# getenforce
Disabled ←Permissiveと出れば無効になっている。Enforcingと出たら無効になっていない
初期状態では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
デフォルト・ラン・レベルが3なら「コンソール・ログイン」に、5なら「グラフィカル・ログイン」となる。コンソール・ログインにしておくと、大量のメ イン・メモリを消費するXサーバーを常時稼動させておく必要がないため、Xサーバーを使う場合でも通常はコンソール・ログインにしておくべきである。
デフォルト・ラン・レベルの設定も/etc/inittabファイルで行う。ランレベルを3にしたい場合は、次のように設定する。
id:3:initdefault:
/usr/sbin/setupを実行してText Mode Setup Utilityを表示し、「System services」を実行して、システム用件に関係ないサービスを停止する。私の場合、次のようになっていた。
初期状態 サービス名 機能 NetworkManager 有線/無線(コネクション)に必要に応じて自動接続してくれるサービス NetworkManagerDispatcher NetworkManagerの設定を自動保存するサービス * acpid コンピュータの電源管理やハードウェア設定などに利用するACPIのイベントを監視し、必要に応じて処理を実施するサービス。LinuxではACPIの対応が不十分で、あまり活用されていないため、不要。ノートPCでは稼動させておいたほうが便利らしい・・・ * anacron コンピュータ停止などで未実行だった定期実行プログラムを、システム再起動時に実行するサービス。 * apmd 電源管理機構(APM)システムを監視するデーモン。電源のON/OFFの頻度が低いサーバとして利用するなら不要。 * atd コマンドを指定期間後やシステム負荷の少ない時期に実行するサービス。cronで代用可能なため、不要。 * auditd SELinuxの詳細なログを収集するサービス * autofs CD-ROMなどのリムーバブル・デバイスのドライブへの挿入を検知し、自動マウントするためのサービス。マウント作業は手動で行えるため、不要。 * avahi-daemon ローカルネットワークサービスを自動的に発見してくれるサービス。サーバ用途なら不要。 avahi-dnconfd Avahi DNSデーモン。サーバ用途なら不要。 * bluetooth ワイヤレス通信サービス conman コンソールマネージャ * cpuspeed システムのアイドル比率に応じてCPUの動作周波数を上下させる * crond コマンドを指定時刻に定期実行するサービス。停止させないほうがよい。 * cups プリンタサービス dhcpbd DHCPでD-BUSを使うためのサービス dund Bluetoothでダイアルアップ・ネットワークを使うためのサービス * gpm コンソールでのマウス入力を管理するサービス。コンソールでマウス入力する必要がない場合は不要。 * haldaemon ハードウェア情報収集サービス * hidd Bluetooth HIDサービス ibmasm IBM システム管理デバイス・ドライバ * ip6tables IPv6用のファイア・ウォールサービス。IPv6を使わなければ不要。 * iptables ファイアウォール設定を実施するサービス。セキュリティ上重要で、設定作業後はシステム・リソースを消費しない。停止させるべきではない。 irda 赤外線通信規格「irDA」を使った通信を実現するサービス。赤外線通信を行わない場合は不要。 * irqbalance マルチCPU環境でセカンドCPU以降も割り込み処理を行える * kudzu ハードウェア検出ツール * lvm2-monitor LVM関連 * mcstrans SELinux Translation Daemon * mdmonitor RAIDの状態監視サービス mdmpd RAIDの状態監視サービス(multipath devices) * messagebus アプリケーション間(サービス等)のメッセージを送るデーモン * microcode-ctl Intel IA32 マイクロコードの更新をできるようにするためのドライバ multipathd Device-Mapper Multipath(DM-MP)サービス netconsole コンソールに出力されるメッセージをUDP経由でリモートマシンへ記録するサービス。 * netfs NFSのマウント/アンマウントを実施するサービス。NFSを使用していなければ不要。サービスを無効にしても、手動でマウント/アンマウントできる。 netplugd ネットワークケーブルのホットプラグ管理デーモン * network ラン・レベル切り替え時にネットワーク設定を施すサービス。無効にすると、ネットワーク設定を手動で行わなければならないため、通常は有効にしておくべき。 nfs NFSサーバを稼動させるサービス。NFSを使ってファイル共有を行わない場合は不要。 * nfslock NFSのファイル・ロック機能を提供するサービス。NFSを利用しない場合は不要。 nscd ネームキャッシュサービスデーモン oddjobs D-BUSをつかわなければ不要。 pand Bluetoothを使わなければ不要。 * pcscd スマート・カードを使わなければ不要。 * portmap RPCサービスが利用する通信ポートを割り当てるサービス。RPCはNFS以外にはあまり利用されなくなっている。NFSを利用していなければ不要。 psacct コマンド、負荷状況の統計情報出力サービス rdisc ネットワークルータ検出デーモン * readahead_early 前もってファイルをページ・キャッシュに読み込む。サーバ用とでは不要。 readhead_later 前もってファイルをページ・キャッシュに読み込む。サーバ用とでは不要。 * restorecond 新しいファイルを作成したときに、SELinuxの適切なラベルづけを行う。SELinuxを使わないなら不要。 * rpcgssd RPCにおいてセキュリティコンテキストを生成するデーモン。NFSを使わなければ不要。 * rpcidmapd NFS v4のIDと名前をマッピングするデーモン。NFSを使わなければ不要。 rpcsvcgssd 。NFSを使わなければ不要。 saslauthd cyrus-saslからバージョンアップしたデーモン。認証サービスの一つ。 * sendmail メール・サーバーを稼動させるサービス。停止してもローカル配信は行えるため、メール・サーバーを運用しない場合は不要。 * smartd HDDの障害予測サービス * sshd 暗号を利用した安全なリモート作業を提供するSSHのサーバを稼動させるサービス。クライアントからサーバに接続するなら必須。 * syslog システム・ログ wpa_supplicant 無線LAN暗号WPA(Wi-Fi Protected Access)認証クライアント。WPAを使わなければ不要。 * xfs X用フォントサーバ。Xを使用しないなら不要。 ypbind NISドメインのサーバを探して接続し、NISバインド情報を保持する * yum-updatesd yum自動アップデートサービス 不要なサービスは起動しないよう、チェックを外しておこう。設定変更後、再起動を行う。
CentOS4はRedhat Linuxと同様にup2dateやyumを使ってパッケージのインストール・アンインストール・更新が行える。 ここでは、yumを使えるように設定する方法を紹介する。
6-1 yum-plugin-fastestmirrorのインストール
CentOS 5.1では、ミラーサイトを最も近くのミラーサーバに設定してくれるプラグインを、次のようにインストールした。
# yum -y install yum-plugin-fastestmirror
しかし、CentOS 5.2ではそんなパッケージはないと怒られる。最初から組み込まれるようになったようだ。
6-2 yumによる自動更新の設定
インストール済みのパッケージを自動更新するよう、設定を行う。勝手に更新されてしまうのが怖い場合はやらないほうが良い。
# yum -y install yum-cron
# chkconfig yum-cron on
# /etc/rc.d/init.d/yum-cron startcronにより、一定時間ごとにパッケージのアップデートが行われるようになる。
6-3 yum-updatesdの停止
yumのアップデート通知サービスを停止する。このサービスが動いていると、手動アップデート/インストール時に競合し、アップデート/インストールが失敗するため。
# /etc/rc.d/init.d/yum-updatesd stop
# chkconfig yum-updatesd off6-4 yumによる手動アップデート
yumによるアップデートの方法は次の通り。
# yum check-update ←アップデートパッケージの確認
# yum update ←アップデート可能な全てのパッケージをアップデート(アップデートするかどうかをパッケージ毎に聞かれる)
# yum update パッケージ名 ←指定したパッケージをアップデート(確認あり)
# yum -y update ←アップデート可能な全てのパッケージをアップデート(確認なし)
# yum -y update パッケージ名 ←指定したパッケージをアップデート(確認なし)なお、kernelやglibといったOSの主要コンポーネントを更新した場合は、OSの再起動が必要である。自動アップデートの場合は何がアップデートされたのかを、ログを見て確認しておくこと。
その他、やっておいたほうがいいと思われるものを紹介する。
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