Iptables는 모든 내부 트래픽을 전달합니다.

Iptables는 모든 내부 트래픽을 전달합니다.

로컬 LAN에 연결된 내부 인터페이스가 있는 VM이 ​​있습니다. VM에 다른 사이트에 대한 OpenVPN 연결이 작동 중입니다. iptables를 사용하여 VPN 터널을 통해 로컬 인터페이스로 들어오는 모든 트래픽을 어떻게 전달합니까? 저는 우분투 배포판을 실행하고 있습니다.

답변1

기존 연결을 사용하여 사이트 간 VPN을 수행하려면 VPN을 통한 라우팅 경로가 있어야 합니다. 귀하가 사이트 #1에 있다고 가정해 보겠습니다(어느 것이 OpenVPN 서버 역할을 하는지에 관계없이 모든 것이 대칭입니다).

  1. 먼저 VPN 연결이 있는 VM("VPN#1"이라고 함)이 원격 서브넷에 도달할 수 있는지 확인해야 합니다. OpenVPN 구성을 사용하여 경로를 추가하면 됩니다.
    • "VPN#1"이 OpenVPN 클라이언트인 경우 키워드를 사용하여 서버에 추가하거나 다음 push을 사용하여 로컬로 추가할 수 있습니다.route
    • route"VPN#1"이 OpenVPN 서버인 경우 , 또는 다음과 같은 외부 도구를 사용 하여 추가할 수 있습니다.ip
  2. 그런 다음 "VPN#1"과 원격 엔드포인트 모두에 IP 전달이 활성화되어 있는지 확인해야 합니다( 를 사용하여 추가 net.ipv4.ip_forward=1/etc/sysctl.conf다시 로드 sysctl -p).
  3. VPN#1이 기본 게이트웨이이면 완료된 것입니다. 그렇지 않은 경우 기본 게이트웨이에 원격 LAN에 대한 고정 경로를 추가하거나 LAN의 각 호스트에 고정 경로를 추가할 수 있습니다.
  4. VPN#1의 방화벽을 확인하세요. LAN과 VPN 인터페이스 간의 트래픽을 허용하도록 구성되어야 합니다( 표를 사용하여 FORWARD체인 참조 ).filteriptables

원격 측에서 이것을 반복하면 모든 것이 작동할 것입니다. 문제를 디버깅하려면 ping및 를 사용하세요 .traceroute

답변2

좋아요, 이제 작동합니다. 내 로컬 LAN 반대쪽에 있는 서버를 RDP할 수 있습니다. smb를 사용하여 반대편 Windows 서버의 관리 공유에 액세스할 수 없습니다. 이것은 내가 사용한 IP 테이블 규칙입니다.

/sbin/iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE /sbin/iptables -A FORWARD -i tun0 -o ens160 -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/iptables -A FORWARD -i ens160 -o tun0 -j 수락

관련 정보