사람들은 Nginx를 사용하여 다음을 수행할 수 있습니다.프록시패스내 도메인과 브라우저에서는 콘텐츠가 내 것이지만 주소 표시줄에서는 해당 도메인입니다.
요청이 Proxy_pass를 통과하는 시기를 감지하고 이를 거부하는 방법은 무엇입니까?
예를 들어 의도적으로 google.com에 Proxy_pass를 실행하면 404 오류가 발생합니다.
server {
listen 80;
server_name test.com;
location / {
proxy_pass https://google.com;
}
}
이를 방지하는 것은 불가능해 보입니다. 예를 들어 해당 사람들은 프록시가 일반 브라우저처럼 작동하도록 만듭니다. 그러나 간단한 Nginx Proxy_pass를 사용하는 경우 어떻게 방지할 수 있습니까?
답변1
이론적으로는 가능하지만 많은 노력 없이는 불가능합니다.
아마도 당신은 HTTP/2 지원 웹사이트를 운영하고 있을 것입니다.
귀하의 웹사이트를 탐지하는 것은 이러한 연결이 항상 를 통해 시작되고 결코 를 통해 proxy_pass
시작되지 않는다는 사실을 토대로 구축될 수 있습니다 .HTTP/1.x
HTTP/2
그런 다음 이를 브라우저 기능과 일치시킬 수 있습니다.
따라서 본질적으로 HTTP/2 지원 브라우저가 이전 HTTP/1.x 프로토콜을 통해 웹 사이트에 연결되는 경우 해당 브라우저가 NGINX proxy_pass
또는 일부 프로토콜을 통해 있다고 안전하게 가정할 수 있습니다.다른프록시(NGINX 제외).
따라서 이것이 작동할 수는 있지만 일종의 프록시를 통해 검색하는 모든 클라이언트를 차단할 수 있습니다.
이것이 바로 소극적인 접근 방식입니다.
활성 접근 방식은 단순히 동일한 IP 주소에서 여러 연결을 확인하는 것입니다. 동일한 IP 주소에서 다른 사용자 에이전트를 사용하거나 전혀 사용하지 않는 여러 연결에 대한 로그(예: Fail2ban 또는 기타 로그 스캐너)를 확인하게 됩니다.
다양한 사용자 에이전트/액세스가 있는 IP 주소는 일종의 프록시일 가능성이 높습니다.
마지막으로 RDNS 확인/whois 쿼리를 수행하여 요청이 알려진 호스팅 공급자로부터 오는지 확인할 수 있습니다.