Bueno Actualizando mi manual de DNS con Delegación de Zona aca les dejo el mio recien acabado de instalar para que se guíen por el
Bueno antes de seguir para que tenga la idea e entiendan los IP que hay y cual es mi zona
Mi Zona es 200.0.0.0/29, donde mi DNS esta delegado al ip 200.0.0.3, debemos recordar que el hostname debe ser el que cuando Etecsa le hizo la delegacion de zona tienen que mantenerlo pues puede dar problema en este caso yo selecione el hostname mail.dominio.cu. Es decir en Etecsa deben tener mas o menos esta configuracion
dominio.cu. IN NS mail.dominio.cu. mail.dominio.cu. IN A 200.0.0.3
Bueno dejemos ya el bla bla bla e Instalemos.
Instalacion del DNS con delegacion de zona /29
Creamos el Usuario NSD
useradd -r nsd
Instalamos el NSD
apt-get install nsd ldnsutils haveged
Creamos los SSL Key y Certificados para mejorar la seguridad de la comunicacion
nsd-control-setup
Creamos la key de seguridad para transfert a DNS secundario
dd if=/dev/random of=/dev/stdout count=1 bs=32 | base64
Note: Aca anotamos la ultima linea que es la que nos interesa
Creamos las carpetas donde se guardaran las zonas y las Basedatos
cd /etc/nsd mkdir zones db
Configuracion del DNS
nano /etc/nsd/nsd.conf
server: do-ip4: yes do-ip6: no port: 53 ip-address: 200.0.0.3 debug-mode: no verbosity: 0 hide-version: yes username: nsd zonesdir: "/etc/nsd/zones" logfile: "/var/log/nsd.log" pidfile: "/run/nsd/nsd.pid" database: "/etc/nsd/db/nsd.db" difffile: "/etc/nsd/db/ixfr.db" xfrdfile: "/etc/nsd/db/xfrd.state" tcp-count: 100 tcp-timeout: 120 tcp-query-count: 0 ipv4-edns-size: 4096 statistics: 3600 xfrd-reload-timeout: 1 zonefiles-check: yes remote-control: control-enable: yes control-interface: 127.0.0.1 control-port: 8952 server-key-file: "/etc/nsd/nsd_server.key" server-cert-file: "/etc/nsd/nsd_server.pem" control-key-file: "/etc/nsd/nsd_control.key" control-cert-file: "/etc/nsd/nsd_control.pem" key: name: "dominiokey" algorithm: hmac-sha256 secret: "7JesUsZvTRARESFizPuSwK8M8xgMSNS245F866jpAkc=" zone: name: "dominio.cu" zonefile: "dominio.cu.zone.signed" provide-xfr: 200.0.0.0/29 NOKEY zone: name: "0.0.200.in-addr.arpa" zonefile: "dominio.cu.reverse1.zone" provide-xfr: 200.0.0.0/29 NOKEY zone: name: "0/29.0.0.220.in-addr.arpa" zonefile: "dominio.cu.reverse2.zone" provide-xfr: 200.0.0.0/29 NOKEY
nano /etc/nsd/zones/dominio.cu.zone
$ORIGIN dominio.cu. $TTL 1d @ IN SOA mail.dominio.cu. sysadmin.dominio.cu. ( 2016090801 ; serial number 3600 ; refresh 900 ; retry 1209600 ; expire 1800 ; ttl ) ; Name servers IN NS ns1.dominio.cu. ; MX servers IN MX 10 mail.dominio.cu. ; SPF records IN SPF "v=spf1 mx -all" ; 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. _conferencia._tcp.dominio.cu. IN SRV 5 0 5269 jabber.dominio.cu. _xmpp-client._tcp.dominio.cu. IN SRV 5 0 5269 jabber.dominio.cu. ; TXT records IN TXT "v=spf1 mx -all" IN TXT "Empresa Periquito el Cojo" IN TXT "E-Mail: sysadmin at dominio.cu" IN TXT "Contacto: +53-(7)-etecsa" ; DKIM records _domainkey.dominio.cu. IN TXT "o=~; [email protected]" _adsp._domainkey.dominio.cu. IN TXT "dkim=unknown" mail._domainkey.dominio.cu. IN TXT "v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9CVAyNCgcU0oFONDFXz5vzcIfKqSwVwPBu653sn5b+71ddPVu/kONJuzOBqigGWhey0qZbt+5THJtKqdTnQ9dOUfhBrAkU3zjaXr210gusWKIQf6Y91iuskMo59XYvlaA98gD8S+gpvYHjAAHSJa93hf+/RK8Rh6WnjmwkriRKwIDAQAB" dkim._domainkey.dominio.cu. IN TXT "v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9CVAyNCgcU0oFONDFXz5vzcIfKqSwVwPBu653sn5b+71ddPVu/kONJuzOBqigGWhey0qZbt+5THJtKqdTnQ9dOUfhBrAkU3zjaXr210gusWKIQf6Y91iuskMo59XYvlaA98gD8S+gpvYHjAAHSJa93hf+/RK8Rh6WnjmwkriRKwIDAQAB" ; DMARC records _dmarc.dominio.cu. IN TXT "v=DMARC1; p=none; rua=mailto: [email protected]; ruf=mailto: [email protected]; adkim=r; aspf=r" ; CNAME records ns IN CNAME mail ns1 IN CNAME mail webmail IN CNAME mail ; A records router IN A 200.0.0.1 mail IN A 200.0.0.3 jabber IN A 200.0.0.3 ; Additional A records @ IN A 200.0.0.3 www IN A 200.0.0.3
nano /etc/nsd/zones/dominio.cu.reverse1.zone
$ORIGIN 0.0.200.in-addr.arpa. $TTL 1800 @ IN SOA mail.dominio.cu. syadmin.dominio.cu. ( 2016090801 ; serial number 3600 ; refresh 900 ; retry 1209600 ; expire 1800 ; ttl ) ; Name servers IN NS mail.dominio.cu. ; CNAME records 1 IN CNAME 1.0/29.0.0.200.in-addr.arpa. 3 IN CNAME 3.0/29.0.0.200.in-addr.arpa.
nano /etc/nsd/zones/dominio.cu.reverse2.zone
$ORIGIN 0/29.0.0.200.in-addr.arpa. $TTL 1800 @ IN SOA mail.dominio.cu. syadmin.dominio.cu. ( 2016090801 ; serial number 3600 ; refresh 900 ; retry 1209600 ; expire 1800 ; ttl ) ; Name servers IN NS mail.dominio.cu. ; PTR records 1 IN PTR router.dominio.cu. 3 IN PTR mail.dominio.cu.
Encriptando nuestro DNS
Para hacerlo usaremos DNSSEC, que no es mas que el encryptamiento de nuestro DNS con una Public Key.
cd /etc/nsd/zones export ZSK=`ldns-keygen -a RSASHA1-NSEC3-SHA1 -b 1024 dominio.cu` export KSK=`ldns-keygen -k -a RSASHA1-NSEC3-SHA1 -b 2048 dominio.cu` ldns-signzone -n -p -s $(head -n 1000 /dev/random | sha1sum | cut -b 1-16) dominio.cu.zone $ZSK $KSK ldns-key2ds -n -1 dominio.cu.zone.signed && ldns-key2ds -n -2 dominio.cu.zone.signed
Revisamos la configuracion del nsd
nsd-control reconfig nsd-control reload dominio.cu service nsd 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.0.0.3 DNSKEY +multiline +norec dig dominio.cu. @200.0.0.3 ANY +norec +short host -t any dominio.cu 200.0.0.3 nslookup -q=any dominio.cu 200.0.0.3 nslookup 200.0.0.3 200.0.0.3
Actualizar Zone Records
En caso que necesites actualizar su DNS para agregar algo o cambiar algo recuerden cambiar el SOA:
The SOA serial is in the following format. YYYYMMDDnn
Ejemplo:
2016090801
creamos este script para actualizar nuestra zona encryptada de esta forma
nano /usr/local/bin/nsdact
#!/bin/bash PDIR=`pwd` ZONEDIR="/etc/nsd/zones" #location of your zone files DOMAIN=$1 cd $ZONEDIR KSK=$(basename $(grep -r "`grep '(ksk)' $DOMAIN.zone.signed | cut -f3-10`" K$DOMAIN.*.key | cut -d':' -f1) .key) ZSK=$(basename $(grep -r "`grep '(zsk)' $DOMAIN.zone.signed | cut -f3-10`" K$DOMAIN.*.key | cut -d':' -f1) .key) /usr/bin/ldns-signzone -n -p -s $(head -n 1000 /dev/random | sha1sum | cut -b 1-16) -f $ZONEDIR/$DOMAIN.zone.signed $DOMAIN.zone $ZSK $KSK /usr/sbin/nsd-control reload $DOMAIN /usr/sbin/nsd-control notify $DOMAIN cd $PDIR
chmod +x /usr/local/bin/nsdact
nsdact dominio.cu
Y ya de esta forma actualizamos nuestra delegacion de Zona.
Fuente: Digital Ocean | https://www.digitalocean.com/community/tutorials/how-to-set-up-dnssec-on-an-nsd-nameserver-on-ubuntu-14-04
Dejar una contestacion