Windows Apache Server를 사용하는 HTTPS 암호화 터널 내부의 SSH 및 SOCKS 또는 무엇입니까?

Windows Apache Server를 사용하는 HTTPS 암호화 터널 내부의 SSH 및 SOCKS 또는 무엇입니까?

Super/Stack 및 기타 사이트를 검토하는 데 몇 시간을 보냈지만 아직 답변을 찾지 못했습니다. 그럼 여기서 다시 질문을 드려볼까 합니다. 링크에서 찾은 부분적인 답변을 지적하고 싶지만 답변이 너무 복잡하거나 절반만 답변되어 있어 이 글을 읽는 사람에게는 상황이 더 악화될 수 있다고 생각합니다.

지금까지 저는 자체 서명된 인증서를 사용하여 로컬 PC에서 실행되는 Apache 서버를 설정할 수 있었습니다. 이 서버에 443을 전달하는 라우터 포트가 있습니다. 또한 로컬 PC의 포트 22에서 OpenSSH를 실행하고 있습니다. 내 목표는 다음과 같습니다

  1. Putty/WinSCP에서 포트 22를 통해 내 PC에 연결하고 443 SSL 연결을 통해 터널링하고 마치 해당 PC에 있는 것처럼 SOCKS를 통해 탐색할 수 있기를 원합니다.

  2. Stunnel, SSHL, HTTPProxy, Httptunnel, Corkscrew 클라이언트 측 또는 누군가가 수행 방법(또는 가이드에 대한 링크)을 명확하게 설명할 수 있는 모든 것을 시도해 볼 수 있지만 Windows에서 실행되어야 합니다.

  3. 제가 선호하는 것은 Apache 서버(mod_proxy / 프록시 패스?)를 설정하여 (자체적으로?) 들어오는 443을 OpenSSH가 탐색을 위해 연결 및 SOCKS를 선택하도록 포트 22로 전달하는 것입니다.

    참고: 다음은 흐름에 대한 설명입니다. VPN(이미 하나에 있음)을 사용할 수 없으며 레이어 7 FW가 SSH 프로토콜을 보고 차단하기 때문에 SSH에서 443을 사용할 수 없습니다. 클라이언트 PC는 이미 VPN을 사용하고 있으므로 VPN을 사용할 수 없습니다.

Win PcA > Win ServerB 실행 중(Apache/Nginx?) {SSL}

그런 다음 HTTPS가 활성화되고 암호화된 동안 다음을 보냅니다.

Win PcA > WinSCP 또는 SFTP용 Putty를 통해 OpenSSH {SSH}를 실행하는 Win ServerB

&

Win PcA > 브라우저를 통해 SOCKS용 Putty를 통해 OpenSSH {SSH}를 실행하는 Win ServerB

이것은 대부분 지식을 위한 것이지만 FW 펀칭에도 해당된다는 것을 알고 있습니다. 모두 내 컴퓨터이므로 필요한 경우 클라이언트 측에 소프트웨어를 설치할 수 있지만 가장 좋은 점은 Putty/WinSCP 및 브라우저 외에는 소프트웨어가 없다는 것입니다. 클라이언트 측에서 프록시 포트를 변경할 수 있습니다. 이렇게 하면 내가 소유하지 않은 PC에서 이 프로그램을 실행해야 하는 경우 플래그를 올리거나 관리자 권한이 필요 없이 putty/WinSCP를 사용할 수 있습니다.

서버 측 프록시 서버로 Squid 및 Ngnix에 대해 들었지만 현재 Apache 2.4를 실행 중입니다. 바꿀 수 있을 것 같아요. 기본적으로 나는 어디에서나 접근할 수 있는 일종의 Inet 브라우징(SOCKS 프록시를 통해)과 파일 전송 엔드포인트(SSL에 완전히 숨겨진 22개를 통해)를 만들고 싶습니다. 이는 내가 사용 중인 네트워크가 SSL 연결을 허용하는 한 차단되지 않습니다. .

Apache를 설정하기 위한 가이드와 자체 서명된 인증서를 통해 여기까지 왔습니다. 이제 너무 많은 옵션이 붙어 있습니다. 읽어 주셔서 감사합니다.

편집: 답변이 없고 혼란스러운 답변이 있는 이와 같은 질문이 있습니다. 하지만 나에게는 완전한 것이 없습니다. 또한 내 질문의 형식이 올바른지 잘 모르겠습니다. 이 근처에 새로운 것이 있습니다.

답변1

SSH는 이미 SSL을 사용하여 트래픽을 암호화하고 있습니다. (종종) 허용되는 HTTPS 포트 tcp/443을 사용하여 홈 SSH 서버에 연결하려면 포트 tcp/443을 사용하도록 SSH 클라이언트와 SSH 서버를 모두 구성하기만 하면 됩니다. WinSCP는 클라이언트로서 이를 허용합니다. SSH 서버에 사용되는 소프트웨어에 따라 이 작업도 가능하며 자체 SSL 인증서를 설치할 수도 있습니다.

이를 위해 Apache를 설치할 필요는 없습니다. 실제로 Apache는 SSL 연결을 종료하므로 거기에서 로컬 SSH 서버로의 암호화된 트래픽은 불가능합니다(예: 암호화되지 않은 텔넷).

애플리케이션 인식을 피해야 하는 경우 SSH 터널을 시작하는 SSL VPN 터널을 생성하는 것을 고려할 수 있습니다. 그 중 일부는 Apache + OpenSSH에서 언급됩니다. Apache의 일부가 아닌 (?) OpenVPN과 같은 SSL VPN 서버용 추가 소프트웨어가 필요합니다.

답변2

저는 VM에 대해 잘 모르므로 VM 문제를 처리할 수 있다고 가정합니다. 이 가이드도움이 될 것입니다.

가이드와 같이 stunnel4 서버를 설정한 다음(연결을 127.0.0.1:22로 변경하고 443으로 수락) SSH 서버를 정상적으로 만듭니다.

클라이언트 PC 다운로드로 이동한 후Stunnel 클라이언트, 트레이 아이콘을 마우스 오른쪽 버튼으로 클릭하고구성 편집이것을 복사하세요(IP 변경):

[ssh]
client = yes
accept = 127.0.0.1:22
connect = [ip address of the server]:443

이제 메뉴로 돌아가서 다음을 클릭하세요.구성 다시 로드. 이제 끝났습니다. SSH에 연결하되 127.0.0.1:22를 사용해야 합니다.

관련 정보