Leandro Amore

Un espacio para dejar las cosas que quiero compartir
Nunca estan a mano?

Siempre me pasa que cuando quiero usar alguna de las herramientas de sysinternals nunca las tengo a mano. No más, a partir de hoy podemos accederlas desde nuestro explorador de Windows o browser directamente clip_image001

\\live.sysinternals.com\tools

http://live.sysinternals.com

Igual nunca está de más tenerlas descargadas, así que te podes bajar la suite completa desde acá

saludos

Soporte para memoria dinámica en Hyper-v

Ayer durante una de las charlas del RUN WEB CAMP me preguntaron qué sistemas operativos guest soportaban esta funcionalidad.

El instinto no me fallo de Windows 2003 SP2 para arriba podremos disfrutar de los beneficios de la memoria dinámica en hyper-v

Pueden validarlo acá:

http://technet.microsoft.com/en-us/library/ff817651(WS.10).aspx

Run Web Camp

El día 16 de marzo junto a Martin Berra, Alberto Ortega, Daniel Levi y Alejandro Ponicke vamos a estar dando unas charlas en el Run Web Camp. Es el único evento grande del año, así que no te lo pierdas clip_image001

clip_image002

Para inscribirte podes ir acá:

image

Saludos

Bulk Unlock

Les comparto un script que me pidieron medio de urgencia y tal vez les sea de utilidad en algun momento.

Simplemente recorre todo el AD mira los usuarios bloqueados y los desbloquea automaticamente.

Option Explicit
Dim objRootDSE, strDNSDomain, adoConnection
Dim strBase, strFilter, strAttributes, strQuery, adoRecordset
Dim strDN, objUser
' Traigo el nombre de dominio
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
Set adoRecordset = CreateObject("ADODB.Recordset")
adoRecordset.ActiveConnection = adoConnection
strBase = "<LDAP://" & strDNSDomain & ">"
' Busco la clase user
strFilter = "(&(objectCategory=person)(objectClass=user))"
strAttributes = "distinguishedName"
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
adoRecordset.Source = strQuery
adoRecordset.Open
Do Until adoRecordset.EOF
strDN = adoRecordset.Fields("distinguishedName").Value
strDN = Replace(strDN, "/", "\/")
Set objUser = GetObject("LDAP://" & strDN)
On Error Resume Next
'pregunto si esta lockeado
if objUser.IsAccountLocked = true then
	wscript.echo strdn	
'deslokeo
	objUser.IsAccountLocked = False
	objUser.SetInfo
	If (Err.Number <> 0) Then
		Wscript.Echo "Unable to unlock " & strDN
	End If
end if
On Error GoTo 0
adoRecordset.MoveNext
Loop
adoRecordset.Close
adoConnection.Close
Si seguis usando la Beta de office 2010, ya se acaba.

728x90_gfiwebmon_ES_a

image

Automatizando TMG con Powershell

728x90_gfiwebmon_ES_a

Si bien TMG no soporta Powershell de forma nativa, podremos invocar su api por medio de Powershell para automatizar un poco la plataforma.

Les dejo un script sencillo a modo de prueba de concepto de cómo sería el tema.

$nombre= "Publicacion RDP"

$privada = 192.168.0.100

$publica=”200.xx.xx.xx”

#defino que solo use la IP publica que me interesa publicar.

$fpcSpecifiedIPAddress = 2

# Busco el array de TMG
$root = new-object -comobject "FPC.Root" -strict
$arr = $root.Arrays | select-object -first 1

# Creo la regla  - Hay que usar el display name del servicio que muestra TMG
$RDP = $arr.ArrayPolicy.PolicyRules.AddServerPublishingRule($Nombre, $privada, "RDP (Terminal Services) Server")
$RDP.ServerPublishingProperties.IPsOnNetworks.Add("External", $fpcSpecifiedIPAddress, $publica)
$RDP.ServerPublishingProperties.UseFirewallIPAsSource = $false
$RDP.save()

Out of Band Management en SCCM SP2 – Parte 1

