SSH를 통해 포트 리디렉션

때때로 우리는 소켓을 통해 데이터 전송 텔넷 연결, FTP 파일 다운로드, SQL 쿼리 또는 기타 유형의 전송과 같은 다른 시스템 간.

이 데이터는 네트워크를 통해 원시 데이터로 이동하므로 안전하지 않은즉, 출발지와 목적지 사이의 경로에있는 모든 노드에서 가로 챌 수 있습니다. 즉, Robados.

이 데이터가 캡처되는 것을 막을 수는 없지만 제 XNUMX자가 해석하고 이해하여 통신을 암호화하는 것을 막을 수 있습니다.

SSH 우리가 할 수있는 도구입니다 보안 연결 기계 사이. 가장 일반적인 용도는 명령 인터프리터에 원격으로 연결하는 것입니다.

그러나 생성과 같은 다른 가능성을 제공합니다. 암호화 된 터널 다른 기계 사이.
host1에서 host2로 텔넷을 사용한다고 가정합니다.

host1$ telnet host2

이 커뮤니케이션은 완전히 개방되어 있으며 가로 채다. 이를 보호하기 위해 호스트 5000에서 임의로 선택한 포트 (예 : 1)를 host23의 포트 2 (텔넷)으로 리디렉션합니다.

이런 식으로 host5000의 포트 1으로 전송 된 모든 데이터를 ssh가 host22의 포트 2를 통해 여는 터널을 통해 암호화 된 다음 host23의 포트 2으로 리디렉션되어 최종 대상에 도달하게됩니다.

이렇게하려면 host2의 사용자 이름과 암호를 알아야합니다.

터널을 열기 위해 다음과 같이 작성합니다.

host1$ ssh -R 5000:localhost:23 usuariohost2@host2

오 잘 :

host1$ ssh -L 5000:host2:23 usuariohost2@host2

두 옵션 모두 동일합니다. 텔넷 연결을 설정하기 위해 더 이상 host2를 참조하지 않고 host1에서 선택한 포트를 참조합니다.

host1$ telnet localhost 5000

