それはどうなるのでしょうか?
この記事では、LinuxサーバーでStrongSwanデーモンを構成して、IPSEC IKEv2経由でリモートユーザー(リモートアクセスVPN)を接続する方法について説明します。MSCHAPv2-EAPバンドルは、クライアント認証プロトコルとして使用されます。
ソリューションの説明
このリモートアクセスVPNの実装では、EAPプロトコル(RFC 3748)が、クライアントゲートウェイに接続するための認証のためにMicrosoft CHAPバージョン2と組み合わせて使用されます。
このプロトコルは、Windows 7アジャイルのVPNクライアントで使用されます。 IPアドレスによるIKEv2の識別に加えて、クライアントはゲートウェイで定義された名前とパスワードによるEAP認証を使用します。
ゲートウェイは、RSA証明書を使用してクライアントで認証します。
下の図のスタンドとソリューションのスキーム。

仮想IPインターフェース-ゲートウェイによってクライアントに割り当てられる仮想アドレス。 StrongSwan構成ファイルで構成可能。
証明書のVPNに関するこのソリューションの主な利点は、各証明書をクライアントにインポートする必要がなく、ログインとパスワードを知っているだけでよいことです。 追加の利点は、IKEv2プロトコル接続を使用してIPSECを確立することです。これには、IKEv1よりもいくつかの利点があります。 グーグルの成功の利点の説明。
証明書の生成
証明書の生成は最も重要な部分であり、最も困難な部分です。それに依存するのは、IPSEC =トンネルの機能です。
証明書はOPENSSLを使用して生成されました。
まず、OPENSSLを構成します。
vi /usr/lib/ssl/openssl.cnf [ CA_default ] dir = /etc/ipsec.d # , certificate = $dir/cacerts/strongswanCert.pem # CA private_key = $dir/private/strongswanKey.pem # CA
新しい証明書のディレクトリと、OPENSSLのシリアルを含むファイルを作成します
cd /etc/ipsec.d mkdir newcerts touch index.txt echo “00” > serial
CA証明書を生成します。
CA証明書を作成します。
openssl req -x509 -days 3650 -newkey rsa:2048 -keyout private/strongswanKey.pem -out cacerts/strongswanCert.pem
CA証明書をフォームp.12に変換します。これは、Windowsとほとんどのクライアントが理解するため、インポートに問題はありません。
openssl pkcs12 -export -inkey private/strongswanKey.pem -in certs/strongswanCert.pem -name "host" -certfile cacerts/strongswanCert.pem -caname "strongSwan Root CA" -out CAcert.p12
サーバーの証明書を生成します。
証明書要求を作成します。
openssl req -newkey rsa:1024 -keyout private/serverkey.pem -out reqs/serverreq.pem
以前に作成した要求を使用して、CAに証明書を要求します。
openssl ca -in reqs/serverreq.pem -days 730 -out certs/servercert.pem -notext
証明書を生成するとき、openssl.cnfでサーバー証明書のsubjectAltName = IP:<external_IP>パラメーターを設定する必要があります
StrongSwanデーモンの構成
StrongSwanのインストールは、リポジトリまたはソースから簡単に実行できます。
/etc/strongswan.confファイルは次のようになります。
charon { load = curl test-vectors aes des sha1 sha2 md5 pem pkcs1 gmp random x509 revocation hmac xcbc cmac ctr ccm gcm stroke kernel-netlink socket-default updown eap-identity }
基本設定は/etc/ipsec.confファイルで行う必要があります
基本的なパラメーターを定義する構成セットアップセクション:
config setup strictpolicy=no charonstart=yes plutostart=no charondebug="ike 2, knl 3, cfg 0"
接続が構成されているconnセクション
conn %default / IPSEC- ikelifetime=60m keylife=20m rekeymargin=3m keyingtries=1 dpdaction=restart dpdelay=30s dpdtimeout=180s conn rw / IPSEC- left=<external_IP> / leftsubnet=<subnet/prefix> / , leftid=<external_IP> leftcert=/etc/ipsec.d/certs/servercert.pem / IKE SA leftauth=pubkey / , RSA right=%any / IP rightauth=eap-mschapv2 rightsendcert=never rightsourceip=<subnet/prefix> / IP- auto=add / keyexhcnage=ikev2 type=tunnel
また、/ etc / ipsec.secretsファイルで、ゲートウェイ証明書の公開鍵ファイルとEAPユーザーのアカウンティングを指定する必要があります。
: RSA /etc/ipsec.d/private/serverkey.pem "password" ivan : EAP "pass1" max : EAP "pass2"
上記の設定は/etc/ipsec.confに保存されます
クライアントのセットアップ
クライアントとして、StrongSwan VPN ClientアプリケーションがインストールされたWindows 7またはAndroid OSを実行するデバイスを使用できます。
クライアントのセットアップは、次の項目で構成されています。
Androidの場合、一般に、すべてが同じです。
おわりに
クライアントとサーバーを構成した後、サーバーでStrongSwanを再起動できます。これはipsec restartコマンドで実行され、クライアントとの接続を試行します。 ipsec statusallコマンドが発行されたときにゲートウェイが成功すると、接続ステータスが確立され、クライアントとサーバー間のpingが楽しく実行されます。
クライアントがleftsubnetパラメーターで定義されたサブネットからローカルリソースにアクセスできることを忘れていました。それに応じてルーティングとファイアウォールルール(iptables)を構成する必要があります。
StrongSwanを使用してL2TP over IPSEC(IKEv1)を実装することもできます。これについては後で説明します。