Linuxサーバー導入編(1)
[ADSL導入記] [Linuxサーバー導入編(2)] [その後のADSL]
 
■とりあえずLinuxのインストール

一口にLinuxと言っても、いろいろなディストリビューションが存在する。以前、Turbo Linux 4.0の商用版を購入してクライアントPCとして使っていたことがあった。あれからLinuxもずいぶんと進化して、グラフィカルなインターフェースが一般的になってきた。

ちょうど本屋で「Linuxサーバー構築運用実践ガイド2001」(日経Linux編)を売っていたので、5月22日に購入してきた。このムックにRed Hat Linux7.1のCDが付いていたので、とりあえずインストールすることにした。

まずサーバー用にマシンを用意しなければならない。AMD K6-2 350MhzのCPUとマザーボード(MS-5169)が余っていたので、新規に購入した10GBのハードディスクを足して組み立てた。インストールそのものはCD-ROMからのブートで何事もなく終わった。LANカード(Planex ENW-2401P-T)は自動認識されたし、ネットワークの設定もとりあえずDHCPにしておいた。

■フレッツ・ADSL接続ツールのインストール

5月26日
フレッツ・ADSLではインターネットへの接続にPPPoEプロトコルを採用しているので、そのプログラムを導入する必要がある。NTTから郵送されたCDに入っているわけだが、「フレッツ接続ツールセットアップガイド」にはWindows98とMac(OS9)の説明しか載っていない。CDの中にLinux.zipというファイルがあり、解凍してみると簡単なドキュメント(ReadmeJ)が同梱されていた。あまり親切な記述ではなかった(著作権表示があるので、残念ながらここには掲示できません)が、その説明に従いセットアップした。

早速、接続を試みたところ無事つながった。ネスケを起動してasahi.comを見る。結構速いと実感する。

5月27日
apacheの設定をしているうちに、ハングアップした。これが最初のつまずきだ。再起動するが、ディスクが元に戻らない。再インストールしかなさそうだ。再インストール後も、相変わらずハングアップの嵐。とうとうディスクも使えなくなってしまった。

5月29日
やむを得ず、Turbo Linuxで実績のあるハードディスクに交換するも症状は変化なし。ふとメモリー64MBx2を128MBx1に換えてみた。すると、どうだろう嘘みたいにハングアップは無くなった。あとでムック本に「画面が固まった時の対処法」の記載があったが、それで解決できたかどうか今となっては検証のしようもない。

■WEBサーバー(Apache)の設定

5月29日

Red Hat Linux7.1をインストールするとApacheも同時に入るので、WEBサーバーを立てるにはApacheの設定だけで済む。
「Linuxサーバー構築運用実践ガイド2001」(以後、日経ムック本と呼ぶ)の第7章「Apacheサーバーの構築と運用」の記事を参考に設定を進めていく。 他の雑誌への投稿記事をそのまま転用したのだろうか、DocumentRoot(公開するホームページのディレクトリ)のデフォルト値は/home/httpd/html(Red Hat Linux7.1では/var/www/html)と古いバージョンのままだったりするので、鵜呑みには出来ない。

Server Nameはmshibata.dyn.toとした。Virtual Hostsの設定項目があったが、今回は設定せずコメントにしておくことにした。 基本的な設定が終わったので、起動してみる。記事では

# /usr/sbin/apachectl start

となっていたが、これでは起動できない。このスクリプトがないのだろう。正解は

# /etc/rc.d/init.d/httpd start

だった。ifconfigでIPアドレスを確認し、dnsの更新を行った上、CATV側のPCからhttp://www.mshibata.dyn.to/と入力してみた。おお!テスト用のindex.htmlが無事表示されたようだ。この後、emacsでindex.htmlにドメイン名など少し書き加えておいた。

■LANカードの二枚指し

LinuxにWEBサーバー、メールサーバーおよびルータの機能を持たせたいと日ごろ考えていたが、OCNエコノミーを前提とする解説書の氾濫には、正直言ってうんざりしていた。
私が構築したいのは以下のようなネットワーク(参考yoshidanet.org)なのだ。

        Internet
           │
      ┌───┐
      │ADSL  │
      │モデム│
      └───┘
           │
     PPPoE │
     (ppp0)│eth0
   ┌───────┐
   │  Linux     │
   │  WEB Server │
   │  Router     │
   │192.168.0.1  │
   └───────┘ 
           │ eth1   
           │        
           │        
           │ HUB
   ┌───────┐
   │  |  |   |  |  |
   │  |  |   |  |  |
  192.168.0.10〜
  LAN 内部ネットワーク

Linuxをルータとして機能させるために、LANカードをもう1枚追加して、いわゆる2枚指した。同種のカードだと どちらがWAN(Internet)側かLAN側がわからなくなる恐れがある。最初につけたカードがISAタイプだったので、 コレガのPCIカードを追加した。Linuxを起動すると、この2枚目のLANカードを自動認識してくれた。

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

Linux PCからインターネットへの接続は可能となった。後はLinux PCにDHCPサーバーを導入して、当面LAN内のPCからインターネット接続できればいい。

