本来ならばLinuxをダイヤルアップルータにしたほうが本格的なものができますが、印刷やTA(何れもUSB接続)のことを考えると今後もWindowsマシンがメインとなりますので、これを中心に考えざるを得ません。そこで、Windowsの「インターネット接続の共有」(以下ICS)を利用することにしました。(最初に試したときはメインマシンのOSはWindows98SEだったのですが、諸般の事情により現在はWindows2000に変わっています。)ところが、ICSに関して、設定方法などのドキュメントがインターネットを使ってもぜんぜん見つかりません。ICSで作成するクライアントの設定用フロッピーを使用した方法は見つかりましたが、当然これはLinuxマシンには使えません。
仕方がないのでとりあえずチャレンジすることにしました(?)。問題となるのはLinux側の設定ですが、やることはデフォルトゲートウェイとDNSの設定ぐらいで、理屈が分かっていればそれほど難しくありません。デフォルトゲートウェイは192.168.0.1(WindowsマシンのIPアドレス)に設定します。DNSはインターネット側のIPアドレスを設定します。(Win2K編もご参照ください。)こうすることにより、インターネット宛てのパケットが、Windowsマシンを通してインターネット側に流ようとし、Windowsマシンが回線を接続します。
まず両方のマシンにネットワークカードをセットアップし、お互いにping等で接続を確認しておきます。私は今回はハブを使用せずに、ケーブルはストレートで、クロス接続用のアダプタを使用しました。しかし、新しく用意する場合は、クロス接続用のケープルを買ったほうが安価です。もちろんハブを用いても問題ありません。IPアドレスはWindowsマシンが192.168.0.1、Linuxマシンが192.168.0.2で静的に設定します。ICSはDHCPを使用が前提となっていますが、ここでは、静的に設定してます。Windows98SEのICSは、レジストリを変更することでDHCP機能を無効にすることが可能です。このあたりはマイクロソフトのサポート技術情報J050580あたりに詳しい情報が載っています。
次にLinuxマシンのデフォルトゲートウェイを192.168.0.1(Windowsマシン)に設定します。DNSはインターネット側(プロバイダから連絡されたDNS)のIPアドレスを設定します。ブラウザは直接接続する(プロキシを使用しない)設定にします。turbonetcfgを使用すると良いでしょう。デフォルトゲートウェイの設定はrouteコマンドで確認できます。
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
デフォルト(0.0.0.0)の送信先が192.168.0.1であることが分かります。ブラウザを開いて適当なサイト(例えばwww.yahoo.co.jpとか)にアクセスしてください。パケットがゲートウェイであるWindowsマシンに流れ、Windowsマシンではインターネット側のアドレス宛てパケットなので、回線を接続します。ウチのTAでは接続に行くと液晶ディスプレイ部が光り、接続したことが分かります。指定したサイトが表示されれば成功です。尚、切断は自動では行われないので、Windowsマシン側で予め切断タイマを設定しておくか、手動で行います。これは本物のダイヤルアップルータでも同じで、ルータ側では切断するタイミングを拾うことができないためです。
これで複数マシンによる同時インターネット接続環境が構築できました。もちろん、DHCPを使用するネットワークも構築できます。その場合はWindows側の設定は変更せずに、Linux側でDHCPを使用する設定にすれば良い訳です。それにしてもネットワーク用の機器は安くなりましたね。私が95年頃、最初にネットワークを導入したときは当然10BaseTの機器ばかりで結構な値段がしたものです。その当時、家庭でネットワークを組んでいると言ったら、ほとんど変人扱いされました。それがいまや100BaseTのネットワークカードもハブも数千円で手に入ります。良い時代になりました。
●Windowsマシンをダイヤルアップルータに(Win2K編)
Windows2000にもICSがあります。使い方は98SEと同じですが、Windows2000のほうはDHCP機能を無効にする方法を見つけることができませんでした。また、DHCPで割り当てるアドレスの範囲指定もできないようです。ですので、LinuxマシンのほうはIPアドレスを192.168.0.2から、DHCPで取得する設定に変更する必要があります。
また、現在はLinuxマシンのDNS設定を192.168.0.1にしています。これはICSがDNS機能も持っているためです。つまり、Windows1がDNSの役割を果たしており、名前解決できなければ、自動的により上位のDNSに問い合わせるため、プロバイダのDNSは特に意識する必要がありません。これはおそらく98SEにも当てはまるはずですが、もはやW98SEのマシンがなく、試すことができません。
turbonetcfgでeth0の設定をUse DHCPに変更します。
変更を有効にするため、マシンをリブートするか、eth0を一度downしてupします。
●Linuxマシンにtelnetする
仕事で使うとなるとやはりtelnetは外せないでしょう。ところがTurbo Linux6.0に変えてからなぜかtelnetできません。pingは問題ないのに何の反応もしてくれないのです。4.0の時は何の問題もなくtelnetできました。これを最初にやろうとしたときは多忙で結局断念してしまいましたが、その後の調査で6.0からはセキュリティーの強化のため、デフォルトではtelnetできない設定になっているとのこと。
具体的にはTurbo Linuxではtelnet等のサービスを提供するためにinetdというスーパーデーモンを使用していて、こいつの設定ファイルであるinetd.confでtelnetがコメントアウトされていること。そしてさらにinetdとtelnetデーモンの間にTCP Wrapperというものがいて、その設定ファイルであるhosts.allowとhosts.denyでローカル(127.0.0.1)以外のアドレスは拒否になっていること。の2点が分かりました。
まず/etc/inetd.confを開いて「telnet」で検索し、コメントアウトを外します。
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
次に/etc/hosts.allowにtelnetしたい端末のIPアドレスを記述します。
ALL : 127.0.0.1 ALL : 192.168.0.1
こうすることで/etc/hosts/denyですべて拒否になっている設定に/etc/hosts.allowで穴をあけることができます 。ほかにもネットワークアドレスで許可できたり、
ALL : 192.168.0.
すべてのIPアドレスからの要求を許可できたりします。
ALL : ALL
修正が完了したらデーモンを再起動する必要があります。コマンドラインかturboserviceでinetdを停止して起動するか、設定ファイルの読み直しを指示します。
これでできるだろうと思いましたがまだできません。なんとrootではtelnetできないようです。rootになる場合は一般ユーザで入ってsuしましょう。直接rootで入ることも設定次第でできるようです。一般ユーザのアカウントを作成し、ようやくtelnetすることができました。
ちなみにtelnetクライアントはteratermを使用しています。やっぱりこれが定番でしょうな。ま、不満は多少ありますが。
●Linuxマシンにftpする
telnetと同じく/etc/inetd.confを修正し、ftpを有効にします。
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
それだけで良いと思いましたがまたまたftpできません。(この時点でかなりLinuxが嫌いになっていました。)anonymousではftp可能なのですが、Linuxで新たに作成したアカウントではなぜかftpできないのです。試行錯誤した挙句、入れなかったアカウントをftpグループに含めたらうまくいきました。そういうものなのでしょうか?とりあえずこれでうまくいったので深追いはしていません。
ちなみにftpクライアントはffftpを使用しています。私が最初にWindows2000で使用し始めたころは、複数ファイルを指定して転送するとプログラムが落ちていましたが、バージョンアップしてこれも解消されたようです。(作者の方が認識されているかどうかは分かりません)いまではすっかりお気に入りで、自宅と会社で活用しています。
●samba
Sambaは非常に簡単です。/etc/smb.confを少しいじってsmbdを立ち上げるだけです。私はinetdから起動する設定にしました。以下の例ではADOというワークグループ内で、publicというフォルダを公開します。
[global] workgroup = ADO [public] comment = Public Space path = /home/samba guest ok = yes writable = ok force group = public force create mode = 0664 force directory mode = 0775
次にinetd経由で起動させるために/etc/inetd.confを開いて、以下の2行を追加します。
netbios-ssn stream tcp nowait root /usr/sbin/tcpd /usr/sbin/smbd netbios-ns dgram udp wait root /usr/sbin/tcpd /usr/sbin/nmbd
設定が済んだら、以下のコマンドを入力するか、turboserviceでinetdを停止して起動してください。
/usr/sbin/inetd restart
/etc/rc.d/init.d/httpd start
更にLinux起動時に自動的にhttpdを立ち上げたい場合、以下のコマンドを入力します。
/sbin/chkconfig --add httpd
これで/home/httpd/htmlのindex.htmlが公開されます。デフォルトでは各国語版のindex.htmlが用意されています。で、終わるはずだったのですが、実は最初は立ち上がってくれませんでした。そのまま3日ぐらい悩みましたが、エラーログを見たら一発で分かりました。エラーログは/etc/httpd/logs/error_logです。どうやら自分のホスト名が解決できずにhttpdが起動しなかったようです。/etc/hostsファイルに自分のホスト名を記述したら起動してくれました。実はGNOMEを立ち上げたときにも同じようなことを言ってきていましたが、ずっと無視していました。「警告はちゃんと調べましょう」という教訓でした。
Copyright(C) 2001-2003 Allergy Design Office All rights reserved.
[Home]