Red Hat Training

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

4.6. Libreswan を使用した仮想プライベートネットワーク(VPN)のセキュリティー保護

Red Hat Enterprise Linux 7 では、Libreswan アプリケーションで対応している IPsec プロトコルを使用して、仮想プライベートネットワーク (VPN )を設定できます。Libreswan は、Openswan アプリケーションの統合であり 、Openswan ドキュメントの多くの例は Libreswan と相互変更できますNetworkManager IPsec プラグインは NetworkManager-libreswan と呼ばれます。GNOME Shell のユーザーは、依存関係として NetworkManager-libreswan を持つ NetworkManager-libreswan-gnome パッケージをインストールする必要があります。NetworkManager-libreswan-gnome パッケージは、Optional チャンネルからのみ利用できることに注意してください。「Enabling Supplementary and Optional Repositories」を参照してください
VPN の IPsec プロトコルは、IKE (Internet Key Exchange )プロトコルを使用して設定されます。IPsec と IKE は同義語です。IPsec VPN は、IKE VPN、IKEv2 VPN、XAUTH VPN、Cisco VPN、または IKE/IPsec VPN とも呼ばれます。レベル 2 Tunneling Protocol (L2TP)も使用する IPsec VPN のバリアントは、通常は L2TP/IPsec VPN と呼ばれます。これには、Optional チャンネルの xl2tpd アプリケーションが必要です。
Libreswan は、Red Hat Enterprise Linux 7 で利用可能なオープンソースのユーザー空間の IKE 実装です。IKE バージョン 1 および 2 は、ユーザーレベルのデーモンとして実装されます。IKE プロトコル自体は暗号化されています。IPsec プロトコルは Linux カーネルで実装され、Libreswan は、VPN トンネル設定を追加および削除するようにカーネルを設定します。
IKE プロトコルは、UDP ポート 500 および 4500 を使用します。IPsec プロトコルは、プロトコル番号 50 のESP (プロトコル番号 50)と認証された Authenticated Header (AH)の 2 つのプロトコルで構成されます。AH プロトコルの使用は推奨されていません。AH のユーザーは、null 暗号化で ESP に移行することが推奨されます。
IPsec プロトコルには、動作モード (Tunnel Mode(デフォルト)および Transport Mode )の 2 つがあります。IKE を使用せずに IPsec を使用してカーネルを設定できます。これは、手動キーリング と呼ばれます。ip xfrm コマンドを使用して手動キーを設定できますが、これはセキュリティー上の理由からは強く推奨されません。Libreswan は、netlink を使用する Linux カーネルでインターフェースします。Linux カーネルでパケットの暗号化と復号が行われます。
Libreswan は、ネットワークセキュリティーサービス (NSS)暗号化ライブラリーを使用します。libreswan と NSS はともに連邦情報処理標準 (FIPS)公開文書 140-2 での使用が認定されています。
重要
Libreswan および Linux カーネルが実装する IKE/IPsec VPN は、Red Hat Enterprise Linux 7 で推奨される唯一の VPN 技術です。その他の VPN 技術は、そのリスクを理解せずに使用しないでください。

4.6.1. Libreswan のインストール

Libreswan をインストールするには、root で次のコマンドを実行します。
~]# yum install libreswan
Libreswan がインストールされていることを確認するには、次のコマンドを実行します。
~]$ yum info libreswan
Libreswan の新規インストール後、NSS データベースをインストールプロセスの一部として初期化する必要があります。新しいデータベースを起動する前に、以下のように古いデータベースを削除します。
~]# systemctl stop ipsec
~]# rm /etc/ipsec.d/*db
次に、新しい NSS データベースを初期化するには、root で以下のコマンドを入力します。
~]# ipsec initnss
Initializing NSS database
FIPS モードで動作している場合に限り、NSS データベースをパスワードで保護する必要があります。直前のコマンドではなく、FIPS モードのデータベースを初期化するには、以下のコマンドを使用します。
~]# certutil -N -d sql:/etc/ipsec.d
Enter a password which will be used to encrypt your keys.
The password should be at least 8 characters long,
and should contain at least one non-alphabetic character.

Enter new password:
Re-enter password:
Libreswan が提供する ipsec デーモンを起動するには、root で以下のコマンドを実行します。
~]# systemctl start ipsec
デーモンが実行中であることを確認するには、以下を実行します。
~]$ systemctl status ipsec
* ipsec.service - Internet Key Exchange (IKE) Protocol Daemon for IPsec
   Loaded: loaded (/usr/lib/systemd/system/ipsec.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2018-03-18 18:44:43 EDT; 3s ago
     Docs: man:ipsec(8)
           man:pluto(8)
           man:ipsec.conf(5)
  Process: 20358 ExecStopPost=/usr/sbin/ipsec --stopnflog (code=exited, status=0/SUCCESS)
  Process: 20355 ExecStopPost=/sbin/ip xfrm state flush (code=exited, status=0/SUCCESS)
  Process: 20352 ExecStopPost=/sbin/ip xfrm policy flush (code=exited, status=0/SUCCESS)
  Process: 20347 ExecStop=/usr/libexec/ipsec/whack --shutdown (code=exited, status=0/SUCCESS)
  Process: 20634 ExecStartPre=/usr/sbin/ipsec --checknflog (code=exited, status=0/SUCCESS)
  Process: 20631 ExecStartPre=/usr/sbin/ipsec --checknss (code=exited, status=0/SUCCESS)
  Process: 20369 ExecStartPre=/usr/libexec/ipsec/_stackmanager start (code=exited, status=0/SUCCESS)
  Process: 20366 ExecStartPre=/usr/libexec/ipsec/addconn --config /etc/ipsec.conf --checkconfig (code=exited, status=0/SUCCESS)
 Main PID: 20646 (pluto)
   Status: "Startup completed."
   CGroup: /system.slice/ipsec.service
           └─20646 /usr/libexec/ipsec/pluto --leak-detective --config /etc/ipsec.conf --nofork
システムの起動時に Libreswan が起動するようにするには、root で以下のコマンドを発行します。
~]# systemctl enable ipsec
ipsec サービスを許可するために、ホストベースのファイアウォールおよびホストベースのファイアウォールを設定します。ファイアウォールの詳細および特定サービスが通過できるようにする情報は、5章ファイアウォールの使用 を参照してください。Libreswan では、以下のパケットを許可するには、ファイアウォールが必要です。
  • IKE (Internet Key Exchange )プロトコルの場合は UDP ポート 500 および 4500
  • Encapsulated Security Payload (ESP) IPsec パケット用のプロトコル 50
  • 認証ヘッダー (AH) IPsec パケット用のプロトコル 51(uncommon)
Libreswan を使用して IPsec VPN を設定する例を 3 つ示します。最初の例は、2 つのホストを一緒に接続し、安全に通信できるようにすることです。2 番目の例は、2 つのサイトを一緒に接続して 1 つのネットワークを形成する例です。3 つ目の例は、このコンテキストのウォードウォーリアとして知られるリモートユーザーをサポートします