WINRM



EN SERVIDOR

Primer Paso: Antes de nada hay que configurar los nombres de maquina a un nombre que sepamos fácil de recordar para tener acceso a esa máquina.
Nuestro servidor se va a llamar Server P, como se ve en la siguiente imagen.

Segundo Paso: Nuestro equipo debe pertenecer o bien a un grupo de red privado o dominio como nuestro equipo no este configurado con ese tipo de redes no vamos a poder realizar la conexión remota.



Tercer paso: Una vez configurado estos dos pasos tendremos que ejecutar la powershell en modo administrador, combinación de tecla Windows+Q.

Cuarto paso: Una vez que tengamos la powershell es habilitar el servicio Winrm, para ello tendremos que ejecutar la siguiente sintaxis, get-service winrm, la que nos dirá el estado del servicio.

Quinto Paso: Una vez que sabemos el estado del servicio y como está corriendo tenemos que forzar con este comando para que arranque y configuré el winrm para ello escribimos la sintaxis enable-PSRemoting –force. Que nos dice como esta ese servicio y si esta disonible.

Sexto Paso: Ahora tenemos que habilitar la maquina cliente en el servidor para que acepte el nombre, para ello escribimos esta sintaxis, winrm set winrm/config/client ‘@{TrustedHosts=”NombreEquipoCliente”}’   , con ese comando habilitaremos y daremos acceso al cliente.

Como vemos incorporo ese nombre a TruestedHosts que es un pc de confianza.
Séptimo Paso: Con el comando winrm quickconfig o winrm qc vemos como está el servicio y si esta configurado.

Octavo Paso: Podemos ver la configuración del winrm estableciendo el siguiente comando winrm get winrm/config lo que permite ver los parámetros de configuración de winrm y podemos coger luego más adelante parámetros necesario para la conexión remota.

Noveno Paso: Podremos modificar cualquier parámetro sabiendo que significa cada línea de código estableciendo el siguiente comando winrm set winrm/ruta ‘@{nombre=”parámetro a insertar”}’, como vemos en la siguiente imagen son como un árbol que están ordenados cada parámetro.

Con estas opciones ya estaría configurado el servidor.

EN CLIENTE

Como habíamos dicho importantísimo establecer nombre de máquina tanto en cliente como en servidor, la que hemos puesto de nombre Pc1.

Segundo paso: Es arrancar la powershell en modo administrador como anteriormente hemos explicado en el servidor. Y pondremos el siguiente comando para ver el estado del servicio get-service winrm.

Como podemos apreciar el servicio está parado así que no podemos realizar conexiones remotas ni configurar el winrm, para ello vamos a forzar el servicio para que se ponga en iniciado con el siguiente comando, enable-PSRemoting –force.

Con esto nos dice que winrm se activó para recibir solicitud y se creó una escucha  winrm en el protocolo HTTP. Si volvemos a poner el comando get-service winrm, podemos ver de nuevo el estado del servicio como cambio a iniciado.

Tercer Paso: Ahora tenemos que añadir el servidor en nuestro archivo de configuración de la máquina cliente para ello escribiremos la siguiente sintaxis winrm set winrm/config/client ‘@{TrustedHosts=”Nombre equipo servidor”}’, con esto ya introducimos el servidor en el cliente.

Cuarto Paso: Ahora pondremos el comando winrm quickconfig o winrm qc para comprobar si está disponible y bien configurado el servicio. Como nos dice que ya está disponible para la administración remota:

Quinto Paso:  Ya estamos listos para la conexión remota e interactuar con el servidor pero antes necesitamos la sintaxis para la realización de ese medio que nos dará el acceso remoto para ello vemos el comando winrs /?.


winrs [-/MODIFICADOR[:VALOR]] COMANDO
COMANDO: cadena que se ejecuta como comando en el
 
MODIFICADORES
===============
(Todos aceptan la forma corta y la larga.
Tanto -r como -remote son válidos).

