두 인터넷 시스템 간의 포트 전달

두 인터넷 시스템 간의 포트 전달

내 시나리오는 다음과 같습니다.

설정

3개의 기계가 있습니다:

A: 인터넷에서 : IP( a.a.a.a)가 있고, 포트가 pa열려 있습니다.

B: 내 서버/게이트웨이: IP( b.b.b.b)가 있고 포트가 pb열려 있습니다.

C: 인터넷에서 : IP( c.c.c.c)가 있고, 포트가 pc열려 있습니다.

제한

머신의 소유자는 A포트를 통해 서비스를 제공하며, pa해당 서비스는 포트를 통해 머신에서 접속되어야 합니다. 문제는 기계의 소유자가 내 서버, 즉 기계의 포트에 대한 직접 연결만 허용할 수 있다는 것입니다.CpcABpb

알아채다,A그리고 C인터넷에서, 따라서 실제로 인터넷상의 두 시스템 사이에서 게이트웨이 역할을 해야 합니다(내가 찾은 대부분의 방화벽 문서에는 게이트웨이 역할에 대한 내용이 나와 있습니다).인터넷과 로컬 사이회로망).

필요하다

C내 임무는 끝에서 오는 트래픽과 끝에서 오는 트래픽이 있는 방식으로 내 서버를 통해 시스템에 서비스를 제공하는지 확인하는 것입니다 .ABA:paC:pcC:pcA:pa

그렇다면 iptables다른 Linux/Unix 유틸리티를 사용하는 등 어떻게 이를 달성할 수 있습니까? 가능합니까?

가상 솔루션:

마음속에 떠오른 아이디어는 다음과 같습니다. 그러나 그것이 합법적인지, 타당한지 확실하지 않습니다.

iptables -t nat -A PREROUTING -p tcp --source a.a.a.a --source-port pa \
--destination b.b.b.b --destination-port pb -j DNAT --to-destination c.c.c.c:pc

그리고

iptables -t nat -A PREROUTING -p tcp --source c.c.c.c --source-port pc \
--destination b.b.b.b --destination-port pb -j DNAT --to-destination a.a.a.a:pa

관련 정보