2.7.3. Libreswan を使用したホスト間の VPN
Libreswan がホスト間の
IPsec
VPN を作成するように設定するには、と呼ばれる 2 つのホスト間で、 「left」 ならびに 「right」両方のホストで root
で以下のコマンドを入力します()「left」 ならびに 「right」)で、生の RSA 鍵のペアを新たに作成します。
~]# ipsec newhostkey --configdir /etc/ipsec.d \ --output /etc/ipsec.d/www.example.com.secrets Generated RSA key pair using the NSS database
これにより、ホストの RSA 鍵ペアが生成されます。RSA 鍵の生成プロセスには数分かかる場合があります(特にエントロピーが少ない仮想マシン)。
公開鍵を表示するには、いずれかのホストで
root
で以下のコマンドを発行します。たとえば、で公開鍵を表示するには、 「left」 ホスト、以下を実行します。
~]# ipsec showhostkey --left
ipsec showhostkey loading secrets from "/etc/ipsec.secrets"
ipsec showhostkey loading secrets from "/etc/ipsec.d/www.example.com.secrets"
ipsec showhostkey loaded private key for keyid: PPK_RSA:AQOjAKLlL
# rsakey AQOjAKLlL
leftrsasigkey=0sAQOjAKLlL4a7YBv [...]
以下で説明されているように、設定ファイルに追加するには、このキーが必要です。
シークレット部分は
/etc/ipsec.d/*.db
ファイル(とも呼ばれます)に保存されます。 「NSS データベース」.
このホスト間トンネルの設定ファイルを作成するには、行
leftrsasigkey=
と上 rightrsasigkey=
からの行が、/etc/ipsec.d/
ディレクトリーに配置されるカスタム設定ファイルに追加されます。
root
として実行しているエディターを使用して、以下の形式で適切な名前のファイルを作成します。
/etc/ipsec.d/my_host-to-host.conf
以下のようにファイルを編集します。
conn mytunnel leftid=@west.example.com left=192.1.2.23 leftrsasigkey=0sAQOrlo+hOafUZDlCQmXFrje/oZm [...] W2n417C/4urYHQkCvuIQ== rightid=@east.example.com right=192.1.2.45 rightrsasigkey=0sAQO3fwC6nSSGgt64DWiYZzuHbc4 [...] D/v8t5YTQ== authby=rsasig # load and initiate automatically auto=start
左側のホストと右のホストの両方で同じ設定ファイルを使用できます。この場合は、自動検出されます。 「left」 または 「right」.いずれかのホストがモバイルホスト(
IP
アドレスを事前に認識しない)である場合は、モバイルホストでを IP
アドレス %defaultroute
として使用します。これにより、動的 IP
アドレスが自動的に取得されます。着信モバイルホストからの接続を受け入れる静的ホストで、IP
アドレスにを使用してモバイルホスト %any
を指定します。
の
leftrsasigkey
値がから取得されていることを確認します。 「left」 host と rightrsasigkey
value はから取得されます。 「right」 host。
ipsec
を再起動して、新しい設定を読み取ります。
~]# service ipsec --full-restart
トンネルがすぐに確立されていることを確認するには、以下のコマンドを入力します。
~]# ipsec whack --trafficstatus
/etc/ipsec.d/*.conf
ファイルの auto=start
オプションを使用しない場合やトンネルが正常に確立されていない場合は、root
で次のコマンドを使用して IPsec
トンネルを読み込みます。
~]# ipsec auto --add mytunnel
トンネルを起動するには、
root
で、左側のまたは右側で以下のコマンドを実行します。
~]# ipsec auto --up mytunnel
2.7.3.1. Libreswan を使用したホスト間の VPN の検証
IKE
ネゴシエーションは UDP
ポート 500 で行われます。IPsec
パケットは、カプセル化された セキュリティーペイロード
(ESP)パケットとして表示されます。VPN 接続が NAT ルーターを通過する必要がある場合、ESP
パケットはポート 4500 の UDP
パケットでカプセル化されます。
パケットが VPN トンネル経由で送信されていることを確認するには、
root
で以下の形式でコマンドを実行します。
~]# tcpdump -n -i interface esp or udp port 500 or udp port 4500
00:32:32.632165 IP 192.1.2.45 > 192.1.2.23: ESP(spi=0x63ad7e17,seq=0x1a), length 132
00:32:32.632592 IP 192.1.2.23 > 192.1.2.45: ESP(spi=0x4841b647,seq=0x1a), length 132
00:32:32.632592 IP 192.0.2.254 > 192.0.1.254: ICMP echo reply, id 2489, seq 7, length 64
00:32:33.632221 IP 192.1.2.45 > 192.1.2.23: ESP(spi=0x63ad7e17,seq=0x1b), length 132
00:32:33.632731 IP 192.1.2.23 > 192.1.2.45: ESP(spi=0x4841b647,seq=0x1b), length 132
00:32:33.632731 IP 192.0.2.254 > 192.0.1.254: ICMP echo reply, id 2489, seq 8, length 64
00:32:34.632183 IP 192.1.2.45 > 192.1.2.23: ESP(spi=0x63ad7e17,seq=0x1c), length 132
00:32:34.632607 IP 192.1.2.23 > 192.1.2.45: ESP(spi=0x4841b647,seq=0x1c), length 132
00:32:34.632607 IP 192.0.2.254 > 192.0.1.254: ICMP echo reply, id 2489, seq 9, length 64
00:32:35.632233 IP 192.1.2.45 > 192.1.2.23: ESP(spi=0x63ad7e17,seq=0x1d), length 132
00:32:35.632685 IP 192.1.2.23 > 192.1.2.45: ESP(spi=0x4841b647,seq=0x1d), length 132
00:32:35.632685 IP 192.0.2.254 > 192.0.1.254: ICMP echo reply, id 2489, seq 10, length 64
interface は、トラフィックを伝送できるインターフェースです。tcpdump でキャプチャーを終了するには、を押し Ctrl+Cます。
注記
tcpdump コマンドは、
IPsec
と予期せずに対話します。送信プレーンテキストパケットではなく、送信暗号化パケットのみが表示されます。暗号化された受信パケットと、復号化された受信パケットが表示されます。可能であれば、エンドポイント自体ではなく、2 つのマシン間のルーターで tcpdump を実行します。