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 ←falseをyesに変えて保存(trueではない) 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)電話番号(複数指定可)xxxxxxxxxISP(ダイアルアップ接続先)の電話番号を入力
Login Nameログインユーザ名usernameISPに与えられたユーザ名を入力
Login Password
Password(again)
ログインパスワード
パスワード(確認)
******
******
パスワードを入力
入力文字は表示されない
More...詳細設定Enterキーを押す詳細設定を行う
Save...保存Enterキーを押す設定を保存する
保存画面で任意のファイル名を入力し、スクリプトとして保存する

詳細画面は次のとおり。

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

Create resolv.confresolv.confの作成

DNS ServersDNSサーバxxx.xxx.xxx.xxxISPの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との接続を確立する。

4.クライアントの設定

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の設定ボタンをクリックし、プロキシサーバを使用するにチェックがついている場合は外す

3.動作確認

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

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

5.余談

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


[ TOP ]