Wireguard가 특정 포트를 무시하도록 만드는 방법

Wireguard가 특정 포트를 무시하도록 만드는 방법

내 라우터는 파일 서버를 실행하는 컴퓨터에 포트 80을 전달하도록 설정되어 있습니다 caddy. LAN에서 파일 서버를 성공적으로 컬링할 수 있지만 WAN에서 컬링할 때 시간 초과가 발생합니다. 실행 중인 머신은 외부 VPN에 대한 연결을 통해서도 caddy실행됩니다 . 연결을 닫으면 WAN에서 파일 서버를 컬링할 수 있습니다.wireguardNetworkManagerwireguard

이 답변AllowedIps=0.0.0.0,::0/0외부 VPN을 통해 모든 트래픽을 라우팅한다고 가정해 보겠습니다 . 모든 것을 라우팅하기 위해 Wireguard를 어떻게 설정합니까?하지만VPN을 통한 포트 80 및 443 트래픽?

답변1

Wireguard는 기본 라우팅 테이블 외에 다른 라우팅 테이블을 사용하므로 이를 사용하여 ip rule특정 유형의 트래픽을 제외할 수 있습니다. Wireguard는 트래픽이 로컬로 리디렉션된 후 기본 사이트에 들어가기 전에 트래픽을 일치시키는 규칙을 추가합니다.

그러면 Wireguard 규칙 앞에 규칙을 추가하여 트래픽을 리디렉션할 수 있습니다.~에서포트 80 및 443(서버의 응답)을 기본 테이블로 연결합니다. 다음과 같이 간단해야 합니다.

ip rule add sport 80 table main
ip rule add sport 443 table main

다음 명령을 사용하여 규칙이 wireguard 규칙 앞에 배치되었는지 확인할 수 있습니다.

ip rule

그러나 이를 영구적으로 만들려면 구성 파일에 PostUp 작업을 추가해야 할 수도 있습니다.

PostUp=ip rule add sport 80 table main && ip rule add sport 443 table main
PreDown=ip rule del sport 80 table main && ip rule del sport 443 table main

NetworkManager만 사용하는 경우, dispatcher.d를 사용하여 네트워크가 연결되거나 연결이 끊길 때 실행될 스크립트를 배치할 수 있습니다.

#!/bin/bash
echo 'ip rule del sport 80 table custom
ip rule del sport 443 table custom
ip rule add sport 80 table custom
ip rule add sport 443 table custom' > /etc/NetworkManager/dispatcher.d/02-wg_exceptions.sh
chmod +x /etc/NetworkManager/dispatcher.d/02-wg_exceptions.sh

답변2

포트 80 및 443을 제외한 모든 포트를 라우팅하도록 Wireguard를 구성하는 것은 불가능합니다. 이는 OSI 네트워크 모델의 관점에서 볼 때 포트와 IP 트래픽이 서로 다른 계층에 있기 때문입니다.

하지만 이 질문에는 두 가지(아마도 더 많은) 대답이 있습니다. 첫 번째 대답은 Wireguard 터널을 통과하는 경로를 제한하는 것입니다. Wireguard를 통해 터널링하고 AllowedIps.

두 번째 답변은 좀 더 고급이지만, source NAT들어오는 WAN IP 주소를 라우터의 IP로 마스킹하는 답변을 라우터에서 구성할 수 있습니다. 이는 파일 서버가 WAN 트래픽이 라우터에서 오는 것으로 생각하고 라우터로 응답을 보내고, 라우터는 이를 다시 WAN으로 보낸다는 것을 의미합니다.

관련 정보