
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