CentOS/RHEL 8 で Strongswan を使用して IPsec ベースの VPN をセットアップする方法
StrongSwan は、Linux 用のオープンソース、マルチプラットフォーム、最新の完全な IPsec ベースの VPN ソリューションであり、インターネット キー交換 (IKEv1 と の両方) を完全にサポートします。 IKEv2) を使用して、2 つのピア間にセキュリティ アソシエーション (SA) を確立します。フル機能を備えたモジュール式設計で、コア機能を強化する多数のプラグインを提供します。
関連記事: Debian および Ubuntu で Strongswan を使用して IPsec ベースの VPN をセットアップする方法
この記事では、CentOS/RHEL 8 サーバー上の strongSwan を使用してサイト間 IPsec VPN ゲートウェイを設定する方法を説明します。これにより、ピアは強力な事前共有キー (PSK) を使用して相互に認証できるようになります。サイト間のセットアップは、各セキュリティ ゲートウェイの背後にサブネットがあることを意味します。
テスト環境
ガイドに従って構成を行う際には、必ず現実の IP アドレスを使用してください。
サイト 1 ゲートウェイ
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
サイト 2 ゲートウェイ
Public IP: 192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24
ステップ 1: CentOS 8 でカーネル 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: CentOS 8 に 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 を設定、制御、監視するために使用されます) およびスターター非推奨のストローク プラグインを使用するstrong> (またはipsec) ユーティリティ。
8. メインの設定ディレクトリは /etc/strongswan/ で、両方のプラグインの設定ファイルが含まれています。
ls /etc/strongswan/
このガイドでは、strongswan コマンドとストローク インターフェイスを使用して呼び出される IPsec ユーティリティを使用します。したがって、次の構成ファイルを使用します。
- /etc/strongswan/ipsec.conf – StrongSwan IPsec サブシステムの構成ファイル。
- /etc/strongswan/ipsec.secrets – シークレット ファイル。
ステップ 3: セキュリティ・ゲートウェイの構成
9. このステップでは、/etc/strongswan/ipsec.confstrongswan 構成ファイルを使用して、各サイトの各セキュリティ ゲートウェイで接続プロファイルを構成する必要があります。
サイト 1 接続プロファイルの構成
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
サイト 2 接続プロファイルの構成
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
上記の各構成パラメータについて簡単に説明します。
- 構成セットアップ – すべての接続に適用される IPSec の一般的な構成情報を定義します。
- charondebug – どのくらいの量の Charon デバッグ出力をログに記録するかを指定します。
- uniqueids – 特定の参加者 ID を一意に保つかどうかを定義します。
- conngateway1-to-gateway2 – 接続名の設定に使用されます。
- タイプ – 接続タイプを定義します。
- 自動 – IPSec の開始時または再起動時に接続を処理する方法を宣言するために使用されます。
- キー交換 – 使用する IKE プロトコルのバージョンを宣言します。
- authby – ピアが相互に認証する方法を指定します。
- left – 左の参加者のパブリック ネットワーク インターフェイスの IP アドレスを宣言します。
- leftsubnet – 左側の参加者の背後にあるプライベート サブネットを宣言します。
- right – 適切な参加者のパブリック ネットワーク インターフェイスの IP アドレスを宣言します。
- rightsubnet – 左側の参加者の背後にあるプライベート サブネットを宣言します。
- ike – 使用する IKE/ISAKMP SA 暗号化/認証アルゴリズムのリストを宣言するために使用されます。これはカンマ区切りリストにすることができることに注意してください。
- esp – 接続に使用する ESP 暗号化/認証アルゴリズムのリストを指定します。
- アグレッシブ – アグレッシブ モードとメイン モードのどちらを使用するかを宣言します。
- keyingtries – 接続のネゴシエーションを試行する回数を宣言します。
- ikelifetime – 接続のキーイング チャネルが再ネゴシエートされるまでの持続時間を指定します。
- ライフタイム – ネゴシエーションが成功してから期限切れになるまで、接続の特定のインスタンスが持続する時間を指定します。
- dpdlay – R_U_THERE メッセージ/INFORMATIONAL 交換がピアに送信される時間間隔を宣言します。
- dpdtimeout – タイムアウト間隔を宣言するために使用されます。その後、非アクティブな場合にはピアへのすべての接続が削除されます。
- dpdaction – Dead Peer Detection (DPD) プロトコルを使用して接続を管理する方法を指定します。
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 ユーザー ドキュメントを参照してください。