Cómo Configurar DNS sobre HTTPS en macOS

Esta guía le ayudará a configurar DNS sobre HTTPS (DoH) en su sistema macOS, proporcionando instrucciones completas desde la configuración básica hasta la configuración avanzada.

Requisitos Previos

  • macOS 10.15 (Catalina) o superior
  • Privilegios de administrador
  • Conexión de red estable
  • Conocimientos básicos de línea de comandos

Configuración a Nivel de Sistema

Paso 1: Usando Configuración del Sistema

  1. Haga clic en el menú Apple
  2. Seleccione “Configuración del Sistema” (o “Preferencias del Sistema”)
  3. Haga clic en “Red”
  4. Seleccione la conexión de red actual
  5. Haga clic en “Detalles…”
  6. Seleccione la pestaña “DNS”

Paso 2: Configurar Servidores DNS

  1. Haga clic en el botón ”+” para añadir servidores DNS
  2. Ingrese las siguientes direcciones de servidor:
    1.1.1.1
    1.0.0.1
    2606:4700:4700::1111
    2606:4700:4700::1001

Paso 3: Configuración mediante Terminal

Abra Terminal y ejecute los siguientes comandos:

# Ver configuración DNS actual
scutil --dns

# Configurar servidores DNS
networksetup -setdnsservers Wi-Fi 1.1.1.1 1.0.0.1

# Verificar configuración
networksetup -getdnsservers Wi-Fi

Usando Clientes de Terceros

DNSCrypt-Proxy

  1. Instalación
# Instalar usando Homebrew
brew install dnscrypt-proxy

# O instalación manual
curl -L https://github.com/DNSCrypt/dnscrypt-proxy/releases/latest/download/dnscrypt-proxy-macos-amd64.tar.gz | tar xz
  1. Configuración

Edite el archivo dnscrypt-proxy.toml:

listen_addresses = ['127.0.0.1:53']
server_names = ['cloudflare', 'google']
doh_servers = true
require_dnssec = true
require_nolog = true
require_nofilter = true
force_tcp = false
timeout = 2500
keepalive = 30
  1. Iniciar Servicio
# Instalar servicio
sudo brew services start dnscrypt-proxy

# O iniciar manualmente
sudo dnscrypt-proxy -service install
sudo dnscrypt-proxy -service start

Perfiles DNS Cifrados

  1. Crear Perfil de Configuración

Cree un archivo .mobileconfig:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>DNSSettings</key>
            <dict>
                <key>DNSProtocol</key>
                <string>HTTPS</string>
                <key>ServerURL</key>
                <string>https://cloudflare-dns.com/dns-query</string>
            </dict>
            <key>PayloadDescription</key>
            <string>Configurar DNS sobre HTTPS</string>
            <key>PayloadDisplayName</key>
            <string>Configuración DNS</string>
            <key>PayloadIdentifier</key>
            <string>com.example.dns</string>
            <key>PayloadType</key>
            <string>com.apple.dnsSettings.managed</string>
            <key>PayloadUUID</key>
            <string>A1B2C3D4-E5F6-G7H8-I9J0-K1L2M3N4O5P6</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Configuración de DNS sobre HTTPS</string>
    <key>PayloadDisplayName</key>
    <string>Configuración DoH</string>
    <key>PayloadIdentifier</key>
    <string>com.example.doh</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>Q1R2S3T4-U5V6-W7X8-Y9Z0-A1B2C3D4E5F6</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>
  1. Instalar Perfil
    • Haga doble clic en el archivo de configuración
    • Siga las indicaciones del sistema para instalar
    • Verifique en Configuración del Sistema

Verificar Configuración

Método 1: Usando Terminal

# Probar resolución DNS
dig example.com @127.0.0.1

# Verificar DNSSEC
dig example.com @127.0.0.1 +dnssec

# Verificar servidor DoH
dig whoami.cloudflare CH TXT @127.0.0.1

Método 2: Usando Herramientas del Sistema

  1. Abra “Utilidad de Red”
  2. Seleccione “Búsqueda”
  3. Ingrese el nombre de dominio para probar
  4. Verifique los resultados de la resolución

