このチュートリアルでは、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プログラムをインストールするコマンド。
上のスクリーンショットに示されているように、次のコマンドを使用して、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
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が構成されます。