Linuxサーバー導入編(2)
[ADSL導入記] [Linuxサーバー導入編(1)] [その後のADSL]
 
■Vine Linux2.1.5のインストール

かような理由によりRed Hat Linux7.1は見限ることにした。代わりのLinuxということで、手元にあるものから日経 Linux5月号付録のVine Linux2.1.5(ftp版)をチョイスした。

HardwareSpec
PC
・CPU AMD K6-2 350Mhz
・Mother board MS-5169
・Memory 128 MB
・HDD 6.4 GB
・Video S3 Trio 4MB
・LAN CARD コレガPCI-Tx2
・50xCD-ROM
・モニターViewSonic E653
SoftwareSpec
OSVine Linux 2.1.5[FTP版]

Red HatをインストールしているPCの別のパーティションに導入していくことにした。作業そのものは順調に進むかと見えたが、 今度はISAのLANカードを認識するものの、I/OアドレスとIRQの設定でつまずいた。このカードはPNP対応なので手動では如何とも し難い。

ひょっとしてとの思いで /etc/modules.confを書き換える。例えば

alias eth0 ne
options ne io=0x220 irq=5

ioとirqをいろいろ変えてみるが、起動の都度変わってしまうのだろう、うまくいかない。結局あきらめてコレガの PCI-Tと交換。これでLANカード2枚とも同種のものとなった。

ついでADSL接続ツールをインストールする。ここでもVine Linuxはppp接続にpppdではなくppxpを使っているが、時間に余裕がない時期だったのでRed Hatのpppdをコピーして流用することにした。ま、これでインターネットには接続できるところまでは来た。

