DHCP: Asignar Configuración Unicamente a Máquinas del Dominio

Hay una pregunta que he visto varias veces en los foros de soporte, o que me han hecho: “¿Cómo puedo hacer para que las máquinas que no son del Dominio no reciban configuración desde el servicio DHCP?”

Siempre he dado la respuesta “No se puede. Porque para que identifique que pertenece al Dominio o no, primero debe asignarle dirección IP para la comunicación”

Tengo que reconocerlo, estaba equivocado. Se puede hacer, y no es complicado

En casi todos los casos la pregunta estaba relacionada a que si alguna persona externa conectara su propia máquina a la red de la organización, no pudiera ni conectarse a las máquinas, ni salir a Internet

La infraestructura que utilizaré para esta demostración, es la misma de siempre en todas las notas. Solamente utilizaré las siguientes:

  • DC1.ad.guillermod.com.ar: Controlador de Dominio con DNS y servicio DHCP
    Dirección IP: 192.168.1.201/24
  • CL1.ad.guillermod.com.ar: Cliente del Dominio con sistema operativo de escritorio
    Dirección IP: obtenida por DHCP
  • Máquina con sistema operativo de escritorio, en Grupo de Trabajo

Para esta nota estoy usando sistemas operativos Windows Server 2016 y Windows 10, pero es válido también con sistemas operativos anteriores desde Windows Server 2012 en el servidor

He creado una Unidad Organizativa donde he puesto las cuentas de máquina, en este caso dos, pero utilizaré solamente a CL1. Esta configuración se debe a que más adelante utilizaré una Directiva de Grupo (GPO)

En DC1 está configurado el servicio DHCP, con los valores normales para un ambiente de Dominio, nada diferente a lo que se suele hacer: Dirección IP y Máscara de Subred, Puerta de Enlace, Dirección de servidor DNS y sufijo de Dominio de la conexión

Por último, muestro que la máquina CL1, está configurada para obtener configuración IP automáticamente, y lo está haciendo desde el servicio DHCP nombrado antes

Como hemos visto se trata de una configuración normal, sencilla y habitual

Si alguien tuviera dudas en la instalación y configuración del servicio DHCP dejo un enlace a una nota en este mismo blog

Windows Server 2012: Instalando y Configurando DHCP

 

Comento primero un concepto en general poco conocido relacionado a DHCP, y lo que voy a hacer en los próximos pasos

En el servicio DHCP, se pueden crear y utilizar “Vendor Classes” y “User Classes” para que de acuerdo a que el cliente se identifique perteneciendo a una clase determinada, el servicio DHCP le asigne diferentes parámetros de configuración (No dirección IP ni Máscara de Subred)

Las “Vendor Classes” son dependientes del sistema operativo del cliente. Es una opción presente desde Windows Server 2000, pero nunca la he visto utilizada, y ni siquiera en la teoría

En cambio las “User Classes” pueden tener aplicación en algunos casos, ya que las podemos definir a nuestra necesidad y criterio. En este caso definiré una “User Class” y le reservaré todo el rango de direcciones IP del ámbito, con lo cual si una máquina no pertenece a esta “User Class” no recibirá configuración IP

Por supuesto que esta configuración no es 100% segura ya que si alguien accede con su propia máquina, le puede poner configuración IP en forma manual, sólo que antes necesitará conocer los valores que debe configurar
Nota: uno más de los motivos por los que recomiendo nunca usar las direcciones IP privadas clásicas que usan casi todos y por lo tanto son fácilmente adivinables

Comencemos entonces creando una GPO enlazada a la Unidad Organizativa donde están las cuentas de máquina a fin de configurar la «User Class» de las máquinas. Se podría hacer también a nivel de Dominio, ya que normalmente los servidores usan configuración manual

Lo haremos como muestran las siguientes capturas de pantalla, por supuesto cada uno usará los nombres de su preferencia, lo mismo que los parámetros adecuados a su propia red

