◇サーバー構築 〜はじまり〜

元は1ページの長い文章でしたので、文章が続かない場合はメニューに戻って頭から読んで下さい。

○はじまり

回線が 100Mbpsになったのは良いが、GATE01のメールサーバは 2MBまでしか送受信できない制限がある。
これでは困る事があるので、メールサーバを立てる事にした。
ついでに、FTPや BINDも入れて、色々できるようにしたい。

○お金をかけたくない

メールサーバと言う性質上、24時間稼働させなければならない。
ワンルームでそれをしようと思うと、ファンレスパソコンでもなければ、うるさくて眠れない。
ファンレスパソを買おうかと思ったが、そんなお金があるならグラフィッカーに CGを描いてもらう方が良い。
そこで、余っているパソを台所で稼働させる事にした。
長い LANケーブルと、長い電源タップを買うだけで OKだ。

○OSのインストール

余っているパソに、余っている 30GBの HDDを付ける事にした。
このパソには CDドライブが付いていないので、メインパソの脱着式 HDDを抜いて、そこでインストール作業を行う。
但し、この場合には問題点があって、Linux OSだと他のパソでの起動は難しくなる。
そこで FreeBSD4.7をインストールする。こいつは比較的他のパソへ持っていっても起動するからだ。

カスタムインストールでビシバシ設定しながら進める(私はプロです)
今まで不思議に思っていた事を、マイサーバだからやってみる。
LABEL設定で、どうして /と /usrと /varを分けるんだろうか?
全部 /にした方が、全体の容量だけを気にすれば良いので便利だろう。
と言うわけで、そうした。

あ、カーネルソースは必ず入れて下さい。
カーネルの再構築を行わないと、ムダな CPU&メモリパワーを食います。
高性能サーバなら、それでも大した問題にはなりませんけれど(^^;

○起動する

インストールが終わったら、サーバにするパソに戻して起動する。
順調に起動して……来ない(:_;)

Mounting root from ufs:/dev/ad2s1a
Root mount failed: 6

あれ? なぜ ad2なの?
インストールしたパソはオンボード RAIDの為に、通常の IDEスロットは ad2, ad3になるらしかった。
ここは落ち着いて ad0を指定してやる。

mountroot> ufs:/dev/ad0s1a

そうすると、ちゃんと起動して来ました(^_^)
まずは、/etc/fstabを調整しましょう。
ad2を ad0に直すだけです。あ、CDドライブは全部先頭に #を付けてコメントアウトしておきます(ドライブ付いて無いから)
シングルユーザーモードで起動されているので、shutdown -r nowでリブートし、マルチユーザーモードにします。

○IPを設定

/etc/rc.conf内の、ifconfigを編集します。
うちのは、Intelサウスチップのオンボード LANですので、fxpです。
分からない人は、コマンドラインから ifconfigコマンドを実行してみましょう。普通は一番上に表示されるのが LANカードです。

ifconfig_fxp0_alias0="inet 192.168.1.1 netmask 255.255.255.0"

次にインターネットへのルーティング設定をします。
defaultrouter="NO"と書かれている部分に、ゲートウェイIPを記述します。

defaultrouter="192.168.1.254"

簡単ですね。
あ、そうそう IPアドレスをローカルと決めて書きましたが、どんな事情があってもサーバはルータ内に設置して下さい。簡単にハッキングされると、世界中の人が迷惑します。

再起動して、設定を反映して完了です。

○セキュリティホールを塞ぐ

まずは、セキュリティホールが発生する可能性のあるデーモンを全てオフにします。
・/etc/resolv.conf
nfs_reserved_port_only="NO"
sendmail_enable="NO"
sshd_enable="NO"
usbd_enable="NO"
・/etc/defaults/rc.conf
inetd_enable="NO"
sendmail_enable="NONE"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

え? こんな事したら何もできなくなるって?
この状態で、ゆっくりコンソールからセキュリティホールが無いように設定すれば良いのですよ。
言うまでもありませんが、リモート操作の人は sshを NOにしないように(どうしようも無くなりますから(^^;)

○カーネルの再構築

セキュリティホールの心配が小さくなった(無くなったわけではないので注意!)ところで、カーネルの再構築を行います。
/sys/i386/conf/内に移動して、GENERICをコピーし、LINTを参考にしながら書き替え。
コマンドで書くと、こんな手順ですね。

cd /sys/i386/conf
cp GENERIC orgkernel
vi orgkernel
config orgkernel
cd ../../compile/orgkernel
make depend
make
make install

まぁ、FreeBSDの一般常識なので、こんな事はみんな暗記していますよね?(^^;
ススッと終わらせて先へ進みましょう。

※調子に乗りすぎた場合(笑)
カーネルをいぢりすぎて起動しなくなった場合の救済方法です。
1. 起動途中で数字がカウントダウンしている時にスペースキーを叩く
2.unloadコマンドを叩く
3.load kernel.GENERIC
4.boot
これで、GENERICカーネル起動する事ができます。

※カーネルコンパイルがコケるようになった場合
1. cd /usr/src/sys/compile
2. rm -rf カーネルコンフィグ名
にて、コンパイル済みファイルを全て削除してから、最初からやり直すと良い。

○ルーターに気を付けよう

ルーターの外のパソコンからサーバーへアクセスしてみる。FTPでも Webでも何でも良い。
それからサーバーで以下のコマンドを実行してみる。

netstat -n

Foreign Addressは正しくアクセスを行ったパソコンのものになっているだろうか?
安物のルーターの場合、ルーターに割り振った IPが表示される事がある。
もしルーターの IPが表示されていたら、IP制限が行えないので無い方がマシである。
取り外すか、買い換えるかしよう。


トップメニュー読み物サーバー構築メニュー