-r[emote]:EXTREMO                  - El extremo de destino con nombre
                                      NetBIOS o la dirección URL de conexión
                                      estándar: [TRANSPORTE://]DESTINO[:PUERTO].
                                      Si no se especifica, se usa -r:localhost.

-un[encrypted]                    - Especifica que los mensajes al shell remoto
                                      no se cifrarán. Útil para solucionar
                                      problemas, cuando el tráfico de red se
                                      cifra mediante IPsec o cuando se aplica
                                      seguridad física. De forma predeterminada,
                                      los mensajes se cifran con claves Kerberos
                                      o NTLM. Este modificador se omite cuando se
                                      selecciona el transporte HTTPS.

-u[sername]:NOMBRE_DE_USUARIO - Especifica el nombre de usuario en
                                      línea de comandos. Si no se especifica, la
                                      herramienta usará la autenticación Negotiate
                                      o pedirá el nombre. Si se especifica -username,
                                      también se debe indicar -password.

-p[assword]:CONTRASEÑA        - Especifica la contraseña en la línea de
                                      comandos. Si no se especifica -password, pero
                                      sí -username, la herramienta pedirá la
                                      contraseña. Si se especifica -password,
                                      también se debe indicar -user.

-t[imeout]:SEGUNDOS                - Esta opción no se usa.

-d[irectory]:RUTA             - Especifica el directorio de inicio del shell
                                      remoto. Si no se especifica, el shell remoto
                                      se iniciará en el directorio particular del
                                      usuario definido por la variable de entorno
                                      %USERPROFILE%.

-env[ironment]:CADENA=VALOR   - Especifica una variable única de entorno
                                      que se establecerá cuando se inicie el shell,
                                      lo que permite cambiar el entorno
                                      predeterminado para el shell. Se puede usar
                                      este modificador varias veces.

-noe[cho]                            - Especifica que se debe deshabilitar el eco.
                                      Necesario para asegurar que las
                                      respuestas a los mensajes remotos
                                      no se muestren localmente. De forma
                                      predeterminada, el eco se establece en
                                      "on" (habilitado).

-nop[rofile]                         - Especifica que no debe cargarse el perfil del
                                      usuario. El servidor cargará el
                                      perfil de usuario de forma predet.
                                      Si el usuario remoto no es un administrador
                                      local en el sistema de destino, se necesitará
                                      esta opción (el valor predeterminado causará
                                      un error).

-a[llow]d[elegate]               - Especifica que se pueden usar credenciales
                                      de usuario para obtener acceso a un recurso
                                      compartido remoto, por ejemplo, en un equipo
                                      distinto del extremo de destino.

-comp[ression]                    - Activa la compresión. Puede que las
                                      instalaciones anteriores en equipos remotos
                                      no admitan la compresión; por tanto, está
                                      desactivada de forma predeterminada.

-[use]ssl                   - Use una conexión SSL al usar un extremo
                                      remoto. Si especifica esto en lugar del
                                      transporte "https:", se usará el puerto
                                      predeterminado WinRM.







Sexto Paso: Esta es la ayuda del comando WINRS, pero también necesitaremos un puerto ya que es imprescindible para la conexión. Para ver el siguiente puerto tenemos que poner la siguiente sintaxis, winrm get winrm/config.




 Como vemos en el rectángulo tenemos que coger el puerto 5985 que es el que usa el servicio winrs para la conexión remota, también podemos utilizar el otro pero nos va a dar fallos de certificados ya que tenemos que pedir un certificado ya que el https es un protocolo de hipertexto de transmisión segura.
Septimo Paso: una vez que ya sabemos el puerto comenzaremos a interactuar con el servidor poniento la siguiente sintaxis en el cliente, winrs –r:http://ServerP:5985 –u:administrador “comando”.
Una vez que le escribamos nos va a pedir que introduzcamos la contraseña del usuario que hemos especificado en nuestro caso es el administrador.

Pondremos la contraseña y nos conecta con el servidor y podremos interactuar con él por medios de comando.

Ahora para verificar que estamos dentro del servidor podremos poner hostname  para ver el nombre de máquina que nos devuelve.

Podremos crear una carpeta en el servidor y un archivo de texto:

Creamos un documento de texto.

Y ahora vemos si es verdad que esta creado en el servidor. Como vemos en la siguiente imagen




Con esto ya estaría todo comprobado.
¿Pero que hubiese pasado si en el TrustedHosts hubiésemos puesto otra máquina como en la siguiente imagen y ponemos la sintaxis de conexión para el servidor.?

Manda el siguiente error;

Lo que significa que no está bien vinculado el nombre al TrustedHosts o que la base de datos de kerberos no es capaz de resolver ese nombre, del active directory.
¿Pero qué es Kerberos?
Kerberos es un protocolo de autenticación de redes de ordenador creado por el MIT que permite a dos ordenadores en una red insegura demostrar su identidad mutuamente de manera segura. Sus diseñadores se concentraron primeramente en un modelo de cliente-servidor, y brinda autenticación mutua: tanto cliente como servidor verifican la identidad uno del otro.

No hay comentarios:

Publicar un comentario