Asignaremos la “User Class” a través de un “Startup Script” de máquina. No debemos hacerlo por usuario, ya que si no es administrador local no podrá asignar la “User Class”. Recordar que aunque se llame “User Class” es para la máquina, no el usuario

La ubicación del “script” dentro de la GPO, siempre ha causado problemas al que no conoce el tema. Así que usaré un procedimiento “a prueba de …”, que consiste en abrir la carpeta que indica el sistema y crear en la misma el archivo de comandos, luego asignarlo

Simplemente creo un archivo de texto, lo edito, y finalmente cambio la extensión TXT a CMD

El comando para configurar al cliente para que pertenezca a una determinada “User Class” de DHCP es:

IPCONFIG /SetClassID <NombreAdaptadorDeRed> <NombreClase>

En mi caso: IPCONFIG /SetClassID Ethernet MiDominio

Nota: para todo lo que se refiera a nombres de “User Classes” conserven siempre la sintaxis mayúsculas/minúsculas ya que es sensible a esto

Guardamos los cambios, y cambiamos la extension a CMD. Ya podemos cerrar la ventana

Y ahora lo asignamos, como muestran las siguientes capturas de pantalla

Quedará así

Como lo que asignamos es un “Startup Script”, y para que surta efecto inmediato, en CL1, fuerzo la actualización de la GPO, y reincio para que ejecute el “Startup Script”

Luego del reinicio desde un CMD con IPCONFIG /ALL verifico que el cliente ya tiene asignada la “User Class”

Ahora debemos ir a DC1, y configurar el servicio DHCP, para lo cual lo primero a hacer es definir la “User Class” como se muestra a continuación

Debemos escribir en “Display Name”, luego pulsar bajo “ASCII” y poner el nombre. Tranquilos que el “Binary” se completa automáticamente :)

Quedará así

 

Ahora debemos crear la “DHCP Policy”, como se muestra. Cuidado, sobre “Policies” del “Scope”

Agregamos la condición de pertenecer a la “User Class”

Y continuamos con el asistente

Debemos asignarle a la “policy” todo el rango de direcciones IP disponibles en el ámbito

Y los parámetros necesarios: Puerta de Enlace, dirección de servidor DNS y sufijo de Dominio de la conexión

Y finalizamos el asistente

Quedará así en la consola DHCP

En CL1 y desde un CMD ejecutado como administrador ejecuto una renovación completa para ver si hubiera algún problema (IPCONFIG /RELEASE IPCONFIG /RENEW)

 

Y ahora la “prueba de fuego” ¿qué sucede con una máquina que no es cliente del Dominio? ¿le dará o no configuración IP?

Para esto he utilizado una máquina con sistema operativo Windows 10, en Grupo de Trabajo, y como podemos ver, no le asigna ni siquiera dirección IP/Máscara de Subred, simplemente no le responde

Por último, podemos verificar en la consola DHCP que solamente CL1 es quien ha obtenido parámetros de configuración

 

Como hemos visto, contrariamente a lo que yo creía hasta ahora, y además estaba seguro que era así, pues no lo era. Se puede hacer que un servidor DHCP no responda a clientes que no son parte del Dominio

Anuncio publicitario
Publica un comentario o deja una referencia: URL de la referencia.

