SSH를위한 리버스 프록시 솔루션이 필요합니다


10

안녕하세요, 프로젝트를 위해 회사 데이터 센터에 서버가있는 상황입니다. 포트 22에서이 시스템에 대한 SSH 액세스 권한이 있습니다.이 서버에서 실행중인 일부 가상 시스템이 있으며 다른 많은 운영 체제가 작동하는 모든 작업의 ​​뒷면에 있습니다. 이제 데이터 센터 방화벽 뒤에 있기 때문에 관리자는 인터넷을 통해 많은 사람들이 이러한 가상 머신에 직접 액세스 할 수 있도록 할 수있는 방법을 물었습니다. 22가 아닌 다른 포트에서 트래픽을 허용 한 경우 포트 전달을 수행 할 수 있습니다. 그러나 나는 이것이 허용되지 않기 때문에이 경우 해결책이 될 수 있습니다. 연결하려는 사람들은 완전한 바보 일 수 있습니다. 누구의 퍼티를 기계로 열어서 행복하거나 파일 질라 일 수도 있습니다.

내 방화벽이나 22 이외의 다른 포트에는 방화벽이 없으며 실제로 요청하더라도 열 수 없습니다 .2 배 SSH는 관리자가 원하는 것이 아닙니다.


1
또 다른 훌륭한 솔루션과 관련된 질문 : serverfault.com/questions/361794/…
Kaii

SSH 리버스 프록시 github.com/tg123/sshpiper
farmer1992

sshpiperd는 훌륭하게 작동합니다!
Király István

답변:


5

컴퓨터에서 데이터 센터의 서버로 ssh 터널을 열어야합니다. 이 이름을 "server1"이라고하겠습니다. openssh를 사용하는 경우 바로 실행할 수 있습니다.

ssh -L0.0.0.0:8080:localhost:8080 you_username@server1

그러면 포트 8080의 컴퓨터에서 서버, 포트 8080으로의 연결이 열리고 방화벽은 건너 뜁니다. 아파치가 포트 8080에서 수신 대기한다고 가정합니다. 포트 전달 형식이 수신 대기 중입니다. IP : 로컬 포트 ​​: 원격 주소 : 원격 포트. 물론 단일 서버의 경우에도 사용할 수 있습니다

ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1

-L 매개 변수의 localhost는 server1과 관련되어 있습니다. 다시 말해, 서버는 실제로 ssh 연결을 통해 컴퓨터에서 들어오는 로컬 호스트에서 연결을보고 있습니다.

당신은 또한 매개 변수가 필요합니다

AllowTcpForwarding yes

서버의 ssh 구성 (일반적으로 / etc / ssh / sshd_config)

그런 다음 다른 사용자가 포트 8080에서 컴퓨터에 연결하여 Apache Reverse Proxy를 통해 연결할 수 있습니다. 일반 프록시가 필요한 경우 (사용자가 Apache 구성의 특정 주소가 아닌 주소를 선택할 수 있음) server1에 오징어를 설치하고 ssh tunnel을 사용하여 오징어 포트를 사용해야합니다.


당신은 내가 할 때 말을 의미한다 ssh -L0.0.0.0:8080:localhost:8080 you_username@server1 (즉, 다음 발생하지 않는 경우에 내가 어떤 일을 할 수 없기 때문에) 연결이 여전히 방화벽의 포트 (22)를 통과 될 경우 다음과 SSH 터널은 로컬 컴퓨터와 원격 컴퓨터 사이에 설정된다 방화벽에서 지정된 포트에서 전체 트래픽이 발생합니다 (포트 22).
본드

ssh 터널을 실행할 때 포트 8080에서 포트 8080으로의 트래픽은 포트 22를 사용하여 ssh 연결 내부로 들어갑니다. 방화벽은 8080이 아닌 포트 22로 트래픽을 확인합니다.
Olli

이 명령을 내릴 때 ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1 remote_server_address로 무엇을 넣을 수 있는지 알고 싶습니다. 나는 server1을 중간 시스템으로 사용하려는 내부 시스템의 IP라는 것을 알고 있습니다.
본드

본드 : 네, 맞습니다. 여러 개의 내부 머신에 대한 연결을 열기 위해 여러 개의 -L 터널 (물론 다른 소스 포트가 있음)을 지정할 수도 있습니다. 예를 들어 "-L0.0.0.0 : 8080 : remote_server1 : 80 -L0.0.0.0 : 8081 : remote_server2 : 80 -L0.0.0.0 : 8082 : remote_server2 : 22"(인용 부호 제외)입니다.
Olli

이 견고한 구성을 위해서는 데이터 센터 외부에서 리바운드 역할을하고 트래픽을 허용하는 서버를 설정해야합니다. 물론 ssh 터널은 임시 솔루션으로 괜찮지 만 프로덕션 환경에서는 실제 리버스 프록시를 설치하는 것이 좋습니다. 리바운드에서 방화벽 설정을 조정하여 해당 리바운드에서만 8080 연결을 허용하십시오. 즉, 리버스 프록시를 DC 내부의 가상 머신 중 하나로 배치하는 것이 더 현명합니다. 따라서이 시스템에 대해서만 SSL을 사용하여 연결을 보호해야합니다.
jmary

0

SshMeIn 과 같은 것을 사용할 수 있습니까 ? 방화벽을 통해 ssh 터널을 만드는 오픈 소스 웹 시스템이므로 포트를 열 필요조차 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.