Llegué aquí porque estaba buscando información similar y me sorprendió que muchos digan que está bien filtrar sus direcciones IP privadas. Supongo que en términos de hackeo, no hace una gran diferencia si estás en una red segura. Sin embargo, DigitalOcean ha tenido todo el tráfico de la red local en exactamente los mismos cables y todos realmente tienen acceso al tráfico de todos los demás (probablemente factible con un ataque Man in the Middle). Si solo tuviera una computadora en el mismo centro de datos, tener eso la información ciertamente te da un paso más cerca de piratear mi tráfico. (Ahora cada cliente tiene su propia red privada reservada, como con otros servicios en la nube, como AWS).
Dicho esto, con su propio servicio BIND9, puede definir fácilmente sus IP públicas y privadas. Esto se hace usando la view
función, que incluye un condicional. Esto le permite consultar un DNS y obtener una respuesta sobre las IP internas solo si está preguntando desde su propia dirección IP interna.
La configuración requiere dos zonas. La selección utiliza el match-clients
. Aquí hay un ejemplo de configuración desde un servidor DNS dos en uno con BIND9 :
acl slaves {
195.234.42.0/24; // XName
193.218.105.144/28; // XName
193.24.212.232/29; // XName
};
acl internals {
127.0.0.0/8;
10.0.0.0/24;
};
view "internal" {
match-clients { internals; };
recursion yes;
zone "example.com" {
type master;
file "/etc/bind/internals/db.example.com";
};
};
view "external" {
match-clients { any; };
recursion no;
zone "example.com" {
type master;
file "/etc/bind/externals/db.example.com";
allow-transfer { slaves; };
};
};
Aquí está la zona externa y podemos ver que las IP no son privadas
; example.com
$TTL 604800
@ IN SOA ns1.example.com. root.example.com. (
2006020201 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800); Negative Cache TTL
;
@ IN NS ns1
IN MX 10 mail
IN A 192.0.2.1
ns1 IN A 192.0.2.1
mail IN A 192.0.2.128 ; We have our mail server somewhere else.
www IN A 192.0.2.1
client1 IN A 192.0.2.201 ; We connect to client1 very often.
En cuanto a la zona interna, primero incluimos la zona externa, que es cómo funciona. es decir, si usted es una computadora interna, solo accede a la zona interna, por lo que aún necesita las definiciones de zona externa, de ahí el $include
comando:
$include "/etc/bind/external/db.example.com"
@ IN A 10.0.0.1
boss IN A 10.0.0.100
printer IN A 10.0.0.101
scrtry IN A 10.0.0.102
sip01 IN A 10.0.0.201
lab IN A 10.0.0.103
Finalmente, debe asegurarse de que todas sus computadoras ahora utilicen ese DNS y sus esclavos. Suponiendo una red estática, significaría editar su /etc/network/interfaces
archivo y usar sus IP de DNS en la nameserver
opción. Algo como esto:
iface eth0 inet static
...
nameserver 10.0.0.1 10.0.0.103 ...
Ahora deberías estar listo.