DNS.EXE asigna más de 5000 puertos de inmediato

15

Este comando borra todos los puertos UDP abiertos por DNS.EXE

net stop dns

Después de reiniciar el servicio DNS, DNS.EXE asigna más de 5000 puertos.

net start dns

No consume mucha memoria o CPU. Sin embargo, noté / alarme muchos problemas de conexión http / smtp / pop3 al servidor debido a los tiempos de espera. Acabo de examinar y encontré toneladas de puertos abiertos por DNS.EXE. Currports muestra puertos locales UDP de 50000 a 56000, las direcciones locales son :: y las direcciones remotas están vacías. Últimas líneas de netstat: a continuación se muestra un comando:

UDP    [::]:55976             *:*   
UDP    [::]:55977             *:*   
UDP    [::]:55978             *:*     
UDP    [::]:55979             *:*     
UDP    [::]:55980             *:*     
UDP    [::]:55981             *:*     
UDP    [::]:55982             *:*    

No noté estos puertos antes, así que no estoy seguro de que esté bien o no. ¿Qué piensas? Reinicié el servidor y los correos de monitoreo / alerta NO continúan.

Nime Cloud
fuente

Respuestas:

25

Este es un efecto secundario bien conocido de la revisión distribuida a la dirección MS08-037 , ya que la revisión está destinada a disminuir la previsibilidad de los puertos utilizados para las respuestas de DNS.

Puede restringir la cantidad de puertos utilizados definiendo un tamaño de agrupación de sockets más bajo, como se describe en este artículo :

Usando dnscmd.exe

  • Abra un símbolo del sistema elevado (Ejecutar como administrador ...)
  • Problema dnscmd /Config /SocketPoolSize <value>donde <value>hay un número entre 0 y 10000

Usando regedit.exe

  • Abrir regedit.exey expandir la HKLMcolmena.
  • Navegar a SYSTEM\CurrentControlSet\services\DNS\Parameters
  • Si aún no está presente, cree un nuevo DWORDvalor llamadoSocketPoolSize
  • Establecer un valor decimal entre 0 y 10000
  • Reinicie el servicio del servidor DNS: net stop dns && net start dns

Tenga en cuenta que establecer el valor demasiado bajo, efectivamente derrota el propósito de MS08-037

Si está en Windows Server 2008 R2 y solo quiere asegurarse de que DNS no use una cantidad de puntos finales UDP individuales, también puede especificar una lista de rangos de puertos para que DNS no los use:

dnscmd /Config /SocketPoolExcludedPortRanges <start>-<end>
Mathias R. Jessen
fuente
1
El comando para excluir puertos específicos es: dnscmd /config /SocketPoolExcludedPortRanges [start]-[end]reemplazar [inicio] y [fin] con el rango de puertos deseado. También puede editar el valor de registro ' SocketPoolExcludedPortRanges' manualmente (ubicado en la misma clave de registro mencionada anteriormente).
Harrison Smith