ウェブサイト検索

Debian および Ubuntu で Strongswan を使用して IPsec ベースの VPN をセットアップする方法


StrongSwan は、オープンソース、クロスプラットフォーム、フル機能を備え、広く使用されている IPsec ベースの VPN (仮想プライベート ネットワーク) 実装であり、Linux、FreeBSD、OS X、Windows、Android、iOS 上で動作します。これは主に、インターネット キー交換 プロトコル (IKEv1 および IKEv2) をサポートしてセキュリティ アソシエーション (SA) を確立するキーイング デーモンです。 Strong>) 2 つのピア間で。

この記事では、Ubuntu サーバーと Debian サーバーで strongSwan を使用してサイト間の IPSec VPN ゲートウェイを設定する方法について説明します。 。サイト間とは、各セキュリティ ゲートウェイの背後にサブネットがあることを意味します。さらに、ピアは事前共有キー (PSK) を使用して相互に認証します。

テスト環境

環境を構成するには、次の IP を実際の IP に置き換えてください。

サイト 1 ゲートウェイ (tecmint-devgateway)

OS 1: Debian or Ubuntu
Public IP: 10.20.20.1
Private IP: 192.168.0.101/24
Private Subnet: 192.168.0.0/24

サイト 2 ゲートウェイ (tecmint-prodgateway)

OS 2: Debian or Ubuntu
Public IP:  10.20.20.3
Private IP: 10.0.2.15/24
Private Subnet: 10.0.2.0/24

ステップ 1: カーネルパケット転送を有効にする

1. まず、両方のセキュリティ ゲートウェイの /etc/sysctl.conf 設定ファイルに適切なシステム変数を追加して、パケット転送を有効にするようにカーネルを設定する必要があります。

sudo vim /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. 次に、次のコマンドを実行して新しい設定をロードします。

sudo sysctl -p

3. UFW ファイアウォール サービスを有効にしている場合は、次のルールを /etc/ufw/before.rules 設定ファイルのフィルタ ルールの直前に追加する必要があります。いずれかのセキュリティゲートウェイ。

サイト 1 ゲートウェイ (tecmint-devgateway)

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.2.0/24  -d 192.168.0.0/24 -j MASQUERADE
COMMIT

サイト 2 ゲートウェイ (tecmint-prodgateway)

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING  -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE
COMMIT

4. ファイアウォール ルールを追加したら、図に示すようにUFW を再起動して新しい変更を適用します。

sudo ufw disable 
sudo ufw enable

ステップ 2: Debian および Ubuntu に StrongSwan をインストールする

5. 両方のセキュリティ ゲートウェイでパッケージ キャッシュを更新し、APT パッケージ マネージャーを使用してstrongswan パッケージをインストールします。

sudo apt update
sudo apt install strongswan 

6. インストールが完了すると、インストーラー スクリプトによって strongswan サービスが開始され、システム起動時にサービスが自動的に開始されるようになります。次のコマンドを使用して、そのステータスと有効かどうかを確認できます。

sudo systemctl status strongswan.service
sudo systemctl is-enabled strongswan.service

ステップ 3: セキュリティ・ゲートウェイの構成

7. 次に、/etc/ipsec.conf 構成ファイルを使用してセキュリティ ゲートウェイを構成する必要があります。

サイト 1 ゲートウェイ (tecmint-devgateway)

sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
sudo nano /etc/ipsec.conf 

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

config setup
        charondebug="all"
        uniqueids=yes
conn devgateway-to-prodgateway
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=10.20.20.1
        leftsubnet=192.168.0.101/24
        right=10.20.20.3
        rightsubnet=10.0.2.15/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

サイト 2 ゲートウェイ (tecmint-prodgateway)

sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
sudo nano /etc/ipsec.conf 

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

config setup
        charondebug="all"
        uniqueids=yes
conn prodgateway-to-devgateway
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=10.20.20.3
        leftsubnet=10.0.2.15/24
        right=10.20.20.1
        rightsubnet=192.168.0.101/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 を一意に保つかどうかを指定します。
  • conn prodgateway-to-devgateway – 接続名を定義します。
  • タイプ – 接続タイプを定義します。
  • 自動 – IPSec の開始時または再起動時に接続を処理する方法。
  • キー交換 – 使用する IKE プロトコルのバージョンを定義します。
  • authby – ピアが相互に認証する方法を定義します。
  • – 左の参加者のパブリック ネットワーク インターフェイスの IP アドレスを定義します。
  • leftsubnet – 左側の参加者の背後にあるプライベート サブネットを示します。
  • right – 適切な参加者のパブリック ネットワーク インターフェイスの IP アドレスを指定します。
  • rightsubnet – 左側の参加者の背後にあるプライベート サブネットを示します。
  • ike – 使用する IKE/ISAKMP SA 暗号化/認証アルゴリズムのリストを定義します。カンマ区切りのリストを追加できます。
  • esp – 接続に使用される ESP 暗号化/認証アルゴリズムのリストを定義します。カンマ区切りのリストを追加できます。
  • アグレッシブ – アグレッシブ モードとメイン モードのどちらを使用するかを指定します。
  • keyingtries – 接続をネゴシエートするために実行する試行回数を示します。
  • ikelifetime – 接続のキーイング チャネルが再ネゴシエートされるまでの持続時間を示します。
  • ライフタイム – ネゴシエーションが成功してから期限切れになるまで、接続の特定のインスタンスが持続する期間を定義します。
  • dpdlay – R_U_THERE メッセージ/INFORMATIONAL 交換がピアに送信される時間間隔を指定します。
  • dpdtimeout – タイムアウト間隔を指定します。この間隔を過ぎると、非アクティブな場合にピアへのすべての接続が削除されます。
  • dpdaction – Dead Peer Detection (DPD) プロトコルを使用して接続を管理する方法を定義します。

上記の設定パラメータの詳細については、コマンドを実行して ipsec.conf のマニュアル ページを参照してください。

man ipsec.conf

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

8. 両方のセキュリティ ゲートウェイを構成した後、次のコマンドを使用して、ピアで使用される安全なPSKを生成します。

head -c 24 /dev/urandom | base64

9. 次に、両方のゲートウェイの /etc/ipsec.secrets ファイルに PSK を追加します。

sudo vim /etc/ipsec.secrets

次の行をコピーして貼り付けます。

------- Site 1 Gateway (tecmint-devgateway) ------- 

10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="

------- Site 2 Gateway (tecmint-prodgateway) -------

10.20.20.3  10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="

10. IPSec プログラムを再起動し、ステータスを確認して接続を表示します。

sudo ipsec restart
sudo ipsec status

11. 最後に、ping コマンドを実行して、どちらのセキュリティ ゲートウェイからもプライベート サブネットにアクセスできることを確認します。

ping 192.168.0.101
ping 10.0.2.15

12. さらに、次のように IPSec を停止および開始できます。

sudo ipsec stop
sudo ipsec start

13. 接続を手動で確立するための IPSec コマンドなどの詳細については、IPSec ヘルプ ページを参照してください。

ipsec --help

それだけです!この記事では、Ubuntu サーバーと Debian サーバーで strongSwan を使用してサイト間 IPSec VPN をセットアップする方法について説明しました。セキュリティ ゲートウェイは、PSK を使用して相互に認証するように構成されています。ご質問やご意見がございましたら、以下のフィードバック フォームからお問い合わせください。