Falsear resoluciones DNS puede resultarnos de utilidad, por ejemplo para filtrar tráfico en la red, publicar parcialmente una zona en Internet con las entradas de los servicios públicos y el resto de entradas privadas en nuestro DNS interno.
Compilamos Bind:
emerge -av net-dns/bind
Añadimos una zona RPZ:
vi /etc/bind/named.conf
zone "srpz.zone" {
type master;
file "/etc/bind/db.srpz.local";
allow-query { any; };
allow-update { none; };
};
Añadimos entradas a la zona RPZ:
vi /etc/bind/db.srpz.local
$TTL 604800
@ IN SOA localhost.local. hostmaster.local. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS localhost.local.
yahoo.com IN A 1.1.1.1
En la sección options añadimos la opción response-policy, el bindeo del servicio, el filtrado de querys y los forwarders de Google:
vi /etc/bind/named.conf
options {
response-policy { zone "srpz.zone"; };
allow-query {
any;
};
allow-query-cache {
any;
};
allow-recursion {
any;
};
listen-on { any; };
forwarders {
8.8.8.8;
8.8.4.4;
};
Reiniciamos el servicio:
/etc/init.d/named restart
Compronbamos que funciona correctamente:
dig @SERVER_IP +short google.es
172.217.19.227
dig @SERVER_IP +short yahoo.com
1.1.1.1
Como podemos observar funciona tanto el forward como la zona RPZ.