あとで気が付いたことではあるが、LinuxでのPPPoE接続にはRoaring Penguin Software ( http://www.roaringpenguin.com/)がフリーで 公開しているRP-PPPoEがあるので、これを使うのが簡便だろう。またPPPoEの場合、IPアドレスはDHCPではなくPPPoEで割り当てられる。 従って、起動時にDHCPでIPアドレスを受け取る設定にしていると、かなり待たされることになる。

■WEBサーバーとDHCPサーバー

Vine Linux2.1.5のいいところは、インストール時にApache、DHCPさらにはメールサーバーまで導入してくれることだろう。
ちなみにWEBサーバーは何の設定をすることもなく、IPアドレスをダイナミックDNSに設定するだけで機能してしまった。
(httpd.confの #ServerName localhostの #は取ってコメントアウトする。今回はドメイン名 mshibata.dyn.toにしておいた。)

フレッツ・ADSLのグローバルIPアドレスは接続する度に変わる。これでは自分のホームページを見てもらうためには不都合である。これを解決してくれるのが ダイナミックDNSサービスである。このサービスは無料のものを含めて世界中に多数存在するが、私は有料(年間わずか2400円)では あるが日本のdyn.toを利用している。

DHCPの設定

6月8日
dhcpd.confはRed Libux7.1と同じ設定にした。そして問題のIPルーティングだが、これもRed Hat Linux7.1と同じように設定を試みた。 起動後に毎回設定するのは大変なので、/etc/rc.d/rc.localに追加をし、DNSも通す設定にした。もっともVine Linux2.1.5では、 ipchainsサービスがあるので、この設定を /etc/sysconfig/ipchainsに書くこともできる。

Linuxを再起動して、LAN側のクライアントPCから自サイトhttp://sibata.com/mshibata/に接続してみた。しばらくして、いつもの画面が現れた、やっとできた!

■メールサーバーの設定

どうせならメールサーバーもトライすることにした。メールサーバーと言えばsendmailが定番であるが、Vine Linux2.1からはpostfixが採用になった。postfixはメンテナンスが容易で動作も速のが特徴だとどこかに書いてあった。ちょうど仕事先の学校の中間試験と重なったので、時間が取れない。ということでローカスの「1日で構築するVineLinux2.1インターネットサーバ」を購入(2001.6.12.)してきた。メールサーバーの章だけみて、main.cfをカスタマイズすればいい事がわかった。

とりあえず動作させるため最低限の設定を行った。

myhostname = mail.mshibata.dyn.to

mydomain = mshibata.dyn.to

myorigin = $mydomain

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain $mydomain

alias_maps = hash:/etc/postfix/aliases

alias_database = hash:/etc/aliases

mail_spool_directory = /var/spool/mail

mynetworks = 192.168.0.0/24, 127.0.0.0/8

smtpd_client_restrictions = permit_mynetworks,
        check_cliant_accsess hash:/etc/postfix
        /reject_access_map,permit

smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

次に、pop3サーバーの設定を行った。pop3はpostfixが受信したメールを、クライアントPCからメーラーを 使って読むために必要となる。pop3サーバーとして多くのサーバーが採用しているqpopperがインストールされていたので、inetd.confの設定を行った。

pop-3 stream tcp nowait root /usr/sbin/tcpd in.qpopper

設定はこの1行だけである。

メールサーバーはVine Linux起動時に動作するようにディフォルトの設定がなされている。Linuxを再起動してクライアントPCからメールの送受信を行ってみた。不思議なくらい何の問題もなく実行できてしまった。メーラーに設定するpop3ならびにsmtpサーバー名は 私の場合、mail.mshibata.dyn.toであることは言うまでもない。
なお、Vine LinuxにはメーラーとしてSylpheedが付属するので、ネスケを使うより操作性は格段に良い。

技術的興味の対象としてメールサーバーも構築できたが、実際に運用するかどうかは別の問題である。というのはフレッツ・ADSLのような接続が途切れて間欠的になりがちな環境では、いざという時にサーバーがメールを受け取れない状況が不可避だからである。WEBでは、たまたま繋がらない事が発生したとしても、あまり迷惑をかける事がないかも知れないが、電子メールは障害が 発生した時の迷惑度は比べ物にならない。

■とりあえずサーバー完成

6月14日
とりあえずサーバーを立ち上げることができた(FTPも設定済み)。が、これからやらねばならない事が山積ではある。

例えばダイナミックdnsの設定を自動化する(DynamicDNS Client Tool DiCEがお勧め 2002.7.14.added)。WEBではcgi、ssiが使えるようにしたり、ユーザ認証でアクセス制限をかける。ツールを使ってアクセスログの集計や分析を行う。セキュリティを強化するなどなど。。。

 
■FTPサーバーのインストール

WEBのコンテンツはクライアントPCで作って、Linuxサーバーにアップロードできる方が何かと都合が良い。そこでFTPサーバーを入れることにした。Vine Linux2.1.5ではProFTPDがすでにインストールされているので、/etcにあるinetd.confとproftpd.confの設定さえすればいい。

inetd.confは次の一行
#ftp stream tcp  nowait root  /user/sbin/tcpd in.ftpd -l -a
をコメントアウトして
ftp stream tcp  nowait root  /user/sbin/tcpd in.proftpd
を追加する。

同様にproftpd.confは次の一行
#ServerType standalone
をコメントアウトして
ServerType inetd
を追加する。

これでproftpdを起動すれば、ftpが利用できる。
と思ったが、もう一つ忘れていた。「1日で構築するVineLinux2.1インターネットサーバ」にも書いていなかった事だが、ftpのような特殊な通信を行う場合、IPマスカレードをftpに対応させるためのモジュールを組込む必要がある。大抵の場合、/etc/rc.d/rc.modulesの中にコメントアウトされているので

/sbin/modprobe ip_masq_ftp

を見つけてコメントを解除することが必要である。今回はrc.localにこのコマンドを追加した。

■CGIの動作確認を兼ねてカウンターを設置

自宅サーバーが動き始めたら、まずはCGIを使ってみたい。プロバイダーのサーバー上にWEBを置いている場合は、訪問者をカウントするカウンターもISPが用意しているものを使えばいい。自宅サーバーの場合は、自分で準備する必要があるが、好き勝手に動かす自由さがある。

CGIはご存知のようにWEBサーバーで動くプログラムで、いろんな言語があるがPerlがよく知られている。プログラム作成の素養のある人は自分で書けばいいのだが、WEB上には無料のCGIが数多く存在する。今回はEASYアクセスカウンター(http://www.net-easy.com/)を使ってみることにした。

Vine Linux2.1.5の初期設定ではCGIプログラムを置くディレクトリーが /home/httpd/cgi-bin/となっている。EASYアクセスカウンター(ezcount.cgi)をダウンロードして、このディレクトリーに置く。

CGIプログラムの先頭が #!/usr/local/bin/perlとなっているので、このperlのパスを #!/usr/bin/perl に変更する。さらにApacheがCGIプログラムを実行できるようにezcount.cgiのパーミッションを755に設定する。これで基本的には動作するはずであるが、カウントを記録するファイルが必要で、空のファイル count.txtを作りパーミッションを666にする。ezcount.cgiの場合には、数字の画像ファイル0.gif〜9.gifも要るので適当な無料素材WEBからダウンロードしておく。

最後に、HTMLファイルにCGIを呼び出すイメージタグを書いてブラウザで確認できれば正常に動作していることになる。
次の例は5桁の数字を表示させる場合のイメージタグの例である。

<img src="http://www.mshibata.dyn.to/cgi-bin/ezcount.cgi?a=1">
<img src="http://www.mshibata.dyn.to/cgi-bin/ezcount.cgi?a=2">
<img src="http://www.mshibata.dyn.to/cgi-bin/ezcount.cgi?a=3">
<img src="http://www.mshibata.dyn.to/cgi-bin/ezcount.cgi?a=4">
<img src="http://www.mshibata.dyn.to/cgi-bin/ezcount.cgi?a=5">

運がよければhttp://www.mshibata.dyn.to/にアクセスすれば見えるはずである。但し、運用費を少なくするために止まっている事が多い。

その後のADSLに続く・・・

[ADSL導入記] [Linuxサーバー導入編(1)] [その後のADSL]