Linuxでダイヤルアップ・ルーター
〜 8,640円なり 〜

to home

  1. 概 略
  2.  昨年(2000/4)からISDN回線に変更して、NTTの TA(FT50)を購入しました。NTTで 初めてのワイヤレスTAだったと思います。しばらく愛用させていただきました。そ して今年(2001)の7月より、フレッツISDN(3,300円/月)を導入しました。  こうなれば欲しくなるのが、ダイヤルアップルーターです。安いお店や、インタ ーネットで検索しても 35,000円以上です。でも今使っている TA もせっかくだか ら使いたいし。  ということで Linux にて安価なダイヤルアップルーターを作ることを決意しま した(笑) (本文書は カーネル2.2 を対象としています)
     私が使用したディストリビューションは TurboLinux 6.0(FTP版)です。試行錯誤 を重ね運用まで2週間あまりもかけてしまったんですが何か楽しいですよね。
     「怒涛のLinuxネットワーク」(ぱぱんだ著)を参考にしています。私には大変 分かり易く買ってよかった本です。

  3. 買い出し
  4.  中古品を扱っている近くのパソコンショップで以下の品を購入しました。しめて 8,640円でした。

  5. Linuxインストール
  6.  今となっては非力な PC330 ですが、ダイヤルアップルーターに変身させるには 充分なスペックです。Linuxディストリビューションは TurboLinux 日本語 6.0 (カーネル2.2.16-3)を選択しました。理由は、このディストリビューションでダイ ヤルアップルーターを作る記事が雑誌に掲載されてたからです;-) 実はその記事は あまり活用していないけど..  X環境は不要なんでインストールしてません。

  7. ローカルネットワーク接続
  8.  PC330 には ISAのLANカードが標準で装備されています。しかし、Linuxからこれ を使うことが私には出来ませんでした。いろいろ試してみたのですが時間ばかり消 費してしまったので見切りをつけて、ISAのLANカードを取り外し、PCIのLANカード を購入して取り付けました。

     このLANカードはインストーラーが自動的に認識してくれました。(あの苦労はな んだったんだろう.. 徒労だ;-) ホストネームは`gw'。ドメインは `hogehoge.bogus'。IPアドレスとサブネットマスクは 192.168.1.254/255.255.255.0 に設定しました。DNSはプロバイダ指定の2つを設定 しました。これらはインストーラーが聞いてます。ここで設定できなくても後から /etc/sysconfig/network を編集すればそれで済むことです。

  9. TA(モデム)との接続
  10.  gw と TA は RS232Cで接続しています。MS-DOS(Windows)で言うと COM1 に 接続しています。これは Linux(カーネル2.2以上)では /dev/ttyS0 に相当します。

  11. PPPダイヤラー:PPxP
  12.  ダイヤルアップには PPxP を使用しました。qdial というコマンドが対話式で設 定してくれるので楽です。また、オンデマンドにも対応しています。 ここ からダウンロードできます。

  13. ルーティングの設定
  14.  ゲートウェイマシンのルーティングを有効にして、その他のマシンはデフォルト ゲートウェイとしてゲートウェイを知っている必要があります。

  15. IPマスカレード
  16.  グローバルIPアドレスが一つしかなく(PPP接続)、ローカルネットワーク内の複 数のホストから同時にインターネットに接続したいとすると、ゲートウェイ上で IPアドレスを操作(仮装)する必要がります(IPマスカレード)。
     カーネル2.2 では ipchains を使用します。

     ipchains を実行する前にIPマスカレード用に必要なモジュールをインストール する必要があります.
     モジュールインストールとIPマスカレードの設定、及びファイアウォールの設定 は /etc/rc.d/rc.local 内に記述しておくとよいです。以下は追加分の例です。

  17. ファイアウォール
  18.  ファアウォールの種類はいくつかあります。今回構築に使用したのは、アドレス フィルタリング/ポートフィルタリング(3,4層)、アプリケーションゲートウェ イ(7層)です。カッコ()内はOSI参照モデルでいう階層レベルです。
     前2者は、カーネル機能 と ipchains で実現します。アプリケーションゲートウ ェイはアプリケーションにより設定します(例. httpdなど)

  19. WWWプロキシ( squid )
  20.  透過プロキシをゲートウェイマシン(gw)にインストールした。squid であ る。TurboLinuxのrpmパッケージをそのままインストールした。
     起動時に有効とするために chkconfig を実行する.

  21. インターネットからローカルWebサーバーにアクセス
  22.  インターネットからローカルネット内に配したWebサーバーにアク セスすることが出来る。
     ファイアウォールを経由するので比較的安心ではある。  これには、ポートフォワーダーが必要となる。カーネル2.2 では、ipmasqadm を 使用する。

  23. 動的グローバルIPアドレス
  24.  PPPは接続のたびにグローバルIPアドレスが変わってしまします。IPマスカレー ドやポートフォワードの設定には当然グローバルIPアドレスが必要となります。
     PPP接続時にこれらを設定する仕掛けをPPxPを利用して行います。

  25. nomail
  26.  ダイヤルアップ環境用のSMTP(Simple Mail Transfer Protocol)専用の MTA(Mail Transfer Argent)。

    1. rpmパッケージ
    2.  下記サイトから、rpmパッケージを獲得する.  http://www.ku3g.org/negi/nomail/

    3. インストール
    4. 設定
    5.  非常に簡単です。以下は例です。

    6. プールへ送信
    7.  オフライン中でも意識せずにメール送信を行える. メール文書を カレントに mail.txt で作成されているとすると。以下でプールへ送信可能。

       mail.txt の冒頭に`Subject: お題目' を挿入するとメールサブジェクトが 「お題目」になる。

    8. プール上のメールをSMTPサーバーへ送信
    9.  オンラインになったときに、プールに溜まった送信メールを一気に SMTPサー バーへ送信する。

       メールを書いて即、SMTPサーバーへ出したいときは、nomail, nosend を続け て実行すればよい。
       また、ダイヤルアップ環境であればダイヤルアップ接続が確立したときに nosend を実行するようにスクリプトで設定しておけば楽である。例えば、PPxP を使用している私の環境では、/etc/ppxp/rc/send_mail.rc を作成して、 /etc/ppxp/ip/drouteup の最後にの `start' から始まる行の最後に `send_mail' を付与するだけでよい。`start'から始まる行がなければ、最後の 行に`start send_mail' と記述する。

  27. lftp
  28.  lftp はCUIの優れたftpクライアントである。Vine Linux では標準の ftpクライ アントとしてパッケージに含まれる。
     よい点は、ftp 中のコマンドをスクリプトに記述しておき、このファイルを `-f' オプションで指定すると、それに従って実行してくれるところだ。anonymous ならいいが、難点はパスワードをそのスクリプトに平文で記述している点だ。利便 性とセキュリティはいつもトレードオフである:-)

    1. lftp-2.4.3.tar.gz
    2.  http://lftp.yar.ru/から tar ball をダウンロードする。

    3. インストール
    4.  コンパイルには以下のパッケージをインストールした(全部必要ないかも^^;)。 lftpをコンパイルする前にインストールする。TurboLinux 日本語 6.0(ftp版) のCD-ROMよりインスールした。楽だ。  tar ball を /usr/local/src に置き以下の通り.

       以上で /usr/local/bin に lftp がインストールされる。

    5. 設定
    6.  仮に、ユーザー名を foobar、パスワードを hogehoge、接続先ftpサーバーを ftp.xxx.yyy.com として、ローカルの /upload/index.html ファイルを リモー トの test ディレクトリ下にアップロードする場合、以下のスクリプトを書く.

       /etc/.lftprc にはパスワードがベタで書かれているので不用意に他人に除か れないように属性を設定します。

    7. 実行
    8.  -f オプションで上記スクリプトを指定すればアップロードされる。

       ダイヤルアップ環境であればダイヤルアップ接続が確立したときに上記を実 行するようにスクリプトで設定しておけば、毎回更新されることになる。Webペ ージの更新などに便利ですな。

    9. IPv6
    10.  lftp をインストールしてから、/var/log/message に以下のログが現れてま した.

       net-pf-10 は IPv6 のモジュール名らしく、/etc/modules.confに 以下を追 加して再起動すれば解消される。


to home

2001/08 by masu
e-mail: massun.masumoto@nifty.ne.jp
URL : http://member.nifty.ne.jp/~masumoto/