728x90_gfiwebmon_ES_a 

Les dejo un video con todos los pasos necesarios para la preparación del entorno de AD y los certificados para armar un laboratorio de OOB Management con Intel Vpro. Para ponerlo en producción les recomiendo el uso de un certificado comercial, como puede ser godaddy.

En la parte 2 vamos a ver la configuración del configuration Manager en detalle.

 

Saludos

Colecciones a partir de grupos de AD

728x90_gfiwebmon_ES_a

Si bien Configuration Manager nos permite basarnos en cualquier propiedad para armar sus colecciones, siempre es interesante permitirle a gente ajena al sistema trabajar con SCCM sin darle acceso a la consola.

La mejor manera de hacer esto es por medio de grupos de seguridad, por lo tanto, cuando alguien necesita por ejemplo que se instale un software específico o un update en un equipo solo tiene que agregarlo al grupo correspondiente y listo.

Como hacemos esto?

Primero tenemos que habilitar la detección de AD para recursos de sistema. (Active Directory System Group Discovery)

clip_image001

clip_image002

Esto nos permitirá que SCCM indague un poco más sobre la membrecía de grupos y OU’s a la que pertenecen nuestros clientes.

clip_image003

Con la búsqueda habilitada solo nos queda armar la query, para los que ya saben el proceso para armar una nueva colección pueden dejar de leer y les dejo la query directamente

select SMS_R_SYSTEM.Name from SMS_R_System where SMS_R_System.SystemGroupName = “AMORE\clientes FEP"

Para los que no pueden seguir leyendo

Hacemos botón derecho sobre computer management->Collections y presionamos “new collection”

Luego solo tenemos que seguís el wizard

clip_image004 clip_image005 clip_image006 clip_image007 clip_image008clip_image009clip_image010clip_image011

Listo.. Cada vez que alguien agregue un equipo a nuestro grupo de AD se verá reflejado en nuestra colección.

Tengan en cuenta que los procesos de discovery corren en rangos determinados por nosotros, por lo tanto no van a ver los cambios inmediatamente después de realizar la configuración.

Saludos

Posted: Aug 17 2010, 07:01 PM by leandro
Filed under:
Intel VPRO y SCCM SP2

728x90_gfiwebmon_ES_a

Hace un tiempo que estoy trabajando en la integración de Intel vpro con SCCM, y siempre el problema se presenta al momento de generar los certificados para esta funcionalidad.

Para lograr la mayor eficiencia en la implementación se debe adquirir un certificado de una entidad de confianza, caso contrario tendremos que cargar el hash de nuestra CA manualmente en cada máquina que queramos administrar. Lo que está bien para pruebas pero es inviable en producción.

Entonces, a la espera de los siguientes posts de configuración de la funcionalidad les dejo los pasos para pedir los certificados en Windows 2008.

  • Abrir la consola de administración de IIS y seleccionar “Server Certificates”

cert1

  • Seleccionar “Create Certificate Request”

cert2

Acá es donde está la clave para que el request funcione:

En el campo Common Name debemos ingresar el nombre del server de sccm que tendrá el rol de “Out of band management”

y en el campo Organizational Unit deberemos ingresar Intel(R) Client Setup Certificate

cert3 

  • Seleccionar una llave de 2048 bits o superior.

cert4

Guardar el request en un archivo y listo para ser enviado a nuestro proveedor de certificados

cert5

 cert6

En breve les subo un video de la configuración de la funcionalidad en SCCM.

Espero les sea de utilidad.

Saludos

Powershell a fondo

Les dejo excelentes libros de powershell. El primero está basado en la versión 1 de powershell, pero realmente cubre todo lo necesario para dominar la herramienta. El segundo está enfocada a la nueva funcionalidad de remoting de powershell v2 (Se tienen que registrar para el 2).

http://powershell.com/Mastering-PowerShell.pdf

http://powershell.com/cs/media/p/4908.aspx

Que los disfruten

Saludos

System Center Configuration Manager en Windows 2008 R2

