PAP 認証は、UNIX の login プログラムと動作が多少似ていますが、PAP はユーザーにシェルアクセスを許可しません。PAP は、PPP 構成ファイルと /etc/ppp/pap-secrets ファイルの形式の PAP データベースを使って認証を設定します。また、PAP セキュリティー資格の定義にも /etc/ppp/pap-secrets を使用します。この資格には、ピア名 (PAP の用語では「ユーザー名」)とパスワードが含まれます。また、ローカルマシンへの接続を許可されている呼び出し元に関する情報も含まれます。PAP のユーザー名とパスワードは、パスワードデータベース内の UNIX ユーザー名およびパスワードと同じものにすることも、違うものにすることもできます。
PAP データベースは、/etc/ppp/pap-secrets ファイルに実装されています。認証が成功するためには、PPP リンクの両側にある各マシンで、/etc/ppp/pap-secrets ファイル内に適切に構成された PAP 資格が必要です。呼び出し元 (認証される側) は、/etc/ppp/pap-secrets ファイルまたは旧バージョンの +ua ファイルの user 列および password 列で資格を提供します。サーバー (認証する側) は、UNIX の passwd データベースまたは PAM 機能により /etc/ppp/pap-secrets 内の情報と対照してこの資格を検証します。
/etc/ppp/pap-secrets ファイルの構文は、次のとおりです。
myclient ISP-server mypassword *
パラメータの意味は次のとおりです。
呼び出し元の PAP ユーザー名。この名前は、呼び出し元の UNIX ユーザー名と同じ場合があります。特に、ダイアルインサーバーが PAP の login オプションを使用する場合は、多くの場合同じになります。
リモートマシンの名前。ダイアルインサーバーである場合がしばしばあります。
呼び出し元の PAP パスワード。
呼び出し元に関連付けられている IP アドレス。任意の IP アドレスを表すには、アスタリスク (*) を使用します。
PAP パスワードは、リンク上をクリアテキストで (読み取り可能な ASCII 形式で) 送信されます。呼び出し元 (認証される側) では、PAP パスワードを次のどこかにクリアテキストで格納する必要があります。
/etc/ppp/pap-secrets 内
別の外部ファイル内
pap-secrets @ 機能による名前付きパイプ内
pppd のオプションとして、コマンド行上または PPP 構成ファイル内のどちらか
+ua ファイルを介して
サーバー (認証する側) では、PAP パスワードは、次のどれかの方法で隠すことができます。
pap-secrets ファイル内で papcrypt を指定し、encrypt によってハッシュ化されたパスワードを使用します。
pppd に login オプションを指定し、パスワード列に二重引用符 ("") を入れることにより pap-secrets ファイルからパスワードを除外します。この場合、認証は UNIX の passwd データベースまたは PAM メカニズムを利用して行われます。
図 8-1 PAP 認証処理
呼び出し元 (認証される側) がリモートピア (認証する側) を呼び出し、接続ネゴシエーションの一環として PAP ユーザー名とパスワードを伝えます。
ピアは、/etc/ppp/pap-secrets ファイルで呼び出し元の識別情報を検証します。ピアが PAP の login オプションを使用する場合は、ピアはパスワードデータベースで呼び出し元のユーザー名とパスワードを検証します。
認証が成功すると、ピアは呼び出し元との接続ネゴシエーションを継続します。認証に失敗すると、接続は切られます。
(オプション) 呼び出し元がリモートピアからの応答を認証する場合は、リモートピアが自身の PAP 資格を呼び出し元に送信する必要があります。したがって、リモートピアは認証される側になり、呼び出し側は認証する側になります。
(オプション) 最初の呼び出し元が自身の /etc/ppp/pap-secrets を読み取り、リモートピアの識別情報を検証します。
ピアが認証されると、ネゴシエーションが継続されます。認証されない場合は、接続が切られます。
呼び出し元とピアのネゴシエーションは、接続の確立に成功するまで継続されます。
PAP 資格を認証するための login オプションを PPP 構成ファイルに追加できます。たとえば /etc/ppp/options で login を指定した場合、pppd は呼び出し元の PAP 資格がパスワードデータベース内に存在するかどうかを検証します。次に、login オプションを使用する /etc/ppp/pap-secrets ファイルの形式を示します。
joe * "" * sally * "" * sue * "" *
パラメータの意味は次のとおりです。
joe、sally、sue は、承認された呼び出し元の名前です。
アスタリスク (*) は、任意のサーバー名が有効であることを示します。name オプションは PPP 構成ファイルでは必須ではありません。
二重引用符は、任意のパスワードが有効であることを示します。
この列にパスワードがある場合、ピアからのパスワードは、PAP パスワードと UNIX passwd データベースの両方に一致しなければなりません。
アスタリスク (*) は、任意の IP アドレスが許可されることを示します。