2011年12月27日火曜日

CentOS6のインストール(テキストモード)

CentOS6の基本的なインストール

VMware ESXi5.0を使い仮想マシンで構築

環境はDell PowerEdgeR410(Xeon E5530×2、メモリ32GB)にESXi5.0で構成されたものを使います。構築はこちらを参考にして頂ければ幸いです。

ここではデスクトップ利用ではなくサーバ用途を目的としております。従ってX-Windowは利用しません。また、DVDイメージをダウンロードしてメディアに焼くなんて面倒なことはせずにネットワークインストールで行います。

尚、LAN使用を目的としているためセキュリティは最低限としております。


■準備■

事前にCentOSネットワークインストール用ISOファイルを取得しておきます。

CentOS6よりboot.isoはなくなりました。その代り各バージョンごとにISOファイルが用意されているようです。他にもダウンロード先はありますので以下のページでご確認ください。

http://www.centos.org/modules/tinycontent/index.php?id=32

ここではCentOS6.2-32bit版を選択しています。

ftp://ftp.riken.jp/Linux/centos/6.2/isos/i386/CentOS-6.2-i386-netinstall.iso
※理科学研究所さまありがとうございます。

取得したISOファイルをESXi上のデータストアにアップロードしておきます。
※私は別マシンにNFS共有を作成してそこに各ISOファイルをアップ、さらにこのNFS共有をESXi上でストレージ追加して仮想マシンから指定できるようしてあります。
詳しくはこちら

では新規仮想マシンを作成します(vSphere Client経由)。
詳しくはこちら

仮想マシンの「設定の編集」>ハードウェア>CD/DVDドライブで「データストアISOファイル」でCentOS-6.2-i386-netinstall.isoを指定します。
このときデバイスのステータス内の「パワーオン時に接続」にチェックを入れておきます。こうすることによりCD/DVDドライブから起動してISOファイルが読み込まれます。

※事前にBIOSを起動して日時を確認してください。


■インストール開始■

では仮想マシンの電源をオンにします。(vSphere Clientにてコンソールタブにしてね)
CD/DVDドライブからbootしてインストールメニューが表示されます。
キー操作ができませんので、コンソール画面内のクリックを忘れずに!
1分以内に何かキーを押さないと勝手に起動が始まってしまうよ

メニューの選択は一番上を選択すればOKです。
GUIなどで不具合が出たときなど2番目を選択することもあります。
詳しくはRed Hat Enterprise Linuxのページを参照してください。
Tabキーを押してオプション編集で~imgの後に半角スペース+textという文字を追加します。
ただしメモリが652MB以下だと強制的にテキストモードになるのでこの操作は不要です。
検証は不要ですので「Skip」
インストール中の言語です。基本はEnglish!
確かテキストモードでは日本語にならないと思います。
キーボードタイプを選択します。
一応確認した方がよいですが、ほとんどが日本語のjp106だと思います。
インストールイメージの参照先
インターネット経由なのでURLを選択します。
私はIPv6を使わずIPv4で固定IPを割り振ります。
DHCPでもよいがサーバ用途のため必然的に固定IPです。
割り当てるIP、デフォルトゲートウェイ、DNSを設定します。
ご自分のLAN環境に合わせてくださいね。
これが正しく設定されないとインストールできません。
インストールイメージの参照先(これ以外にもたくさん公開されています)
私は理化学研究所さんを使わさせて頂きます。
http://ftp.riken.jp/Linux/centos/6.2/os/i386
(画面ではhttp://ftp.riken.jp/Linux/centos/6/os/i386になっていますが
最新バージョンの6.2であればこれでもOK)

詳しくはCentOSのダウンロードサイト(アジア圏)で確認してください。
またproxyを使う方は指定してね。
URLが正しければInstall.imgを読み込みます
VNCは使いません。「Use text mode」です。
ようこそ!
ディスクの初期化が必要ということで初期化します
Re-initialize allでOK
UTCのチェックを外して「Asia/Tokyo」を選択
rootのパスワードを指定します
ドライブ全体を使用するので「Use entire drive」を指定します
以前はパーティションをカスタマイズできたがCentOS6のテキストモードでは
できないようになってるようです。従ってそのままディスクに書き込みます。

