8.17. wg-quick 서비스를 사용하여 Wire>-< 클라이언트 구성
/etc/wireguard/
디렉토리에 구성 파일을 생성하여 Wire>-< 클라이언트를 구성할 수 있습니다. 이 방법을 사용하여 NetworkManager와 독립적으로 서비스를 구성합니다.
이 절차에서는 다음 설정을 가정합니다.
클라이언트:
-
Private key:
aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A=
-
터널 IPv4 주소:
192.0.2.2/24
-
터널 IPv6 주소:
2001:db8:1::2/32
-
Private key:
서버:
-
공개 키:
UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
-
터널 IPv4 주소:
192.0.2.1/24
-
터널 IPv6 주소:
2001:db8:1::1/32
-
공개 키:
사전 요구 사항
- 서버와 클라이언트 모두에 대해 공개 및 개인 키를 생성했습니다.
다음 정보를 알고 있습니다.
- 클라이언트의 개인 키
- 클라이언트의 고정 터널 IP 주소 및 서브넷 마스크
- 서버의 공개 키
- 서버의 고정 터널 IP 주소 및 서브넷 마스크
절차
wireguard-tools
패키지를 설치합니다.# dnf install wireguard-tools
다음 콘텐츠로
/etc/wireguard/wg0.conf
파일을 만듭니다.[Interface] Address = 192.0.2.2/24, 2001:db8:1::2/32 PrivateKey = aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A= [Peer] PublicKey = UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= AllowedIPs = 192.0.2.1, 2001:db8:1::1 Endpoint = server.example.com:51820 PersistentKeepalive = 20
[Interface]
섹션은 클라이언트의 인터페이스의 WireECDHE 설정에 대해 설명합니다.-
address
: 클라이언트의 터널 IP 주소 쉼표로 구분된 목록입니다. -
privateKey
: 클라이언트의 개인 키입니다.
-
[Peer]
섹션은 서버의 설정을 설명합니다.-
publickey
: 서버의 공개 키입니다. AllowedIPs
: 이 클라이언트에 데이터를 보낼 수 있는 IP 주소입니다. 예를 들어 매개 변수를 다음과 같이 설정합니다.- 서버만 이 클라이언트와 통신할 수 있도록 하는 서버의 IP 주소입니다. 위 예제의 값은 이 시나리오를 구성합니다.
-
0.0.0.0/0 ::/0
은 모든 원격 IPv4 및 IPv6 주소가 이 클라이언트와 통신할 수 있도록 허용합니다. 이 설정을 사용하여 모든 트래픽을 터널을 통해 라우팅하고 WireGuard 서버를 기본 게이트웨이로 사용합니다.
-
끝점
: 호스트 이름 또는 IP 주소와 서버의 포트를 설정합니다. 클라이언트는 이 정보를 사용하여 연결을 설정합니다. -
선택적
persistent-keepalive
매개변수는 WireECDHE가 서버에 keepalive 패킷을 보내는 간격(초)을 정의합니다. NAT(네트워크 주소 변환)가 있는 네트워크에서 클라이언트를 사용하거나 방화벽이 비활성 시간이 지난 후 UDP 연결을 닫는 경우 이 매개변수를 설정합니다.
-
WireGuard 연결을 활성화하고 시작합니다.
# systemctl enable --now wg-quick@wg0
systemd 인스턴스 이름은
.conf
접미사가 없는/etc/wireguard/
디렉토리의 구성 파일 이름과 일치해야 합니다. 또한 서비스는 가상 네트워크 인터페이스에 이 이름을 사용합니다.
검증
서버의 IP 주소를 ping합니다.
# ping 192.0.2.1 # ping6 2001:db8:1::1
wg0
장치의 인터페이스 구성을 표시합니다.# wg show wg0 interface: wg0 public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= private key: (hidden) listening port: 51820 peer: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= endpoint: server.example.com:51820 allowed ips: 192.0.2.1/32, 2001:db8:1::1/128 latest handshake: 1 minute, 41 seconds ago transfer: 824 B received, 1.01 KiB sent persistent keepalive: every 20 seconds
출력에 개인 키를 표시하려면
WG_HIDE_KEYS=never wg show wg0
명령을 사용합니다.출력에는 이미 VPN 터널을 통해 트래픽을 보낸 경우
최신 핸드셰이크
및전송
항목만 포함됩니다.wg0
장치의 IP 구성을 표시합니다.# ip address show wg0 10: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.2/24 scope global wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::2/32__ scope global valid_lft forever preferred_lft forever
추가 리소스
-
wg(8)
매뉴얼 페이지 -
wg-quick(8)
매뉴얼 페이지