Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
2.7.8. Libreswan を使用したロードロードアクセス VPN および X.509 による XAUTH
Libreswan では、XAUTH
IPsec
拡張を使用して接続を確立する際に、VPN クライアントに IP
アドレスと DNS 情報をネイティブに割り当てる方法を利用できます。XAUTH は、PSK または X.509 証明書を使用してデプロイできます。X.509 を使用する方が安全です。クライアント証明書は、証明書失効リストまたは オンライン証明書ステータスプロトコル() で取り消すことができます。OCSP).X.509 証明書では、個々のクライアントはサーバーの権限を借用することができません。PSK(Group Password)を使用すると、これは理論的に可能になります。
XAUTH は、追加でユーザー名とパスワードで自身を識別するために VPN クライアントを必要とします。Google Authenticator または RSA SecureID トークンなどのワンタイムパスワード(OTP)では、ワンタイムトークンがユーザーパスワードに追加されます。
XAUTH には、以下の 3 つのバックエンドがあります。
xauthby=pam
- これにより、の設定を使用
/etc/pam.d/pluto
してユーザーを認証します。pam は、単独でさまざまなバックエンドを使用するように設定できます。システムアカウントのユーザーパスワードスキーム、LDAP ディレクトリー、RADIUS サーバー、またはカスタムパスワード認証モジュールを使用できます。 xauthby=file
- これは、設定ファイルを使用します
/etc/ipsec.d/passwd
(混同しない/etc/ipsec.d/nsspassword
)。このファイルの形式は Apache.htpasswd
ファイルと似ていますが、Apache htpasswd コマンドを使用してこのファイルにエントリーを作成できます。ただし、ユーザー名とパスワードの後には、リモートユーザーに VPN を提供するために使用するIPsec
接続の接続名が含まれる 3 番目のコラムが必要になります。たとえば、を使用してリモートユーザーに VPN をconn remoteusers
提供する場合、パスワードファイルのエントリーは以下のようになります。user1:$apr1$MIwQ3DHb$1I69LzTnZhnCT2DPQmAOK.:remoteusers
注記: htpasswd コマンドを使用する場合は、各行に user:password 部分の後に接続名を手動で追加する必要があります。 xauthby=alwaysok
- サーバーは、常に XAUTH ユーザーとパスワードの組み合わせが正しいことになります。クライアントはユーザー名とパスワードを指定する必要がありますが、サーバーはこれを無視します。これは、ユーザーが X.509 証明書ですでに特定されている場合、または XAUTH バックエンドを使用せずに VPN をテストする場合にのみ使用してください。
X.509 証明書が含まれる設定の例:
conn xauth-rsa 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 modecfgdns1=1.2.3.4 modecfgdns2=8.8.8.8 modecfgdomain=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
は無視され、VPN はユーザーが適切に認証されたかのように設定されます。カスタムのアップダウンスクリプトを使用して、環境変数を確認することができ XAUTH_FAILED
ます。このようなユーザーは、たとえば iptables DNAT を使用してにリダイレクトできます。 「グラデーション」 ここで管理者に連絡したり、サービスに有料サブスクリプションを更新したりできます。
VPN クライアントは
modecfgdomain
値と DNS エントリーを使用して、指定したドメインのクエリーを指定されたネームサーバーにリダイレクトします。これにより、ローミングユーザーは内部 DNS 名を使用して内部のみのリソースにアクセスできます。
0.0.0.0/0
では、トンネリング設定要求 leftsubnet
はクライアントに自動的に送信されます。たとえば、を使用すると leftsubnet=10.0.0.0/8
、VPN クライアントは VPN を介して 10.0.0.0/8
のトラフィックのみを送信します。