9장. MACsec을 사용하여 동일한 물리적 네트워크에서 layer-2 트래픽 암호화

MACsec을 사용하여 두 장치 간(point-to-point) 간의 통신을 보호할 수 있습니다. 예를 들어 분기 사무실은 중앙 사무실과 함께 Metro-Ethernet 연결을 통해 연결되며, 사무실을 연결하는 두 호스트에서 MACsec을 구성하여 보안을 강화할 수 있습니다.

Media Access Control Security (MACsec)는 다음을 포함하여 이더넷 링크를 통해 다양한 트래픽 유형을 보호하는 계층 2 프로토콜입니다.

  • DHCP(Dynamic Host Configuration Protocol)
  • ARP(Address resolution protocol)
  • 인터넷 프로토콜 버전 4 / 6 (IPv4 / IPv6)
  • TCP 또는 UDP와 같은 IP를 통한 모든 트래픽

MACsec은 APP-AES-128 알고리즘으로 기본적으로 LAN의 모든 트래픽을 암호화 및 인증하고 사전 공유 키를 사용하여 참가자 호스트 간의 연결을 설정합니다. 사전 공유 키를 변경하려면 MACsec을 사용하는 네트워크의 모든 호스트에서 NM 구성을 업데이트해야 합니다.

MACsec 연결은 이더넷 네트워크 카드, VLAN 또는 터널 장치와 같은 이더넷 장치를 상위로 사용합니다. MACsec 장치에서만 IP 구성을 설정하여 암호화된 연결만 사용하여 다른 호스트와 통신하거나 상위 장치에 IP 구성을 설정할 수도 있습니다. 후자의 경우 상위 장치를 사용하여 암호화되지 않은 연결 및 암호화된 연결에 MACsec 장치를 사용하여 다른 호스트와 통신할 수 있습니다.

MACsec은 특별한 하드웨어가 필요하지 않습니다. 예를 들어 호스트와 스위치 간에만 트래픽을 암호화하려는 경우를 제외하고 모든 스위치를 사용할 수 있습니다. 이 시나리오에서는 스위치가 MACsec도 지원해야 합니다.

즉, MACsec을 구성하는 두 가지 일반적인 방법이 있습니다.

  • 호스트 및 호스트
  • 호스트를 전환한 후 다른 호스트로 전환
중요

동일한 (물리적 또는 가상) LAN에 있는 호스트 간에만 MACsec을 사용할 수 있습니다.

9.1. nmcli를 사용하여 MACsec 연결 구성

nmcli 유틸리티를 사용하여 MACsec을 사용하도록 이더넷 인터페이스를 구성할 수 있습니다. 예를 들어 이더넷을 통해 연결된 두 호스트 간에 MACsec 연결을 생성할 수 있습니다.

절차

  1. MACsec을 구성하는 첫 번째 호스트에서 다음을 수행합니다.

    • 사전 공유 키에 대해 CAK(연결 연결 키) 및 연결 연결 키 이름(CKN)을 만듭니다.

      1. 16바이트 16바이트 16진수 CAK를 생성합니다.

        # dd if=/dev/urandom count=16 bs=1 2> /dev/null | hexdump -e '1/2 "%04x"'
        50b71a8ef0bd5751ea76de6d6c98c03a
      2. 32바이트 16진수 CKN을 생성합니다.

        # dd if=/dev/urandom count=32 bs=1 2> /dev/null | hexdump -e '1/2 "%04x"'
        f2b4297d39da7330910a74abc0449feb45b5c0b9fc23df1430e1898fcf1c4550
  2. MACsec 연결을 통해 연결하려는 두 호스트 모두에서 다음을 수행합니다.
  3. MACsec 연결을 생성합니다.

    # nmcli connection add type macsec con-name macsec0 ifname macsec0 connection.autoconnect yes macsec.parent enp1s0 macsec.mode psk macsec.mka-cak 50b71a8ef0bd5751ea76de6d6c98c03a macsec.mka-ckn f2b4297d39da7330910a74abc0449feb45b5c0b9fc23df1430e1898fcf1c4550

    이전 단계에서 생성된 CAK 및 CKN을 macsec.mka-cakmacsec.mka-ckn 매개변수의 사용합니다. MACsec 보호 네트워크의 모든 호스트에서 값이 동일해야 합니다.

  4. MACsec 연결에서 IP 설정을 구성합니다.

    1. IPv4 설정을 구성합니다. 예를 들어 정적 IPv4 주소, 네트워크 마스크, 기본 게이트웨이 및 DNS 서버를 macsec0 연결로 설정하려면 다음을 입력합니다.

      # nmcli connection modify macsec0 ipv4.method manual ipv4.addresses '192.0.2.1/24' ipv4.gateway '192.0.2.254' ipv4.dns '192.0.2.253'
    2. IPv6 설정을 구성합니다. 예를 들어 정적 IPv6 주소, 네트워크 마스크, 기본 게이트웨이 및 DNS 서버를 macsec0 연결로 설정하려면 다음을 입력합니다.

      # nmcli connection modify macsec0 ipv6.method manual ipv6.addresses '2001:db8:1::1/32' ipv6.gateway '2001:db8:1::fffe' ipv6.dns '2001:db8:1::fffd'
  5. 연결을 활성화합니다.

    # nmcli connection up macsec0

검증

  1. 트래픽이 암호화되었는지 확인합니다.

    # tcpdump -nn -i enp1s0
  2. 선택 사항: 암호화되지 않은 트래픽을 표시합니다.

    # tcpdump -nn -i macsec0
  3. MACsec 통계를 표시합니다.

    # ip macsec show
  4. 각 유형의 보호 유형에 대한 개별 카운터 표시: 무결성 전용 (encrypt off) 및 암호화 (encrypt on)

    # ip -s macsec show