VPN 연결을 통해 컴퓨터의 SSH 서비스를 라우팅하면서 다른 모든 데이터는 WAN 주소를 통해 나가는 것을 허용할 수 있습니까? 이를 달성하려면 어떤 종류의 iptables 마법이 필요합니까?
SSH 데이터 → VPN을 통해
기타 모든 데이터 → 기본 경로를 통해
답변1
내 대답은 다음과 같습니다.관련되어 있지만 더 복잡한 질문에 대한 답변테스트되지 않았습니다.
이 패키지를 설치 해야 합니다 iproute2
.
/etc/iproute2/rt_tables
행 에 추가
200 vpn-route
그런 다음 VPN이 초기화된 후 호출되는 스크립트를 작성합니다.
# set default gateway of vpn-route
ip route add default via $VPNGATEWAY dev $VPNINTERFACE table vpn-route
# use this for marked packages
ip rule add fwmark 0x1 table vpn-route
# mark outgoing ssh packages
iptables -t mangle -A OUTPUT -o $WANINTERFACE -p tcp --dport 22 -j MARK --set-mark 1
# rewrite source address
iptables -t nat -A POSTROUTING -o $VPNINTERFACE -j MASQUERADE
물론 $...
변수를 실제 값으로 바꿔야 합니다.
추신: WAN 인터페이스의 IP가 고정된 경우 마지막 줄을 다음으로 바꿀 수 있습니다.
iptables -A POSTROUTING -t nat -o $WANINTERFACE -p tcp --dport 22 -j SNAT --to $WANIP
답변2
회사에서 서버에 액세스하기 위해 VPN 연결이 필요하기 때문에 VPN을 통해 SSH를 사용하여 서버에 연결하려는 경우 VPN을 우회하는 다른 방법이 있습니다. 먼저 VPN을 사용하여 서버에 연결해야 합니다. 그런 다음 시작하세요.응록역방향 SSH를 켭니다(이 용어가 맞나요?)
ngrok tcp 22
그러면 주소와 포트가 제공됩니다. 일반적으로 다음과 같습니다 0.tcp.eu.ngrok.io:12345
. 이제 위의 주소와 포트를 사용하여 서버에 대한 VPN 및 SSH를 중지할 수 있습니다.
ssh [email protected] -p 12345