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

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

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

この記事では、サイト間 IPsec VPNを設定する方法について説明します。 strongSwanを使用するゲートウェイ Ubuntu およびDebian サーバー。サイト間とは、各セキュリティゲートウェイの背後にサブネットがあることを意味します。さらに、ピアは事前共有キー( 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

Sysctlカーネル設定のロード

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。 両方のセキュリティゲートウェイでパッケージキャッシュを更新し、 strongswanをインストールします APTパッケージマネージャーを使用したパッケージ。

$ 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 cp /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デバッグ出力の量を定義します。
  • 一意のID –特定の参加者IDを一意に保つ必要があるかどうかを指定します。
  • conn prodgateway-to-devgateway –接続名を定義します。
  • タイプ –接続タイプを定義します。
  • 自動 –IPSecの開始時または再起動時の接続の処理方法。
  • キー交換 –使用するIKEプロトコルのバージョンを定義します。
  • authby –ピアが相互に認証する方法を定義します。
  • –左側の参加者のパブリックネットワークインターフェイスのIPアドレスを定義します。
  • 左サブネット –左側の参加者の背後にあるプライベートサブネットを示します。
  • 正しい –適切な参加者のパブリックネットワークインターフェイスのIPアドレスを指定します。
  • rightsubnet –左側の参加者の背後にあるプライベートサブネットを示します。
  • ike –使用するIKE /ISAKMPSA暗号化/認証アルゴリズムのリストを定義します。カンマ区切りのリストを追加できます。
  • esp –接続に使用されるESP暗号化/認証アルゴリズムのリストを定義します。カンマ区切りのリストを追加できます。
  • 積極的 –アグレッシブモードとメインモードのどちらを使用するかを示します。
  • キー入力 –接続をネゴシエートするために実行する必要がある試行回数を示します。
  • ikelifetime –接続のキーイングチャネルが再ネゴシエートされるまでの期間を示します。
  • 生涯 –ネゴシエーションの成功から有効期限まで、接続の特定のインスタンスが持続する期間を定義します。
  • dpddelay –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

PSKキーの生成

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

$ 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

IPSec接続ステータスの表示

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

$ ping 192.168.0.101
$ ping 10.0.2.15

サイト間VPN設定を確認する

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

$ sudo ipsec stop
$ sudo ipsec start

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

$ ipsec --help

それで全部です!この記事では、 strongSwanを使用してサイト間IPSecVPNを設定する方法について説明しました。 Ubuntu およびDebian サーバー。両方のセキュリティゲートウェイがPSKを使用して相互に認証するように構成されています。 。共有する質問や考えがある場合は、以下のフィードバックフォームからご連絡ください。

共有は思いやりがあります…
Facebookで共有するTwitterで共有するLinkedinで共有するRedditで共有する
Ubuntu
  1. Ubuntu20.04でWireGuardVPNを設定する方法

  2. Ubuntu\DebianでUFWを使用してファイアウォールを設定する方法

  3. Ubuntu20.04および21.04でタイムゾーンを設定または変更する方法

  1. UbuntuとDebianでプロキシでAPTを使用する方法

  2. Ubuntu/DebianにGerberaMediaServerをインストールしてセットアップする方法

  3. Ubuntu20.04にmysql8をインストールしてセットアップする方法

  1. Ubuntu18.04でWireGuardVPNを設定する方法

  2. Ubuntu20.04でUFWを使用してファイアウォールを設定する方法

  3. Ubuntu20.04でWireGuardVPNを設定する方法