Apache ProxyPass - TP-Link 라우터

Apache ProxyPass - TP-Link 라우터

때때로 사무실 외부에서 하나 이상의 라우터에 액세스해야 하는 경우가 있습니다. 우리 웹사이트에서 그렇게 하면 매우 편리할 것입니다. 우리 서버는 Windows 2008 서버에서 Apache를 실행합니다. 몇 가지 도메인을 제공하므로 httpd-vhosts.conf 파일이 변경되었습니다.

ProxyRequests Off  
ProxyPreserveHost On  

<Location "/router/">  
  ProxyPass        http://192.168.1.40/  
  ProxyPassReverse http://192.168.1.40/  
</Location>  

탐색할 때http://www.ourdomain.com/router/실제로 로그인 페이지가 나타나지만 일부 이미지와 로그인 버튼(이미지)이 부족합니다. 로그인 후 "금지됨"이라는 메시지가 완전히 표시됩니다.

ProxyPreserveHost 지시어가 완전히 무시된 것 같습니다. 위 수정 내용에 문제가 있나요? 우리가 뭔가 잘못 이해하고 있는 걸까요? 라우터 메인 페이지가 자바스크립트를 사용하여 구축되었으며 다른 것을 구성해야 하기 때문일까요? 참고로 라우터 자체에 로그인한 후에도 URL은 변경되지 않습니다(남아 있음).http://192.168.1.40)

외부에서 나타나는 로그인 페이지:

외부에서 보이는 로그인 페이지

올바른 로그인 페이지:

올바른 로그인 페이지

외부에서 로그인 후 라우터의 메인 페이지:

외부에서 로그인 후 공유기 메인페이지

답변1

TP-Link Archer C2도 리퍼러를 확인하고 라우터의 내부 IP와 일치하지 않으면 403을 제공하는 것 같습니다. 이는 웹 사이트가 라우터에서 콘텐츠를 로드하는 것을 방지하기 위한 보안 조치입니다.

역방향 프록시에서 헤더를 수동으로 수정해 보세요.

<Location "/router/">  
    ProxyPass        http://192.168.1.40/  
    ProxyPassReverse http://192.168.1.40/  

    Header add referer "http://192.168.1.40/"
    RequestHeader set referer "http://192.168.1.40/"
</Location>  

라우터 펌웨어는 일반적으로 자동으로 업그레이드되지 않으므로 설정 시 발생할 수 있는 모든 보안 문제가 포함된 웹 구성 인터페이스가 외부 네트워크에 노출됩니다. 연결에서 이미 TLS를 활성화한 것이 좋지만 라우터의 자체 로그인 페이지 전에 몇 가지 추가 인증 수준을 추가할 수도 있습니다.

관련 정보