Red Hat Linux7.1インストール時にDHCPも導入されているか、RPMコマンドで確認してみたが見当たらない。 日経Linuxムック本によれば ftp://ftp.isc.org/isc/dhcp/から入手できるとあり、 安定版のバージョン2.0pl5をダウンロードし、コンパイルしてインストールした。

その後、日経Linuxムック本に従い、DHCPdの設定を進めて行った。dhcpd.confは次のように設定した。
# dhcpd.conf
server-identifier server.mshibata.dyn.to;
option domain-name "mshibata.dyn.to";

shared-network DHCP {
 option subnet-mask 255.255.255.0;
 default-lease-time 6000;
 option domain-name-servers 210.196.3.183,210.141.112.163;
 option routers 192.168.0.1;
 max-lease-time 72000;

 subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.10  192.168.0.20;
  option broadcast-address 192.162.0.255;
 }
}
設定ファイルの準備が出来たので、DHCPサーバーを起動する。ムック本では

# cd /var/run/state/dhcp
# touch dhcpd.leases
# /usr/sbin/dhcpd
となっていたが、dhcpd.leases を置くdirectoryは /var/state/dhcpである。

DHCPが動作している事を確認するために、LAN側にHUB経由でノートPC(Windows98)を接続した。 ノートPCのIPアドレスはDHCPサーバーから割り当ててもらうために、予めTCP/IPのプロパティで「IPアドレスを自動的に取得する」 に設定しておいたのは言うまでもない。

winipcfgを起動してノートPCのIPアドレスを確認すると、192.168.0.10と正常に動作していることがわかった。しかし、IPマスカレードの設定なしには、ノートPCからインターネットにはまだ接続できない。

■IPマスカレードの設定

IPマスカレードは、グローバルIPアドレスが一つしかない環境でLAN内のプライベートアドレスを持った 複数のクライアントからインターネットにアクセスすることを可能とする仕組である。

まず基本的に、/etc/sysconfig/networkにおいて
----------------------------
FORWARD_IPV4=yes
----------------------------
またRed Hat Linux6.2以降では、/etc/sysctl.confに次の記述を入れる。
----------------------------
net.ipv4.ip_forward=1
----------------------------

次に、IPマスカレードの設定をする。

ipchains -P forward DENY
ipchains -A forward -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQ

1行目では、フォワードするデータは基本的に無効とし、2行目では内部ネットワークからの フォワードに関してはマスカレード機能を通過させる。(日経ムック本には「Red Linux7.1ではiptablesコマンドで設定する」と あったが、ipchainsが機能していた。)

IPフォワードが機能しているかどうかは

# cat /proc/sys/net/ipv4/ip_forward

として、1が表示すればOKです。さもなければ次のコマンドで書き換える。

# echo 1>/proc/sys/net/ipv4/ip_forward

これで、ノートPCから外部のWEBが見えるはずである。ところが見えなかったため、あれこれ設定を変えてみたが状況に変化はない。 どうも、DNSの名前解決が出来ていないようだ。

やむを得ず、LILOのメーリングリストに質問を入れたのが6月6日のことである。

■DNSの名前解決できず、ディストリビューションを変えることを決意

LILOのメーリングリストに投稿して、すぐに親切なアドヴァイスが返ってきた。
こんにちわ。

>ipchains の設定は
># ipchains -P forward DENY
># ipchains -A forward -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQ

うーん、設定的にはうまく動くような気がしますです。

私の自宅では、

/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.10.0/24 -j MASQ

としています。

>routeで何か設定することが必要でしょうか。

一つ、気になるのは、名前の解決、DNS あたりは、問題ありませんで
しょうか?。
もし、内部ネットワークから、IPアドレス直打ち
(例えば http://210.162.xxxx.xxxx/ とか)でなら見られる
と言う事でしたら、DNS の設定に何かあるのではないかと思います。
ではこれにて。
どうやら私の設定で問題ないようだ。早速、http://210.162.xxxx.xxxx/と打ち込んでみると見覚えのある ページが現れた。さて、何が問題なんだろう。

プロバイダから教えられているDNSサーバーを
/etc/resolv.confに書けば良いでしょう

nameserver 211.xxx.yyy.zzz
nameserver 211.aaa.bbb.ccc
というコメントもいただいた。これは接続ツールのところで設定済みだ。
その後、ipchainsやrouteを変えてみたが処置なし。

あと、ふと思ったのですが、RedHat7.1ってインストール
時にセキュリティの設定で上級とか中級とか選ぶように
なってますよね。(カスタムを選ぶと、信頼するデバイスが
どうとか、どのプロトコルなら受けるとかいじれる)
もしかして、そこの設定が暗黙に読まれてて…とか?

思いつきだけですが(^^;
このコメントにあるように、Red Hat Linux7.1のセキュリティの設定の影響の可能性がある。が、思い切ってディストリビューションを変えることにした。貴重なアドヴァイスをして下さったLILOの諸氏にお礼申し上げる。
続く・・・

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