■とりあえず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エコノミーを前提とする解説書の氾濫には、正直言ってうんざりしていた。
私が構築したいのは以下のようなネットワーク(参考www.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の諸氏にお礼申し上げる。
続く・・・