VPNを使用すると、信頼できないパブリックWi-Fiネットワーク上でインターネットに安全かつ確実にアクセスできます。暗号化された接続を使用してリモートVPNサーバーに接続し、匿名でWebを閲覧できます。
strongSwanは無料で、オープンソースで、最も広く使用されているIPsecベースの仮想プライベートネットワークの実装であり、2つ以上のリモートネットワーク間に暗号化された安全なトンネルを作成できます。
strongSwanはIKEv2プロトコルを使用します。これにより、サーバーとクライアント間の直接IPSecトンネリングが可能になります。 strongSwanはStrongSecureWANの略で、IPsec VPN、IKEV1およびV2の両方のバージョンの自動キー交換をサポートします。
このチュートリアルでは、Ubuntu18.04にstrongSwanVPNをインストールして構成する方法を示します。
前提条件
- Atlantic.Netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
- サーバーで構成されているrootパスワード。
ステップ1–Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
ステップ2–カーネルパケット転送を有効にする
まず、IPv4のパケット転送を有効にするようにカーネルを構成する必要があります。ファイル/etc/sysctl.confを編集して構成できます:
nano /etc/sysctl.conf
ファイルの最後に次の行を追加します。
net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0
ファイルを保存して閉じます。次に、次のコマンドを実行して設定を再読み込みします。
sysctl -p
ステップ3–strongSwanをインストールする
まず、システムにstrongSwanIPSecデーモンをインストールする必要があります。次のコマンドを実行するだけでインストールできます:
apt-get install strongswan libcharon-extra-plugins strongswan-pki -y
インストールが完了したら、次の手順に進むことができます。
ステップ4–認証局の設定
次に、VPNサーバーの信頼性を検証するために、VPNクライアントのVPNサーバー証明書とキーを生成する必要があります。
まず、PKIユーティリティを使用してCA証明書に自己署名するための秘密鍵を生成します。
ipsec pki --gen --size 4096 --type rsa --outform pem > ca.key.pem
次に、ルート認証局を作成し、上記のキーを使用してルート証明書に署名します。
ipsec pki --self --in ca.key.pem --type rsa --dn "CN=VPN Server CA" --ca --lifetime 3650 --outform pem > ca.cert.pem>
次に、VPNサーバーの証明書とキーを作成して、クライアントが生成したCA証明書を使用してサーバーの信頼性を検証できるようにする必要があります。
まず、次のコマンドを使用してVPNサーバーの秘密鍵を作成します。
ipsec pki --gen --size 4096 --type rsa --outform pem > server.key.pem
次に、次のコマンドを実行してサーバー証明書を生成します。
ipsec pki --pub --in server.key.pem --type rsa | ipsec pki --issue --lifetime 2750 --cacert ca.cert.pem --cakey ca.key.pem --dn "CN=vpn.example.com" --san="vpn.example.com" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem
次に、以下に示すように、上記の証明書をそれぞれのIPSec証明書ディレクトリにコピーする必要があります。
mv ca.cert.pem /etc/ipsec.d/cacerts/ mv server.cert.pem /etc/ipsec.d/certs/ mv ca.key.pem /etc/ipsec.d/private/ mv server.key.pem /etc/ipsec.d/private/
この時点で、すべての証明書の準備が整い、次のステップに進むことができます。
ステップ5–strongSwanを構成する
strongSwanのデフォルトの設定ファイルは/etc/ipsec.confにあります。デフォルトの構成ファイルの名前を変更して、新しいファイルを作成することをお勧めします。
デフォルトの構成ファイルの名前を変更するには、次のコマンドを実行します。
mv /etc/ipsec.conf /etc/ipsec.conf.bak
次に、以下に示すように新しい構成ファイルを作成します。
nano /etc/ipsec.conf
次の行を追加します:
config setup charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2" strictcrlpolicy=no uniqueids=yes cachecrls=no conn ipsec-ikev2-vpn auto=add compress=no type=tunnel # defines the type of connection, tunnel. keyexchange=ikev2 fragmentation=yes forceencaps=yes dpdaction=clear dpddelay=300s rekey=no left=%any [email protected] # if using IP, define it without the @ sign leftcert=server.cert.pem # reads the VPN server cert in /etc/ipsec.d/certs leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightid=%any rightauth=eap-mschapv2 rightsourceip=192.168.0.0/24 rightdns=8.8.8.8 DNS to be assigned to clients rightsendcert=never eap_identity=%identity # defines the identity the client uses to reply to an EAP Identity request.
終了したら、ファイルを保存して閉じます。
場所:
構成のセットアップ: すべての接続に適用されるIPSecの一般的な構成情報を指定します。
charondebug: ログに記録するCharonデバッグ出力の量を定義します。
leftid: サーバーのドメイン名またはIPアドレスを指定します。
leftcert: サーバー証明書の名前を指定します。
leftsubnet: 左側の参加者の背後にあるプライベートサブネットを指定します。
rightsourceip: クライアントに割り当てられるIPアドレスプール。
rightdns: クライアントに割り当てられるDNS。
ステップ6–認証の構成
この時点で、VPNサーバーはクライアント接続を受け入れるように構成されています。次に、クライアント/サーバー認証クレデンシャルを構成して、認証用のRSA秘密キーを定義し、EAPユーザークレデンシャルを設定する必要があります。
nano /etc/ipsec.secrets
次の行を追加します:
: RSA "server.key.pem" .vpnsecure : EAP "your-secure-password"
ファイルを保存して閉じます。次に、strongSwanサービスを再起動し、再起動時に開始できるようにします。
systemctl restart strongswan systemctl enable strongswan
次のコマンドを使用して、strongSwanサービスのステータスを確認することもできます。
systemctl status strongswan
次の出力が表示されます。
• strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf Loaded: loaded (/lib/systemd/system/strongswan.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-05-08 08:02:08 UTC; 8s ago Main PID: 29947 (starter) Tasks: 18 (limit: 2359) CGroup: /system.slice/strongswan.service ├─29947 /usr/lib/ipsec/starter --daemon charon --nofork └─29973 /usr/lib/ipsec/charon --debug-ike 2 --debug-knl 2 --debug-cfg 2 --debug-net 2 --debug-esp 2 --debug-dmn 2 --debug-mgr 2 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] eap_identity=%identity May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] dpddelay=300 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] dpdtimeout=150 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] dpdaction=1 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] sha256_96=no May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] mediation=no May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] keyexchange=ikev2 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] adding virtual IP address pool 192.168.0.0/24 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] loaded certificate "CN=vpn.example.com" from 'server.cert.pem' May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] added configuration 'ipsec-ikev2-vpn'
次のコマンドを使用して、strongSwan証明書を確認することもできます。
ipsec listcerts
次の出力が得られるはずです:
List of X.509 End Entity Certificates subject: "CN=vpn.example.com" issuer: "CN=VPN Server CA" validity: not before May 08 07:59:18 2020, ok not after Nov 18 07:59:18 2027, ok (expires in 2749 days) serial: 7b:f8:ab:dc:ca:64:dd:93 altNames: vpn.example.com flags: serverAuth ikeIntermediate authkeyId: 12:60:f6:05:15:80:91:61:d6:e9:8f:72:a3:a5:a5:ff:a7:38:1a:32 subjkeyId: bf:1d:b1:1b:51:a0:f7:63:33:e2:5f:4c:cb:73:4f:64:0f:b9:84:09 pubkey: RSA 4096 bits keyid: e4:72:d0:97:20:ec:a5:79:f2:e0:bf:aa:0e:41:a8:ec:67:06:de:ee subjkey: bf:1d:b1:1b:51:a0:f7:63:33:e2:5f:4c:cb:73:4f:64:0f:b9:84:09
この時点で、strongSwanVPNサーバーがインストールおよび構成されています。これで、VPNサーバーに接続するためのVPNクライアントのインストールと構成に進むことができます。
ステップ7–strongSwanクライアントのインストールと構成
クライアントシステムにログインし、次のコマンドを実行して、strongSwanクライアントパッケージをインストールします。
apt-get install strongswan libcharon-extra-plugins -y
インストールしたら、strongSwanサービスを無効にして起動時に開始します:
systemctl disable strongswan
次に、次のコマンドを使用して、ca.cert.pemファイルをVPNサーバーからVPNクライアントにコピーします。
scp [email protected]:/etc/ipsec.d/cacerts/ca.cert.pem /etc/ipsec.d/cacerts/
次に、ファイル/etc/ipsec.secretsを編集してVPNクライアント認証を構成します。
nano /etc/ipsec.secrets
次の行を追加します:
vpnsecure : EAP "your-secure-password"
ファイルを保存して閉じます。次に、strongSwanのデフォルト構成ファイルを編集します。
nano /etc/ipsec.conf
次の行を追加します:
conn ipsec-ikev2-vpn-client auto=start right=vpn.example.com rightid=vpn.example.com rightsubnet=0.0.0.0/0 rightauth=pubkey leftsourceip=%config leftid=vpnsecure leftauth=eap-mschapv2 eap_identity=%identity
ファイルを保存して閉じます。次に、次のコマンドを使用してstrongSwanサービスを再起動します。
systemctl restart strongswan
strongSwanサーバーで、次のコマンドを使用してVPN接続ステータスを確認します。
ipsec status
IP192.168.0.5がVPNクライアントに割り当てられていることがわかります。
Security Associations (1 up, 0 connecting): ipsec-ikev2-vpn-client[1]: ESTABLISHED 1 minutes ago, [vpnsecure]...192.168.0.1[vpn.example.com] ipsec-ikev2-vpn-client{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: 74ab87d0db9ea3d5_i 684cb0dbe4d1a70d_r ipsec-ikev2-vpn-client{1}: 192.168.0.5/32 === 0.0.0.0/0
結論
おめでとう!これで、Ubuntu18.04にstrongSwanVPNサーバーとクライアントが正常にインストールおよび構成されました。これで、インターネットを安全に移動して、身元、場所、トラフィックをスヌーパーや検閲者から保護できます。VPSでホストされているUbuntuサーバーをAtlantic.Netから今すぐ始めましょう!
VPSホスティングサービスと仮想プライベートサーバーの詳細をご覧ください。