이를 통해 우리는 텔넷이든 아니든 모든 통신을 안전하게 만듭니다. 좀 더 조사 해보면 SSH 이러한 리디렉션은 세 번째 시스템으로도 만들어 질 수 있으므로 단일 진입 점으로 전체 LAN에서 다른 LAN으로 안전하게 액세스 할 수 있습니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   나노

    이론은 매우 흥미로워 보이지만 실제 사례를 보면 훨씬 더 그렇습니다.

    하지만 사실은 제가 키가 작았지만 그 기사를 좋아한다는 것입니다.

    1.    같은

      영감을받은 위키를 보면 https://wiki.archlinux.org/index.php/Secure_Shell#Forwarding_other_ports
      동일하지만 autossh 섹션 https://wiki.archlinux.org/index.php/Secure_Shell#Autossh_-_automatically_restarts_SSH_sessions_and_tunnels
      실제로 ssh로 전송할 수있는 모든 것은 스트리밍, 호스트에 대한 연결입니다. 기타 x 이유 때문에 암호화하고 싶습니다.
      및 securecrt 규칙

  2.   테슬라

    나는 때때로 매우 기본적인 수준에서 SSH를 사용합니다. 기본 포트는 22입니다.

    따라서 올바르게 이해하면 내 PC는 호스트 1이고 연결하려는 PC는 host2입니다.이 터널은 포트 5000과 해당 포트 23 사이에 연결을 생성 한 다음 포트 22에서 끝납니다.

    포트를 전환하는 이유는 무엇입니까? 포트 22로 터널을 만들 수 있습니까?

    매우 흥미로운 기사입니다. 나노처럼 더 많은 것을 원합니다!

    1.    게타픽스

      SSH는 실제로 기본적으로 포트 22를 사용합니다 (변경 가능함). 이 포트는 두 호스트 간의 실제 통신에 사용되는 포트입니다. 그것이 열려 있고 방화벽이 차단하지 않는지 확인 해야하는 것입니다. 그러나 사용자에게는 완전히 투명합니다. 당신은 그를 잊을 수 있습니다. 이 예에서 리디렉션은 포트 5000과 23 사이에 있습니다.이 두 가지만 걱정할 필요가 있습니다. 사용자는 자신이 호스트의 포트 5000으로 보내는 모든 내용이 대상 호스트의 23에 나타나는 것을 볼 수 있습니다.
      분명히 각 사용자는 적절하다고 생각하는 포트를 리디렉션 할 수 있습니다.

      귀하의 의견에 감사드립니다. 이것은 내 첫 번째 게시물이며 귀하의 의견은 다음 게시물을 개선하는 데 도움이 될 것입니다.

  3.   엘리오타임3000

    VPS로도 가능합니까?

  4.   사냥꾼

    Ok 이것은 내 경우입니다. PC1은 서버에 액세스하지만 PC2는 ssh로 연결하지 않습니다. PC2에서 액세스하고 싶지만 PC1의 어느 포트를 리디렉션해야합니까? 실제로 내가 원하는 것은 PC2에서 서버 포트에 도달하고 패킷의 소스 IP로 PC1을 갖는 것입니다. 이해가 되나요?

    1.    게타픽스

      당신은 스스로를 이해하게됩니다. 이 경우 PC1의 포트를 서버의 포트 2로 리디렉션하려면 PC22이 필요합니다.

      PC2 $ ssh -L 5000 : 서버 : 22 명의 사용자 PC1 @ PC1

      그리고 다른 터미널에서이 연결을 열어 두십시오.

      PC2 $ ssh userServer @ localhost -p 5000

      그리고 당신은 이미 안에 있습니다.

      1.    사냥꾼

        드디어 기능적인 솔루션 !! 감사합니다 Getafix, 당신은 나에게 가능성의 세계를 주셨습니다!

        1.    게타픽스

          기뻐요!

  5.   엘라 브

    훌륭한 기사. 에 오신 것을 환영합니다 DesdeLinux ????

    22 개가 차단되면 어떻게해야합니까? LOL ..

    1.    게타픽스

      고마워요 elav.
      포트 22가 차단 된 경우 mmmm, XD 방화벽을 해킹 할 대안을 찾아야합니다.

    2.    엘리오타임3000

      그리고 최악의 경우 (가설) : VPS 공급자에 의해 차단된다는 것입니다.

  6.   이가

    몇 시간 전에 질문이있는 시험을 봤습니다 😛

  7.   마리오

    나는 다음과 같이 말하지 않을 것입니다.
    host1 $ ssh -R 5000 : 로컬 호스트 : 23 userhost2 @ host2
    다른 명령 줄 ... -L이있는 명령 줄과 동일합니다.
    -R은 새 연결에 대해 열린 포트가 원격 측, 즉 ssh 서버 측에 있음을 나타냅니다. -L은 새 연결을 수신하기 위해 클라이언트 측에서 로컬 측의 포트를 엽니 다.

    라인의 번역 :
    host1 $ ssh -R 5000 : 로컬 호스트 : 23 userhost2 @ host2
    다음과 같을 것입니다. host1에있을 때 내 사용자 userhost22로 host2의 ssh 서버 (포트 2)에 연결하고 host5000의 원격 포트 2에서 생성 된 연결을 host23 (내 로컬 호스트)의 포트 1으로 전달합니다.

    그렇지 않다면 정정하십시오! 😉

    -

    반면에 ... 서버가 포트 22에 대한 연결 항목을 차단 한 경우 즉, ssh 서버에 원격으로 연결할 수 없습니다. 할 수있는 것은; 서버 (원격 host2 시스템의 방화벽 뒤에있는 친구 sysadmin)에서 명령 줄이 실행됩니다.

    host2 $ nohup ssh -fN -R 6000 : localhost : 22 userhost1 @ host1

    -f 배경으로 이동
    -N은 원격에서 어떤 명령도 실행하지 않습니다.
    nohup은 로그 아웃시 명령 실행이 중단되는 것을 방지합니다.

    host1 $ ssh userhost2 @ localhost -p 6000

    이러한 방식으로 host1에서 사용자 host1로 로그인 할 원격 시스템 host6000의 포트 22로 연결을 전달할 포트 2의 localhost (동일한 host2)에 대한 연결을 생성합니다.

    이렇게하면 내부에서 약간의 도움을 받아 firewal에 의해 차단 된 ssh 서버에 로그인 할 수 있습니다 (내가 시도하지는 않았지만 작동하는 것 같음). 😀

    후자는 The Geek Stuff 잡지의 설명에서 읽었습니다.
    http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel/

    나는 당신의 출판물을 정말 좋아합니다. 자주 읽어요!
    인사말.

    1.    게타픽스

      당신이 옳습니다. 기사에 오류가 있습니다. 리디렉션은 동일하지 않습니다. host1 $ ssh -R 5000 : localhost : 23 userhost2 @ host2 명령은 역방향 리디렉션을 수행합니다. 즉, -L 명령이 수행하는 것과 반대되는 원격 포트 5000을 23 로컬로 리디렉션합니다.
      수정 해주셔서 감사합니다.