
NAT 뒤에는 클러스터(현재 10개 머신)가 있습니다. 개인 네트워크와 일반 회사 네트워크 사이에는 NAT 게이트웨이/점프 호스트가 있습니다.
사용자는 ssh
점프 호스트로 이동한 다음 NAT 뒤에 있는 다른 시스템에 들어갈 수 있습니다.
NAT 뒤에 있는 웹 인터페이스를 로컬 컴퓨터로 터널링하는 데 도움이 되는 쉬운 스크립트를 제공하고 싶습니다.
그래서 나의 첫 번째 제안은 SSH 양말 프록시를 사용하고 인터페이스를 로컬 호스트로 터널링하는 것이었습니다.
따라서 제 질문은 이 두 개의 터널(동료의 로컬 컴퓨터에서 점프 호스트로 하나, 점프 호스트에서 NAT 뒤의 해당 컴퓨터로 하나)을 생성하는 경우 이 터널이 얼마나 안전한지입니다. ?
worker1
어느 쪽이 이런 일을 하는지 상상해보세요 :
ssh -t [email protected] -L 10001:localhost:33388 ssh -t hostxyz.behindnat.tld
루프백 인터페이스를 수신하는 점프 호스트 시스템에는 열린 포트 33388이 있습니다. worker2
점프 호스트에 로그인하고 이미 터널링된 연결에 대해 로컬 호스트 포트 33388을 사용하는 경우 에는 에 다시 인증하면 안 됩니다 hostxyz.behindnat.tld
. 그렇죠?
이것은 나에게 큰 보안 결함처럼 보입니다. 더 나은 해결책이 있습니까?
답변1
귀하의 시나리오에는 Jumphost의 수신 포트에 대한 액세스 권한이 있는 모든 사람에게 공개되는 Jumphost와 Hostxyz 사이의 기존 SSH 세션이 포함되어 있다고 가정합니다.
기술적으로 서로 다른 두 가지인 양말과 터널을 언급하셨습니다.
다음과 같이 작업자1의 양말 프록시를 설정합니다.
ssh [email protected] -D 127.0.0.1:10001
localhost:10001
jumphost.tld를 통해 탐색할 때 양말을 사용하도록 작업자1의 브라우저를 설정합니다.
Worker1에서 Hostxyz로 직접 ssh를 실행하려면 다음과 같이 하면 됩니다.
ssh [email protected] -L localhost:10001:hostxyz:22
ssh user@localhost:10001
이것이 제가하는 것입니다. 나는 모든 것을 정리하기 위해 .ssh/config 파일을 사용합니다. 구성 파일 및 터널링에 대한 정보는 다음을 읽는 것이 좋습니다.https://man.openbsd.org/ssh_config다른 좋은 입문서를 보려면 openssh에 대한 Michael W Lucas의 강연을 시청하세요.