¿Cómo configurar macOS Server para evitar la transferencia de zona DNS?

La documentation de macOS Server 10.12.6 dice que debemos evitar transferencias arbitrarias de zonas fuera de nuestro server DNS, y que la manera de hacerlo es con el puerto 53 de firewall para cualquier persona que no esté en nuestra LAN, con excepciones específicas para nuestros serveres DNS secundarios.

Lo que no mencionan es que el puerto 53 es a donde va todo el tráfico de DNS, por lo que el cortafuegos de ese puerto también cierra nuestros services de DNS para cualquier persona en el path. Sí, tenemos conexiones VPN; no, no se aplican y no queremos comenzar.

  • Dropbox + Mac Mini Server = Problemas de synchronization
  • DNS: ¿Los dominios de búsqueda no funcionan correctamente?
  • Servidor FTP Servidor OS X
  • ¿Se puede configurar Airport Extreme para trabajar con un service DNS dynamic gratuito?
  • macOS, launchctl y dnsmasq para el spoofing de dominio de localhost
  • Resolución DNS fuera de línea en Sierra
  • Entonces, la pregunta es: 1) ¿cómo le indicamos al server que haga una distinción entre las transferencias y las antiguas requestes DNS? 2) si eso fuera simple, ¿por qué la documentation de Apple no dice que hacer eso ? Busqué y encontré las instrucciones para hacer esto con un viejo y simple BIND en cualquier lugar less una Mac, y es el mismo file que la documentation me dijo que debía editar hace dos semanas para solucionar un problema de security diferente.

    /Applications/Server.app/Contents/ServerRoot/private/etc/named.conf

    Mi siguiente paso es editar el file, intentar atacar mi propio server y, si falla, marcarlo como hecho. En ese caso, puedo volver y responder mi propia pregunta. Pero esto requiere averiguar cómo hacer un ataque de transferencia de zona, y me deja al principio si sigo las instrucciones vainilla BIND y no funciona. ¿Alguien tiene alguna idea?

  • ¿Puede cerrarse forzosamente dañar la security del sistema operativo?
  • Se requiere usuario en la configuration de Exchange Profile Manager
  • ¿Cómo puedo forzar que la consulta DNS pnetworkingeterminada funcione en modo TCP?
  • ¿Cómo puedo encriptar fotos en un iPhone 3GS / 4?
  • Ocultar / bloquear paneles de preferences del sistema?
  • Otorga privilegio sudo no administrativo, pero `~` es su propio hogar ~
  • One Solution collect form web for “¿Cómo configurar macOS Server para evitar la transferencia de zona DNS?”

    Prefacio: el file / Aplicaciones / Servidor.app/Contents/ServerRoot/private/etc/named.conf mencionado en su pregunta no es el file de configuration utilizado por el server macOS. En su lugar, el file se encuentra en /Library/Server/named/named.conf .

    El file en ServerRoot es el file named.conf pnetworkingeterminado más o less vacío. En la configuration inicial al iniciar Server.app por primera vez, ServerRoot named.conf se copy en / Library / Server / named / .


    Los ACL determinan los permissions de acceso a varias funciones del server DNS. El acl preconfigurado en el server macOS es com.apple.ServerAdmin.DNS.public .

    Dependiendo de su configuration en el panel principal de DNS, la ACL com.apple.ServerAdmin.DNS.public se rellena con networkinges:

    • Si las búsquedas se realizan para todos los clientes:

      enter image description here

      la ACL respectiva en named.conf se ve así:

      acl "com.apple.ServerAdmin.DNS.public" { any; }; 
    • Si las búsquedas se realizan para algunos clientes (solo ejemplo):

      enter image description here

      la ACL respectiva en named.conf se ve así:

       acl "com.apple.ServerAdmin.DNS.public" { 172.16.0.0/16; localhost; localnets; }; 

      La única ACL disponible en named.conf después de la configuration inicial es com.apple.ServerAdmin.DNS.public .

    Esta ACL por defecto permite búsquedas en la sección de vista para todas las networkinges miembro:

     view "com.apple.ServerAdmin.DNS.public" { ⬅︎ zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; 

    y también permite transferencias de zona en la sección view> zone [zone_name⁣]> allow-transfers para todas las networkinges miembro.

     ... zone "test.home" IN { type master; file "db.test.home"; allow-transfer { ⬅︎ com.apple.ServerAdmin.DNS.public; ⬅︎ }; allow-update { none; }; ... 

    Para separar clientes de búsqueda de clientes de transferencia de zona (esclavos AKA) simplemente cree un nuevo ACL "esclavos" (ejemplo):

     acl "com.apple.ServerAdmin.DNS.public" { 172.16.0.0/16; localhost; localnets; }; acl "slaves" { 172.16.1.8/32; #first DNS slave 172.16.1.18/32; #second DNS slave }; 

    Para restringir una transferencia de zona para una zona en particular a esclavos solamente, modifique la ACL de la directiva allow-transfer a los esclavos:

     ... zone "test.home" IN { type master; file "db.test.home"; allow-transfer { ⬅︎ slaves; ⬅︎ }; allow-update { none; }; ... 

    ¡No incluya las flechas accidentalmente y vuelva a iniciar el service DNS después!


    Un enfoque más avanzado y seguro es usar keys / secretos compartidos que se explican aquí: Usar TSIG para habilitar Transferencias de Zona seguras entre los serveres de Bind 9.x. Sin embargo, no conseguí que esto funcionara en Sierra.


    Para comprobar si las transferencias de zona son posibles para el uso de hosts arbitrarios en el cliente (atacante):

     dig @dns_server_ip example.org axfr 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).