A partir de SP2 esta soportada la instalación de SCCM en Windows 2008 R2. Pero tiene algunos problemas con el WebDav. Como sabrán, la versión de IIS en Windows 2008 es 7.0 y no incluye WebDav, sino que hay que bajarlo como un complemento adicional. En R2, el WebDav es parte del rol de IIS 7.5, pero cuando queremos configurar los parámetros necesarios indicados acá las cosas no funcionan como deberían. Por ejemplo, me genero problemas para crear los sitios web de sccm y al levantar parte de los componentes.

Después de varias pruebas y muchas búsquedas encontré que el problema está en la consola de IIS que no refleja correctamente los cambios que hacemos en el XML de configuración de WebDav.

Lo único que tenemos que hacer para dejar esto funcionando es:

1. Buscar la carpeta c:\windows\system32\inetsrv\config\schema

2. Tomar el ownership del archivo WebDAV_Schema

3. Ejecutar un notepad como administrator y abrir este archivo

4. Buscar esta porción del código

<element name="properties">
  <attribute name="allowAnonymousPropfind" type="bool" defaultValue="false" />
  <attribute name="allowInfinitePropfindDepth" type="bool" defaultValue="false" />
  <attribute name="allowCustomProperties" type="bool" defaultValue="true" />
  <collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
    <attribute name="xmlNamespace" type="string" isUniqueKey="true" required="true" validationType="nonEmptyString" />
    <attribute name="propertyStore" type="string" required="true" validationType="nonEmptyString" />
  </collection>
</element>

5. Modificarlo para que quede de esta manera (los cambios en negrita)

<element name="properties">
  <attribute name="allowAnonymousPropfind" type="bool" defaultValue="true" />
  <attribute name="allowInfinitePropfindDepth" type="bool" defaultValue="true" />
  <attribute name="allowCustomProperties" type="bool" defaultValue="false" />
  <collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
    <attribute name="xmlNamespace" type="string" isUniqueKey="true" required="true" validationType="nonEmptyString" />
    <attribute name="propertyStore" type="string" required="true" validationType="nonEmptyString" />
  </collection>
</element>

Un bonus:

para instalar los pre requisitos de SCCM en windows 2008 r2 pueden usar el servermanagercmd.exe con este XML como input

<ServerManagerConfiguration
Action="Install"
xmlns="
http://schemas.microsoft.com/sdm/Windows/ServerManager/Configuration/2007/1">
    <Role Id="Web-Server"/>
    <RoleService Id="Web-Asp-Net"/>
    <RoleService Id="Web-ASP"/>
    <RoleService Id="Web-Windows-Auth"/>
    <RoleService Id="Web-Metabase"/>
    <RoleService Id="Web-WMI"/>
    <RoleService Id="web-static-content"/>
    <RoleService Id="web-mgmt-compat"/>
    <RoleService Id="web-mgmt-console"/>
    <Feature Id="BITS"/>
    <Feature Id="RDC"/>
</ServerManagerConfiguration>

 

y ejecutarlo con Servermanagercmd.exe –inputpath c:\carpeta\config.xml

saludos

Posted: Jul 30 2010, 11:05 PM by leandro
Filed under:
Last Logon en Windows 2008

Desde SOX las empresas tienen la necesidad de controlar el último logon de los usuarios. En Windows 2000 active directory nos daba la la propiedad Last-Logon. En la misma quedaba registrado el último logon interactivo del usuario pero esta propiedad no se replicaba a otros domain controllers, por lo tanto teníamos que consultar cada DC en el dominio para saber el ultimo logon real de un usuario.

En Windows 2003 apareció una nueva propiedad llamada Last-Logon-TimeStamp, la misma se replica en un intervalo variable entre 9 y 14 días. Este rango está dado por un cálculo sencillo:

Hora Actual - msDS-LogonTimeSyncInterval

Donde msDS-LogonTimeSyncInterval puede ser un valor random de 1 a 5, pero si modificamos el valor a un número menor a 5 dejara de tomarse un valor random para realizar un cálculo fijo.

