¿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.

  • Deshabilitar la asignación de DNS con el túnel Airport Extreme IPv6
  • Cómo hacer que los files de índice de Spotlight se compartan por AFP
  • HAVP y OS Xserver
  • Xserve (s): ¿Debería reinstalar OS X?
  • Mail.app sigue intentando conectarse al viejo server de correo
  • Cómo hacer una copy de security de OS X Server (Mavericks)
  • 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?

  • chmod 760 o 777, ¿podría ser esto un problema de security?
  • ¿Cómo debo copyr el entorno del server OS X a otra máquina para la actualización?
  • ¿Cómo resolver DNS también los subdominios al mismo host que el dominio mismo usando comodines?
  • ¿Qué opción de recuperación de FileVault 2 es más segura: almacenar la key de recuperación en iCloud o savela en alguna parte?
  • Riesgo de security de los auriculares
  • La window de inicio de session no oscurece mi pantalla?
  • 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).