Ubuntuで事前共有鍵とRSA鍵を使用するLibreswanベースのIpsec VPN

Ubuntuで事前共有鍵とRSA鍵を使用するLibreswanベースのIpsec VPN

このチュートリアルでは、LibreSwanがUbuntuプラットフォームにインストールされます。 LibreSwanはIPsecプロトコルのオープンソース実装で、FreeSwanプロジェクトに基づいており、RedHatベースのLinuxディストリビューションでこのパッケージを使用できるようになっています。 ただし、プロジェクトのソースコードには、他のLinuxプラットフォームでコンパイルするための詳細な手順が記載されています。 インストールプロセスの後、ゲートウェイベースのIPsec VPNへのゲートウェイは、送信者から受信者のピアにデータを保護するように設定されます。

IPsecプロトコルの詳細は、 前の記事。 ただし、LibreSwanに関するIPsecプロトコルの2つの部分について簡単に説明します。

IPsecベースのVPNは、 インターネットキーイング交換 プロトコルと カプセル化セキュリティペイロード (ESP)プロトコル。

- > IKE

名前が示すように、IKEプロトコルの目的は、VPNのピアを事前共有鍵(公開鍵暗号化、自由度)を使用して認証し、鍵を動的に生成し、VPNピアと鍵を共有することです。 IPsecの第2フェーズの暗号化キーもIKEに依存します。 Libreswanはプロジェクトのplutoプログラムを使用してIKEプロトコルを実装します。

- > ESP

ESPプロトコルは、Linuxカーネル(NETEY / XFRM)のIPsecスタックに実装されている同意ポリシーの実際の仕様です。

Libreswanの機能

  • 事前共有キーベース認証のサポート
  • 公開鍵ベースの認証をサポートしています。
  • IKE v1 / v2バージョンのキー交換をサポートします。
  • NSS暗号ライブラリがサポートされています。
  • XauthとDNSSecもサポートされています。

Ubuntu 16.04の必須パッケージ

LibreSwanのコンパイルに成功するためには、Ubuntuに以下のパッケージをインストールする必要があります。 LibreSwanのインストール時に、プラグイン/機能やコマンドを有効または無効にする方法についての簡単な情報もソースコードに記載されています。

要件-1-2652650

apt-get -yアップデート
apt-get install libunbound-dev libevent-dev libsystemd-dev libnss3-dev libnspr4-dev pkg-config libpam0g-dev libcap-ng-dev libselinux1-dev libcurl4-nss-devフレックスbison gcc make libnss3-tools

required_pa​​ckages1-8198428

必要なパッケージのインストールは以下の通りです。

パッケージのインストール-2460486

IPsecツールの最新のソースコードは、wgetコマンドを使用してダウンロードされ、次のtarコマンドを使用して抽出されます。

wget https://download.libreswan.org/libreswan-3.20.tar.gz

tar -xzf libreswan-3.20.tar.gz

cd libreswan-3.20

ダウンロード_パッケージ-5568405

configureコマンドを実行する必要はありません。 make 次のようにLibreSwanをビルドする2つの方法を示すコマンドです。

メイク情報-6574545

最後に、実行 すべてを作る プラットフォーム上にLibreSwanを構築するコマンド。

すべてを作る

make_all1-6036840

今すぐ実行する make installを コマンドを使用してIPsecプログラムをインストールします。

make_install-8076784

IPsecサービスの開始

上のスクリーンショットに示すように、UbuntuプラットフォームでIPSecサービスを有効にするには、次のコマンドを使用する必要があります。

systemctl enable ipsec.service

enable_service-2505722

IPsecサービスを開始する前に、NSS暗号ライブラリを初期化する必要があります。 これは、IPsec VPNの暗号アルゴリズムの使用にLibreSwanによって使用されます。

IPsec initnss

init_nss-7183975

最後に、次のコマンドを使用してIPSecサービスを開始します。

ipsecセットアップの開始

ipsec_setup-3248968

ラン ipsecのステータス コマンドを使用して、UbuntuプラットフォームでLibreSwanの設定を表示します。

ipsecのステータス

ipsec_status-1-9546792

LibreSwanの設定

このチュートリアルでは、事前共有鍵とRSA鍵(公開鍵/秘密鍵ペア)を使用して、ピア間でIPsec VPNを設定します。 両方のピア(左/右)の構成を以下に示します。

事前共有キーベースのVPN

ipsec.conf(左側のVMの設定ファイル)ipsec.secrets(左側のVMの設定ファイル)

