Sie sind auf Seite 1von 7

Administracin Remota de Windows Vista mediante WS-Management (I de III)

Ya llevamos un ao y medio de Windows Vista, y aun tenemos para largo para llegar a explicar todas las mejoras incluidas en este Sistema Operativo. Hoy revelaremos una bastante til e interesante: la administracin remota mediante WINRM, la implementacin de Microsoft del estndar "WS-Management". WS-Management tambin conocido como "Web Services for Management" (Servicios Web para Administracin) es un protocolo estndar del "Distributed Management Task Force" (DMTF), importante grupo del que forman parte empresas como IBM, Novell, HP, Sun Microsystems, Intel y Microsoft entre muchas otras. Las especificaciones concretas de WS-Management las podis obtener en PDF (y en ingls) en la siguiente direccin: http://www.dmtf.org/standards/wsman A grandes rasgos WS-Management busca concretar las bases para una administracin remota, multiplataforma, fcil, eficaz y distribuida a travs de HTTP y HTTPS mediante el estndar de comunicacin de aplicaciones "SOAP", esto significa que es posible administrar un equipo remotamente y de manera segura a travs de https (puerto abierto en la mayora de los routers) sin necesidad de preestablecer una comunicacin mediante VPN. WS-Management hace uso de URIs para identificar y publicar un elemento de administracin y "Selectores" para identificar una determinada instancia de ese elemento si existe ms de una; este formato sigue el convenio de publicacin de "WS-Addressing", de manera que se puedan identificar y buscar servicios publicados para comunicaciones SOAP. El siguiente ejemplo representa las cabeceras de comunicacin XML (usado en SOAP) de un mensaje WS-Management estndar basado en WS-Addressing (URI y Selector en Negrita). 1. <s:Envelope 2. xmlns:s=http://www.w3.org/2003/05/soap-envelope 3. xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing 4. xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"> 5. <s:Header> 6. ... 7. <wsa:To>http://123.99.222.36/wsman</wsa:To> 8. <wsman:ResourceURI mustUnderstand="true"> 9. http://example.org/hardware/2005/02/storage/physDisk 10. </wsman:ResourceURI> 11. <wsman:SelectorSet> 12. <wsman:Selector Name="LUN"> 2 </wsman:Selector> 13. </wsman:SelectorSet> 14. <wsa:Action> http://schemas.xmlsoap.org/ws/2004/09/transfer/Get</wsa:Action> 15. <wsa:MessageID> urn:uuid:d9726315-bc91-430b-9ed8-ce5ffb858a91</wsa:MessageID> 16. ... 17. </s:Header> 18. <s:Body> ... </s:Body> 19. </s:Envelope>

Configuracin de una Shell Remota mediante WS-Management:


1

Windows Vista (y por ende Windows Server 2008) ofrecen dos comandos para la gestin de WSManagement: WINRM (para la configuracin del servidor y de servidores remotos) y WINRS (cliente para la ejecucin de comandos remotos), a estos dos comandos habra que aadir la capacidad de PowerShell 2.0 (el potentsimo nuevo interprete de comandos de Microsoft) de invocar CMDLETS remotos gracias a este protocolo. Podis descargar la versin CTP de PowerShell 2.0 en el siguiente enlace: http://www.microsoft.com/downloads/details.aspx?FamilyID=60deac2b-975b-41e6-9fa0c2fd6aa6bc89&DisplayLang=en Como he sealado hace un momento, WINRM es el comando de configuracin del servidor del protocolo WS-Managament, no obstante, una versin anterior de este comando ya apareca en "Windows Server 2003 R2" destinada fundamentalmente (aun que no de manera exclusiva) a la gestin remota de hardware. Para ms informacin sobre este elemento en "Windows Server 2003 R2" podis visitar el siguiente enlace (en ingls): http://technet2.microsoft.com/windowsserver/en/library/f550cac0-5344-41cb-8e896e5c932368861033.mspx?mfr=true WinRM tambin se puede instalar en Windows XP, aqu tenis el enlace de la descarga: http://www.microsoft.com/downloads/details.aspx?FamilyID=845289ca-16cc-4c73-8934dd46b5ed1d33&DisplayLang=en

