가장 좋은 방법은 바인드 9.8.1 이상의 응답 정책 영역을 통하는 것입니다. 임의 영역에서 단일 레코드를 대체 할 수 있으며 (변경하려는 단일 레코드 만 전체 서브 도메인을 작성할 필요가 없음) CNAME 등을 대체 할 수 있습니다. 언 바운드와 같은 다른 솔루션은 CNAME을 대체 할 수 없습니다. .
https://www.redpill-linpro.com/sysadvent/2015/12/08/dns-rpz.html
편집 : 이 제대로 수행하자. 위에 링크 된 자습서를 기반으로 수행 한 작업을 문서화합니다.
내 OS는 Raspberry Pi 용 Raspbian 4.4이지만이 기술은 Debian 및 Ubuntu에서 변경하지 않거나 다른 플랫폼에서 최소한의 변경으로 작동해야합니다.
바인드 구성 파일이 시스템에서 유지되는 위치로 이동하십시오 /etc/bind
. 여기는에 있습니다. 거기에 db.rpz
다음 내용으로 불리는 파일을 작성하십시오 .
$TTL 60
@ IN SOA localhost. root.localhost. (
2015112501 ; serial
1h ; refresh
30m ; retry
1w ; expiry
30m) ; minimum
IN NS localhost.
localhost A 127.0.0.1
www.some-website.com A 127.0.0.1
www.other-website.com CNAME fake-hostname.com.
무엇을합니까?
www.some-website.com
가짜 주소로 IP 주소를 재정 의하여 127.0.0.1
해당 사이트의 모든 트래픽을 효과적으로 루프백 주소로 보냅니다.
www.other-website.com
다른 사이트 로 트래픽을 보냅니다.fake-hostname.com
바인드 존 파일에 들어갈 수있는 것은 여기에서 사용할 수 있습니다.
이러한 변경 사항을 활성화하려면 몇 가지 단계가 더 있습니다.
named.conf.local
이 섹션을 편집 하고 추가하십시오.
zone "rpz" {
type master;
file "/etc/bind/db.rpz";
};
위에 링크 된 튜토리얼은 더 많은 것을 추가하라고 지시 zone "rpz" { }
하지만 간단한 설정에서는 필요하지 않습니다. 여기에 표시된 것은 로컬 리졸버에서 작동하도록하는 최소값입니다.
편집 named.conf.options
하고 options { }
섹션 어딘가에 response-policy
옵션을 추가하십시오 .
options {
// bunch
// of
// stuff
// please
// ignore
response-policy { zone "rpz"; };
}
이제 다시 시작하십시오.
service bind9 restart
그게 다야. 네임 서버는 지금 그 레코드를 덮어 쓰기 시작해야합니다.
변경이 필요한 경우 편집 db.rpz
을 한 다음 바인드를 다시 시작하십시오.
보너스 : DNS 쿼리를 syslog에 기록하려면 진행 상황을 주시하고 편집 named.conf.local
하고 logging
다음 내용이 포함 된 섹션이 있는지 확인하십시오 .
logging {
// stuff
// already
// there
channel my_syslog {
syslog daemon;
severity info;
};
category queries { my_syslog; };
};
다시 시작하십시오. 바인드하십시오.
바인드를 실행중인 머신에서 테스트하십시오.
dig @127.0.0.1 www.other-website.com. any
다른 컴퓨터에서 dig를 실행하는 경우 @ 127.0.0.1 대신 @ the-ip-address-of-Bind-server를 사용하십시오.
이 기술을 사용하여 작업중인 웹 사이트에 대한 CNAME을 재정의하고 방금 테스트중인 새로운 AWS로드 밸런서로 보냈습니다. Raspberry Pi는 Bind를 실행하는 데 사용되었으며 RPi는 WiFi 라우터로도 작동하도록 구성되었습니다. 따라서 RPi에서 실행되는 SSID에 장치를 연결하면 테스트에 필요한 DNS 재정의를 얻게됩니다.