PPxPでダイアルアップルータ構築

PPxPの設定により、LinuxからISP(Internet Service Provider)に接続できるようになった。
となるとLinuxマシンをダイアルアップルータに設定して、クライアントからLinuxに接続されている モデムを共有してインターネットをやりたくなるのは当然である。
準備としては、Linuxをサーバ、WindowsマシンやMacをクライアントとしてLANを構築して、 それぞれに適当なIPアドレスを割り振っておく。

  1. IPフォワード機能の設定

    IPマスカレードを行うために、IPフォワード機能をオンにする。まずは確認。

    # cat /proc/cat /proc/sys/net/ipv4/ip_forward
    1または0

    1の場合は既にオンになっているが、0の場合はオフになっているため、 設定を行う。

    # vi /etc/sysconfig/network
    NETWORKING=yes
    FORWARD_IPV4=false falseyesに変えて保存
    HOSTNAME="rina.localdomain"
    GATEWAY=

    networkファイルを書き換えたら、

    # /etc/rc.d/init.d/network restart

    と入力して、ネットワークを再起動する。

  2. モデム設定ファイルの作成

    オン・デマインド・ダイアルアップをさせるために、モデム設定ファイルを作成しなおす。

    # ppxp
    PPxP version 0.99120923
    interface: u10
    ppxp> qdial

    QUICK DIALUP画面を表示し、それぞれの設定を行う。

    設定項目 意味 設定内容 補足
    Device Name デバイス名 /dev/modem
    Dial Type ダイアル方式 Pulse 左右のカーソルキーで切り替わる
    トーン(プッシュホン)回線ならTone、パルス(ダイアル)回線なら Pulseを指定
    Phone Number(s) 電話番号(複数指定可) xxxxxxxxx ISP(ダイアルアップ接続先)の電話番号を入力
    Login Name ログインユーザ名 username ISPに与えられたユーザ名を入力
    Login Password
    Password(again)
    ログインパスワード
    パスワード(確認)
    ******
    ******
    パスワードを入力
    入力文字は表示されない
    More... 詳細設定 Enterキーを押す 詳細設定を行う
    Save... 保存 Enterキーを押す 設定を保存する
    保存画面で任意のファイル名を入力し、スクリプトとして保存する

    詳細画面は次のとおり。

    設定項目 意味 設定内容 補足
    Authentication Protocol 認証プロトコル PAP CHAP/MD5 CHAP/MS 通常はデフォルトのままでよい
    PPP Mode PPPモード active 通常はactiveのままでよい
    Modem Type モデムの種類 /generic 使用するモデムの種類を選択する
    通常のアナログモデムならgenericでいい(※)
    Idle time アイドル時間 180 ←これを追加 オンデマインド接続をする場合、TCP/IPのパケットが流れなくなってから 自動切断するまでの時間(分)を指定
    0で自動切断しない設定となる
    IP Masquerade IPマスカレード 192.168.1.0/24 ←これを追加 IPマスカレードをする場合の範囲を入力
    VJ compression VJ圧縮

    Create resolv.conf resolv.confの作成

    DNS Servers DNSサーバ xxx.xxx.xxx.xxx ISPのDNSサーバのIPアドレスを入力

    詳細画面の設定も終わったらBackボタンで前の画面に戻り、設定を保存する。
    保存後、viで設定ファイルを開き、次の行を追加する。

    source qdial
    set MODE active
    set AUTH.PASSWD dialtest
    set LOG.FILE dialtest.log
    set LINE /dev/modem
    set SERIAL.MODEM /me1414b2
    set DIAL.LIST 307
    set DIAL.TYPE Pulse
    set AUTH.PROTO PAP CHAP/MD5 CHAP/MS
    set IDLE.INIT 180
    set IP.VJ no
    set IP.RESOLV yes
    filter ip +mO -S 192.168.1.0/24
    set IP.DNS xxx.xxx.xxx.xxx ISPのIPアドレス
    source filter01 ←追加
    auto on ←追加

    下の2行を追加したらファイルを保存する。

  3. IPマスカレードの設定

    次に、IPマスカレードの設定を行う。viで/etc/rc.d/rc.localファイルを開き、 最後の行に以下を追加する。

    #PPxP initialize
    /sbin/modprobe userlink
    /usr/local/bin/ppxp dialtest -C bye

    #IP Masquerade initialize
    /sbin/ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
    /sbin/ipfwadm -F -p deny

    modprobe ip_masq_ftp
    modprobe ip_masq_irc
    modprobe ip_masq_raudio
    modprobe ip_masq_cuseeme
    modprobe ip_masq_vdolive

    設定を保存し、Linuxマシンを再起動する。

これにより、クライアントからインターネットへの接続要求があった場合にLinuxマシンが 自動的にダイアルアップを開始し、ISPとの接続を確立する。

Linuxサーバの設定が終わったら、次はクライアントの設定を行う。
Windowsクライアントの設定は次のとおり。

  1. ネットワークコンピュータの設定

    ネットワークコンピュータのプロパティを開き、ネットワークカードのTCP/IPの設定を 行う。

    IPアドレス 任意のIPアドレスを指定(例、192.168.1.2)
    サブネットマスク 255.255.255.0
    ゲートウェイ LinuxサーバのIPアドレスを指定(例、192.168.1.1)
    DNS設定 ホスト名:任意の名前
    ドメイン:ISPに指定されているもの
    DNSサーバ:ISPに指定されているもの

    設定を保存し、再起動を行う。

  2. ブラウザの設定(IEの場合)

    IEのオプションの指定で接続の設定を行う。

    ダイアルアップの指定 ダイアルしないを選択
    LANの設定 LANの設定ボタンをクリックし、プロキシサーバを使用するにチェックがついている 場合は外す

この状態でIEを開くとLinuxマシンのモデムが動き出し、接続が完了したらブラウザにHPが表示される はずである。

なお、私の場合はモデムは動くがWindowsクライアントがちゃんとHPを表示してくれなかった。
いろいろ悩んだが、IEの設定で「接続」の中に「設定」というボタンがあり、それをクリックしたら LANの設定のような画面が出てくるが、ここにも「プロキシサーバを使用する」という 項目がある。この設定はダイアルアップをするときしか使わないと思っていたのであえて無視していた のだが、このチェックを外したら無事にHPが表示された。
なんだか気に入らないのだが・・・

私の環境では、WindowsクライアントからtelnetでLinuxマシンに接続しようとすると 何故かモデムが動いてしまう。そのあとちゃんと繋がってはくれるのだが・・・
IPフィルタリングとかいう機能を使って、例えばLAN内部にあるWindowsマシンからの NetBIOSプロトコルが発せられた場合に自動的に接続動作に入ってしまうのを防いだり、 外部からの特定のサービス要求を拒否したりできるらしい。
そのうちやってみよう。