OpenBSD 라인배커에서 라인배커로

OpenBSD 라인배커에서 라인배커로

게이트웨이 역할을 할 서버(vps)를 설정했습니다. 내 개인 네트워크 전체가 와이어가드를 통해 뒷면에 연결되어 있습니다. 모든 아이디어는 효과가 있고 나는 어느 정도 따라합니다.https://openbsdrouterguide.net그리고 pf 문서.

지금 내 문제는 내 게이트웨이가 wireguard를 사용하여 protonvpn을 통해 인터넷(개인 네트워크 외에)과 통신하기를 원한다는 것입니다. proton 구성을 사용하여 새로운 wg 인터페이스를 구축했는데 분명히 잘 작동합니다. 하지만 나가기 전에 내 개인 LAN(wg0)의 나가는 트래픽(인터넷으로)을 양성자 인터페이스(wg1)를 통해 전달하는 방법을 모르겠습니다.

라우팅 문제입니까, 아니면 pf 규칙 문제입니까?

몇 가지 팁을 알려주시면 미리 감사드립니다.

답변1

wg1먼저 VPS의 송신 인터페이스(즉, 인터넷으로의 모든 트래픽이 이 인터페이스로 나가게 됨) 를 확인해야 합니다 . 이는 VPS에 다른 인터페이스가 있는 경우 wg1원격 측을 기본 게이트웨이로 설정을 사용하여 달성 할 수 있습니다. route및 게이트웨이), 변경할 수 있는 wg1우선 순위는 route모든 것이 예상대로 작동하는지 확인하는 데 도움이 됩니다. route -n show라우팅 테이블을 확인하고 route -n get <some_external_ip_address>패킷이 컴퓨터를 통과할 인터페이스를 확인하세요.

그런 다음 PF를 사용 하여 다음과 같은 방법을 사용하여 wg0들어오는 트래픽을 (즉, from) NAT 해야 합니다.wg1

vps = <ip_addresses of the vps>
my_lan = <ip addresses of the LAN, or its network range>

pass in on wg0 from $my_lan to !$vps
pass out on wg1 from $my_lan nat-to wg1

열어주세요 /etc/pf.conf(무작정 복사해서 붙여넣지 말고 상황에 맞게 조정하세요).

실제로 각 단계를 개별적으로 시도해 보겠습니다. 먼저 NATing을 설정하고 ProtonVPN을 사용하지 않고 VPS가 게이트웨이 역할을 하는지 확인하세요. 그런 다음 NAT를 비활성화하고 ProtonVPN을 기본 게이트웨이로 설정한 다음 VPS가 기본적으로 이를 통해 인터넷에 액세스하는지 확인합니다. 그리고 마지막으로 이 두 가지를 하나로 묶습니다.

또한 원격 시스템에서 라우팅 테이블과 PF 규칙을 변경하는 것은 자신을 잠그는 시도되고 테스트된 방법이라는 점에 유의하십시오. 우리 모두 거기에 가본 적이 있어요. 콘솔 액세스 권한을 갖는 것이 좋습니다.

답변2

정말 감사합니다. 이것은 도움이 됩니다. 가는 경로를 모르겠어요! 더 많은 매뉴얼 페이지를 읽어야 합니다. o "안전한" 구성인지는 확실하지 않지만 작동합니다! 다른 사람에게 도움이된다면 몇 가지 단계를 제공하겠습니다. vps 서버에 두 개의 wg 인터페이스를 설치한 후:

  1. 기본 경로를 wg1(protonvpn) 인터페이스의 IP로 변경합니다. 나가는 모든 트래픽은 wg1을 통과합니다.

  2. 대상 protonvpn 엔드포인트(wg1에서 엔드포인트로 배치한 엔드포인트)와 원래 ISP 공급자 게이트웨이의 게이트웨이가 있는 경로를 추가합니다. 이를 통해 protonvpn 엔드포인트를 인터넷 연결 인터페이스에 추가할 수 있습니다.

  3. 대상, 개인 LAN의 컴퓨터 외부 IP 및 ISP 제공업체의 게이트웨이가 포함된 경로를 추가하세요! 사실, 내 개인 LAN인 wg0은 protonvpn을 통해 통신해서는 안 되며, 그렇지 않은 경우 통신이 내 vps IP에 도달하고 protonvpn을 통해 나가기 때문에 모든 것이 엉망이 될 것입니다... 이 단계는 저에게 효과적이었습니다. 필요합니다. 다른 옵션이 있을까요? 유동IP 때문에 막혔거든요. wg의 경우 연결 유지 옵션을 사용하세요. 그런데 라우팅 테이블의 경우 스크립트를 작성해야 합니까? pf rdr-to를 사용해야 합니까?

  4. pf에 번역 규칙을 추가합니다(동시에 wg0과 wg1 모두에서 수신됨).

  • wg0:network to any nat-to $ext # 이를 통해 개인 LAN과의 통신이 가능하며 $ext는 인터넷에 연결하는 인터페이스입니다.
  • $ext의 wg1:network에서 nat-to $ext로 전달
  • $wg1의 wg0:network에서 nat-to $ext로 전달 # 개인 LAN에서 Proton VPN으로의 nat 트래픽

3번 항목에 대한 생각이 있으신가요?

관련 정보