8.13. nmcli를 사용하여 WireGuard 클라이언트 구성
NetworkManager에서 연결 프로필을 생성하여 WireGuard 클라이언트를 구성할 수 있습니다. NetworkManager가 WireGuard 연결을 관리하도록 하려면 이 방법을 사용합니다.
이 절차에서는 다음 설정을 가정합니다.
클라이언트:
-
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 주소 및 서브넷 마스크
프로세스
NetworkManager WireGuard 연결 프로필을 추가합니다.
nmcli connection add type wireguard con-name client-wg0 ifname wg0
# nmcli connection add type wireguard con-name client-wg0 ifname wg0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은
client-wg0
이라는 프로필을 생성하고 여기에wg0
가상 인터페이스를 할당합니다.선택 사항:
client-wg
연결을 자동으로 시작하지 않도록 NetworkManager를 구성합니다.nmcli connection modify client-wg0 autoconnect no
# nmcli connection modify client-wg0 autoconnect no
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트의 터널 IPv4 주소 및 서브넷 마스크를 설정합니다.
nmcli connection modify client-wg0 ipv4.method manual ipv4.addresses 192.0.2.2/24
# nmcli connection modify client-wg0 ipv4.method manual ipv4.addresses 192.0.2.2/24
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트의 터널 IPv6 주소 및 서브넷 마스크를 설정합니다.
nmcli connection modify client-wg0 ipv6.method manual ipv6.addresses 2001:db8:1::2/32
# nmcli connection modify client-wg0 ipv6.method manual ipv6.addresses 2001:db8:1::2/32
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 터널을 통해 모든 트래픽을 라우팅하려면 서버의 터널 IP 주소를 기본 게이트웨이로 설정합니다.
nmcli connection modify client-wg0 ipv4.gateway 192.0.2.1 ipv6.gateway 2001:db8:1::1
# nmcli connection modify client-wg0 ipv4.gateway 192.0.2.1 ipv6.gateway 2001:db8:1::1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 터널을 통해 모든 트래픽을 라우팅하려면 이후 단계에서 이 클라이언트의
allowed-ips
를0.0.0.0/0;::/0
으로 설정해야 합니다.터널을 통해 모든 트래픽을 라우팅하면 서버 라우팅 및 방화벽 구성을 기반으로 다른 호스트에 대한 연결에 영향을 줄 수 있습니다.
연결 프로필에 클라이언트의 개인 키를 추가합니다.
nmcli connection modify client-wg0 wireguard.private-key "aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A="
# nmcli connection modify client-wg0 wireguard.private-key "aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A="
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 클라이언트와 통신할 수 있도록 허용할 각 서버에 대해 피어 구성을 추가합니다.
nmcli
유틸리티는 해당 연결 속성 설정을 지원하지 않으므로 이러한 설정을 수동으로 추가해야 합니다./etc/NetworkManager/system-connections/client-wg0.nmconnection
파일을 편집하고 추가합니다.[wireguard-peer.UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=] endpoint=server.example.com:51820 allowed-ips=192.0.2.1;2001:db8:1::1; persistent-keepalive=20
[wireguard-peer.UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=] endpoint=server.example.com:51820 allowed-ips=192.0.2.1;2001:db8:1::1; persistent-keepalive=20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
[wireguard-peer. <public_key_of_the_server>]
항목은 서버의 피어 섹션을 정의하고 섹션 이름에 서버의 공개 키가 있습니다. -
endpoint
매개 변수는 서버의 호스트 이름 또는 IP 주소와 포트를 설정합니다. 클라이언트는 이 정보를 사용하여 연결을 설정합니다. allowed-ips
매개변수는 이 클라이언트에 데이터를 전송할 수 있는 IP 주소 목록을 설정합니다. 예를 들어 매개변수를 다음과 같이 설정합니다.- 서버가 이 클라이언트와 통신할 수 있도록 허용하도록 서버의 터널 IP 주소입니다. 위 예제의 값은 이 시나리오를 구성합니다.
-
0.0.0.0/0;::/0;
원격 IPv4 및 IPv6 주소가 이 클라이언트와 통신할 수 있도록 합니다. 이 설정을 사용하여 터널을 통해 모든 트래픽을 라우팅하고 WireGuard 서버를 기본 게이트웨이로 사용합니다.
-
선택적
persistent-keepalive
매개변수는 WireGuard가 서버에 keepalive 패킷을 전송하는 간격을 초 단위로 정의합니다. NAT(네트워크 주소 변환)가 있는 네트워크에서 클라이언트를 사용하거나 비활성 시간이 지나면 방화벽이 UDP 연결을 종료하는 경우 이 매개변수를 설정합니다.
-
client-wg0
연결 프로필을 다시 로드합니다.nmcli connection load /etc/NetworkManager/system-connections/client-wg0.nmconnection
# nmcli connection load /etc/NetworkManager/system-connections/client-wg0.nmconnection
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
client-wg0
연결을 다시 활성화합니다.nmcli connection up client-wg0
# nmcli connection up client-wg0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - DHCP 또는 SLAAC(상태 비저장 주소 자동 구성)가 있는 네트워크에서 이 호스트를 사용하는 경우 연결이 리디렉션될 수 있습니다. 자세한 내용 및 완화 단계는 연결이 터널을 우회하지 못하도록 전용 라우팅 테이블에 VPN 연결 할당을 참조하십시오.
검증
서버의 IP 주소를 ping합니다.
ping 192.0.2.1 ping6 2001:db8:1::1
# ping 192.0.2.1 # ping6 2001:db8:1::1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow wg0
장치의 인터페이스 구성을 표시합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에 개인 키를 표시하려면
WG_HIDE_KEYS=never show wg0
명령을 사용합니다.VPN 터널을 통해 트래픽을 이미 보낸 경우 출력에는
최신 핸드셰이크
및전송
항목만 있습니다.wg0
장치의 IP 구성을 표시합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow