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で共有する