5.3. wpa_supplicant および NetworkManager による MACsec の使用

MACsec (Media Access Control Security (IEEE 802.1AE)) は、LAN におけるすべてのトラフィックを、GCM-AES-128 アルゴリズムで認証します。MACsec は、IP だけでなく、ARP (Address Resolution Protocol)、ND (Neighbor Discovery) または DHCP も保護できます。IPsec は、ネットワークレイヤー (レイヤー 3)、およびアプリケーションレイヤー (レイヤー 7) の SSL または TLS で動作しますが、MACsec はデータリンクレイヤー (レイヤー 7) で動作します。その他のネットワークレイヤーのセキュリティープロトコルと MACsec を組み合わせて、これらの規格が提供する複数のセキュリティー機能を活用してください。
事前に共有された CAK/CKN (Connectivity Association Key/CAK Name) ペアを使用して認証を実行するスイッチを使用する MACsec を有効にするには、以下を行います。
手順
  1. CAK/CKN ペアを作成します。たとえば、次のコマンドにより、16 バイトのキーが 16 進数表記で生成されます。
    ~]$ dd if=/dev/urandom count=16 bs=1 2> /dev/null | hexdump -e '1/2 "%02x"'
  2. wpa_supplicant.conf 設定ファイルを作成し、以下の行を追加します。
    ctrl_interface=/var/run/wpa_supplicant
    eapol_version=3
    ap_scan=0
    fast_reauth=1
    
    network={
        key_mgmt=NONE
        eapol_flags=0
        macsec_policy=1
    
        mka_cak=0011... # 16 bytes hexadecimal
        mka_ckn=2233... # 32 bytes hexadecimal
    }
    前の手順で作成した値を使用して、wpa_supplicant.conf 設定ファイルの mka_cak および mka_ckn 行を完成させます。
    詳細は、man ページの wpa_supplicant.conf(5) を参照してください。
  3. eth0 を使ってネットワークに接続している場合は、以下のコマンドを使用して wpa_supplicant を開始します。
    ~]# wpa_supplicant -i eth0 -Dmacsec_linux -c wpa_supplicant.conf
Red Hat では、wpa_supplicant.conf ファイルを作成して編集するのではなく、nmcli コマンドを使用して前の手順と同じように wpa_supplicant を設定することを推奨します。以下の例は、すでに 16 バイトの 16 進数 CAK ($MKA_CAK) および 32 バイトの 16進数 CKN ($MKA_CKN) が作成されていることを前提としています。
~]# nmcli connection add type macsec \
  con-name test-macsec+ ifname macsec0 \
  connection.autoconnect no \
  macsec.parent eth0 macsec.mode psk \
  macsec.mka-cak $MKA_CAK \
  macsec.mka-cak-flags 0 \
  macsec.mka-ckn $MKA_CKN

~]# nmcli connection up test-macsec+
この手順の後に、macsec0 デバイスを設定してネットワーク設定に使用する必要があります。
詳細は、「What’s new in MACsec: setting up MACsec using wpa_supplicant and (optionally) NetworkManager」の記事を参照してください。また、MACsec ネットワークのアーキテクチャー、ユースケースのシナリオ、設定例に関する詳しい情報は「MACsec: a different solution to encrypt network traffic」の記事を参照してください。