Computer >> 컴퓨터 >  >> 체계 >> Windows Server

Windows 10의 기본 SSH 포트 포워딩(터널링)

이 기사에서는 내장된 Windows 10 OpenSSH 서버를 사용하여 SSH 터널을 통해 포트를 전달하는 방법을 보여줍니다. . SSH 포트 전달을 사용하면 로컬 컴퓨터에서 원격 서버로 또는 그 반대로 앱 포트를 터널링(전달)할 수 있습니다. 이전 SSH 터널링은 Linux/Unix 환경에서만 사용되었지만 현재는 Windows 10/Windows Server 2016에서도 사용할 수 있습니다. 다음은 Windows에서 SSH 터널(TCP 포트 22)을 통해 RDP 연결을 사용하는 방법에 대한 사례 연구입니다.

SSH 터널링은 방화벽 뒤의 원격 컴퓨터에 연결해야 하는 시나리오에서 주로 사용됩니다. 예를 들어 SSH 포트만 열려 있는 Windows Server(TCP 22)가 있습니다. 다른 모든 포트는 하드웨어 방화벽이나 Windows 방화벽에 의해 차단됩니다. 귀하의 작업은 RDP 클라이언트를 사용하여 Windows Server에 연결하는 것입니다. 원격 데스크톱 포트 3389가 방화벽에 의해 차단되어 있기 때문에 불가능한 것 같습니다. 그러나 SSH 터널을 통해 포트 포워딩 기술을 사용할 수 있습니다.

다음은 SSH 터널링의 일반적인 사용 시나리오입니다.

  • 로컬 TCP 전달 원격 서버에 대한 로컬 포트 ​​포워딩입니다.
  • 원격 TCP 전달 로컬 컴퓨터로의 원격 포트 포워딩입니다.
  • 이중 SSH 터널 SSH 서버를 통해 NAT 뒤에 전용 공용 IP 주소가 없는 컴퓨터를 연결합니다(OpenVPN 솔루션이 적용되지 않는 경우).

SSH 터널을 통한 RDP 액세스(로컬 TCP 포워딩)

이 모드에서는 컴퓨터에 로컬 TCP 포트를 만듭니다. 이 포트에 대한 모든 연결은 SSH 터널을 통해 원격 서버의 지정된 포트로 전달됩니다. 이 예에서는 로컬 포트 ​​8888을 만듭니다. , 이에 대한 연결은 RDP 포트 3389로 전달됩니다. 원격 Windows 컴퓨터에서. 일반적인 연결 방식은 아래와 같습니다.

Windows 10의 기본 SSH 포트 포워딩(터널링)

기본 제공 Windows 10 SSH 클라이언트(Windows 10 1809 및 Windows Server 2019부터 Windows의 일부임)를 사용하여 SSH 터널을 만들려면 다음 명령을 실행하십시오.

ssh -L 8888:192.168.1.90:3389 root@192.168.1.90

SSH 터널이 백그라운드에서 작동하도록 하려면 –f를 추가합니다. 매개변수.

Windows 10의 기본 SSH 포트 포워딩(터널링)

SSH 터널을 통해 원격 컴퓨터 데스크톱에 연결하려면 RDP 클라이언트(mstsc.exe)를 사용하여 컴퓨터의 로컬 포트 ​​8888에 연결해야 합니다.

127.0.0.1:8888

Windows 10의 기본 SSH 포트 포워딩(터널링)

원격 컴퓨터에 로그인하고 RDP 세션에서 안전하게 작업하십시오(단, 포트 3389는 여전히 방화벽에 의해 닫혀 있음을 기억하십시오). TCPView 도구를 사용하여 RDP 연결이 로컬인지 확인할 수 있습니다(RDP 연결은 로컬에서 실행되는 SSH 서버에 의해 시작됨).

Windows 10의 기본 SSH 포트 포워딩(터널링)

암호화되지 않은 앱 트래픽을 전달하면 공용 네트워크를 통해 암호화되어 전송됩니다. 이러한 트래픽은 SSH 연결의 한쪽 끝에서 암호화되고 다른 쪽 끝에서 해독됩니다.

로컬 네트워크의 다른 컴퓨터도 이 모드를 사용하여 직접 연결이 허용되지 않는 경우에도(SSH 및 RDP를 통해) RDP 서버에 연결할 수 있습니다. 그렇게 하려면 SSH 터널이 생성된 컴퓨터의 포트 번호 8888에 RDP 클라이언트를 통해 연결해야 합니다.

mstsc.exe /v 10.10.1.220:8888

Windows 10의 기본 SSH 포트 포워딩(터널링)

로컬 컴퓨터로 원격 TCP 전달

또 다른 SSH 터널 사용 사례인 원격 TCP 전달이 있습니다. SSH 터널을 사용하여 원격 서버가 사용자 컴퓨터의 로컬 포트 ​​또는 로컬 네트워크의 다른 컴퓨터에 있는 포트에 액세스하도록 허용할 수 있습니다. 예를 들어 외부 서버(200.168.1.90)가 인트라넷 사이트(인터넷에 게시되지 않음)에 액세스하기를 원합니다. 역 SSH 터널을 만들려면 다음 명령을 사용하십시오.

ssh -R 8080:internalwww:80 user@200.168.1.90

원격 SSH 서버에서 internalwwww 사이트에 액세스하려면 브라우저에 다음 주소를 입력하면 됩니다. https://localhost:8080

모든 Windows 버전에서 netsh interface portproxy command을 사용하여 포트 전달 규칙을 생성할 수 있습니다.

SSH 터널을 사용하여 포트 포워딩 체인을 구축할 수 있습니다. SSH 터널링을 활성화 또는 비활성화하려면 OpenSSH 구성 파일(%programdata%\ssh\sshd_config ):

AllowStreamLocalForwarding yes
AllowTcpForwarding remote