Configurando el Servidor para la ejecucin remota de comandos: Comencemos con lo que nos interesa: vamos a comprobar como se configura un equipo con Windows Vista y WINRM para lanzar comandos e instrucciones remotamente desde otro equipo. Primeramente deberemos abrir el CMD, pero como WINRM es un comando administrativo requeriremos elevar los privilegios atravesando el "Control de Cuentas de Usuario" (UAC) seleccionando la opcin "Ejecutar como Administrador" en el men contextual sobre el CMD. Como cualquier otro comando, os interesar comprobar la ayuda de WINRM ejecutando "WINRM /?"; compruebe la informacin de ayuda de los parmetros principales, pero sobre todo no olvide comprobar la ayuda de los aspectos bsicos relacionados con WINRM mediante "winrm help uris", "winrm help aliases", "winrm help config", "winrm help remoting", "winrm help auth", "winrm help input" y "winrm help switches", donde podr obtener informacin general de las especificaciones del protocolo.

Existen diferentes aspectos importantes que se pueden llegar a configurar dentro de WINRM, como cules son las IPs de los equipos considerados de confianza para la ejecucin de comandos, la asociacin de certificados SSL para HTTPS, mtodos de autenticacin admitidos, el nmero mximo de conexiones concurrentes etc.; no obstante, existe un parmetro que nos permite realizar en un solo paso las tareas necesarias para configurar WS-Management a nivel bsico: "WINRM quickconfig", el cual adems de activar el servicio necesario, configurar las reglas del Firewall para permitir el acceso a travs del puerto 80 (http). Si deseamos configurar el acceso a travs del puerto 443 (https) se debe usar "WINRM quickconfig -transport:https" y se requiere disponer de un certificado SSL valido emitido por una Entidad Emisora de Certificados de confianza para nuestro equipo. Nota: WINRM no permite el uso de certificados autofirmados. Tras la labor anterior es conveniente comprobar que el servicio necesario se encuentre en funcionamiento y que se hayan creado las reglas del firewall oportunas (ver imgenes), tambin es conveniente ejecutar un "netstat -an" para comprobar que el puerto 80 TCP se encuentre a la escucha en el equipo (no se requiere Internet Information Server para el funcionamiento de este protocolo).

Nota: Una buena prctica de seguridad consistira en modificar las reglas predeterminadas del firewall para limitar el mbito de equipos que pueden tener acceso de manera remota al puerto 80, e incluso habilitar IPSEC para dicho puerto. Tras ejecutar "quickconfig" ya estara el Servidor preparado para dar servicio a equipos remotos, no obstante es posible (y conveniente) modificar las opciones de configuracin predeterminadas para conseguir un mayor control y seguridad en las comunicaciones (utilizar https siempre que se a posible, limitar las interfaces a la escucha etc.). A continuacin expondr algunos de los comandos de utilidad relativos a la configuracin de WINRM.
4

Comandos WINRM para comprobacin de la configuracin:

winrm enumerate winrm/config/Listener

Lista la configuracin del puerto a la escucha

winrm get wmicimv2/Win32_Service?Name=WinRM

Comprueba la configuracin del servicio WINRM mediante WMI

winrm get winrm/config

Muestra la configuracin actual de WINRM Nota: Dentro de la configuracin es interesante comprobar los tipos de autentificacin usados por defecto en WINRM (Kerberos y NTLMv2), tambin podemos comprobar que la autentificacin bsica est deshabilitada y que no existen filtros IPs para la comunicacin, algo que tambin es aconsejable configurar. Ejemplos de uso de WINRM para cambios de configuracin:

WINRM set winrm/config/service/Auth @{Basic="TRUE"}

Permite conexiones con autentificacin bsica (contrasea enviada usando base64 y por tanto insegura)

