Menu Close
Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
4.6.8. X.509 を使用した IKEv1 リモートアクセス VPN Libreswan および XAUTH の設定
Libreswan は、XAUTH
IPsec
エクステンションを使用して、接続が確立されるときに、ローミング VPN クライアントに IP
アドレスと DNS 情報をネイティブに割り当てる方法を提供します。拡張認証 (XAUTH) は、PSK または X.509 証明書を使用してデプロイすることができます。X.509 を使用したデプロイの方がより安全です。クライアント証明書は、証明書失効リストまたは オンライン証明書ステータスプロトコル (OCSP) により取り消すことができます。X.509 証明書を使用すると、個々のクライアントがサーバーになりすますことはできません。グループパスワードとも呼ばれる PSK を使用すると、これは理論的には可能です。
XAUTH では、VPN クライアントがユーザー名とパスワードで自身を追加で識別する必要があります。Google 認証システムや RSA SecureID トークンなどのワンタイムパスワード (OTP) の場合、ワンタイムトークンがユーザーパスワードに追加されます。
XAUTH には 3 つの可能なバックエンドがあります。
xauthby=pam
- これは、
/etc/pam.d/pluto
の設定を使用してユーザーを認証します。Pluggable Authentication Modules (PAM) は、さまざまなバックエンドを単独で使用するように設定できます。システムアカウントのユーザーパスワードスキーム、LDAP ディレクトリー、RADIUS サーバー、またはカスタムパスワード認証モジュールを使用できます。詳細は、Using Pluggable Authentication Modules (PAM) の章を参照してください。 xauthby=file
- これは
/etc/ipsec.d/passwd
設定ファイルを使用します (/etc/ipsec.d/nsspassword
ファイルと混同しないでください)。このファイルのフォーマットは、Apache.htpasswd
ファイルと似ており、Apache htpasswdコマンドを使用してこのファイルのエントリーを作成することができます。ただし、ユーザー名とパスワードの後に、使用するIPsec
接続の接続名を示す 3 番目の列が必要です。たとえば、conn remoteusers
を使用して、ユーザーを削除するために VPN を提供する場合、パスワードファイルのエントリーは次のようになります。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
が hard ではなく soft に設定されている場合、認証の失敗は無視され、VPN はユーザーが適切に認証されたかのように設定されます。カスタムアップダウンスクリプトを使用して、環境変数 XAUTH_FAILED
をチェックすることができます。このようなユーザーは、たとえば iptables DNAT を使用して、「ウォールドガーデン」 にリダイレクトできます。そこでは、管理者に連絡したり、サービスの有料サブスクリプションを更新したりできます。
VPN クライアントは、
modecfgdomain
値と DNS エントリーを使用して、指定されたドメインのクエリーをこれらの指定されたネームサーバーにリダイレクトします。これにより、ローミングユーザーは内部 DNS 名を使用して内部専用リソースにアクセスすることができます。IKEv2 は modecfgdomains
と modecfgdns
を使用して、ドメイン名とネームサーバー IP アドレスのコンマ区切りリストをサポートしますが、IKEv1 プロトコルは 1 つのドメイン名のみをサポートし、libreswan は最大 2 つのネームサーバー IP アドレスのみをサポートすることに注意してください。オプションで、バナーテキストを VPN クライアントに送信するには、modecfgbanner
オプションを使用します。
leftsubnet
が 0.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) インターネットドラフトのドキュメントを参照してください。