8.8. wg-quick 서비스를 사용하여 Wire>-< 서버 구성

/etc/wireguard/ 디렉토리에 구성 파일을 생성하여 Wire>-< 서버를 구성할 수 있습니다. 이 방법을 사용하여 NetworkManager와 독립적으로 서비스를 구성합니다.

이 절차에서는 다음 설정을 가정합니다.

  • 서버:

    • 개인 키: YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg=
    • 터널 IPv4 주소: 192.0.2.1/24
    • 터널 IPv6 주소: 2001:db8:1::1/32
  • 클라이언트:

    • Public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
    • 터널 IPv4 주소: 192.0.2.2/24
    • 터널 IPv6 주소: 2001:db8:1::2/32

사전 요구 사항

  • 서버와 클라이언트 모두에 대해 공개 및 개인 키를 생성했습니다.
  • 다음 정보를 알고 있습니다.

    • 서버의 개인 키
    • 클라이언트의 고정 터널 IP 주소 및 서브넷 마스크
    • 클라이언트의 공개 키
    • 서버의 고정 터널 IP 주소 및 서브넷 마스크

절차

  1. wireguard-tools 패키지를 설치합니다.

    # dnf install wireguard-tools
  2. 다음 콘텐츠로 /etc/wireguard/wg0.conf 파일을 만듭니다.

    [Interface]
    Address = 192.0.2.1/24, 2001:db8:1::1/32
    ListenPort = 51820
    PrivateKey = YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg=
    
    [Peer]
    PublicKey = bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
    AllowedIPs = 192.0.2.2, 2001:db8:1::2
    • [Interface] 섹션은 서버의 인터페이스의 WireECDHE 설정을 설명합니다.

      • address: 서버의 터널 IP 주소 쉼표로 구분된 목록입니다.
      • privateKey: 서버의 개인 키입니다.
      • ListenPort: WireGuard가 들어오는 UDP 연결을 수신 대기하는 포트입니다.

        수신되는 WireGuard 연결을 수신하는 호스트에 항상 고정 포트 번호를 설정합니다. 포트를 설정하지 않으면 WireECDHE는 wg0 인터페이스를 활성화할 때마다 임의의 무료 포트를 사용합니다.

    • [Peer] 섹션은 하나의 클라이언트 설정을 설명합니다.

      • publickey: 클라이언트의 공개 키.
      • AllowedIPs: 이 서버에 데이터를 보낼 수 있는 클라이언트의 터널 IP 주소입니다.
  3. WireGuard 연결을 활성화하고 시작합니다.

    # systemctl enable --now wg-quick@wg0

    systemd 인스턴스 이름은 .conf 접미사가 없는 /etc/wireguard/ 디렉토리의 구성 파일 이름과 일치해야 합니다. 또한 서비스는 가상 네트워크 인터페이스에 이 이름을 사용합니다.

검증

  1. wg0 장치의 인터페이스 구성을 표시합니다.

    # wg show wg0
    interface: wg0
      public key: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
      private key: (hidden)
      listening port: 51820
    
    peer: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
      allowed ips: 192.0.2.2/32, 2001:db8:1::2/128

    출력에 개인 키를 표시하려면 WG_HIDE_KEYS=never wg show wg0 명령을 사용합니다.

  2. wg0 장치의 IP 구성을 표시합니다.

    # ip address show wg0
    20: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
        link/none
        inet 192.0.2.1/24 scope global wg0
           valid_lft forever preferred_lft forever
        inet6 2001:db8:1::1/32 scope global
           valid_lft forever preferred_lft forever

추가 리소스

  • wg(8) 매뉴얼 페이지
  • wg-quick(8) 매뉴얼 페이지