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

Ubuntuで事前共有キーとRSAキーを使用するLibreswanベースのIpsecVPN

このチュートリアルでは、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スタックに実装されているピア合意ポリシーの実際の仕様です。

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

Ubuntu16.04に必要なパッケージ

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

apt-get -y update
apt-get install  libunbound-dev libevent-dev  libsystemd-dev libnss3-dev libnspr4-dev pkg-config \ libpam0g-dev libcap-ng-dev libcap-ng-utils libselinux1-dev libcurl4-nss-dev flex bison gcc make libnss3-tools

必要なパッケージのインストールを以下に示します。

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

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

configureコマンドを実行する必要はなく、 makeを実行するだけです。 コマンド 以下に示すように、LibreSwanを構築する2つの方法を示します。

最後に、すべて作成を実行します プラットフォーム上にLibreSwanをビルドするコマンド。

make all

次に、 make installを実行します IPsecプログラムをインストールするコマンド。

IPsecサービスの開始

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

systemctl enable ipsec.service

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

IPsec initnss

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

ipsec setup start

ipsec statusを実行します UbuntuプラットフォームでLibreSwanの設定を表示するコマンド。

ipsec status

LibreSwan構成

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

事前共有キーベースのVPN

ipsec.conf (configuration file of left VM)              ipsec.secrets  (configuration file of left VM)

バージョン2_192.168.15.145 192.168.15.245:PSK "v

設定の設定
protostack =netkey
conn vpn_psk

ike =aes256-sha256; modp4096
phase2alg =aes256-sha256; modp4096
left =192.168.15.145
leftsubnet =172.16.10.0/24
right =192.168.15.245
rightsubnet =192.169.50.0 / 24
authby =secret
type =tunnel
auto =start

ipsec.conf (configuration file of right VM)              ipsec.secrets  (configuration file of right VM)

バージョン2192.168.15.245192.168.15.145:PSK "vpn_p

設定の設定
protostack =netkey
conn vpn_psk

ike =aes256-sha256; modp4096
phase2alg =aes256-sha256; modp4096
left =192.168.15.245
leftsubnet =192.169.50.0 / 24
right =192.168.15.145
rightsubnet =172.16.10.0/24
authby =secret
type =tunnel
auto =start

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

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

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

ipsec status

setkey -D

RSA(公開/秘密)キーベースのVPN

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

RSAキーの生成

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

 ipsec newhostkey --output /etc/ipsec.secrets

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

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

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

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

ipsec.conf (configuration file of left VM)             

バージョン2

設定の設定
protostack =netkey
conn vpn_rsa

ike =aes256-sha256; modp4096
phase2alg =aes256-sha256; modp4096
left =192.168.15.145
leftsubnet =172.16.10.0/24
right =192.168.15.245
rightsubnet =192.169.50.0 / 24
authby =rsaig
leftrsasigkey =0sAQPgMUjAb8QOQaJ1FTkIQf3f [........] ALQNXUf $
pp ......

type =tunnel
auto =start

ipsec.conf (configuration file of right VM)              

バージョン2

設定の設定
protostack =netkey
conn vpn_rsa

ike =aes256-sha256; modp4096
phase2alg =aes256-sha256; modp4096
left =192.168.15.245
leftsubnet =192.169.50.0 / 24
right =192.168.15.145
rightsubnet =172.16.10.0/24
authby =rsaig
rightrsasigkey =0sAQPgMUjAb8QOQaJ1FTkIQf3f [........] ALQNXUf $
leftrsasigkey =0sAQOs7aPh6LppUGgC454 +W[......。

type =tunnel
auto =start

LibreSwan構成ファイルを変更した後、次のステップは、次のコマンドを使用して両方のマシンでIPsecサービスを再起動することです。

ipsec restart

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

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


Ubuntu
  1. Ubuntu16.04で証明書と事前共有キーを使用するStrongSwanベースのIPsecVPN

  2. Ansibleを使用してUbuntu20.04にElasticsearchをインストールおよび構成する

  3. Ubuntu –矢印キーを使用してUbuntuターミナルをスクロールする方法は?

  1. Ubuntu20.04でdockerを使用してdockerベースのLAMPスタックを作成する方法

  2. Ubuntu20.04にAlgoVPNServerをインストールして構成する方法

  3. Ubuntu 12.10(イニシエーターおよびターゲット)でのATA Over Ethernet(AoE)の使用

  1. Wireguardを使用してUbuntu20.04でVPNを作成する方法

  2. Ubuntu18.04LTSでPritunlを使用してVPNサーバーをセットアップする方法

  3. UbuntuでFreeradiusを使用してL2TPoverIPsecを構成する方法