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