WINRM set winrm/config/service @{IPv4Filter="192.168.5.200-192.168.5.255"}

Establece un filtro IP de manera que el servicio WINRM solo escuche en las interfaces configuradas con alguna de las IPs del rango indicado

WINRM set winrm/config/service @{MaxConnections="10"}

Aumenta el nmero de conexiones concurrentes permitidas de 5 a 10. Nota: Como podis comprobar las configuraciones ms sencillas se realizan usando "winrm set URI_DE_RECURSO @{Clave="Valor";Clave=valor;...}" debiendo escribir el nombre de la clave de forma correcta ya que se distinguen maysculas de minsculas.

Conexin y ejecucin de Shell remota desde cliente: Una vez realizada la configuracin bsica del equipo que ejercer de servidor, solo nos queda probar la ejecucin remota de comandos desde un equipo cliente con el comando WINRS. Antes de usar WINRS debemos comprobar que el servidor est preparado para ejecutar comandos remotos mediante "winrm get winrm/config/winrs", el valor AllowRemoteShellAccess debe estar establecido en "TRUE" (configuracin por defecto). En caso de que no deseemos permitir la ejecucin de comandos remotos es necesario ejecutar: "winrm set winrm/config/winrs @{AllowRemoteShellAccess="false"}"
5

Si no somos clientes de un Dominio o usamos https, WINRS requerir que configuremos un parmetro adicional "TrustedHosts", donde deberemos indicar las IPs de los equipos a los cuales deseamos conectarnos para la ejecucin de comandos. Para modificar este parmetro debemos ejecutar el comando: "winrm set winrm/config/client @{TrustedHosts="*"}" (al poner un "*" estaremos permitiendo la comunicacin con cualquier equipo remoto que ofrezca servicios WS-Management). Una vez realizada la configuracin de los parmetros AllowRemoteShellAccess y TrustedHosts ya estamos en condiciones de ejecutar comandos remotos sin problemas. Aqu tenis algunos ejemplos:

WINRS -r:169.51.2.101 -u:administrador -p:123abc. ipconfig

Ejecuta el comando ipconfig en el equipo 169.41.2.101 con el usuario "administrador" y la contrasea "123abc."

WINRS -r:169.51.2.101:81 -u:administrador -p:123abc. set

Ejecuta el comando "SET" en un equipo configurado para escuchar bajo el puerto 81

WINRS -r:http://192.168.5.201 -u:administrador hostname

Ejecuta el comando "hostname" en el equipo 192.168.5.201 habindose indicado http como mecanismo de transporte. Al no poner el atributo "-p" se le preguntar al usuario de manera interactiva por una contrasea.

Si tuvierais cualquier problema de conexin podis probar a ejecutar el siguiente comando para comprobar el buen funcionamiento de la comunicacin: "WINRM identify -r:192.168.5.201 -u:administrador -p:123abc."

Bueno, con esto ya hemos comprobado el uso WS-Management para la ejecucin de comandos remotos, sin embargo esta no es la nica tarea que puede realizarse con WINRM, ya que podemos usarla tambin para la Gestin y configuracin de elementos WMI y las Suscripciones al visor de eventos Eventos de Windows Vista, en prximos post iremos desgranando estas interesantes caractersticas (prometo que no sern posts tan largos). Por ltimo solo queda aadir que ya existe la nueva versin WINRM 2.0 (actualmente en CTP), con nuevas APIs para el desarrollo de funcionalidades, nuevos elementos de autorizacin de clientes y con la capacidad de enlazar comunicaciones WS-Management como si de un Proxy se tratara. Podis descargar esta nueva versin en el siguiente enlace: https://connect.microsoft.com/site/sitehome.aspx?SiteID=200 Como de costumbre mis posts suelen ser ms largos de lo habitual en este blog, as que espero que os haya resultado ameno (en la medida de lo posible) e interesante. Agradezco vuestro inters y os espero en el prximo post para seguir indagando en este interesante sistema.

Das könnte Ihnen auch gefallen