관리 콘솔 노출을 방지하기 위한 SSH 터널링

관리 콘솔 노출을 방지하기 위한 SSH 터널링

저는 제 경우에는 Apache의 Tomcat에서 실행되는 콜드 퓨전 서버 엔진인 Lucee Server를 실행하고 있습니다.

다양한 방법으로 강화하려고 하는데 여기에 설명된 SSH 터널링 접근 방식에 대한 질문이 있습니다.https://docs.lucee.org/guides/deploying-lucee-server-apps/lockdown-guide.html#restricted-access-plus-ssh-tunnelling

문제는 이 SSH 터널링을 수행하는 방법에 대한 설명이 정확하거나 완전하지 않다고 생각한다는 것입니다. 저는 SSH 문서와 기타 Stack Exchange 관련 질문(https://superuser.com/q/588591/504387,https://superuser.com/q/237977/504387) 그러나 여전히 해당 가이드에 설명된 대로 또는 다른 방법으로 SSH 터널링이 작동하도록 할 수 없습니다.


현재 설정에서는 server.example.com에서 lucee가 포트 8888을 수신하고 있습니다. 동일한 서버에서 실행 중인 Apache는 포트 443에서 수신하고 있으며 모든 요청을 포트 8888에서 127.0.0.1로 프록시 설정하도록 구성되어 있습니다(즉, lucee로 전달). . 그러나 위 문서에 설명된 대로 /lucee에 대한 요청을 거부하도록 구성되어 있습니다.

즉, Lucee 관리 콘솔은 포트 443이 아닌 포트 8888에서만 직접 액세스할 수 있습니다. 방화벽 규칙(iptables)은 회사 내부 네트워크에서 포트 8888로 들어오는 트래픽만 허용하도록 설정되어 있으므로 lucee 콘솔에 액세스할 수 있지만 외부 세계는 그럴 수 없어요.

이것5월괜찮습니다. 하지만 설명된 대로 터널링 접근 방식이 작동하도록 만들 수 있는지 확인하려고 했습니다. 터널링이 작동할 수 있다면 iptables 허용 규칙을 버리고 포트 8888을 완전히 차단하거나(루프백 제외) lucee를 127.0.0.1에만 바인딩하도록 재구성할 수 있습니다.


SSH는 server.example.com의 비표준 포트에 있습니다. 3300이라고 가정하겠습니다.

내가 하고 싶은 것은 내 노트북에서 다음과 같은 SSH 명령을 실행하는 것입니다.

  1. 기존 SSH 구성과 키를 사용하여 server.example.com(sshd가 포트 3300에서 수신 대기 중)에 연결합니다.
  2. 내 노트북의 로컬 호스트에 있는 포트(60001)에 바인딩합니다.
  3. server.example.com의 원격 끝에서 차례로 127.0.0.1:8888에 연결하여 트래픽을 lucee로 전달할 수 있습니다.

최종 결과는 내가 액세스할 수 있어야 한다는 것입니다.http://127.0.0.1:60001/lucee/admin/server.cfm내 노트북에서는 server.example.com에서 실행되고 해당 서버의 127.0.0.1에 바인딩된 포트 8888을 수신하는 lucee에 의해 수신됩니다.

어떻게 해야 하나요?

답변1

localhost포트에 TLS를 제공하지 않으므로 Lucee 서버만 바인딩해야 합니다 8888. 그런 다음 관리 경로에 안전하게 액세스하기 위한 두 가지 옵션이 있습니다.

SSH 터널

에서SSH(1):

-L [ bind_address:]port:host:hostport

로컬(클라이언트) 호스트의 지정된 내용이 원격 측의 port지정된 포트로 전달되도록 지정합니다.host

귀하의 질문에 있는 매개변수로 채워졌습니다:

ssh -L 60001:127.0.0.1:8888 [email protected] -p 3300

적절한 액세스 제어가 가능한 Apache 프록시

포트의 프록시는 443TLS로 암호화되므로 반드시 SSH 프록시가 필요하지는 않지만 Apache 구성에서 회사 네트워크의 관리 경로에 대한 연결을 허용할 수 있습니다.

예제에서는 Apache 2.2 구문을 사용하므로 문서가 약간 오래되었습니다.

<Location /lucee>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Location>

그러나 Apache 2.4에 대한 문서는액세스 제어말한다:

에서 제공하는 , 및 지시문은 AllowDeny이상 사용 되지 않으며 향후 버전에서는 사라질 예정입니다. 이를 사용하지 말고 사용을 권장하는 오래된 튜토리얼도 피해야 합니다.Ordermod_access_compat

/luceeLAN 192.168.22.0/24및 공용 IP 만 허용 하도록 액세스를 제한하고 싶다고 가정해 보겠습니다 198.51.100.22.

<Location /lucee>
    <RequireAny>
        Require ip 192.168.22.0/24
        Require ip 198.51.100.22
    </RequireAny>
</Location>

관련 정보