Las propiedades que mencionamos anteriormente intervenían para cualquier tipo de login, por lo que replicarlas constantemente representaría un incremento significativo en el tráfico de nuestro dominio.

A partir de Windows 2008 tenemos 4 nuevas propiedades que nos van a hacer el trabajo mucho más simple. Todas ellas se basan en el logon realizado de forma interactiva, es decir presionando Ctrl-Alt-Del.

msDS-LastSuccessfulInteractiveLogonTime :Ultimo login interactivo exitoso.

msDS-LastFailedInteractiveLogonTime: Ultimo login interactivo fallido.

msDS-FailedInteractiveLogonCount: Cantidad de logins interactivos erróneos desde que se habilito la propiedad.

msDS-FailedInteractiveLogonCountAtLastSuccessfulLogon: Cantidad de logins interactivos erróneos desde el ultimo login correcto

Para usar estas propiedades deberemos tener el dominio en modo funcional Windows 2008. Y adicionalmente habilitar 2 políticas de grupo.

Para comenzar a escribir estas propiedades en el AD deberemos configurar una GPO con la siguiente propiedad:

Computer Configuration\Administrative Templates\Windows Components\Windows Logon Options\Display information about previous logons during user logon = ENABLED

Y vincularla a los Domain Controllers.

Para que los usuarios reciban la información de la propiedad en sus equipos deberemos crear una segunda política y vincularla a las estaciones de trabajo o servidores que queramos que muestren la información durante el login interactivo. (Esta funcionalidad solo aplica a Windows Vista/2008 o superior)

Con todo esto aplicado empezaremos a recibir información sobre el login en nuestro dominio:

Veremos que una vez que iniciamos sesión las propiedades se comenzaran a llenar en nuestros usuarios

5

Asi como comenzaremos a recibir mensajes informativos durante el inicio de sesión

12  3

Espero les sea de utilidad.

 

Saludos

Review de GFI en la nube

Con la ola de servicios online que se viene decidí probar algunas alternativas de antispam online. Encontré una realmente interesante en GFI, el producto viene en 2 ediciones, GFI MAX MailEdge y GFI MAX MailProtection.

Pueden ver las diferencias entre ambas versiones en http://www.gfi.com/maxmail/mpvsme.htm

Configuración inicial

Nosotros vamos a evaluar la más completa de las soluciones, GFI MAX MailProtection. Obviamente la consola de administración es web, y está disponible en varios idiomas.

clip_image001

La configuración de la solución realmente es muy sencilla, solo tenemos que dar de alta nuestra organización con los datos de contacto y el dominio de correo que queremos gestionar .

clip_image004

Para la prueba voy a usar 2 dominios que tengo registrados contra un Exchange de prueba. Así que declaramos uno como dominio y el otro como sibling o alias indicando la IP publica del servidor de correo que se encarga de la gestión del correo.(Fig. 2)

En caso de que tengamos más de un MX gestionando nuestro correo podemos declararlo (Fig. 3) y adicionalmente podremos configurar el porcentaje de carga que manejara cada MX.

 

clip_image006

clip_image008

En cuanto terminamos de configurar nuestro dominio el sitio nos dara los MX a los que tendremos que apuntar nuestros correos para empezar a usar la solución (Fig. 4).

Con los DNS seteados solo nos resta configurar los usuarios de correo. Los mismos van a tener dos usos fundamentales, el primero dar acceso a la cuarentena por usuario y la segunda permitirnos recibir correos solo para los usuarios existentes filtrando en el perímetro todos los mensajes a destinatarios incorrectos.

Existen varias opciones para la configuración de usuarios, algunas manuales obviamente poco recomendables y otras automáticas por medio de sincronización. Para el segundo método podremos elegir varias fuentes de datos. En mi caso, obviamente elegí LDAP para realizar la integración d

clip_image010

el antispam con los usuarios de Active directory (Fig. 6).

Esta configuración realmente no me convenció demasiado al principio, ya que tenemos que publicar nuestro LDAP a internet. Pero luego leyendo un poco más encontré las direcciones IP desde donde se van a realizar las conexiones para la consulta, por lo que podemos restringir el acceso a nuestros datos. Como una medida adicional, podremos encriptar los datos en curso usando SSL. Por tratarse de una prueba no me tome el trabajo de hacer esto, pero definitivamente lo haría en producción. Fíjense que solo tenemos que definir la IP en donde publicamos nuestro servicio, un usuario y una password, la base de la búsqueda LDAP y la frecuencia de la sincronización. Una vez que declaramos el LDAP como un Active Directory el wizard se encargara de declarar las propiedades a buscar en nuestros usuarios.

Un cambio adicional que deberemos hacer, será el filtrado de las conexiones SMTP externas en nuestro firewall para que solo sean recibidas si están originadas en los rangos declarados por GFI. Esto no es una configuración menor, ya que muchos de los correos no deseados, realizan conexiones directas a nuestra IP sin consultar los DNS y por lo tanto evitando la protección online.

Configuración de la protección:

Con los mails llegando a nuestro servidor a través del servicio online solo nos queda configurar la protección de entrada y salida. Para eso deberemos declarar servidores autorizados para enviar mensajes a través del servicio online.

clip_image011clip_image013No hay mucho que decir sobre las configuraciones de filtrado, la interfaz es muy intuitiva y nos permitirá configurar la dureza del análisis antispam (Fig. 6) así como la acción a tomar con los mensajes (Fig. 7). Adicionalmente podremos agregar disclaimers a los mensajes salientes y por medio de la integración con Active Directory podremos tomar acción contra los mensajes dirigidos a usuarios inexistentes evitando el uso de recursos innecesario en el procesamiento de los mismos. (Fig. 8)

clip_image015

clip_image017

 

 

 

Algo que realmente me gusto del producto es la granularidad en la configuración por usuario, cada uno de ellos tendrá la posibilidad de configurar la dureza del análisis para sus mensajes, listas blancas y negras y el envió de los resúmenes de estado de la cuarentena. Así como la posibilidad de iniciar sesión en la consola de cuarentena de usuario utilizando el mismo usuario que en nuestra organización para liberar o eliminar mensajes almacenados. (Fig. 9)

clip_image019

Reportes

El sistema nos da gran visibilidad de los mensajes recibidos, su tipo y porcentaje bloqueado, ya sea a nivel de la organización o a nivel de usuario final (Fig. 10)

image

Conclusiones

El sistema realmente es sencillo de implementar y muy intuitivo en su configuración. La cuarentena de usuarios es clara y la granularidad en la configuración es clave para satisfacer todas las necesidades de la empresa y de usuarios existentes.

Adicionalmente es una gran solución para empresas sin capacidad de recuperación ante desastres ya que los mensajes serán almacenados hasta que el servidor de destino esté listo para recibirlos.

Lo único que no termina de convencerme es el método que eligieron para la sincronización LDAP, me sentiría mucho más cómodo instalando un servicio que corra internamente en mi red y suba la información a la nube. Aunque, como detalle en el review termina siendo posible la configuración segura del acceso, deja muchos puntos del lado del administrador y eso puede generar un problema en algunos ámbitos.

Delegando el acceso al Event Viewer en Windows 2003/2008

Hace un tiempo vengo leyendo el tema de la delegación de los event viewers en Windows 2003 y Windows 2008, Y ahora que finalmente lo entendí quería compartirlo con ustedes.

Nada de esto es magia, si ustedes buscan un poco sobre el tema van a encontrar 1 nota que indica cómo hacer esto en Windows 2003 (más complejo que en 2008).

http://support.microsoft.com/kb/323076

y una extensa explicación sobre el SDDL acá:

http://msdn.microsoft.com/en-us/library/aa379567(VS.85).aspx

Pero realmente no me dejaba del todo tranquilo así que seguí investigando un poco.

Lo más importante es tener claro las ACL por defecto de todos los logs, ya que en la nota solo menciona el de Application. Para eso encontré esta nota:

http://blogs.msdn.com/ericfitz/archive/2006/03/01/541462.aspx

Una vez que tenemos los valores por defecto podremos agregar nuevos accesos sin mayores complicaciones siguiendo la nota y usando psgetsid para encontrar los SID de los grupos a los que queramos delegar el acceso.

Así que a trabajar:

En mi escenario cree un grupo que se llama “Admins de eventos” al que le quiero dar acceso de lectura a los eventos de Seguridad.

Lo primero que vamos a hacer es obtener el SID de eso grupo:

clip_image002

Ahora con el SID y la información de la ACL por defecto podemos armar nuestra ACL customizada

ACL por defecto del Security Log

O:BAG:SYD:(D;;0xf0007;;;AN)(D;;0xf0007;;;BG)(A;;0xf0007;;;SY)(A;;0x7;;;BA)

Como seteamos los permisos entonces. En la nota de MS vemos que:

1= Read

2= Write

4 = Clear

Por ende podemos combinar estos valores para llegar a lo que necesitamos, en mi caso quiero dar lectura y limpieza al grupo que cree así que quedaría 5. Por lo tanto,la cadena para asignar el permiso seria:

(A;;0x5;;;S-1-5-21-152225060-2943421871-3394288233-4614)

Donde:

A: indica que voy a dar un permiso (si es D lo voy a denegar)

0x5 indica el permiso que estoy dando, en nuestro caso Clear y Read.

y finalmente el SID del grupo al que le queremos dar los permisos.

Entonces seguimos los pasos de la nota y agregamos la clave de registro.

clip_image004

Ahora, como hacemos esto en Windows 2008?

Tenemos una herramienta para trabajar con el event viewer que se llama wevtutil.

clip_image006

Lo que vamos a hacer es traer la info del log, agregar la parte de la cadena que nos interesa y volver a importar los valores.

Así que copiamos los valores de channelAccess y agregamos nuestra cadena al final

wevtutil sl security /ca:O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)(A;;0x5;;;S-1-5-21-152225060-2943421871-3394288233-4614)

y listo, con eso ya tenemos acceso al event log. Bastante más sencillo, no?

Pensas que hablar por celular es seguro???

GSM es el estándar usado por casi el 80% de los equipos de telefonía celular en el mundo con cerca de 3 billones de usuarios en 212 países.

Para proteger la confidencialidad de las llamadas, GSM usa un cifrado llamado A51/1 que encripta el número discado y la llamada en curso. Pueden leerse esto http://en.wikipedia.org/wiki/A5/1 para profundizar sobre el cifrado.

Pero ahora, a que viene todo esto? En diciembre del 2009 Chris Paget y Karsten Nohl anunciaron que por medio del uso de procesamiento distribuido lograron generar una “Rainbow Table” de tres terabytes que permitirá desencriptar cualquier comunicación (voz o SMS) cifrada con A51/1 en tiempo real o en diferido.

Estas tablas están disponibles de forma libre para ser descargadas por medio de torrents y adicionalmente en el sitio del proyecto se encuentran todos los datos necesarios para generar el equipamiento necesario para capturar una llama y el software para desencriptarla por medio de las tablas generadas previamente.

El tema es bastante complejo, pero el sitio realmente explica de forma clara el método del ataque y como reproducirlo. Pero lo más preocupante es que ya hay software disponible para agencias de seguridad y afines que permite hacer esto “Out of the box”

Ahora el lado positivo, el A51/1 tiene cerca de 20 años de antigüedad y sigue siendo usado debido a la poca inversión de las compañías telefónicas. Pero ya existe un cifrado denominado A51/3, actualmente utilizado para proteger las redes 3G, que por el momento se mantiene seguro.

Voy a seguir leyendo a ver que si encuentro alguna prueba de concepto interesante, pero a partir de ahora voy a empezar a prestar atención a lo que digo por celular. Nunca se sabe quien puede estar escuchando ;)

More Posts Next page »