バージョン2:PSK "vpn_psk192.168.15.145"

設定のセットアップ
protostack = netkey
conn vpn_psk

ike = aes256-sha256; modp4096
phase2alg = aes256-sha256; modp4096
左= 192.168.15.145
leftsubnet = 172.16.10.0 / 24
右= 192.168.15.245
rightsubnet = 192.169.50.0 / 24
authby = secret
タイプ=トンネル
自動=開始

ipsec.conf(正しいVMの設定ファイル)ipsec.secrets(正しいVMの設定ファイル)

バージョン2:PSK "vpn_psk192.168.15.245"

設定のセットアップ
protostack = netkey
conn vpn_psk

ike = aes256-sha256; modp4096
phase2alg = aes256-sha256; modp4096
左= 192.168.15.245
leftsubnet = 192.169.50.0 / 24
右= 192.168.15.145
rightsubnet = 172.16.10.0 / 24
authby = secret
タイプ=トンネル
自動=開始

上記の設定をipsec.confファイルとipsec.secretsファイルに設定した後、次のコマンドを両側で実行して、IPSecネゴシエーションプロセスを開始します。

ipsec restart

事前共有キーVPNのステータス

の出力 ipsecのステータス および setkey -D コマンドを以下に示します。

ipsecのステータス

ipsec-ステータス左-2338516

setkey -D

setkey_output-6924812

RSA(パブリック/プライベート)キーベースのVPN

両方のマシンのRSAキーを生成し、それらを構成ファイルに含める必要があります。 このチュートリアルでは、縮小版のRSAキーを示します。 また、含まれている公開鍵を1行にする必要があります。

RSAキーの生成

以下に示すように、以下のコマンドを使用して、両方のピアのキーを生成します。

ipsec newhostkey --output /etc/ipsec.secrets

左-pub-key-3703476

生成された公開鍵は、以下のようにipsec.secretsファイルに追加されます。

ipsec-secrets-left-dev-2750100

同様に、RSAキーは、次のスナップショットに示すように、右側のマシンに対して同じコマンドを使用して生成されます。

ipsec-secrets-right-dev-5790340

上に示したように、鍵生成コマンドは自動的にRSA公開鍵を /etc/ipsec.secrets 両方のピアマシンで RSAの秘密鍵は、NSSのデータベースに格納されます。 /etc/ipsec.d/*.db ファイル。

RSAキーを生成した後、次のステップではipsec.confファイル内の両方のマシンの設定を変更します。

ipsec.conf(左側のVMの設定ファイル)

バージョン2

設定のセットアップ
protostack = netkey
conn vpn_rsa

ike = aes256-sha256; modp4096
phase2alg = aes256-sha256; modp4096
左= 192.168.15.145
leftsubnet = 172.16.10.0 / 24
右= 192.168.15.245
rightsubnet = 192.169.50.0 / 24
authby = rsasig
leftrsasigkey = 0sAQPgMUjAb8QOQaJ1FTkIQf3f [........] ALQNXUf $
rightrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE

タイプ=トンネル
自動=開始

ipsec.conf(正しいVMの設定ファイル)

バージョン2

設定のセットアップ
protostack = netkey
conn vpn_rsa

ike = aes256-sha256; modp4096
phase2alg = aes256-sha256; modp4096
左= 192.168.15.245
leftsubnet = 192.169.50.0 / 24
右= 192.168.15.145
rightsubnet = 172.16.10.0 / 24
authby = rsasig
rightrsasigkey = 0sAQPgMUjAb8QOQaJ1FTkIQf3f [........] ALQNXUf $
leftrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE

タイプ=トンネル
自動=開始

LibreSwanの設定ファイルを変更したら、次のコマンドを使用して両方のマシンでIPsecサービスを再起動します。

ipsec restart

左のデバイスのIPsec VPNのステータスは、次のスクリーンショットに示されています。 それは、 RSASIG ポリシーでIPsecトンネルのピアを認証するために使用されます。

レフ-ipsec-ステータス-5351801

このチュートリアルの目的は、IPsecプロトコルの実装を提供する「LibreSwan」を探索することです。 RedHatディストリビューションで利用できますが、Ubuntu/Debianなどの別のプラットフォーム用に簡単にコンパイルできます。 この記事では、最初のLibreSwanツールがソースから構築され、次にゲートウェイデバイス間で事前共有キーとRSAキーを使用してXNUMXつのVPNが構成されます。

ソース