CentOS / RHEL8でStrongswanを使用してIPsecベースのVPNを設定する方法


strongSwanは、Linux用のオープンソースのマルチプラットフォームの最新の完全なIPsecベースのVPNソリューションであり、インターネットキーエクスチェンジ(IKEv1とIKEv2の両方)を完全にサポートして、2つのピア間にセキュリティアソシエーション(SA)を確立します。フル機能でモジュール式の設計であり、コア機能を強化する多数のプラグインを提供します。

関連記事:DebianとUbuntuでStrongswanを使用してIPsecベースのVPNを設定する方法

この記事では、CentOS/RHEL8サーバーでstrongSwanを使用してサイト間IPsecVPNゲートウェイをセットアップする方法を学習します。これにより、ピアは強力な事前共有キー(PSK)を使用して相互に認証できます。サイト間セットアップとは、各セキュリティゲートウェイの背後にサブネットがあることを意味します。

ガイドに従って、構成中に実際のIPアドレスを使用することを忘れないでください。

Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

ステップ1:CentOS8でカーネルIP転送を有効にする

1.両方のVPNゲートウェイの/etc/sysctl.conf構成ファイルでカーネルIP転送機能を有効にすることから始めます。

# vi /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 

2.ファイルに変更を保存した後、次のコマンドを実行して、実行時に新しいカーネルパラメーターをロードします。

# sysctl -p

3.次に、両方のセキュリティゲートウェイのファイル/ etc/sysconfig/network-scripts/route-eth0に永続的な静的ルートを作成します。

# vi /etc/sysconfig/network-scripts/route-eth0

ファイルに次の行を追加します。

#Site 1 Gateway
10.20.1.0/24  via 192.168.56.7

#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6

4.次に、ネットワークマネージャーを再起動して、新しい変更を適用します。

# systemctl restart NetworkManager

ステップ2:CentOS8にstrongSwanをインストールする

5.strongswanパッケージはEPELリポジトリで提供されます。これをインストールするには、EPELリポジトリを有効にしてから、両方のセキュリティゲートウェイにstrongwanをインストールする必要があります。

# dnf install epel-release
# dnf install strongswan

6.両方のゲートウェイにインストールされているstrongswanのバージョンを確認するには、次のコマンドを実行します。

# strongswan version

7.次に、strongswanサービスを開始し、システムの起動時に自動的に開始できるようにします。次に、両方のセキュリティゲートウェイのステータスを確認します。

# systemctl start strongswan 
# systemctl enable strongswan
# systemctl status strongswan

注:CentOS/REHL 8の最新バージョンのstrongswanには、両方のswanctl(strongSwan 5.2.0で導入された新しいポータブルコマンドラインユーティリティで、viciプラグインを使用してIKEデーモンCharonを構成、制御、監視するために使用)がサポートされています。廃止されたストロークプラグインを使用したスターター(またはipsec)ユーティリティ。

8.メインの設定ディレクトリは/ etc/strongswan /で、両方のプラグインの設定ファイルが含まれています。

# ls /etc/strongswan/

このガイドでは、strongswanコマンドとストロークインターフェイスを使用して呼び出されるIPsecユーティリティを使用します。したがって、次の構成ファイルを使用します。

  • /etc/strongswan/ipsec.conf – configuration file for the strongSwan IPsec subsystem.
  • /etc/strongswan/ipsec.secrets – secrets file.

手順3:セキュリティゲートウェイを構成する

9.このステップでは、/ etc/strongswan/ipsec.conf strongswan構成ファイルを使用して、各サイトの各セキュリティゲートウェイで接続プロファイルを構成する必要があります。

# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf

次の構成をコピーしてファイルに貼り付けます。

config setup
        charondebug="all"
        uniqueids=yes
conn ateway1-to-gateway2
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.7
        leftsubnet=10.10.1.1/24
        right=192.168.56.6
        rightsubnet=10.20.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart
# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf

次の構成をコピーしてファイルに貼り付けます。

config setup
        charondebug="all"
        uniqueids=yes
conn 2gateway-to-gateway1
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.6
        leftsubnet=10.20.1.1/24
        right=192.168.56.7
        rightsubnet=10.10.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

上記の各構成パラメーターについて簡単に説明します。

  • config setup – defines the general configuration information for IPSec which applies to all connections.
  • charondebug – specifies how much Charon debugging output should be logged.
  • uniqueids – defines whether a particular participant ID should be kept unique.
  • conn gateway1-to-gateway2 – used to set the connection name.
  • type – defines connection type.
  • Auto – used to declare how to handle connection when IPSec is started or restarted.
  • keyexchange – declares the version of the IKE protocol to use.
  • authby – specifies how peers should authenticate each other.
  • left – declares the IP address of the left participant’s public-network interface.
  • leftsubnet – declares the private subnet behind the left participant.
  • right – declares the IP address of the right participant’s public-network interface.
  • rightsubnet – declares the private subnet behind the left participant.
  • ike – used to declare a list of IKE/ISAKMP SA encryption/authentication algorithms to be used. Note that this can be a comma-separated list.
  • esp – specifies a list of ESP encryption/authentication algorithms to be used for the connection.
  • aggressive – declares whether to use Aggressive or Main Mode.
  • keyingtries – declares the number of attempts that should be made to negotiate a connection.
  • ikelifetime – specifies how long the keying channel of a connection should last before being renegotiated.
  • lifetime – specifies how long a particular instance of a connection should last, from successful negotiation to expiry.
  • dpddelay – declares the time interval with which R_U_THERE messages/INFORMATIONAL exchanges are sent to the peer.
  • dpdtimeout – used to declare the timeout interval, after which all connections to a peer are deleted in case of inactivity.
  • dpdaction – specifies how to use the Dead Peer Detection(DPD) protocol to manage the connection.

strongSwan IPsecサブシステムのすべての構成パラメーターの説明は、ipsec.confのマニュアルページを参照してください。

# man ipsec.conf

ステップ4:ピアツーピア認証用にPSKを設定する

10.次に、次のように、認証のためにピアが使用する強力なPSKを生成する必要があります。

# head -c 24 /dev/urandom | base64

11.両方のセキュリティゲートウェイの/etc/strongswan/ipsec.confファイルにPSKを追加します。

# vi /etc/strongswan/ipsec.secrets

ファイルに次の行を入力します。

#Site 1 Gateway
192.168.56.7  192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

#Site 1 Gateway
192.168.56.6  192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

12.次に、strongsanサービスを開始し、接続のステータスを確認します。

# systemctl restart strongswan
# strongswan status

13. pingコマンドを実行して、いずれかのセキュリティゲートウェイからプライベートサブネットにアクセスできるかどうかをテストします。

# ping 10.20.1.1
# ping 10.10.1.1

14.最後になりましたが、接続を手動で起動/停止するstrongswanコマンドの詳細については、strongswanのヘルプページを参照してください。

# strongswan --help

それは今のところすべてです!私たちとあなたの考えを共有したり、質問をしたりするには、以下のフィードバックフォームから私たちに連絡してください。また、新しいswanctlユーティリティと新しいより柔軟な構成構造の詳細については、strongSwanユーザードキュメントを参照してください。