- https://www.fpgenred.es/DNS/
- https://labex.io/lesson/what-is-dns
- https://drive.google.com/file/d/1iD_rmCWLLhGrvJxraDkRTyNUOZxe7IKJ/view?usp=sharing #componentes DNS y flujo de una consulta
- https://www.cloudflare.com/es-es/learning/dns/what-is-dns/
- https://www.cloudflare.com/es-es/learning/dns/dns-records/ # registros DNS
- https://www.cloudflare.com/es-es/learning/email-security/dmarc-dkim-spf/ # SPF DKIM DMARC | registros TXT
- https://www.cloudflare.com/es-es/learning/dns/dnssec/how-dnssec-works/ # DNSSEC
sudo apt install bind9 dnsutils
sudo nvim /etc/bind/named.conf.options
dnssec-validation auto;
#Firmar la zona
dnssec-keygen -a ECDSAP256SHA256 -n ZONE midominio.com
dnssec-signzone midominio.com.db
#Publicar el DS en el registrador, (Sin esto DNSSEC NO funciona)
dnssec-dsfromkey -2 Kmidominio.com.+013+12345.key
midominio.com. IN DS 12345 13 2 A1B2C3D4E5F6...
- 12345 → Key ID
- 13 → Algoritmo (ECDSA)
- 2 → Digest SHA-256
- A1B2… → Hash (lo importante)
crea un registro DS con esos datos tal cual
Botón DNSSEC → Enable / Activate
dig +dnssec cloudflare.com # devuelve registro RRSIG
dig +dnssec bancolombia.com # NO devuelve registro RRSIG
drill -D cloudflare.com # devuelve registro RRSIG
delv cloudflare.com # fully validated, devuelve registro RRSIG
delv bancolombia.com # unsigned answer, NO devuelve registro RRSIG
dig cloudflare.com DNSKEY +dnssec +multiline # devuelve registro DNSKEY
dig cloudflare.com DS +dnssec +multiline # devuelve registro DS
drill DNSKEY cloudflare.com # devuelve registro DNSKEY
drill DS cloudflare.com # devuelve registro DS
- https://www.cloudflare.com/es-es/learning/dns/dns-over-tls/ # DNSOverTLS versus DNSOverHTTPS
- https://blog.cloudflare.com/announcing-encrypted-client-hello/ # ECH Encrypted Client Hello TLS | SNI TLS | Server Name Indication extension |
- Encrypted Client Hello (ECH) es una extensión del protocolo de seguridad TLS 1.3 desarrollado colaborativamente por IETF y Cloudflare, y con apoyo de implementaciones en navegadores por Google y Mozilla.
1 https://cloudflare-ech.com/cdn-cgi/trace 2 https://test.defo.ie/ 3 https://defo.ie/ech-check.php 4 https://tls-ech.dev
- https://blog.cloudflare.com/oblivious-dns/ # Oblivious DNS over HTTPS, or ODoH
host google.com# resuelve dns y dns inversonslookup google.com# resuelve dns y dns inversoresolvectl query google.com# resuelve dns y dns inversodig -x 142.251.132.174# resuelve dns y dns inversodrill -x 142.251.132.174# resuelve dns y dns inversodig +short google.com AAAA# consulta registros dnsdrill mx cloudflare.com# consulta registros dnsnslookup -type=AAAA cloudflare.com# consulta registros dnsdoggo cloudflare.com A AAAA MX NS SOA TXT --time# consulta registros dns- https://www.cual-es-mi-ip.net/dns-lookup # consulta registros dns online
dig +trace cloudflare.comdrill -T cloudflare.com
-
resolvectl status# consultar mi servidor dns -
resolvectl status wlp2s0# consultar mi servidor dns por interfaz -
sudo resolvectl dns wlp2s0 1.1.1.3 1.0.0.3# cambiar mi servidor dns -
sudo resolvectl flush-caches# elimina el cache dns local
- Se pierde al reiniciar
- Se pierde al reconectar Wi-Fi
-
sudo resolvectl dnsovertls wlp2s0 yes# habilitar DNS over TLS (DoT) port 853 -
sudo resolvectl dnssec wlp2s0 yes# habilitar DNSSec -
drill -s dnskey cloudflare.com# DNSKEY y DS -
drill -D cloudflare.com# RRSIG -
drill -TD cloudflare.com# Realiza rastreo DNSSEC desde los servidores root hasta un nombre de dominio
sudo nvim /etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.3#family.cloudflare-dns.com 1.0.0.3#family.cloudflare-dns.com
DNSOverTLS=yes
DNSSEC=yes
sudo systemctl restart systemd-resolved# reiniciar para aplicar los cambios
👉 En Ubuntu 22.04+ systemd-resolved actúa como stub resolver.
Navegador
↓
127.0.0.53 (systemd-resolved)
↓
TLS cifrado (TCP/853)
↓
1.1.1.3
To Action From
-- ------ ----
853 ALLOW OUT Anywhere
443 ALLOW OUT Anywhere
- restart NetworkManager
https://blog.cloudflare.com/introducing-1-1-1-1-for-families/
- bind9
- dnsmasq (dns y DHCP)
- powerdns
- unbound
status systemd-resolved.service
#!/bin/bash
for r in $(dig . NS +short | sort); do
printf "%-22s IPv4: %-15s IPv6: %s\n" \
"$r" \
"$(dig +short A $r | tr '\n' ' ')" \
"$(dig +short AAAA $r | tr '\n' ' ')"
done
./root-servers-DNS.sh
a.root-servers.net. IPv4: 198.41.0.4 IPv6: 2001:503:ba3e::2:30
b.root-servers.net. IPv4: 170.247.170.2 IPv6: 2801:1b8:10::b
c.root-servers.net. IPv4: 192.33.4.12 IPv6: 2001:500:2::c
d.root-servers.net. IPv4: 199.7.91.13 IPv6: 2001:500:2d::d
e.root-servers.net. IPv4: 192.203.230.10 IPv6: 2001:500:a8::e
f.root-servers.net. IPv4: 192.5.5.241 IPv6: 2001:500:2f::f
g.root-servers.net. IPv4: 192.112.36.4 IPv6: 2001:500:12::d0d
h.root-servers.net. IPv4: 198.97.190.53 IPv6: 2001:500:1::53
i.root-servers.net. IPv4: 192.36.148.17 IPv6: 2001:7fe::53
j.root-servers.net. IPv4: 192.58.128.30 IPv6: 2001:503:c27::2:30
k.root-servers.net. IPv4: 193.0.14.129 IPv6: 2001:7fd::1
l.root-servers.net. IPv4: 199.7.83.42 IPv6: 2001:500:9f::42
m.root-servers.net. IPv4: 202.12.27.33 IPv6: 2001:dc3::35
👀 DNSOverTLS SNI del TLS handshake Client Hello. ECH Encrypted Client Hello | ISP no pueder ver las consultas de los dominios, todo va encriptado desde tu maquina hasta cloudflare, solo puede ver el "outer SNI". de cloudflare, el "inner SNI" va protegido.
El DNSOver HTTPS de firefox, deja pasar en texto claro, el SNI del TLS handshake Client Hello, cualquiera en el medio puede ver los dominios consultados 👀