DNS 요청을 해당 도메인 이름을 호스팅하는 웹 서버에 대한 요청과 연결하는 방법은 무엇입니까?

DNS 요청을 해당 도메인 이름을 호스팅하는 웹 서버에 대한 요청과 연결하는 방법은 무엇입니까?

우리는 도메인 이름(예: 'example.com')을 등록했으며 우리가 원하는 것은 누가 도메인 이름을 확인하려고 하는지, 그리고 그가 해당 도메인 이름의 웹 서버에 어떤 종류의 요청을 보내는지 확인하는 것입니다.

이를 위해 우리는 네임서버를 설정하고 BIND의 로그를 수집하여 'example.com'을 해결하기 위해 네임서버에 쿼리하는 사람이 누구인지 알아냅니다(사람들이 캐시된 도메인 이름으로 도메인 이름을 해결하는 경우는 신경 쓰지 않습니다) 재귀 해석기의 데이터). 또한 Apache 웹 서버의 로그도 수집합니다. 그런데 문제는 어떤 DNS 요청이 어떤 웹 서버 요청에 해당하는지 알 수 없다는 것입니다.

이 두 로그를 함께 매핑하기 위해 무작위 하위 도메인을 생성하고 이를 각 DNS 요청에 대해 example.com의 CNAME으로 반환한 다음 모든 하위 도메인을 'example.com' 기본 페이지로 리디렉션하도록 Apache를 구성하려고 했습니다. 따라서 누군가가 특정 하위 도메인을 요청하면 해당 DNS 쿼리가 무엇인지 알 수 있습니다.

이 작업을 수행하는 올바른 방법입니까? 그렇게 할 수 있는 다른 방법이 있나요?

어떤 생각이나 아이디어에도 감사드립니다.

답변1

IP 주소에서는 상관 관계를 설정할 수 없습니다.

이는 최종 클라이언트가 직접 쿼리하는 것이 아니라 재귀적 네임서버를 통해 권한 있는 네임서버를 쿼리하기 때문입니다. 따라서 클라이언트가 사용하는 마지막 재귀적(연결 가능) 네임서버의 IP 주소를 얻게 됩니다.

EDNS 서브넷 클라이언트 옵션을 사용하더라도 실제 클라이언트 IP가 아닌 기껏해야 IP 블록을 얻을 수 있습니다.

같은 방식으로, HTTP 전면에서는 웹 서버가 반드시 클라이언트에 의해 직접 연결될 필요는 없으며 프록시를 통해 갈 수 있습니다.

나는 이미 몇 가지 힌트와 함께 해당 질문과 관련된 다른 질문에 답변했습니다.요청별로 CNAME을 업데이트할 수 있나요? 특히 마지막 단락과 Geoff Huston이 수행한 모든 연구를 참조하세요.

따라서 다른 방법이 있습니다. www.example.com호스트 이름 부분에 고유한 토큰을 사용하여 모든 사람에게 동적 항목(1x1 픽셀 이미지 또는 CSS 또는 JS 파일에 대한 링크)을 삽입하는 것입니다. 이는 와일드카드를 사용하여 네임서버에 연결될 수 있습니다. CNAME이 없으면 액세스를 쉽게 상호 연관시킬 수 있습니다.

  • 어떤 고객이 가다http://www.example.com/
  • 응답에서 웹 서버는 이를 추가 <img src="https://eecahquai5thuu9ji0iepha.tracking.example.net">하고 이를 로그 파일에 기록합니다(따라서 고유 토큰을 현재 HTTP 교환과 연결합니다).
  • tracking.example.net와일드카드 레코드를 갖도록 권한 있는 네임서버를 구성합니다 (영역에 대해서만 별도의 영역을 사용하는 것이 좋습니다. 그렇지 않으면 와일드카드가 예상치 못한 일로 가득 차 있을 수 있습니다). 그러면 이름 서버 로그 파일에 이 고유 토큰과 관련 DNS 데이터(재귀 확인자의 IP 등)가 포함됩니다.
  • (그리고 적절한 네티즌이 되려면) 1x1 픽셀의 투명 이미지일지라도 적절한 리소스와 콘텐츠 유형으로 이 주소에 응답하는 웹 서버를 구성하십시오.

관련 정보