PPxPの設定により、LinuxからISP(Internet Service Provider)に接続できるようになった。となるとLinuxマシンをダイアルアップルータに設定して、クライアントからLinuxに接続されているモデムを共有してインターネットをやりたくなるのは当然である。
準備としては、Linuxをサーバ、WindowsマシンやMacをクライアントとしてLANを構築して、それぞれに適当な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
オン・デマインド・ダイアルアップをさせるために、モデム設定ファイルを作成しなおす。
# 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.DNSxxx.xxx.xxx.xxx ←ISPのIPアドレス
source filter01 ←追加
auto on ←追加下の2行を追加したらファイルを保存する。
次に、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の設定ボタンをクリックし、プロキシサーバを使用するにチェックがついている場合は外す 3.動作確認
この状態でIEを開くとLinuxマシンのモデムが動き出し、接続が完了したらブラウザにHPが表示されるはずである。
なお、私の場合はモデムは動くがWindowsクライアントがちゃんとHPを表示してくれなかった。
いろいろ悩んだが、IEの設定で「接続」の中に「設定」というボタンがあり、それをクリックしたらLANの設定のような画面が出てくるが、ここにもプロキシサーバを使用するという項目がある。この設定はダイアルアップをするときしか使わないと思っていたのであえて無視していたのだが、このチェックを外したら無事にHPが表示された。
なんだか気に入らないのだが・・・
私の環境では、WindowsクライアントからtelnetでLinuxマシンに接続しようとすると何故かモデムが動いてしまう。そのあとちゃんと繋がってはくれるのだが・・・
IPフィルタリングとかいう機能を使って、例えばLAN内部にあるWindowsマシンからのNetBIOSプロトコルが発せられた場合に自動的に接続動作に入ってしまうのを防いだり、外部からの特定のサービス要求を拒否したりできるらしい。
そのうちやってみよう。