Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.6.8. IKEv1 Remote Access VPN Libreswan および X.509 で XAUTH の設定

Libreswan は、XAUTH IPsec 拡張機能を使用して接続を確立するため、IP アドレスと DNS 情報をローテーション VPN クライアントにネイティブに割り当てる方法を提供します。拡張認証(XAUTH)は、PSK または X.509 証明書を使用してデプロイできます。X.509 を使用したデプロイの安全性は向上しています。クライアント証明書は、証明書失効リストまたは Online Certificate Status Protocol (OCSP)で取り消すことができます。X.509 証明書では、個々のクライアントはサーバーの権限を借用できません。PSK(Group Password とも呼ばれる)では、これは理論的に可能です。
XAUTH では、VPN クライアントがユーザー名とパスワードを使用して、追加で識別する必要があります。Google Authenticator または RSA SecureID トークンなどのワンタイムパスワード(OTP)に、ワンタイムパスワードにワンタイムパスワードが追加されます。
XAUTH には、以下の 3 つのバックエンドを使用できます。
xauthby=pam
これにより、/etc/pam.d/pluto の設定を使用してユーザーを認証します。プラグ可能な認証モジュール(PAM)は、それ自体がさまざまなバックエンドを使用するように設定できます。システムアカウントの user-password スキーム、LDAP ディレクトリー、RADIUS サーバー、またはカスタムパスワード認証モジュールを使用できます。詳細は、「PAM(プラグ可能な認証モジュール)の使用 」の章を参照してください。
xauthby=file
これは、/etc/ipsec.d/passwd 設定ファイルを使用します (/etc/ipsec.d/nsspassword ファイルで混同しないでください)。このファイルの形式は Apache .htpasswd ファイルと似ていますが、Apache htpasswd コマンドを使用してこのファイルでエントリーを作成できます。ただし、ユーザー名とパスワードの後には、3 番目の列に、使用する IPsec 接続の接続名が必要です。たとえば、conn remoteusers を使用してユーザーを削除するには、パスワードファイルエントリーは以下のようになります。
user1:$apr1$MIwQ3DHb$1I69LzTnZhnCT2DPQmAOK.:remoteusers
注記
htpasswd コマンドを使用する場合には、各行で user:password の部分の後に接続名を手動で追加する必要があります。
xauthby=alwaysok
サーバーは常に XAUTH ユーザーおよびグループの組み合わせが正しいことを確認します。クライアントはユーザー名とパスワードを指定する必要がありますが、サーバーはこれを無視します。これは、ユーザーがすでに X.509 証明書で識別されている場合、または XAUTH バックエンドを使用せずに VPN をテストする場合にのみ使用してください。
X.509 証明書を使用するサーバー設定の例:
conn xauth-rsa
    ikev2=never
    auto=add
    authby=rsasig
    pfs=no
    rekey=no
    left=ServerIP
    leftcert=vpn.example.com
    #leftid=%fromcert
    leftid=vpn.example.com
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    rightaddresspool=10.234.123.2-10.234.123.254
    right=%any
    rightrsasigkey=%cert
    modecfgdns="1.2.3.4,8.8.8.8"
    modecfgdomains=example.com
    modecfgbanner="Authorized access is allowed"
    leftxauthserver=yes
    rightxauthclient=yes
    leftmodecfgserver=yes
    rightmodecfgclient=yes
    modecfgpull=yes
    xauthby=pam
    dpddelay=30
    dpdtimeout=120
    dpdaction=clear
    ike_frag=yes
    # for walled-garden on xauth failure
    # xauthfail=soft
    # leftupdown=/custom/_updown
xauthfail を soft に設定すると、ハードではなく認証の失敗は無視され、ユーザーが適切に認証されているかのように VPN が設定されます。カスタムの updown スクリプトを使用して環境変数XAUTH_FAILED を確認できますたとえば、iptables DNAT を使用して、管理者に問い合わせる場所や有料サブスクリプションをサービスに連絡したり、サービスへの有料サブスクリプションを更新できる、たとえば iptables DNAT を使用してリダイレクトできます。
VPN クライアントは modecfgdomain の値と DNS エントリーを使用して、指定したドメインのクエリーを指定したネームサーバーにリダイレクトします。これにより、内部の DNS 名を使用してユーザーをローミングすると内部のみのリソースにアクセスできます。IKEv2 は、modecfgdomains および modecfgdns を使用してドメイン名およびネームサーバーの IP アドレスのコンマ区切りリストと、IKEv1 プロトコルは 1 つのドメイン名のみをサポートしますが、libreswan は最大 2 つのネームサーバー IP アドレスのみをサポートします。必要に応じて、バナーテキストを VPN cliens に送信するには、modecfgbanner オプションを使用します。
leftsubnet0.0.0.0/0 でない場合、分割されるトンネリング設定リクエストは自動的にクライアントに送信されます。たとえば、leftsubnet=10.0.0.0/8 を使用する場合、VPN クライアントは VPN 経由で 10.0.0.0/8 のトラフィックのみを送信します。
クライアントでは、ユーザーは、使用するバックエンドに依存するユーザーパスワードを入力する必要があります。以下に例を示します。
xauthby=file
管理者がパスワードを生成し、/etc/ipsec.d/passwd ファイルに保存します。
xauthby=pam
パスワードは、/etc/pam.d/pluto ファイルの PAM 設定で指定された場所から取得されます。
xauthby=alwaysok
パスワードはチェックされず、常に受け入れられます。このオプションは、テスト目的や、xauth のみのクライアントとの互換性を確保するために使用します。

関連情報

XAUTH の詳細は、「Extended Authentication within ISAKMP/Oakley(XAUTH) Internet-Draft」を参照してください。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。