またパッケージを選択する項目もなくなってしまったようですね。
構成はMinimalつまり最小構成が自動選択されるようです。

■初期設定■

●システム時刻の調整
# date -s "12/27 16:45 2011";hwclock --systohc
※date -s "月/日 時:分 西暦"
hwclock;date

●ネットワーク設定の確認
IPアドレスやDNS、ゲートウェアなど基本的なネットワークを再度確認しておきましょう。
# cat /etc/hosts
# cat /etc/sysconfig/network
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# cat /etc/sysconfig/network-scripts/ifcfg-eth1(複数Nicがあれば)
# cat /etc/resolv.conf

●IPv6の無効
状態を確認
# ifconfig
[inet6 addr: ・・・・]という行があれば有効になっています。


# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0  ← disableになっていない
# cat /proc/sys/net/ipv6/conf/default/disable_ipv6
0  ← disableになっていない

disableを有効にする
# vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1    ←追記
net.ipv6.conf.default.disable_ipv6 = 1 ←追記

SSHの待ち受けを強制的にipv4のみにする
# vi /etc/ssh/sshd_config
ListenAddress 0.0.0.0 ←#を取り除き有効

hostsファイルの編集(やらなくてもよい)
# vi /etc/hosts
#::1 ←コメント

OSを再起動して確認してみます。
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1
# cat /proc/sys/net/ipv6/conf/default/disable_ipv6
1
それぞれ1になっていればOKです。

-------------------------------------------------------------------
OSを再起動させないで適用する方法
sysctl.confおよびsshd_configを編集後以下の処理を行う
# echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
# echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6

# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1
# cat /proc/sys/net/ipv6/conf/default/disable_ipv6
1
それぞれ1になっていればOKです。


# /etc/init.d/network restart
# /etc/init.d/sshd restart
これでOK
※echo 1 >の「>」をここで半角使用すると化けるので全角を使ってます。
-------------------------------------------------------------------

●GPGKEYのインストール
ネット経由からのパッケージが正しい配布先のものか等に使われます。
# rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6;

KEYの確認
# rpm -qai gpg-pubkey*

●パッケージ群のインストール
ソースからインストールすることが多いので開発パッケージ"Development Tools"を入れます。
あとはベースシステム"Base"ですかね(結構いらないものが多いが・・・)。
私は最低限この2つを入れます。
# yum groupinstall base "Development Tools"
# Is this ok [y/N]:y ←入力
※yum -y groupinstall baseのようにオプションに「-y」を付加すると確認せずインストールが始まります。

パッケージ全体のアップデートを行います。
# yum -y update

●タイムサーバ(ローカルのみ参照可能)
# rpm -qa | grep ntp
存在しなければ
# yum -y install ntp
※CentOS6ではBaseパッケージ群に含まれています。

外部NTPサーバから正確な時刻に合わせます。
# ntpdate ntp.nict.jp ← 独立行政法人情報通信研究機構を利用

ハードウェア時刻(マザーボード)も同期させます。
# hwclock --systohc

