Muchos de los sysadmins en algún momento debemos configurar un Bind o Servidor DNS, hoy les quiero mostrar como configurar el mismo para que haga la función de DNS Externo de su red y a la vez que tenga Delegación de Zona con vistas.
Partimos de que tenemos 2 enlaces uno nacional y uno internacional, en caso de que solo tengas uno solo tienes que obviar la parte de las vista del DNS.
Domain dominio.cu
Enlace Internet 200.55.1.0/29
Enlace Nacional 190.6.2.184/29
IP DNS externo(DMZ) 10.11.10.201DNS ns1.dominio.cu y ns2.dominio.cu
Como notaran puse que el enlace nacional en vez de empezar en 0 espesara un 4, para que puedan entender bien como es la delegación.
Lo primero antes de llamar a ETECSA o a su ISP y solicitar la delegación del dominio y su zona ip debes tener bien tu DNS externo bien configurado.
Instalación del bind
apt install bind9Como vamos a poner la vista nacional creamos el archivo
touch /etc/bind/named.conf.cubaAgregamos la carga del archivo al bind
touch /etc/bind/named.conf
nano /etc/bind/named.confinclude "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.internet";
include "/etc/bind/named.conf.cuba";
Ahora editamos la vista de Internet
touch /etc/bind/named.conf.internet
nano /etc/bind/named.conf.internetview all {
match-clients { any; };
zone "dominio.cu" {
type master;
file "/etc/bind/dominio.cu.zone";
};
zone "1.55.200.in-addr.arpa" IN {
type master;
file "/etc/bind/dominio.cu.reverse1.zone";
};
zone "0/29.1.55.200.in-addr.arpa" IN {
type master;
file "/etc/bind/dominio.cu.reverse2.zone";
};
zone "2.6.190.in-addr.arpa" IN {
type master;
file "/etc/bind/dominio.cu.reverse3.zone";
};
zone "184/29.2.6.190.in-addr.arpa" IN {
type master;
file "/etc/bind/dominio.cu.reverse4.zone";
};
};
Ahora editamos la vista de cuba
touch /etc/bind/named.conf.cuba
nano /etc/bind/named.conf.cubaacl cuba {
152.206.0.0/15;
169.158.0.0/16;
181.225.224.0/19;
190.6.64.0/19;
190.15.144.0/20;
190.92.112.0/20;
190.107.0.0/20;
196.1.112.0/24;
196.1.135.0/24;
196.3.152.0/24;
200.0.16.0/24;
200.0.24.0/22;
200.5.12.0/22;
200.13.144.0/21;
200.14.48.0/21;
200.55.128.0/18;
201.220.192.0/19;
};
view cuba {
match-clients { cuba; };
zone "dominio.cu" {
type master;
file "/etc/bind/dominio.cu.zone.cuba";
};
zone "1.55.200.in-addr.arpa" IN {
type master;
file "/etc/bind/dominio.cu.reverse1.zone";
};
zone "0/29.1.55.200.in-addr.arpa" IN {
type master;
file "/etc/bind/dominio.cu.reverse2.zone";
};
zone "2.6.190.in-addr.arpa" IN {
type master;
file "/etc/bind/dominio.cu.reverse3.zone";
};
zone "184/29.2.6.190.in-addr.arpa" IN {
type master;
file "/etc/bind/dominio.cu.reverse4.zone";
};
};
Notaran que se mantuvo la misma configuración de las inversa de los ips ya que como tal eso no cambia, de cambiar es simplemente crear un archivo distino.
Configuramos la seguridad y logs del servicio
touch /etc/bind/named.conf.options
nano /etc/bind/named.conf.optionsoptions {
allow-query { cuba; any;};
allow-query-cache { cuba; any;};
allow-recursion { none; };
allow-transfer { none;};
auth-nxdomain no;
dnssec-enable yes;
dnssec-validation yes;
directory "/var/cache/bind";
listen-on { 10.11.10.201; 127.0.0.1;};
listen-on-v6 { none; };
version "unknown";
notify no;
empty-zones-enable no;
//Protecciones anti-ddos
rate-limit {
slip 2; // Every other response truncated
window 15; // Seconds to bucket
responses-per-second 5; // # of good responses per prefix-length/sec
referrals-per-second 5; // referral responses
nodata-per-second 5; // nodata responses
nxdomains-per-second 5; // nxdomain responses
errors-per-second 5; // error responses
all-per-second 20; // When we drop all
log-only no; // Debugging mode
qps-scale 250; // x / query rate * per-second
// = new drop limit
exempt-clients {127.0.0.1; 10.11.8.0/24;};
ipv4-prefix-length 24; // Define the IPv4 block size
max-table-size 20000; // 40 bytes * this number = max memory
min-table-size 500; // pre-allocate to speed startup
};
};
logging {
channel err {
file "/var/log/bind9/bind.err";
severity error;
print-time yes;
print-category yes;
print-severity yes;
};
channel info {
file "/var/log/bind9/bind.info";
severity info;
print-time yes;
print-category yes;
print-severity yes;
};
channel warn {
file "/var/log/bind9/bind.warn";
severity warning;
print-time yes;
print-category yes;
print-severity yes;
};
channel log {
file "/var/log/bind9/bind.log";
severity debug 1;
print-time yes;
print-category yes;
print-severity yes;
};
category default { err; info; warn; log; };
};
Ya una vez creado estos archivos pasamos a la creación de las carpetas de los logs, seguidamente la zona de cada vista
mkdir -p /var/log/bind9
mkdir -p /var/cache/bind/
chown -R bind /var/log/bind9/
chown -R bind /var/cache/bind/touch /etc/bind/dominio.cu.zone
touch /etc/bind/dominio.cu.zone.cuba
touch /etc/bind/dominio.cu.reverse1.zone
touch /etc/bind/dominio.cu.reverse2.zone
touch /etc/bind/dominio.cu.reverse3.zone
touch /etc/bind/dominio.cu.reverse4.zone
Pasamos a configurar la Zona de Internet
nano /etc/bind/dominio.cu.zone
$ORIGIN dominio.cu.
$TTL 7200
@ IN SOA ns1.dominio.cu. sysadmin.dominio.cu. (
2018041801 ; serial number
3600 ; refresh
900 ; retry
1209600 ; expire
7200 ; ttl
)
; Name servers
IN NS ns1.dominio.cu.
IN NS ns2.dominio.cu.
; MX records
IN MX 10 mail.dominio.cu.
; TXT records
IN TXT "v=spf1 a mx -all"
IN TXT "Empresa de Administradores Cuba"
IN TXT "Adress: El patio de mi casa es particular"
IN TXT "GPS: 22.3026414,-80.9802364"
IN TXT "IT Support: menganitoperes"
IN TXT "Voice: +53-(PROVINCIA)TELEFONO"
IN TXT "E-Mail: [email protected]"
; SRV records
_jabber._tcp.dominio.cu. IN SRV 5 0 5269 jabber.dominio.cu.
_xmpp-server._tcp.dominio.cu. IN SRV 5 0 5269 jabber.dominio.cu.
_conference._tcp.dominio.cu. IN SRV 5 0 5269 jabber.dominio.cu.
_xmpp-client._tcp.dominio.cu. IN SRV 5 0 5269 jabber.dominio.cu.
_submission._tcp.dominio.cu. IN SRV 5 0 587 mail.dominio.cu.
_pop3s._tcp.dominio.cu. IN SRV 0 1 995 mail.dominio.cu.
_imaps._tcp.dominio.cu. IN SRV 5 0 993 mail.dominio.cu.
_caldavs._tcp.dominio.cu. IN SRV 5 0 443 mail.dominio.cu.
; Lets Encrypt records
_acme-challenge.dominio.cu. IN TXT "kzVNNLb5zvWxxiW30WbdD54OMYO5gbXRmqmpKPHihmQ"
; DKIM records
_domainkey.dominio.cu. IN TXT "o=~"
_adsp._domainkey.dominio.cu. IN TXT "dkim=unknown"
mail._domainkey.dominio.cu. IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA43OObSbPwrEb2FuHpjYAkeGftJEA8zLW9jYB4SdscFBoRfD/XlQ+/40JkcbYeEifInSD/rteWYPnTBYHqfooF5QPAUtl0qzU2/Udi2CAROaImFt1MLJySTY6wVcVae0KRWc5EkRuUmyeqXYQjrhCK6mFhhjhGcOV5YsIb1uD2mqcm7C658Bmtkuc/1559W+CC+QGJ1ck3VkpWn"
"E0kAVWUD0leIYFhBj2/Yy2iCtvXDAVnAsSS/RFuleU9lbAt7ty7+cNOw0dAxqYwvbKUoF+rgTk2NC+K6TIUBY2gV5QNT2ris59j8x7a0nYsEHtTjIERxdXo0gf2wtBmJVdDAysbQIDAQAB" )
; DMARC records
_dmarc.dominio.cu. IN TXT "v=DMARC1; p=none; adkim=r; aspf=r; rf=afrf; sp=none"
; CNAME
ns IN CNAME ns1
smtp IN CNAME mail
pop IN CNAME mail
pop3 IN CNAME mail
imap IN CNAME mail
; A records
ns1 IN A 200.55.1.2
ns2 IN A 190.6.2.186
mail IN A 200.55.1.3
jabber IN A 200.55.1.2
; Additional A records
@ IN A 200.55.1.2
www IN A 200.55.1.2
Pasamos a configurar la Zona de Cuba
nano /etc/bind/dominio.cu.zone.cuba
$ORIGIN dominio.cu.
$TTL 7200
@ IN SOA ns2.dominio.cu. sysadmin.dominio.cu. (
2018041801 ; serial number
3600 ; refresh
900 ; retry
1209600 ; expire
7200 ; ttl
)
; Name servers
IN NS ns1.dominio.cu.
IN NS ns2.dominio.cu.
; MX records
IN MX 10 mail.dominio.cu.
; TXT records
IN TXT "v=spf1 a mx -all"
IN TXT "Empresa de Administradores Cuba"
IN TXT "IT Support: menganitoperes"
IN TXT "Voice: +53-(PROVINCIA)TELEFONO"
IN TXT "E-Mail: [email protected]"
; SRV records
_jabber._tcp.dominio.cu. IN SRV 5 0 5269 jabber.dominio.cu.
_xmpp-server._tcp.dominio.cu. IN SRV 5 0 5269 jabber.dominio.cu.
_conference._tcp.dominio.cu. IN SRV 5 0 5269 jabber.dominio.cu.
_xmpp-client._tcp.dominio.cu. IN SRV 5 0 5269 jabber.dominio.cu.
_submission._tcp.dominio.cu. IN SRV 5 0 587 mail.dominio.cu.
_pop3s._tcp.dominio.cu. IN SRV 0 1 995 mail.dominio.cu.
_imaps._tcp.dominio.cu. IN SRV 5 0 993 mail.dominio.cu.
_caldavs._tcp.dominio.cu. IN SRV 5 0 443 mail.dominio.cu.
; Lets Encrypt records
_acme-challenge.dominio.cu. IN TXT "kzVNNLb5zvWxxiW30WbdD54OMYO5gbXRmqmpKPHihmQ"
; DKIM records
_domainkey.dominio.cu. IN TXT "o=~"
_adsp._domainkey.dominio.cu. IN TXT "dkim=unknown"
mail._domainkey.dominio.cu. IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA43OObSbPwrEb2FuHpjYAkeGftJEA8zLW9jYB4SdscFBoRfD/XlQ+/40JkcbYeEifInSD/rteWYPnTBYHqfooF5QPAUtl0qzU2/Udi2CAROaImFt1MLJySTY6wVcVae0KRWc5EkRuUmyeqXYQjrhCK6mFhhjhGcOV5YsIb1uD2mqcm7C658Bmtkuc/1559W+CC+QGJ1ck3VkpWn"
"E0kAVWUD0leIYFhBj2/Yy2iCtvXDAVnAsSS/RFuleU9lbAt7ty7+cNOw0dAxqYwvbKUoF+rgTk2NC+K6TIUBY2gV5QNT2ris59j8x7a0nYsEHtTjIERxdXo0gf2wtBmJVdDAysbQIDAQAB" )
; DMARC records
_dmarc.dominio.cu. IN TXT "v=DMARC1; p=none; adkim=r; aspf=r; rf=afrf; sp=none"
; CNAME
ns IN CNAME ns1
smtp IN CNAME mail
pop IN CNAME mail
pop3 IN CNAME mail
imap IN CNAME mail
; A records
ns1 IN A 200.55.1.2
ns2 IN A 190.6.2.186
mail IN A 200.55.1.3
jabber IN A 190.6.2.186
; Additional A records
@ IN A 190.6.2.186
www IN A 190.6.2.186
Explicación de la zona:
- El SOA debe cumplir el formato de la rfc1982 podemos usar YEAR-MES-DIA-NUMERO es decir 2018041801, no debe pasarte de esta cantidad de caracteres.
- Los Registros SPF se pone el registro TXT correspondiente para nuestra red y algunas informaciones de nuestra empresa
- Los Registros SRV estan definidos cumpliendo las RFC internacionales, se ponen en caso de que se habré para la red externa el correo y el jabber
- Tambien ponemos en su momento el registro TXT que nos manda a crear cuando saquemos el certificado Wildcard de Let’s Encrypt
- Los Registros DKIM y DMARC son todos aquellos que se agregan cuando habilitamos esas comprobaciones en nuestro servidor de correo
- Notaran que de la vista de Internet a la Vista Nacional solo se cambia los datos del SOA y en los IPs, ya que lo que se hace establece que los servicios salgan por el IP nacional para optimizar el consumo de los enlaces, mantenimos el IP del servidor de correo para no tener conflicto
Pasamos a configurar las Zonas Inversa
nano /etc/bind/dominio.cu.reverse1.zone
$ORIGIN 1.55.200.in-addr.arpa.
$TTL 7200
@ IN SOA ns1.dominio.cu. syadmin.dominio.cu. (
2018041801 ; serial number
3600 ; refresh
900 ; retry
1209600 ; expire
7200 ; ttl
)
; Name servers
IN NS ns1.dominio.cu.
IN NS ns2.dominio.cu.
; CNAME records
2 IN CNAME 2.0/29.1.55.200.in-addr.arpa.
3 IN CNAME 3.0/29.1.55.200.in-addr.arpa.
nano /etc/bind/dominio.cu.reverse2.zone
$ORIGIN 0/29.1.55.200.in-addr.arpa.
$TTL 7200
@ IN SOA ns1.dominio.cu. syadmin.dominio.cu. (
2018041801 ; serial number
3600 ; refresh
900 ; retry
1209600 ; expire
7200 ; ttl
)
; Name servers
IN NS ns1.dominio.cu.
IN NS ns2.dominio.cu.
; PTR records
2 IN PTR ns1.dominio.cu.
3 IN PTR mail.dominio.cu.nano /etc/bind/dominio.cu.reverse3.zone
$ORIGIN 2.6.190.in-addr.arpa.
$TTL 7200
@ IN SOA ns1.dominio.cu. syadmin.dominio.cu. (
2018041801 ; serial number
3600 ; refresh
900 ; retry
1209600 ; expire
7200 ; ttl
)
; Name servers
IN NS ns1.dominio.cu.
IN NS ns2.dominio.cu.
; CNAME records
186 IN CNAME 186.184/29.2.6.190.in-addr.arpa.nano /etc/bind/dominio.cu.reverse4.zone
$ORIGIN 184/29.2.6.190.in-addr.arpa.
$TTL 7200
@ IN SOA ns1.dominio.cu. syadmin.dominio.cu. (
2018041801 ; serial number
3600 ; refresh
900 ; retry
1209600 ; expire
7200 ; ttl
)
; Name servers
IN NS ns1.dominio.cu.
IN NS ns2.dominio.cu.
; PTR records
186 IN PTR ns2.dominio.cu.
Comprobamos las configuraciones
named-checkconf -z /etc/bind/named.conf
named-checkzone dominio.cu /etc/bind/dominio.cu.zone
named-checkzone dominio.cu /etc/bind/dominio.cu.zone.cuba
named-checkzone 1.55.200.in-addr.arpa /etc/bind/dominio.cu.reverse1.zone
named-checkzone 0/29.1.55.200.in-addr.arpa /etc/bind/dominio.cu.reverse2.zone
named-checkzone 2.6.190.in-addr.arpa /etc/bind/dominio.cu.reverse3.zone
named-checkzone 184/29.2.6.190.in-addr.arpa /etc/bind/dominio.cu.reverse4.zone
Reiniciamos el Bind
service bind9 restart
Comprobacion del Servicio
Como lo dice esto es para comprobar que lo que hicimos lo hicimos bien y no un dedaso...
dig dominio.cu. @200.55.1.2 ANY +norec +short
host -t any dominio.cu 200.55.1.2
nslookup -q=any dominio.cu 200.55.1.2
nslookup 200.55.1.2 200.55.1.2
Habilitar el inicio automatico de Bind
update-rc.d bind9 enable
systemctl enable bind9Recuerden dar los datos a su ISP a la hora de solicitar tu DNS, tienes que darle los fqdn y ip es decir
ns1.dominio.cu IN A 200.55.1.2
ns2.dominio.cu IN A 190.6.2.186
Y ya de esta tenemos el DNS listo para ser consultado por los DNS internacionales







No comments yet