
좋아, 내 상황은 기본적으로 이렇습니다... 인터페이스 2 eth0
개와 eth1
. eth1
내 업링크, 즉 상자가 인터넷 연결을 얻는 데 사용하는 인터페이스입니다. eth0
다운링크는 다른 장치/스위치/무선 AP/무엇을 연결하는 인터페이스입니다.
eth0
나는 iptables를 사용하여 포트 53에 대한 모든 요청이 에서 시작되는 모든 주소가 대신 에서 실행되는 DNS 서버로 전송되도록 만들고 싶습니다 127.0.0.1
. 그리고 해당 DNS 서버가 응답을 보낼 때 요청을 보낸 시스템은 실제로 패킷을 보낸 주소에서 응답이 온 것처럼 보입니다.
예를 들어 DNS 서버로 eth0
사용하도록 구성된 컴퓨터가 연결되어 있다고 가정해 보겠습니다 . 8.8.8.8
라우팅 머신의 DNS 서버 example.com
에는 를 가리키는 기록이 있습니다 192.0.2.1
. 연결된 컴퓨터의 누군가가 eth0
실행됩니다 dig example.com @8.8.8.8
. 에서 온 것처럼 보이지만 8.8.8.8
실제로는 라우팅 상자에서 온 것으로 보이는 응답을 받았으며 이 응답에는 example.com의 A 레코드가 이라고 나와 있습니다 192.0.2.1
.
어떻게 해야 하나요?
이는 . 뿐만 아니라 모든 DNS 서버 주소에 대해 작동해야 합니다 8.8.8.8
.
답변1
이를 수행하려면 특정 소프트웨어가 필요하며 이는 악한 것으로 간주됩니다. DNS 트래픽에 대해 중간자 공격을 수행하여 인터넷을 차단하는 것이 바로 DNSSec와 같은 기능이 출시되는 이유입니다.
그래도 확인하려는 경우 "DNS 가로채기" 및 "투명 DNS 프록시"에 대한 결과를 확인하는 것이 좋습니다. 마음에 떠오르는 것은 Barracuda 방화벽 dnschef
이며 아마도 다양한 웹 필터링 제품군이 이 기능을 제공할 것입니다.