역방향 SSH를 사용하여 모든 트래픽을 다른 시스템으로 전달

역방향 SSH를 사용하여 모든 트래픽을 다른 시스템으로 전달

다음과 같은 시나리오가 있습니다

                                                                                                                  
               Local Network                     |                          Global Network                        
                                                 |                                                                
                                                 |                                                                
                                                 |                                                                
                                                 |                                                                
                                                 |                                                                
                                                 |                                                                
                                                 |                                                                
+------------+              +-----------+        |               +----------+                   +----------------+
|   client A | -----------> |  server A | <--------------------> | server B | --------------->  | Global Network |
+------------+              +-----------+        |               +----------+                   +----------------+
                                                 |                                                                
                                                 |                                                                

앞으로의 과제:

모든 트래픽을 에서 로 전송 server A합니다 server B. 에서는 모든 터널 프로토콜이 닫혀 있으므로 server Areverse ssh가 좋은 옵션이라고 생각했습니다.

역방향 SSH를 만들기 위해 다음 명령을 사용합니다. ssh -fNT -R 4000:localhost:22 [email protected] -i <private-key>

이제 server A포트가 열려 있는 것을 볼 수 있습니다 4000. 하지만 트래픽 전체를 다음으로 전송하는 방법을 모르겠습니다.server B

답변1

내 즉각적인 생각은 tun 인터페이스를 만들고 라우팅을 적절하게 설정하는 것입니다. 아래에서 볼 수 있듯이 ssh man에서 다음 명령줄 인수를 사용할 수 있습니다.

-w local_tun[:remote_tun] 클라이언트(local_tun)와 서버(remote_tun) 사이에 지정된 tun(4) 장치를 사용하여 터널 장치 전달을 요청합니다. 장치는 숫자 ID 또는 사용 가능한 다음 터널 장치를 사용하는 키워드 "any"로 지정할 수 있습니다. Remote_tun을 지정하지 않으면 기본값은 "any"입니다. >ssh_config(5)의 Tunnel 및 TunnelDevice 지시문도 참조하세요.

Tunnel 지시어가 설정되지 않은 경우 기본 터널 모드인 "지점 간"으로 설정됩니다. 다른 터널 전달 모드가 필요한 경우 -w 앞에 지정해야 합니다.

이 답변은 자세한 내용을 제공합니다.

https://unix.stackexchange.com/questions/525217/create-network-interface-from-ssh-tunnel

관련 정보