sshuttle을 통해 여러 원격 서버 포트를 노출하려면 어떻게해야합니까?


5

SSH 만 노출시키는 원격 서버가 있습니다. 다른 포트 (예 : 포트 3306의 데이터베이스)에서 실행되는 서비스가 있습니다.이 포트는 원격으로 액세스 할 수 없지만 서버 컨텍스트 ( localhost:3306) 내에서 액세스 할 수 있습니다 .

사용 ssh -LI은 할 수 원격 서버에 하나의 포트에 액세스 . 그러나 ssh / sshuttle 연결을 통해 이러한 모든 포트를 로컬 컴퓨터에 액세스 할 수있게하려면 어떻게해야합니까?

답변:


4

원격 서버 에서 자신을 가리키는 보조 IP 주소 ( 예 : 10.0.0.1)를 정의하십시오 . (127.0.0.1과 같은 방식)

로컬 머신에서 다음과 같이 sshuttle 연결을 작성하십시오.

sshuttle -r user@remote 10.0.0.1
# "user" is your username on the remote machine
# "remote" is the name or IP address of the remote machine

이제 10.0.0.1 주소에서 원격 서버에 액세스 할 수 있습니다. 10.0.0.1의 연결은 "자체"인 것으로 이해하기 때문에 해당 포트에서 모든 포트에 액세스 할 수 있습니다. (셔틀 연결을 닫 자마자 액세스가 중지됩니다.)

다음 명령으로이를 확인할 수 있습니다.

nmap remote # returns only ssh port
nmap 10.0.0.1 # returns all ports

이제 주소를 사용하여 데이터베이스에 연결할 수 있습니다 10.0.0.1:3306. 예를 들어, MySQL 데이터베이스 인 경우 MySQL Workbench를 사용하여 연결할 수 있습니다.

이 접근 방식이 적합하면 sshoot 를 사용하여 sshuttle 연결을 관리하는 것이 좋습니다.


"사용자"는 원격 컴퓨터의 사용자이고 원격 서버의 IP 또는 이름을 "원격"합니까? 그리고 이것은 예를 들어 워크 벤치를 원격 서버에 연결할 수 있습니까?
Rinzwind

@Rinzwind 예! 나는 명확하게 답변을 업데이트했습니다
david.libremone
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.