1. ネットワークの構成 & インストールの前提条件
以下の前提条件でインストールを行います。
ネットワーク図
前提条件
1. YahooBBによりインターネットに接続しています。
2. グローバルIPアドレスはYahooBBよりDHCPで取得しています。
3. GUI環境はインストールせずに、コマンドラインでサーバを操作します。
4. Linuxのインストール後、公開サーバはクライアントからSSHで操作します。
5. サーバソフトウェアはLinuxのインストール後、ソースからインストールします。
まず最初にFedora 12をダウンロードしてください。
Fedora-12-i386-disc1-5.iso
(3つのisoイメージファイルの総サイズは約2Gバイトありますのでダウンロードには時間がかかります。)
そしてダウンロードしたisoイメージファイルをCD-Rに書き込んでください。(CD-Rが3枚必要です。)
BIOSでCD-ROM起動を可能にしてください。CD-ROM起動ができない場合はインストール用BOOTDISKを作成し、
FDから起動します。
Windowsでインストール用ブートディスクを作成する
CDD=D: FDD=A: とします。
WindowsかDOSを起動した後DISK1のCD-ROM及びフォーマット済みFDをドライブに入れます。そしてD:に移動します。
C:\>D:
次にdosutilsディレクトリに移動します。
D:\>cd \dosutils
そしてrawriteコマンドでFDにコピーします。
D:\dosutils>rawrite -f ..\images\bootdisk.img -d A:
コピーが終われば完了です。
Linuxでインストール用BOOTDISKを作成する
CDD=/dev/cdrom FDD=/dev/fd0 とします。
ターミナルを起動した後DISK1のCD-ROM及びフォーマット済みFDをドライブに入れます。
そしてFDにコピーします。
#dd if=/dev/cdrom/images/bootdisk.img of=/dev/fd0 bs=1440k
コピーが終われば完了です。
作成したCD-Rかインストール用ブートディスクで起動すると、Fedora coreのロゴと
boot:
というプロンプトが表示されますので ENTERキー を押して次に進みます。
次に先ほど作成したインストールCD-Rメディアに不具合が発生していないかテストを行うことができます。
テストを行いたい場合は [ Test ] を選択し、 ENTERキー を押します。行わない場合は [ Skip ] を選択し、 ENTERキー を押します。
ここからはグラフィカルインストールです。まずインストール画面で使用する言語を選択します。[ Japanese(日本語)] を選択し、[ Next ]
をクリックします。
キーボードの設定を行います。 [ Japanese ] を選択し、 [ 次 ] をクリックします。
マウスの設定を行います。デフォルトの状態で [ 次 ] をクリックします。
モニターの設定を行います。選択欄に使用しているモニターがあればそのモニターを選択します。なければGenericから選択します。そして [ 次 ] をクリックします。
(ほとんどの場合、自動的にモニターが検出されますのでそのままの状態で [ 次 ] をクリックします。)
既存のLinuxをアップグレードするか新規にインストールするか選択します。ここでは新規にインストールするので [ インストール Fedora Core ] を選択し、
[ 次 ] をクリックします。
インストールの種類を選択します。ここではカスタムを選択し、 [ 次 ] をクリックします。
次にディスクパーティションを自動で構成するか、手動で構成するか選択します。ここでは手動でパーティションを構成するので
[ Disk Druidを使用して手動パーティション設定 ] を選択し、 [ 次 ] をクリックします。
ディスクの設定を行います。個人用のデスクトップ環境であればパーティション構成もそれほど考慮する必要はありませんが、
サーバ用であれば障害復旧のことなどを考慮したパーティション構成にするほうが良いでしょう。
ここではハードディスクの容量が10Gバイトでメモリが256Mバイトとしてパーティションを構成します。
| /boot (100MB) |
/ (500MB) |
/home (3GB) |
/usr (3GB) |
/var (500MB) |
SWAP (256MB) |
/data (残り) |
パーティションを分割することによる利点はバックアップが楽になる点です。例えばシステムのアップグレードや障害の復旧などで再インストール
が必要な場合でも、消去したくないユーザデータなどが含まれる/homeや/usrなどのディレクトリをパーティションとして分割しておけば、
フォーマットせずにそのままの状態で残して、 / だけフォーマットして再インストールすることもできます。またクォータによるユーザの容量制限も容易にかけることができます。
しかしながらパーティションの構成や割り当てる容量はサーバの用途によって変わりますので上記の構成はほんの一例です。
構成を誤ると/homeに3Gバイト割り当てたのに1Gバイトも使われない場合や/usrに3Gバイト割り当てたのにもう残り容量が少ないなどの偏り
が発生する恐れがあります。それぞれの環境で適したパーティション構成を見つけてください。
ではパーティションを設定します。まず [ 新規 ] をクリックします。するとパーティションの追加ダイアログボックスが開きます。
マウントポイントで [ /boot ] を選択し、ファイルシステムタイプで [ ext3 ] を選択し、容量で [ 100 ] と入力します。追加容量オプションで [ 固定容量 ] を
選択し、 [ OK ] をクリックします。そして同じように次々と作成していきます。
SWAPパーティションの場合はファイルシステムタイプで [ swap ] を選択し、容量で [ 256 ] と入力します。
最後にいろいろな用途に使える/dataパーティションを作成します。マウントポイントで [ /data ] と入力し、ファイルシステムタイプで [ ext3 ] を選択し、
追加容量オプションで [ 最大許容量まで使用 ] を選択します。これで残りのディスク容量が全て/dataパーティションに割り当てられます。
全て設定し終えたら [ 次 ] をクリックします。
ブートローダの設定を行います。デフォルトの状態でいいのですが、ブートローダをLILOに変更したい人は [ ブートローダの変更 ] をクリックします。
起動時のOS選択メニューのラベルを変更したい場合は [ 編集 ] をクリックし変更します。ブートローダパスワードを設定したい人は [ ブートローダパスワードを使用 ] にチェックを入れ、
[ パスワードを変更 ] をクリックしてパスワードを設定します。これにより起動時のOS選択メニューで編集モードやGRUBコマンドの操作にパスワードが必要になります。
設定し終えたら [ 次 ] をクリックします。
またブートローダのインストール場所を変更したい場合は、 [ 高度なブートローダーオプションの設定 ] にチェックを入れてから [ 次 ] をクリックします。すると高度なブートローダー設定
画面に移ります。
ネットワークの設定を行います。ネットワークデバイスのボックス内に認識されたネットワークインターフェイスカードが一覧表示されます。
ネットワークの構成などによってそれぞれ設定が異なりますので、ここでは「ネットワーク構成」に合わせて設定します。
まずネットワークデバイスの [ eth0 ] を選択し、 [ 編集 ] をクリックします。するとインターフェイスeth0を編集ダイアログボックスが開きます。
[ DHCPを使用して設定 ] 、 [ 起動時にアクティブにする ] にチェックを入れ [ OK ] をクリックします。
次にネットワークデバイスの [ eth1 ] を選択し、 [ 編集 ] をクリックします。インターフェイスeth1の編集ダイアログボックスで [ 起動時にアクティブにする ] にチェックを入れ、IPアドレスに [ 192.168.1.254 ]
を入力し、ネットマスクに [ 255.255.255.0 ] を入力します。そして [ OK ] をクリックします。
ホスト名は [ DHCPを通して自動的に ] を選択します。設定し終えたら [ 次 ] をクリックします。
ファイヤーウォールの設定を行います。ここでは後で設定するのでシステム用のセキュリティレベルを選択で [ ファイアウォールなし ]
を選択し、 [ 次 ] をクリックします。
特にサーバにモニターやキーボードを接続せずに、LANのWindowsやLinuxクライアントからSSHによってサーバを操作する場合は、 [ ファイアウォールなし ]
を選択するか、もしくは侵入を許可で [ SSH ] にチェックを入れてください。そうしないとインストール後すぐにSSHから操作することができません。(sshdが起動していない
ため)
追加する言語を選択します。一番上の「システム標準の言語を選択して下さい」はデフォルトで使用する言語を選択します。
そして「システムにインストールする追加言語を選択して下さい」で選択した言語はインストール後にシステムのデフォルト言語として
切り替えることができます。設定し終えたら [ 次 ] をクリックします。
タイムゾーンを選択します。デフォルトで [ アジア/東京 ] が選択されているのでそのまま [ 次 ] をクリックします。
Rootユーザ(管理者)のパスワードの設定を行います。サーバとして外部に公開する場合はクライアントとして使用する場合よりもシビアにパスワードを設定するほうがいいでしょう。
大文字や記号、数字を混ぜて8文字以上のパスワードを設定しましょう。
12. パッケージグループの選択、パッケージのインストール
パッケージグループの選択を行います。基本的にサーバソフトウェア(Apache等)は後からソースからコンパイルしてインストールするのでここでは選択しません。
ここでは開発環境のにチェックを入れ、 [ 次 ] をクリックします。インストール準備完了の画面が表示されるので [ 次 ] をクリックします。
するとインストールの最終確認のダイアログボックスが表示されますのでここでインストールを取り消す場合は [ 再起動 ] をクリックし、インストールを続行する場合は [ 続行 ] をクリックします。
[ 続行 ] をクリックすると戻ることはできません。
パッケージのインストールが始まります。途中でインストールCD-ROMの変更ダイアログボックスが表示されるので、表示されているディスク番号のインストールCD-ROMと入れ替えて
[ OK ] をクリックします。インストールには時間がかかります。気長に待ちましょう。
パッケージのインストールが完了するとブートディスクの作成画面が表示されます。ブートディスクは後から作成することができますが、ここで必ず作成して下さい。
[ はい、ブートディスクを作成したいです ] を選択し、 [ 次 ] をクリックします。するとフロッピーディスクを挿入ダイアログボックスが開きますので [ ブートディスクを作成 ] を
クリックします。ブートディスクの作成が完了するとインストール完了画面が表示されます。[ Reboot ] をクリックして再起動します。
ここでインストールは完了していますが、インターネットに公開するサーバですのでセキュリティの設定を行います。
まずrootでログインします。そしてchkconfigコマンドを使用してどのようなサービスが起動しているのか確認します。
#chkconfig --list
gpm 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
pcmcia 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
isdn 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
sendmail 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
FreeWnn 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
kudzu 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
syslog 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
rawdevices 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
netfs 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
network 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
random 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
saslauthd 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ
iptables 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
anacron 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
atd 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
nscd 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ
acpid 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
apmd 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
irqbalance 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
postgres 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
microcode_ctl 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
smartd 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
autofs 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
sshd 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
portmap 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
rhnsd 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
crond 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
yum 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ
xfs 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
xinetd 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
canna 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
xinetd ベースのサービス:
chargen-udp: オフ
rsync: オフ
chargen: オフ
daytime-udp: オフ
daytime: オフ
echo-udp: オフ
echo: オフ
services: オフ
time: オフ
time-udp: オフ
sgi_fam: オン
ここで「オン」となっているのは起動しているサービスで「オフ」となっているのは停止していすサービスです。
まず、デフォルトのランレベルを決定します。ここではデフォルトのランレベルを「3」とします。
#vi /etc/inittab
#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg,
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault: ←3に変更します。
----------------------------以下省略----------------------------
次に起動するサービスを決定します。ここでは syslog、network、random、iptables、anacron、crond、sshdを起動します。
それ以外のサービスをランレベル3で起動しないようにします。(停止させます。)
#chkconfig --level 3 gpm off
#chkconfig --level 3 pcmcia off
これはgpmとpcmciaをランレベル3で起動しないように停止させています。これと同じようにサービスを停止させていきます。
最終的にはこうなります。
#chkconfig --list
gpm 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
pcmcia 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
isdn 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
sendmail 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
FreeWnn 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
kudzu 0:オフ 1:オフ 2:オフ 3:オフ 4:オン 5:オン 6:オフ
syslog 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
rawdevices 0:オフ 1:オフ 2:オフ 3:オフ 4:オン 5:オン 6:オフ
netfs 0:オフ 1:オフ 2:オフ 3:オフ 4:オン 5:オン 6:オフ
network 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
random 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
saslauthd 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ
iptables 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
anacron 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
atd 0:オフ 1:オフ 2:オフ 3:オフ 4:オン 5:オン 6:オフ
nscd 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ
acpid 0:オフ 1:オフ 2:オフ 3:オフ 4:オン 5:オン 6:オフ
apmd 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
irqbalance 0:オフ 1:オフ 2:オフ 3:オフ 4:オン 5:オン 6:オフ
postgres 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
microcode_ctl 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
smartd 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
autofs 0:オフ 1:オフ 2:オフ 3:オフ 4:オン 5:オン 6:オフ
sshd 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
portmap 0:オフ 1:オフ 2:オフ 3:オフ 4:オン 5:オン 6:オフ
rhnsd 0:オフ 1:オフ 2:オフ 3:オフ 4:オン 5:オン 6:オフ
crond 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
yum 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ
xfs 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
xinetd 0:オフ 1:オフ 2:オフ 3:オフ 4:オン 5:オン 6:オフ
canna 0:オフ 1:オフ 2:オン 3:オフ 4:オン 5:オン 6:オフ
xinetd ベースのサービス:
chargen-udp: オフ
rsync: オフ
chargen: オフ
daytime-udp: オフ
daytime: オフ
echo-udp: オフ
echo: オフ
services: オフ
time: オフ
time-udp: オフ
sgi_fam: オン
全て設定し終えたら再起動します。
ここではLANのクライアントからSSHによりサーバを操作することを前提に設定していますので、SSHで操作しない場合は sshd も停止させます。
また sshd を起動させる場合は接続できるクライアントを制限したり、インターネットからSSHによる接続ができないようにiptables等でアクセス制御
して下さい。
これ以外にもiptablesなどのフィルタリングツールを使用してしっかりとしたセキュリティを確保しましょう。
セキュリティが弱いと被害を受けるだけでなく、踏み台としてサーバを利用され加害者になりかねません。セキュリティ対策はサーバ管理者の義務です。
chkconfigコマンドの使用法はこちらをご覧下さい。
chkconfigで必要のないサービスを停止する...
パケットフィルタリング、Linuxをルータとして動作させる場合はこちらをご覧下さい。
iptablesの設定...
WWWサーバの構築法はこちらをご覧下さい。
WWWサーバ構築...
DNSサーバの構築法はこちらをご覧下さい。
DNSサーバ構築...
メールサーバの構築法はこちらをご覧下さい。
メールサーバ構築...
FTPサーバの構築法はこちらをご覧下さい。
FTPサーバ構築...