このような環境では、 dialdを使って、動的発呼(インターネット接続が必要になったときに、 自動的にPPP(or SLIP)接続し、一定時間使われなくなったら自動的に回線を 切断)させると非常に快適な環境が構築できます。
しかし、dialdの動的発呼の機能だけでは不便な場合があります。例えば、電話を 使いたいのに、dialdがPPP接続しようとして勝手に電話をかけてしまう場合や、 逆に、少しの間ネットワークが使われなかったために、回線を切断しようとして しまう場合など、強制的にdialdの接続制御を人間が奪い取りたいときがあります。 このような要求に答えて、dialdには名前付きパイプを通して機能を制御する仕組み があり、dialdのパッケージにはtcl/tkのGUIベースの制御クライアント(dctrl)が付属 しています。
ここで問題になるのは、dialdに標準付属のdctrlではこの制御を名前付きパイプを 通して行うために LANに接続された他の端末からはこの制御機能を利用する ことができないということです。これは、IP Masqueradeを用いている環境では 非常に不便です。
そこで、LAN上のクライアントから制御できるようにするために、
クライアント・サーバー パッケージ
Diald Control を作りました。
Diald Controlパッケージはクライアントからのソケットによる接続を扱う
サーバー(dcntls)と
Java(applet、application両対応)によるGUIベースの制御クライアント(DcntlClient)
からなり、サーバーはクライアントからの制御をdialdに中継し、dialdからの
接続情報をクライアントに転送する簡単なプロキシーサーバーです。下の図は、
クライアントの実行画面です。
このクライアントは、Javaで書いてあるため、WindowsでもMacでも、もちろん
Linuxからでも使うことができます。さらに、アプレットとしても、アプリケーション
としても動作します。JDK1.1以上が必要ですが、NetscapeやIE等からも、
Java Plug-inを用いることで
JDK1.1のアプレットを利用することができます。Netscape4.06以降ではJava Plug-in
は必要ないようです。Linuxでも利用できます。
% zcat diald-control.tgz | tar xvf -
% make % su root # make install
# Start dcntls if [ -f /usr/sbin/dcntls ]; then /usr/sbin/dcntls ; echo -n "dcntls "; fi
# /usr/sbin/dcntls
% /usr/local/bin/dcntlc
をroot権限で実行すると、ppp0を通して外部からポート8972(Diald Controlが
使うポート)
への接続をすべて拒否します。内部のネットワークからはppp0ではなく、
eth0等を通すので、利用可能となります。
同様に、ローカルネットワークの特定のホストからの接続拒否の設定も
可能です。たとえば、サーバーのアドレスが192.168.0.1で、対象とする
ホストが 192.168.0.2 だとすると、
とすればよいでしょう。 このコマンドを /etc/rc.d/rc.local 等に書いておけば安心でしょう。