직접 구성한 WireGuard의 실패는 대부분 어느 키가 어디로 갔는지로 귀결됩니다. 인터페이스 절에는 구성 중인 기기의 개인 키가 들어가고, 피어 절에는 반대편 기기의 공개 키가 들어갑니다. 이 두 절반을 바꾸거나 잘못된 쪽을 붙이면 끝나지 않는 핸드셰이크와 키 이름을 한 번도 밝히지 않는 로그가 생깁니다. AllowedIPs나 DNS를 건드리기 전에 아래 네 가지 점검을 순서대로 하세요.

두 개의 키, 두 방향

개인 키는 정확히 한 기기에 속하며 그 기기의 인터페이스 절에 남습니다. 그 공개 절반은 다른 모든 피어가 기기를 인식하는 데 필요한 값이며, 도구는 이것을 지어내지 않고 유도합니다. 서버에서는 사용자 기기의 공개 키가 피어 항목으로 나타나고, 사용자 기기에서는 서버의 공개 키가 그 역할을 맡습니다. 이런 용어로 설정을 소리 내어 읽으면 대부분의 혼동을 핸드셰이크 전에 잡아냅니다.

wg 명령은 로컬 인터페이스가 실제로 무엇을 쓰는지 두 공개 키를 포함해 출력합니다. 그래서 설정 오류와 연결 문제를 가르는 가장 빠른 방법이 됩니다:

wg show
wg show interfaces

첫 번째 출력은 각 피어를 공개 키, 마지막으로 사용한 엔드포인트, 마지막 핸드셰이크의 경과 시간과 함께 나열합니다. 한쪽은 «전혀 없음», 다른 쪽은 최근이라면 한쪽 끝만 받아들인 키를 가리킵니다. 두 번째 명령은 더 살펴볼 수 있는 인터페이스의 이름을 알려줍니다.

무엇을 공유하고 무엇은 절대 공유하지 말아야 하는가

공개 키는 넘겨주기 위한 것이지만 여전히 기기 관계를 식별하므로, 요청한 관리자에게 보내는 것과 공개하는 것은 다릅니다. 개인 키는 그것을 만든 기기를 절대 떠나지 않습니다. 내보낸 프로필이나 QR 코드에는 그 개인 키를 포함한 전체 설정이 들어 있으므로 둘 다 돌려 쓰기에 안전하지 않고, 이미지 안에 문구를 숨긴다고 달라지지 않습니다. 사전 공유 키는 선택 사항이며 똑같이 비밀이고, 양쪽 끝이 같은 값을 가져야 하며 그렇지 않으면 그 단계에서 핸드셰이크가 멈춥니다.

또 하나의 구분은 분명히 말할 가치가 있습니다: 엔드포인트는 주소와 포트이며 결코 키가 아닙니다. 엔드포인트 칸에 공개 키를, 키 칸에 주소를 붙이면 해석은 되지만 아무것도 하지 않는 프로필이 됩니다. 두 칸이 그저 문자열이므로 도구는 이것을 잡지 못합니다. WireGuard 빠른 시작은 생성과 유도 과정을 한 줄로 보여 줍니다.

기기 하나에 피어 항목 하나

서비스가 허용한다면 각 기기는 고유한 피어 정체성을 가져야 합니다. 노트북의 전체 프로필을 휴대폰에 붙이면 서버에서 어느 기기가 그 정체성을 가진 것인지 흐려지고 분실한 기기 하나를 폐기하기가 더 어려워집니다. 개인 키가 유출되면 서버에서 이전 피어 권한을 제거하고 대체품을 마련하세요. 로컬 파일을 지워도 서버 항목은 지워지지 않으며, 서버가 새 클라이언트 키의 공개 절반을 알기 전에는 그것이 누구에게도 도움이 되지 않습니다.

기기와 공개 키의 대응표를 주소 목록 옆에 두세요. 폐기를 반나절이 아니라 두 분짜리 작업으로 바꾸는 것이 바로 그 목록입니다.

핸드셰이크 후에도 실패하는 것

키 쌍은 피어를 식별하지만 네트워크 동작을 결정하지는 않습니다. AllowedIPs는 주소 범위를 피어와 연결하고, 그 주변의 경로는 클라이언트나 설정 도구가 관리합니다. 증상은 보통 다음에 어느 계층을 열어야 하는지 알려 줍니다:

What you seeWhich key problem it usually meansWhere to look first
Handshake age stays at never on both endsPeer public key missing, or an endpoint pointing at nothingwg show, then the endpoint value
Handshake completes on one side onlyThe two ends hold different public keys for each otherwg show on both hosts
Handshake works, then no trafficAllowedIPs or routes rather than keyswg show and the route table
Worked until a key was regeneratedThe peer entry still holds the old public keyCompare both public keys, then update the peer

양쪽 피어가 올바르게 인증된 뒤에도 DNS는 실패할 수 있고, 터널 자체가 건강해도 응용 프로그램은 실패할 수 있으므로, 작동하는 핸드셰이크가 진단의 끝은 아닙니다. 키는 운영자의 기록 관행이나 어떤 웹사이트가 사용자의 계정을 인식하는지에 대해서도 아무것도 말해 주지 않으며, 그런 질문은 다른 곳에 속합니다. 빠진 키는 위장한 라우팅 문제가 아니므로, 네 가지 점검이 통과되면 네트워크 계층으로 넘어가세요.

관련 글