SPPPCONTROL(8)

名称
spppcontrol - sppp インタフェースのパラメータの表示または設定

書式
spppcontrol [-v] ifname [parameter[=value]] [...]

解説
sppp(4) ドライバには、 ifconfig(8) にて調整可能な設定の他に、 多くの追加引数やオプションパラメータが必要となるかもしれません。 これらには、認証プロトコルのパラメータなどと、 他の調整可能なコンフィギュレーション変数があります。 spppcontrol ユーティリティは、現在の設定を表示したり、 これらのパラメータを必要に応じて調整するために使用可能です。

どのような用途においても、 spppcontrol 呼び出しにおいては、少なくともパラメータ ifname を指定して、インタフェースの名前を指定する必要があります。 このインタフェースに対して、設定がおこなわれるかまたは設定が表示されます。 ifconfig(8) または netstat(1) を使用して、どのインタフェースが使用可能かを確認してください。

他にパラメータを指定しない場合、 spppcontrol は、 ifname の現在の設定を列挙 (list) して終了します。 報告される設定にはインタフェースの現在の PPP フェーズも含まれ、その名は dead, establish, authenticate, network, terminate のうちの 1 つです。 認証プロトコルがインタフェースに対して設定されている場合、 使用するプロトコル名と、使用するまたは期待されるシステム名と、 そして認証プロトコルに対して使用可能なオプションがあればそれを表示します。 認証に使用する秘密情報 ( キー とも呼ばれます) は、この機能が使用するシステムコールによって返されないため、 表示されません。

追加のパラメータを指定する場合、スーパユーザの特権が必要になり、コマンドは ‘設定 (set)’ モードにて動作します。 オプション -v が有効にならない限り、静かに動作します。 -v を指定すると、他のすべての動作をおこなった後、 最後に上述のように設定を表示します。 インタフェースが現在 dead フェーズ以外である場合、このモードを使用しようとしてもリジェクトされます。 インタフェースを強制的に dead フェーズにするためには、 ifconfig(8) をパラメータ ‘down’ 付きで呼び出せば良いことに注意してください。

現在サポートされているパラメータには次のものがあります:

authproto=protoname
    相手と自分の両方の認証プロトコルを protoname に設定します。 プロトコル名は ‘chap’, ‘pap’, ‘none’ のいずれかです。 最後の場合、 指定したインタフェースにおいて認証プロトコルは使用されなくなります。 この副作用として、 このインタフェースに関する認証関連の他のパラメータもまた消去されます (つまり、システム名と認証における秘密情報を忘れてしまいます)。

myauthproto=protoname
    上と同じですが、リンクの自分側にのみ作用します。 すわなち、 相手が認証者であり、かつ、 自分を認証してもらう必要がある場合に使用されるプロトコルです

hisauthproto=protoname
    上と同じですが、リンクの相手側にのみ作用します。

myauthname=name
    認証プロトコルにおける自分のシステム名を設定します。

hisauthname=name
    認証プロトコルにおける相手のシステム名を設定します。 CHAP では、これはヒントとしてのみ使用され、 相手が違う名前を提供した場合には警告メッセージが表示されます。 PAP では、これは相手が相手自身であることを認めさせるときに使用すべき名前です (相手の秘密情報と関連があります)。

myauthsecret=secret
    認証フェーズにおいて使用する、自分の秘密情報 (キーとパスワード) を設定します。 CHAP では、これは相手のチャレンジに基づく 返答のハッシュ値を計算するために使用されます。 PAP では、これはシステム名とともにプレインテキストにて送信されます。 秘密情報にシェルのメタ文字 (や空白) を含む場合、 秘密情報をシェルからエスケープすることを忘れないようにしてください。

myauthkey=secret
    上と同様です。

hisauthsecret=secret
    上と同様ですが、 自分が認証者であり、かつ相手を認証する必要がある場合に使用されます。

hisauthkey=secret
    上と同様です。

callin
    相手から呼び出されるときにのみ、相手を認証する必要があり、 自分が呼び出す場合には不要であることを示します。 相手が対称的な認証プロトルを実装していない場合に、必要となります (例えば Ascend ルータ)。

always
    callin の逆です。どちらが呼び出す場合でも、 常に相手を認証する必要があることを示します。 これがデフォルトであり、 ‘list’ モードでは明示的に表示されません。

norechallenge
    CHAP でのみ意味があります。 最初に CHAP 交換が成功したならば、相手に再チャレンジしません。 相手の実装が壊れていて、 接続が確立した後の再チャレンジを認識しない場合、対処として使用します。

rechallenge
    CHAP において、接続がネットワークフェーズである間、 ランダムな間隔にて再チャレンジを送信します。 (現在、間隔は 300 からおよそ 800 秒です。) これがデフォルトであり、 ‘list’ モードでは明示的に表示されません。

使用例

    # spppcontrol bppp0
    bppp0:	phase=dead
    	myauthproto=chap myauthname="uriah"
    	hisauthproto=chap hisauthname="ifb-gw" norechallenge

bppp0 の設定を表示します。 インタフェースは、現在 dead フェーズ、つまり LCP 層はダウンしているため、通信できません。 接続の両端は CHAP プロトコルを使用し、 当方のシステム名は ‘uriah’ であるとリモート側に対して告げ、 リモート側は ‘ifb-gw’ という名前で認証されると期待されます。 最初の CHAP 交換が成功すると、更なる CHAP チャレンジは送信されません。 おそらく CHAP に関する双方の秘密情報があるでしょうが、それらは表示されません。

    # spppcontrol bppp0 \
    	authproto=chap \
    	myauthname=uriah myauthsecret='some secret' \
    	hisauthname=ifb-gw hisauthsecret='another' \
    	norechallenge

インタフェースを前の例の状態にするために、このように spppcontrol を呼び出したかもしれません。

関連項目
netstat(1), sppp(4), ifconfig(8) B. Lloyd, W. Simpson, PPP Authentication Protocols, RFC 1334. W. Simpson, Editor, The Point-to-Point Protocol (PPP), RFC 1661. W. Simpson, PPP Challenge Handshake Authentication Protocol (CHAP), RFC 1994.

歴史
spppcontrol ユーティリティは FreeBSD 3.0 に登場しました。

作者
プログラムの記述を Joerg Wunsch, Dresden がおこないました。