Comentarios

  • Juan  El 14/02/2017 a las 07:19

    No se visualizan los screenshots

    • Guillermo Delprato  El 14/02/2017 a las 14:23

      Hola Juan, verifico desde otra máquina diferente, e inclusive otro navegador que se ven perfectamente las capturas de pantalla
      Suele suceder cuando hay problemas en la conectividad a Internet o es muy lenta, intenta de nuevo si no haz podido verlas

  • eduar  El 14/02/2017 a las 07:31

    cuando lio cuando con los router se puede hacer mucho mas sencillo.
    un portal cautivo para todos y listo, automaticamente les lanza el portal cautivo y hasta que el portal no los idenfigue no pueden entrar e la red.
    a demas con pfsense puedes dejar una red de acceso a los usuarios no de domio con unas rutas de acceso predeterminadas y a los de dominio otras.
    o mas sencillo aun idenfificacion de bocas dejar las bocas no de domiio identificadas para que entren por defecto en una red y las bocas identificadas como equipos de dominio a otra.

    • Guillermo Delprato  El 14/02/2017 a las 14:30

      Hola eduar, nuevamente estás confundiendo el objetivo de la nota, en ningún momento he planteado que es la única o mejor solución a un problema, simplemente es una
      Y si te parece más sencillo un portal cautivo, redes diferentes u 802.1x ya puedes implementarlo a tu gusto

      • Javier Sola  El 16/02/2017 a las 19:42

        A mi me vinieron a cabeza 3 escenarios donde esto es mas viable de implementar que un portal cautivo. Todo depende del escenario.

      • Guillermo Delprato  El 17/02/2017 a las 07:31

        Hola Javier, yo pienso exactamente lo mismo en cuanto a más fácil. Hay varias opciones posibles con más o menos dificultad de implemntación y también con más o menos seguridad

  • Freddyjgp  El 14/02/2017 a las 13:37

    Esto implica que todos los adaptadores de red deberían tener el mismo nombre no? a menos que pueda manejaar comodines, o en todo caso configurar varias politicas

    • Guillermo Delprato  El 14/02/2017 a las 14:26

      No creo que pueda manejar comodiones, pienso que lamentablemente habría que hacerlo por cada uno de los nombres, ya que diferentes versiones de Windows llaman diferente a la conexion de red

  • Leandro  El 15/02/2017 a las 17:01

    Para «trampear» esa restricción, se podría asignar el user class manualmente en la PC intentando conseguir DHCP; por ejemplo para máquinas que no pueden/deben estar en dominio, pero queremos que tengan DHCP.

    Una buena medida de seguridad extra para evitar la conectividad a la red, de PCs que no son del dominio :)

    • Guillermo Delprato  El 15/02/2017 a las 18:49

      Hola Leandro, exacto, si quisieras que alguien externo se pueda conectar le puedes indicar a mano el comando para poner la «User Class»
      Pero no te olvides de decirle que luego lo debe sacar ;)

  • Juan Pastor  El 16/02/2017 a las 06:56

    Nosotros venimos utilizando los filtros de DHCP para conseguir los mismo, aunque tenemos el mismo problema, si un usuario establece una IP fija consigue la conectividad sin problemas.

    • Guillermo Delprato  El 16/02/2017 a las 07:33

      Hola Juan, tal como dices, esta es sólo una solución llamémoslo «sencila» pero no es la gran solución, sólo una opción para ambientes chicos y sencillos, sin grandes requerimientos de seguridad
      Mejor opción es que los externos se conecten a una red separada, que conecta con el resto a través de un cortafuegos, que es una opción que permite un mejor control

  • Javier Sola  El 16/02/2017 a las 19:45

    Pregunta: ¿La configuracion del comando ipconfig es persistente? supongamos que tenemos equipos fuera del dominio que si son de la empresa (por la razon que sea y que, obviamente no se les aplican las gpo)…¿Hay que ejecutar en cada inicio el comando «IPCONFIG…» en cada equipo manual o automaticamente?? Gracias.

    • Guillermo Delprato  El 17/02/2017 a las 07:33

      Al fijar el «User Class» es persistente. Para quitarla hay que ejecutar nuevamente el comando pero sin poner «User Class»

  • marcio  El 17/02/2017 a las 13:20

    El trabajo que hace es de parabenos, me encontré con tu blog ayer anoite suceda antes de dormir y no tienen tiempo para leer pero he encontrado información sobre L2TP que necesitaba para entender la forma en que estaba funcionando, confieso que como una configuración y despliegue son únicos, se explica cada paso y debido a los errores y cómo solucionarlo.

    Tengo que ajustar una configuración que ha implementado, tengo un DC w2k12r2 Una VPN Dedicado a w2k12r2 y w10 CLI, pero quiero el protocolo VPN funciona como L2TP, probablemente tendrá que tener un «AD CA» =) requeridos por los artículos

  • marcio  El 22/02/2017 a las 09:37

    Gracias Guillermo Delprato, realmente su blog es bastante completo, buscaba entre otras muchas cosas, vi que la enseñanza acerca de la creación de un equilibrio de carga de una puerta de enlace predeterminada, configurar la página web para la entidad emisora ​​de certificados, a distancia a través de la aplicación web, es muy bonito de ver y no cree que esto en la web hoy en día. Y lo mejor de todo lo que son activos, participar, publicar y promocionar su blog.
    Yeah parabenos. !!

  • Matias  El 26/05/2017 a las 12:27

    Hola Guillermo, excelente aporte. En este contexto, si las máquinas que son de dominio adquieren IP y las que no pertenecen quedan sin conexion de red, como agregas una maquina nueva al dominio? Gracias

    • Guillermo Delprato  El 26/05/2017 a las 15:02

      ¡Muy buena pregunta! :)
      Para unir máquinas al Dominio hay que ser administrador local, así que provisoriamente puede ponerle configuración manual
      La idea es para cuando ya está el Dominio completo, y evitar que un «extraño» se conecte automáticamente a la red, aunque siempre queda la posibilidad que con unas pocas pruebas ponga direcciones válidas
      Y justamente esto último es uno de los motivos por los que nunca recomiendo usar 192.168.0.0/24, 192.168.1.0/24, 172.16.0.0/16 y ninguna que comience con 10

  • James  El 29/10/2017 a las 04:45

    Interesante y bien explicado, pero habría alguna forma de hacerlo por usuarios o grupos de usuarios en vez de por equipos? Alguna forma de ejecutar el script con permisos de administrador y que sea seguro?

    • Guillermo Delprato  El 30/10/2017 a las 06:11

      Hola James, entiendo que no puede ser por usuario porque para identificar al usuario primero tendría que tener conectividad a la red del Dominio

  • Edgar Martin Gabriel Esposito  El 08/11/2018 a las 15:28

    Hola que tal, queria saber si teniendo un servidor de despliegue como el WDS voy a poder seguir trabajando con esto y me dara IP cuando voy a bootear desde la red. Gracias.

  • dany capellan  El 10/09/2019 a las 12:22

    buenas, si yo quiero quitar el ID. de clase DHCPv4 como debo hacerlo porque de la forma que yo la elimino se queda en las maquinas sin importar que haga gpupdate /force y reinicie la maquina

  • Ernestoc  El 04/03/2020 a las 18:34

    Buenas tardes Guillermo, con los dispositivos de tipo smartphones, tablets o smart TVs, ¿qué sucedería en estos casos? Es decir: no hay forma de agregarlos al dominio y por ende no se les asignaría ningún IP. ¿Hay alguna forma de dar solución a este caso en particular? Muchas gracias de antemano.

    • Guillermo Delprato  El 06/03/2020 a las 08:03

      Hola Ernestoc, habría que probar si se puede obtener alguna cadena inicial

      • Ernestoc  El 10/03/2020 a las 18:22

        Buenas tardes Guillermo, ante todo muchas gracias por su respuesta. Disculpe mi ignorancia, pero no le comprendo cuando dice: «habría que probar si se puede obtener alguna cadena inicial». ¿Pudiera explicarme mejor?

      • Guillermo Delprato  El 10/03/2020 a las 19:25

        Revisa la creación de la User Class
        No debería haber problemas si consigues una cuenta de máquina que contenga un cuenta de caracteres

Este espacio es para comentarios sobre la nota. No es un sitio de soporte

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: