저는 제 경우에는 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 명령을 실행하는 것입니다.
- 기존 SSH 구성과 키를 사용하여 server.example.com(sshd가 포트 3300에서 수신 대기 중)에 연결합니다.
- 내 노트북의 로컬 호스트에 있는 포트(60001)에 바인딩합니다.
- 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 프록시
포트의 프록시는 443
TLS로 암호화되므로 반드시 SSH 프록시가 필요하지는 않지만 Apache 구성에서 회사 네트워크의 관리 경로에 대한 연결을 허용할 수 있습니다.
예제에서는 Apache 2.2 구문을 사용하므로 문서가 약간 오래되었습니다.
<Location /lucee> Order Deny,Allow Deny from all Allow from 127.0.0.1 </Location>
그러나 Apache 2.4에 대한 문서는액세스 제어말한다:
에서 제공하는 , 및 지시문은
Allow
더Deny
이상 사용 되지 않으며 향후 버전에서는 사라질 예정입니다. 이를 사용하지 말고 사용을 권장하는 오래된 튜토리얼도 피해야 합니다.Order
mod_access_compat
/lucee
LAN 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>