프록시 SSH 연결

프록시 SSH 연결

이전에 이 질문을 받으셨다면 죄송합니다. 하지만 현재 RDP 게이트웨이 작동 방식과 유사하게 SSH 연결을 설정할 수 있는 솔루션을 찾으려고 노력 중입니다. 익숙하지 않은 분들을 위해 RDP 게이트웨이를 사용하면 기본적으로 다른 서버를 통해 RDP 연결을 프록시할 수 있습니다. 원격 데스크톱은 RDP 게이트웨이 서버를 통해 투명하게 인증하고 여기에서 엔드포인트 서버에 대한 연결을 설정하므로 개인 IP 주소 또는 내부 DNS 이름으로 엔드포인트 서버를 참조하여 노출을 제한할 수 있습니다.

현재 제가 생각하고 있는 것은 터널 프록시 뒤에서 액세스할 수 있어야 하는 모든 서버가 중간 지점 서버에서 전달되는 다른 포트에 있도록 SSH를 통해 포트 전달을 설정하는 것입니다. 그러나 이는 최적의 솔루션처럼 느껴지지 않으므로 이 작업을 수행하는 더 좋은 방법이 있는지 알고 싶습니다.

답변1

SSH 용어로 자주 이야기하는 것은요새 호스트또는점프 서버- 들어오는 SSH 연결을 허용하고 관리하는 실제 시스템에 대한 SSH 연결을 만들 수 있는 단일 시스템(일반적으로 DMZ에 있음).

                                                                             ==> | Server1 |
 _________                             ___________                         /      ---------
| user PC |   ===(SSH on port 22)===> | jump host |  ===(SSH on port 22)== ==+>  | Server2 | 
 _________                             ___________                         \      _________
                                                                             ==> | Server3 |

향상된 보안을 위해 점프 서버는 이중 요소 인증을 요구하거나 VPN 연결을 설정한 후에 들어오는 SSH 세션만 허용하는 경우가 많습니다.

먼저 점프 호스트에 로그온하고 명령 프롬프트에서 두 번째 SSH 세션을 시작하는 대신 OpenSSH를 사용하면 단일 명령으로 이를 구성할 수 있습니다.

~/.ssh/config나는 각 호스트에 대한 짧은 별칭을 사용하여 my에서 모든 설정을 명시적으로 설정하는 것을 선호합니다 . 그렇게 하면 명령줄 플래그를 사용할 필요가 없으며 간단히 입력하고 사용 ssh Destination하고 끝낼 수 있습니다.

Host jumphost
    Hostname jumphost.example.com
    User serverfault
    ForwardAgent yes
    AddKeysToAgent yes
    UseKeychain yes                                  # Specific to OS X 
    IdentityFile ~/.ssh/id_rsa.jumphost

Host server1
    Hostname server1.int.example.com
    User hbruijn 
    ForwardAgent yes
    AddKeysToAgent yes
    UseKeychain yes                                  # Specific to OS X
    IdentityFile ~/.ssh/id_rsa.int.example.com
    ProxyJump jumphost

ProxyJumpProxyCommand. 이제 ssh server1필요한 작업을 정확하게 수행합니다. 먼저 [email protected]선택적으로 다른 SSH 키와 다른 사용자 이름을 사용하여 다음 홉으로 터널링하는 첫 번째 홉을 사용하여 세션을 만듭니다 [email protected].

명령줄에서 직접 ProxyJump 명령을 사용할 수도 있습니다.

ssh -J [email protected] [email protected]

다른 접근 방식이 논의됩니다.이 Q&A

답변2

표준 솔루션은 IPv6(및/또는 VPN)을 배포하고 처음부터 이러한 종류의 해결 방법을 피하는 것입니다. 그러나 지금 그렇게 할 수 없는 경우 이를 점프 박스 또는 요새 호스트 또는 유사한 용어라고 합니다. 이는 사용자가 ssh를 사용하여 로그인한 다음 해당 상자가 네트워크에 액세스할 수 있는 내부 호스트에 ssh를 추가로 연결할 수 있도록 설정한 시스템일 뿐입니다. 이 ssh명령에는 점프 호스트를 통해 연결을 자동화하는 명령줄 옵션도 있습니다.

     -J destination
             Connect to the target host by first making a ssh connection to
             the jump host described by destination and then establishing a
             TCP forwarding to the ultimate destination from there.  Multiple
             jump hops may be specified separated by comma characters.  This
             is a shortcut to specify a ProxyJump configuration directive.
             Note that configuration directives supplied on the command-line
             generally apply to the destination host and not any specified
             jump hosts.  Use ~/.ssh/config to specify configuration for jump
             hosts.

관련 정보