I ♥ WordPress

Cent OS で自宅サーバ構築
2007/02/11 00:44 posted by kunkichi

ここのところ仕事が忙しいのかヒマなのかよくわからん日々が続いていて、ちょっとマンネリ気味。。。ということで自分に刺激を与えるべく、前からやろうと思っていたCentOSのインストールをやってみた。


なんでCentOSかっていうと、他によさげなディストリビューションがないから。
ちなみにプライベート・仕事含めて、これまでに触ってきたUnix系OSとそれぞれの印象はこんな感じ。

  • Red Hat Linux
    今は亡き、初めてさわったLinuxディストリビューション。
  • Red Hat Enterprise Linux
    Red Hatの有償版。パッケージアップデートの仕組みもちゃんとできていていいんだけど、個人では高い。
  • Vine Linux
    コンパクトかつ安定した国産ディストリ。今までの一番のお気に入り。
  • Debian GNU/Linux
    パッケージの豊富さではダントツ。でもちょっとやりすぎ感アリ。Apacheのあの設定ファイルのディレクトリ構造はよく考えられてるかもしれないけどやっぱり好きになれない。
  • Miracle Linux
    Oracle系。仕事で触ったっきり。
  • TurboLinux
    これも仕事で。クセありすぎ。
  • Gentoo Linux
    一時期は結構使ってたなー。パッケージシステムと言いつつビルドするタイプ。でもビルドが長いんだよー、KDEとか3日ぐらいかかる(爆)。
  • FreeBSD
    これもビルドする系。ちょびっと触っただけだけど、jailとか、結構気になるポイントあり。時間があったら試してみたい。
  • Solaris
    これで食べてます。でもダントツで嫌い(爆)。ただRaidとかはやっぱりよくできてるんだよね。

この中では、Vineがコンパクトで日本語も良くできていて一番のお気に入りだったのだけど、この辺↓の本を読んで、変わったことをやろうとすると、やっぱりパッケージが少ない。

Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編
デージーネット
秀和システム
売り上げランキング: 22115

ソースから入れればいいのかもしれないけど、ソースインストールでずっと使ってると結構汚くなるしバージョンアップも難しくなるし、パッケージシステムを使っているディストリビューションならやっぱりパッケージで入れたいよね、ということ、あと長く使うことも考えて、今回はCentOS。

とりあえずOSインストール時のポイントはこの辺を参考に。

とりあえずうちの場合、

  • インストールCDはサーバ版。
  • ファイアウォール・SELinuxは無効。
  • パッケージは最小構成。

で進めてみる。

インストールが終わったらとりあえずコンソールからログイン。コンソールにへばりつくのも不便なので、とりあえずsshでrootログインを許可しておく。もちろん後でユーザを作成したら直す予定。sshは鍵使わなきゃね。

# cp -pi /etc/ssh/sshd_config /etc/ssh/sshd_config.ORG
# vi /etc/sshd/sshd_config
------------------------------------------------–
PermitRootLogin yes
------------------------------------------------–
# /etc/init.d/sshd restart

次にパッケージ全体のアップデート。aptには慣れてるけど、CentOSではyumがそれに当たるらしい。

# yum update

カーネルがアップデート対象に含まれていたら再起動。

# shutdown -r now

ユーザを作ります。

# useradd kunkichi
# passwd kunkichi

次にグループ。さっき作ったユーザはユーザ名と同じグループになっているのだけど、上のページに書いてあるように共有ディレクトリ用にグループを作って、ディレクトリにSetGIDしておく。

# groupadd cafechantant
# usermod -G cafechantant,wheel kunkichi
# mkdir /home/cafechantant
# chmod g+s /home/cafechantant
# chgrp cafechantant /home/cafechantant

上でユーザをwheelグループに追加したのは、wheelに所属しているユーザだけがrootになれるようにしておきたいから。ということでrootになれるユーザを限定する設定。

# vi /etc/pam.d/su
------------------------------------------------–
auth       required     /lib/security/$ISA/pam_wheel.so use_uid
------------------------------------------------–
# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs

一通りユーザも作成したのでsshの設定。さっきのユーザでログインする。

$ mkdir .ssh
$ chmod 700 .ssh

ローカル端末で作った鍵ペアのうち、公開鍵を.ssh/authorized_keysとしてアップして権限変更。

$ chmod 600 .ssh/authorized_keys

最初に変更した sshd_config の設定を元に戻して、ついでにパスワード認証じゃなくて公開鍵認証に切り替える。

# vi /etc/ssh/sshd_config
------------------------------------------------–
#PermitRootLogin yes
#PasswordAuthentication yes
------------------------------------------------–
# /etc/init.d/sshd restart

前回のエントリであった、locateコマンドのデータベースを作る。

# vi /etc/updatedb.conf
------------------------------------------------–
DAILY_UPDATE=yes
------------------------------------------------–

CentOSの日本語のデフォルト文字コードはUTF-8なんだけど、いろいろと面倒が起こりそうなのでEUC-JPに変更。

# vi /etc/sysconfig/i18n
------------------------------------------------–
LANG="ja_JP.EUC-JP"
SUPPORTED="en_US.UTF-8:en_US:en:ja_JP.EUC-JP:ja_JP.UTF-8:ja_JP:ja"
------------------------------------------------–

上のページとか他のページを見ると、これに併せて man のページャーを more とか lv に変更していて、どうやら文字化け対策のようなのだけど、うちの環境だとそもそも日本語で表示されないなぁ、、全部のコマンドを網羅したわけではないけど。とりあえず lv にしておく。で lv はパッケージが用意されてないようなのでこれだけはソースから入れておく。

# yum install gcc
# wget http://www.ff.iij4u.or.jp/~nrt/freeware/lv451.tar.gz
# tar zxvf lv451.tar.gz
# cd lv451/build
# ../src/configure
# make
# make install
# vi /etc/man.config
------------------------------------------------–
PAGER           /usr/local/bin/lv
------------------------------------------------–

コンソールも文字化けしちゃうのでkonをインストール。

# yum install kon2 kon2-fonts

最後に ntp を入れておく。

# yum install ntp
# ntpdate ntp1.jst.mfeed.ad.jp
# vi /etc/ntp.conf
------------------------------------------------–
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp
------------------------------------------------–
# /etc/init.d/ntpd start
# ntpq -p
# chkconfig ntpd on

最後に不要なサービスを止めて、再起動。

# for i in autofs cups gpm isdn kudzu netfs nfslock pcmcia portmap rpcgssd rpcidmapd xfs
> do
> chkconfig ${i} off
> done

ふー、とりあえずこれで最低限のことはできたかな。ここからちょくちょくいじっていきます〜。

コメント&トラックバック

トラックバックURL





このページの先頭へ