Método 3: Prueba en Línea

  1. Visite el sitio de prueba de fuga DNS
  2. Ejecute la prueba estándar
  3. Verifique el enrutamiento de las solicitudes DNS

Solución de Problemas

Problemas Comunes

  1. Falla en la Resolución DNS

    • Verifique la conexión de red
    • Confirme la configuración DNS
    • Reinicie el servicio de red
    • Limpie la caché DNS
  2. Problemas de Rendimiento

    • Elija el servidor más cercano
    • Optimice la configuración de caché
    • Monitoree el tiempo de respuesta
    • Verifique los recursos del sistema
  3. Problemas con Perfil de Configuración

    • Verifique el formato del archivo
    • Confirme la configuración de permisos
    • Reinstale la configuración
    • Actualice la versión del sistema

Diagnóstico del Sistema

  1. Diagnóstico de Red
# Probar conectividad de red
ping 1.1.1.1

# Verificar enrutamiento
traceroute 1.1.1.1

# Ver estado de la red
networksetup -listallnetworkservices
  1. Diagnóstico DNS
# Limpiar caché DNS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

# Ver configuración DNS
scutil --dns

# Probar resolución DNS
dig +trace example.com

Mejores Prácticas

  1. Selección de Proveedor

    • Evalúe políticas de privacidad
    • Verifique disponibilidad del servicio
    • Considere ubicación geográfica
    • Pruebe velocidad de conexión
  2. Recomendaciones de Seguridad

    • Active DNSSEC
    • Use proveedores confiables
    • Actualizaciones regulares del sistema
    • Monitoree actividad de red
  3. Optimización de Rendimiento

    • Elija servidores más cercanos
    • Optimice configuración de caché
    • Monitoree métricas de rendimiento
    • Mantenimiento regular

Implementación Empresarial

Configuración MDM

  1. Crear Archivos de Configuración

    • Configure parámetros DNS
    • Configure opciones de seguridad
    • Defina alcance de implementación
    • Prepare certificados de firma
  2. Estrategia de Implementación

    • Envíe perfiles de configuración
    • Monitoree estado de implementación
    • Gestione informes de error
    • Actualice configuraciones

Configuración Automatizada

  1. Usando Scripts
#!/bin/bash
# Configurar DoH
configure_doh() {
    # Instalar herramientas necesarias
    brew install dnscrypt-proxy

    # Hacer copia de seguridad de la configuración
    cp /usr/local/etc/dnscrypt-proxy.toml /usr/local/etc/dnscrypt-proxy.toml.bak

    # Iniciar servicio
    brew services start dnscrypt-proxy
}
  1. Usando Herramientas de Gestión de Configuración
# Ejemplo Ansible
- name: Configurar DNS sobre HTTPS
  hosts: macos_clients
  tasks:
    - name: Instalar dnscrypt-proxy
      homebrew:
        name: dnscrypt-proxy
        state: present

    - name: Configurar dnscrypt-proxy
      template:
        src: dnscrypt-proxy.toml.j2
        dest: /usr/local/etc/dnscrypt-proxy.toml

Recursos Adicionales

Notas Importantes

  1. Compatibilidad del Sistema

    • Verifique versión del sistema
    • Confirme requisitos de hardware
    • Pruebe compatibilidad de software
    • Evalúe impacto en rendimiento
  2. Impacto en la Red

    • Monitoree latencia de red
    • Evalúe uso de ancho de banda
    • Considere opciones de respaldo
    • Optimice configuración de enrutamiento
  3. Consideraciones de Seguridad

    • Proteja archivos de configuración
    • Restrinja permisos de acceso
    • Monitoree registros del sistema
    • Auditorías regulares de seguridad
  4. Recomendaciones de Mantenimiento

    • Actualizaciones regulares de software
    • Respaldo de configuraciones
    • Monitoreo de estado del sistema
    • Desarrolle planes de emergencia

Próximos Pasos