SSH 역방향 동적 포워딩: 원격 SOCKS 리스너 만들기
SSH 서버에 역방향 동적 SOCKS 리스너를 만들고, 대상 연결은 클라이언트 쪽에서 엽니다.
보통 SSH SOCKS 터널은 노트북에 서버의 네트워크 출구를 제공합니다. 역방향 동적 포워딩은 이 배치를 뒤집습니다. 원격 머신의 프로그램이 SSH 클라이언트 쪽에서 쓸 수 있는 네트워크를 사용할 수 있습니다.
대상이 없는 원격 포워딩을 지원하는 OpenSSH 클라이언트에서:
ssh -N -R 127.0.0.1:1080 [email protected]
SOCKS 리스너는 remote.example.net에 있으며 자체 loopback 주소에 바인딩됩니다. 그곳의 프로그램은 127.0.0.1:1080을 사용합니다. 대상 연결은 SSH를 거쳐 돌아오며 클라이언트가 실행되는 쪽에서 열립니다.
IP보다 방향을 먼저 읽으세요
-R 문서는 생략된 대상의 의미를 분명히 합니다. port:host:hostport이 포함된 지정은 대신 고정 포워딩입니다. 오래된 클라이언트가 짧은 동적 형식을 지원한다고 가정하지 마세요.
외부로 나가는 IP는 클라이언트 쪽 네트워크가 그 연결들에 사용하는 주소입니다. 가정용 공유기 뒤의 노트북은 공유기의 변환된 공인 주소로 나갈 수 있습니다. 그것이 자동으로 SSH 서버의 IP는 아니며, 노트북에 직접 할당된 주소도 아닙니다.
원격 리스너는 제한적으로 유지하세요. 와일드카드 바인딩은 서버 정책에 따라 다른 머신이 클라이언트 쪽 네트워크를 출구로 사용하게 할 수 있습니다. loopback조차 원격 호스트의 다른 적격 프로세스에 열려 있을 수 있습니다. 프로세스별 비밀은 아닙니다.
대상 집합을 제한하려면 PermitRemoteOpen과 서버의 포워딩 정책을 검토하세요. 경로는 클라이언트가 온라인으로 남아 있는지에도 달려 있습니다. 그 연결이 닫히면 원격 프록시 경로는 사라집니다. 역방향 포워딩은 연결이 시작되는 위치를 바꿉니다. SSH 세션과 무관한 독립 프록시를 제공하지는 않습니다.