時刻を正確に保つようにします。
# vi /etc/ntp.conf

 #restrict default kod nomodify notrap nopeer noquery ←コメント
 #restrict -6 default kod nomodify notrap nopeer noquery ←コメント
 ※上記をコメントにするだけですべての通信をストップさせることが可能

 restrict 127.0.0.1 ←ローカルホストアクセス許可(IPv4)
 #restrict -6 ::1 ←コメント(IPv6は使いません)

 #server 0.centos.pool.ntp.org ←コメント
 #server 1.centos.pool.ntp.org ←コメント
 #server 2.centos.pool.ntp.org ←コメント
 server -4 ntp.nict.jp ←追記(-4はIPv4という意味)
 server -4 ntp1.jst.mfeed.ad.jp ←追記(インターネットマルチフィード様
 server -4 ntp2.jst.mfeed.ad.jp ←追記
 ※インターネットマルチフィード様もNICTを利用している

ntpdを起動、自動起動
# /etc/init.d/ntpd start
Starting ntpd:                                             [  OK  ]
# chkconfig ntpd on

●System services
不要サービスを起動させないようセットアップします。
基本的に最初は最低限にした方がよいと思います。あとで必要に応じてONにしていきます。

私はサーバ用途が前提でとりあえず有効にするのは以下のサービスです。
・crond(スケジュールによるコマンド実行)
・iptables(パケットフィルタリング)
・network(これがないと話になりません)
・ntpd(タイムサーバ)
・postfix(メール)
・rsyslog(ログ syslogからrsyslogに変わりましたね)
・sshd(他のPCから遠隔操作する)

必要に応じて・・・
・cpuspeed(負荷に応じたCPU自動コントロール)
・irqbalance(マルチCPU環境での分散処理 ※デュアルCPU以上

では設定します。

# setup
System services > Run Tool で実行

用途によって違いますが不要と思われるサービスを起動させないようします。
スペースキーでON/OFFを切り替えます。

●FireWall Configuration
デフォルトのEnableではsshのみ受信許可されている。

あとはそれぞれのサーバ機能を加えるときにポート解放をしていく。
これを使わず直接iptablesを設定してもよい。

構築中はFWを基本的にOFFにしておいた方がいいでしょう。
動くことが確認できてから全ポートを閉じ一つ一つポートを開けていくことをお勧めします。
そうしないと結構ハマルことがあります・・・経験上。


※# system-config-firewall-tui でもFireWall Configurationを開くことができる。

●SELinuxの無効化

# vi /etc/sysconfig/selinux

SELINUX=enforcing → disabledに書き換える

OSを再起動します。

●ユーザの追加
作成時に自動的にユーザディレクトリ直下にpublic_htmlディレクトリが作成されるようにします。
※Webのユーザディレクトリ公開やFTPのユーザカレントディレクトリなどに利用
# mkdir /etc/skel/public_html

ユーザ追加
# useradd hoge

ユーザパスワードの設定
# passwd hoge
※パスワードを2回入力します



●SSHのセキュリティ
セキュリティとしてはカギ認証やChroot化などありますが、最低限として以下の設定をします。
・ログイン認証時間は20秒
・rootログインの禁止
・パスワードの設定されていないユーザのログインを禁止
・指定ユーザのみ接続許可

設定ファイルを開きます。
# vi /etc/ssh/sshd_config

以下を先頭行付近でもいいし最終行付近でもいいしどこかに追記します。(私は先頭)
LoginGraceTime 20
PermitRootLogin no
PermitEmptyPasswords no
AllowUsers hoge

設定を適用します。
# /etc/init.d/sshd restart


SSHクライアント(TeraTermやPoderosaなど)からrootログインできないことを確認します。

一般ユーザでログインしてsuできるか?一般ユーザからrootへなれるか確認します。
[hoge@localhost] $ su -
rootパスワードの入力
[root@localhost] # ←$から#に変わればスーパーユーザ(root)になっている

rootから一般ユーザへ
[root@localhost] # exit (logoutでも可)
[hoge@localhost] $

●root宛てメールを任意のアドレスへ転送
# cd /etc/
# vi ./aliases
以下を最終行に追記する
root: hogehoge@example.com



設定の反映
newaliases

●Logwatchのインストール
この状態ではLogwatchがインストールされていなかったためインストールします。
# yum -y install logwatch

●VMwareToolsのインストール
無精で申し訳ありませんが、方法はこちらを参考にしてください。
とりあえずこんなもんでしょうか・・・

 
 
 

0 件のコメント:

Google検索