GNU/Linux >> Linux の 問題 >  >> Linux

Ubuntu18.04にstrongSwanVPNをインストールして構成する方法

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ホスティングサービスと仮想プライベートサーバーの詳細をご覧ください。


Linux
  1. Ubuntu20.04にAlgoVPNServerをインストールして構成する方法

  2. Ubuntu20.04にDHCPサーバーをインストールして構成する方法

  3. UbuntuにFail2banをインストールして設定する方法は?

  1. UbuntuにRedisサーバーをインストールして構成する方法

  2. Ubuntu18.04にMariaDBGaleraクラスターをインストールして構成する方法

  3. Ubuntu 18.04 に Elasticsearch をインストールして構成する方法

  1. Ubuntu20.04にNFSサーバーをインストールして構成する方法

  2. Ubuntu20.04にVNCをインストールして構成する方法

  3. Ubuntu20.04にOpenVPNサーバーをインストールして構成する方法