Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.6.3. Libreswan を使用したホストTo-Host VPN の作成

Libreswan が、左 および と呼ばれる 2 つのホスト間で、ホスト間の IPsec VPNを作成するように設定するには 、両方のホストの root として以下のコマンドを入力して、生の RSA 鍵ペアを新たに作成します。
~]# ipsec newhostkey --output /etc/ipsec.d/hostkey.secrets
Generated RSA key pair with CKAID 14936e48e756eb107fa1438e25a345b46d80433f was stored in the NSS database
これにより、ホストの RSA キーペアが生成されます。RSA 鍵の生成プロセスでは、特にエントロピーが少ない仮想マシンにおいて、数分かかる場合があります。
左側で設定で指定できるようにホストの公開鍵を表示するには 、newhostkey コマンドで返された CKAID コマンドを使用して、root で新しいホストキーが追加されたホストで以下のコマンドを実行します
~]# ipsec showhostkey --left --ckaid 14936e48e756eb107fa1438e25a345b46d80433f
	# rsakey AQPFKElpV
	leftrsasigkey=0sAQPFKElpV2GdCF0Ux9Kqhcap53Kaa+uCgduoT2I3x6LkRK8N+GiVGkRH4Xg+WMrzRb94kDDD8m/BO/Md+A30u0NjDk724jWuUU215rnpwvbdAob8pxYc4ReSgjQ/DkqQvsemoeF4kimMU1OBPNU7lBw4hTBFzu+iVUYMELwQSXpremLXHBNIamUbe5R1+ibgxO19l/PAbZwxyGX/ueBMBvSQ+H0UqdGKbq7UgSEQTFa4/gqdYZDDzx55tpZk2Z3es+EWdURwJOgGiiiIFuBagasHFpeu9Teb1VzRyytnyNiJCBVhWVqsB4h6eaQ9RpAMmqBdBeNHfXwb6/hg+JIKJgjidXvGtgWBYNDpG40fEFh9USaFlSdiHO+dmGyZQ74Rg9sWLtiVdlH1YEBUtQb8f8FVry9wSn6AZqPlpGgUdtkTYUCaaifsYH4hoIA0nku4Fy/Ugej89ZdrSN7Lt+igns4FysMmBOl9Wi9+LWnfl+dm4Nc6UNgLE8kZc+8vMJGkLi4SYjk2/MFYgqGX/COxSCPBFUZFiNK7Wda0kWea/FqE1heem7rvKAPIiqMymjSmytZI9hhkCD16pCdgrO3fJXsfAUChYYSPyPQClkavvBL/wNK9zlaOwssTaKTj4Xn90SrZaxTEjpqUeQ==
以下の説明にあるように、両方のホストの設定ファイルに追加するには、この鍵が必要です。CKAID を忘れてしまった場合は、以下を使用して、マシンにあるすべてのホストキーの一覧を取得できます。
~]# ipsec showhostkey --list
< 1 >  RSA keyid: AQPFKElpV ckaid: 14936e48e756eb107fa1438e25a345b46d80433f
キーペアのシークレット部分は、/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
公開鍵は、RSAID ではなく CKAID で設定することもできます。 この場合、leftrsasigkey= の代わりに leftckaid =が使用されます。
左右のホストと適切なホストの両方で同じ設定ファイルを使用できます。Libreswan は、指定した IP アドレスまたはホスト名に基づいて、左側か 右であるかを検出します。ホストのいずれかが IP アドレスが事前に認識されていないことを示すモバイルホストである場合、モバイルクライアントでは %defaultrouteIP アドレスとして使用します。これにより、動的 IP アドレスが自動的に選択されます。受信モバイルホストからの接続を受け入れる静的サーバーホストで、IP アドレスに %any を使用してモバイルホストを指定します。
leftrsasigkey の値が左側ホストから取得され 、rightrsasigkey の値が適切なホストから取得されていることを確認しますleftckaid と rightckaid を使用する場合も同様です
ipsec を再起動して、新しい設定と起動時に起動するように設定され、トンネルが確立されていることを確認します。
~]# systemctl restart ipsec
auto=start オプションを使用する場合は、IPsec トンネルが数秒以内に確立される必要があります。root で以下のコマンドを入力して、トンネルを手動で読み込み、起動することができます。
~]# ipsec auto --add mytunnel
~]# ipsec auto --up mytunnel

4.6.3.1. Libreswan を使用したホストTo-Host VPN の確認

IKE ネゴシエーションは、UDP ポート 500 および 4500 で実行されます。IPsec パケットには、Encapsulated Security Payload (ESP)パケットが表示されます。ESP プロトコルにはポートがありません。VPN 接続で NAT ルーターを通過する必要がある場合は、ESP パケットがポート 4500 の UDP パケットにカプセル化されます。
VPN トンネルを介してパケットが送信されていることを確認するには、以下の形式で root で以下のコマンドを実行します。
~]# tcpdump -n -i interface ESP または udp ポート 500 または udp ポート 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 を実行します。Virtual Tunnel Interface(VTI)を使用する場合は、物理インターフェースの tcpdump に ESP パケットが表示されますが、VTI インターフェースの tcpdump はクリアテキストのトラフィックを表示します。
トンネルが十分に確立されているかを確認し、トンネルを経由するトラフィック量も確認するには、root で以下のコマンドを実行します。
~]# ipsec whack --trafficstatus
006 #2: "mytunnel", type=ESP, add_time=1234567890, inBytes=336, outBytes=336, id='@east'

このページには機械翻訳が使用されている場合があります (詳細はこちら)。