jueves, 12 de febrero de 2015

Virtualizar es sencillo, hacerlo bien... no tanto.

Amigos de Inseguros.

En el capítulo de hoy vamos a intentar aclarar algunas dudas básicas sobre sistemas de virtualización.

El proceso de instalación de un hypervisor es muy sencillo, se instala un S.O. como pueda ser Vmware, Xen Server, Hyper-V, habilitamos virtualización a nivel de kernel en cualquier Linux moderno...


Bien, una vez tenemos el hypervisor, procedemos a instalar unas máquinas virtuales por encima, como hacemos con virtual box, vmware workstation, pararells y demás hypervisores tipo 2.

Hasta ahí es muy sencillo, pero claro, si vas a virtualizar sistemas complejos en producción, con mucho rendimiento o criticidad, la cosa se va complicando mucho. Puede ser que en primeras instancias todo funcione bien, pero seguro que si no diseñas bien un plan de virtualización, en el futuro tendrás problemas.

Voy a intentar daros unos cuantos consejos, basados en mi experiencia, para que tengáis en cuenta si os vais a animar a virtualizar algún servidor, o por si lo contrario tienes una infraestructura virtual y necesitas más performance.

Por ejemplo, cuando creas un disco duro virtual, sea el sistema que sea, tenemos la opción de establecer el disco con un tamaño fijo o dinámico. En el segundo caso, se reserva en el disco físico el espacio utilizado, aunque en el sistema operativo virtualizado veamos el total. Por ejemplo, podemos crear un disco de 100 gb, que nuestro Windows virtual verá como 100gb, pero que físicamente, en el disco duro físico o cabina, ocupe 20gb. Esto es interesante para sobredimensionar, pero la escritura en disco será MUCHO MAS LENTA. Un ejemplo podría ser lo que tarda en crearse un disco dinámico de 20 gb o de tamaño fijo. En el caso de tamaño fijo, el disco duro virtual se formateará con "ceros" todo el tamaño. Un poco de tiempo al principio nos dará MUCHO mas rendimiento a posteriori.

Otra cuestión importante, en Hyper-V es los servicios de integración. Cuando instalas una VM debes contar con que haya una versión oficial de los servicios de integración. Si no hay una versión, puedes instalar el sistema que quieras, pero la tarjeta de red del sistema virtual correrá a 100mb, no a giga. Esto en servidores en producción es un FALLO de rendimiento importante.

Otra cuestión, cuando creas el disco duro bajo Hyper-V, créalo con controladora SCSI, no IDE, ya que de esta manera podremos ampliar el disco duro. Si esta en modo IDE no podremos, y tendremos que andar añadiendo discos, ampliando volúmenes y complica las operaciones IT. El rendimiento es exactamente igual, pero es mas cómodo usar SCSI.

Otra cuestión suele ser las bases de datos.
Por ejemplo, si vas a virtualizar SQL SERVER debes activar PAGE LOCK MEMORY en el Windows invitado. Por qué?

Sql Server hace gestiones constantemente en memoria para mantener registros consultados en memoria cache, con el fin de agilizar consultas. Sin embargo, si tenemos por debajo un hypervisor con gestión de memoria dinámica, como Vmware, este lo que va a hacer es intentar liberar RAM constantemente de las VM´s para poder tener más disponible, para las VM´s...

Aparte del tunning normal de Sql server, recomiendo activar PAGE LOCK MEMORY mediante una GPO local en el Windows virtual, y configurar la cuenta de servicio que arranca Sql Server para que mantenga en memoria bloqueada toda la ejecución, y así prever la destrucción de cache. Es como si el recolector de basura de JAVA intentara limpiar memoria constantemente, incluso a medio de un proceso... Bueno no es tan malo, pero casi :-).

Otra recomendación es si tenemos un sistema virtual con acceso intensivo a datos, separemos la ubicación física de los discos virtuales en distintos discos físicos. Recuerda que aunque sean virtuales, en algún momento la cabeza lectora del disco tendrá que alternar para leer/Escribir información de los distintos discos duros virtuales, por lo que separarlos aumenta el performance considerablemente.

En el caso de usar Hyper-V y tener instalado un Antivirus, cosa recomendable en cualquier sistema, es aconsejable excluir los ficheros de máquinas virtuales y los procesos VMMS.exe y VMWP.exe.

Otro truquito importante para los sistemas virtualizados Windows es deshabilitar PREFETCH.

Cada sistema, cada escenario, cada fabricante requiere de conocimientos y despliegues distintos, pero espero que te sirvan de ayuda estas recomendaciones generales en el mundo de la virtualización.

Como siempre, espero que os guste, gracias por leerme !!!!


lunes, 9 de febrero de 2015

Netwrix Auditor. Auditoría para File Servers. Parte 4.

Amigos de Inseguros !!!

Ya han pasado unos meses desde que comenzamos la serie de artículos sobre Netwrix Auditor 6.5.

Por los comentarios en las redes y foros al parecer es una herramienta que ha gustado a la comunidad.


A mi personalmente me gusta mucho y la uso en la organización en la que colaboro. Todas las noches recibimos unos correos con todos los cambios, y me permite controlar tanto los servidores Windows, Active Directory y unos servidores de ficheros.

En esta ocasión vamos a "trastear" con el módulo específico para servidores de ficheros.

Retomamos el primer artículo de la seria de Auditoría IT con Netwrix Auditor 6.5 para instalar el programa. Recuerda que podemos bajarnos un trial para 20 días completamente operativo.

Como es normal, el software analiza la información de registro sobre operaciones de ficheros que nos proporciona Windows, aumentando la capa de inteligencia con la configuración personalizada, reporting, alertas y demás opciones que ya hemos trabajado con Netwrix Auditor 6.5

Antes de configurar las opciones, vamos comprobar/Activar la auditoría de ficheros en nuestro servidor Windows 2012. Nos ubicamos en alguna carpeta compartida, y bajo propiedades, seguridad, avanzadas configuramos las opciones de auditoría para el grupo Todos.



Ahora que hemos definido el nivel de auditoría para nuestra carpeta concreta, tenemos que habilitar la Group Policy para que se efectúe el proceso de auditoría por parte de Windows. Recuerda que esto es común para todos los servers, independientemente del producto tipo Netwrix Auditor 6.5 que instalemos por encima.



Ahora desde el visor de eventos configuramos la política de retención y tamaño de los logs generados.


Como decía, hasta aquí, tenemos habilitado el servicio de auditoría de ficheros para nuestros servidores Windows, podemos comprobar como en el visor de eventos podemos observar los logs de acceso a los ficheros.


Imagina la problemática de cumplir unos requisitos de seguridad con este sistema, si en nuestro file-server tenemos millones de ficheros y usuarios haciendo operaciones a diario. Es aquí donde entra la parte de Netwrix Auditor 6.5 para ayudarnos a gestionar esta información.

Creamos un nuevo objeto gestionado del tipo colección de ordenadores e introducimos nuestro file-server.


En el caso de contar con una cabina NetApp o Emc, tenemos opciones especiales de integración. Para este caso voy a seleccionar mi servidor Windows, ya que la cabina que está por debajo mediante ISCSI no es ninguna de las mencionadas.


El propio asistente nos invita a seleccionar el grado de auditoría que queremos usar. Recuerda que podemos configurar distintos grados según el fichero, según el grado de "protección" que queremos implementar.


Una vez realizada la configuración, generamos una recolección de datos inicial, para ver la información que nos muestran los informes.

Si todo está bien configurado, el sistema nos presenta un informe con todos los cambios efectuados. En el caso de no haber configurado bien las opciones de auditoría de la carpeta, nos sugiere el nivel de detalle necesario, tanto para obtener toda la información, como para no saturar los eventos con información innecesaria.



Como puedes observar, nos presenta un resumen y un fichero de detalle. Muy útil para almacenar en nuestro sistema documental para investigar usos no deseados.

Si estás en un proceso de certificación PCI-DSS o similar, sin lugar a duda la posibilidad de hacer FIM, File Integrity Monitor será una de las características que deberás considerar para pasarla.

En entornos con varios administradores, en los que la gestión de los permisos la realizan distintas personas, es muy útil contar con una herramienta así para gestionar la correcta atribución de permisos a los recursos.

Desde el punto de vista de la seguridad, saber si algún empleado está intentando acceder a recursos no autorizados, es un punto fuerte para considerar la adquisición de este módulo.

Espero que os haya servidor de ayuda.

Gracias por leerme !!!





jueves, 5 de febrero de 2015

DHCP Logs & Backup. Sistemas Windows

Amigos de Inseguros !!!

Como hablábamos hace unos días en el post sobre el log del servidor Radius en Windows, el tener activado y controlada la gestión de los logs es vital para analizar en tiempo real, o en modo forense, la actividad de todos los componentes susceptibles a verse implicados en un ataque hacia nuestras infraestructuras.


Uno de los logs que me parece interesante es el log del serviio DHCP. Pude ser muy útil para detectar una intrusión física en la sede, un portátil que se conecta a un punto de red, o un cliente WiFi !!!

Lo primero que hacemos es habilitar el registro en Acciones-Propiedades.


La ruta del registro para DHCP es c:\windows\system32\dhcp\

Original eh !!!

Un ejemplo del fichero que podemos visualizar:


Cabe mencionar que el fichero de logs tiene un tamaño máximo de 1MB, y guarda uno de histórico.
Hay que controlar el tamaño del log con actividad normal, para calcular la frecuencia de copias que queremos establecer. Puede ser que el MB se llene en un día, o en un mes.

La información de campos relevante la podéis consultar aquí.

Y puestos a dejar esto bien configurado, podemos hacer una tarea con el siguiente comando para que nos haga un backup de la configuración del DHCP para evitar problemas, como yo que borrado 100 reservas dhcp :-).
Backup-DhcpServer -ComputerName host -Path C:\Windows\system32\dhcp\backup
Si vives en el mundo NETSH aún, aparte de animarte a actualizar, aquí tienes el comando:
netsh dhcp nombre export c:\ruta.txt all

Si quieres hacerlo automáticamente, sin tarea, puedes configurarlo en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters\BackupInterval

Espero que os guste el artículo y que os sirva de ayuda.
Gracias por leerme.








martes, 27 de enero de 2015

Clientes VPN, Radius, Network Access Protection, logs? Windows server 2012

Amigos de Inseguros !!!

Dicen en mi barrio que todo lo malo se pega. Eso me decía mi madre de pequeño cuando me juntaba con los chicos más estudiosos del lugar !!!


Del mundo Linux tengo que decir que lo que más me ha calado hondo son los Logs.

Aunque tenemos información de bajo nivel mediante el visor de sucesos de Windows, en ocasiones necesitamos acceder a información detallada de un evento, y para eso tenemos los ficheros de logs.

Al más puro estilo linux, vamos a ver un log de Windows del que no se presta mucha atención, el de los servicios de acceso a redes, vpn y demás farándulas.

Para empezar, el típico tail -F de Linux, para ver en tiempo real el log, lo tenemos con : Get-Content -Path C:\Windows\system32\LogFiles\IN***.log -Wait

A muestra de ejemplo, voy a pegar un log. Los datos sensibles los omito.

"JANGO","RAS",01/27/2015,17:48:46,1,"dominio.COM\jmolina","dominio.com/Users/Joaquín Molina ","ip servidor","ipcliente",,,"JANGO","ipservidor",51,,"piservidor","JANGO",,,5,,1,2,4,"Conexiones al servidor de Enrutamiento y acceso remoto de Microsoft",0,"311 1 ip servidor 01/08/2015 12:10:52 640",,,,,,,,,"78",,,,,,,,,1,1,"ip cliente","ip servidor",,,,,,,"MSRASV5.20",311,,,,,"Directiva del Servicio de enrutamiento y acceso remoto de Microsoft",1,,,"MSRAS-0-MIACA-PC","MSRASV5.20"

Como se puede apreciar, tenemos todo tipo de información de la autenticación de nuestros clientes de redes remotos.

Si necesitas concretar alguno de los campos, lo mejor es tener la descripción oficial de Microsoft a mano. Pongo un ejemplo con la descripción concreta:

"CLIENTCOMP","IAS",03/07/2008,13:04:33,2,,"npsclientdc/Users/client",,,,,,,,9,"10.10.10.10","npsclient",,,,,,2,1,"Allow access if dial-in permission is enabled",0,"311 1 10.10.10.11 03/07/2008 20:04:30 1",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,


Value shown in example Attribute Data type Description
"CLIENTCOMP"
ComputerName
Text
The name of the server where the packet was received (this is an IAS-internal attribute).
"IAS"
ServiceName
Text
The name of the service that generated the record—IAS or the Routing and Remote Access service (this is an IAS-internal attribute).
03/07/2008
Record-Date
Time
The date at the NPS or Routing and Remote Access server (this is an IAS-internal attribute).
13:04:33
Record-Time
Time
The time at the NPS or Routing and Remote Access server (this is an IAS-internal attribute).
1
Packet-Type
Number
The type of packet, which can be:
  • 1 = Access-Request
  • 2 = Access-Accept
  • 3 = Access-Reject
  • 4 = Accounting-Request
This is an IAS-internal attribute.
"client"
User-Name
Text
The user identity, as specified by the user.

Fully-Qualified-Distinguished-Name
Text
The user name in canonical format (this is an IAS-internal attribute).

Called-Station-ID
Text
The phone number dialed by the user.

Calling-Station-ID
Text
The phone number from which the call originated.

Callback-Number
Text
The callback phone number.

Framed-IP-Address
Text
The framed address to be configured for the user.

NAS-Identifier
Text
The text that identifies the network access server originating the request.

NAS-IP-Address
Text
The IP address of the network access server originating the request.

NAS-Port
Number
The physical port number of the network access server originating the request.
9
Client-Vendor
Number
The manufacturer of the network access server (this is an IAS-internal attribute).
"10.10.10.10"
Client-IP-Address
Text
The IP address of the RADIUS client (this is an IAS-internal attribute).
"npsclient"
Client-Friendly-Name
Text
The friendly name for the RADIUS client (this is an IAS-internal attribute).

Event-Timestamp
Time
The date and time that this event occurred on the network access server.

Port-Limit
Number
The maximum number of ports that the network access server provides to the user.

NAS-Port-Type
Number
The type of physical port that is used by the network access server originating the request.

Connect-Info
Text
Information that is used by the network access server to specify the type of connection made. Typical information includes connection speed and data encoding protocols.

Framed-Protocol
Number
The protocol to be used.

Service-Type
Number
The type of service that the user has requested.
1
Authentication-Type
Number
The authentication scheme, which is used to verify the user and can be:
  • 1 = PAP
  • 2 = CHAP
  • 3 = MS-CHAP
  • 4 = MS-CHAP v2
  • 5 = EAP
  • 7 = None
  • 8 = Custom
This is an IAS-internal attribute.

Policy-Name
Text
The friendly name of the network policy that either granted or denied access. This attribute is logged in Access-Accept and Access-Reject messages. If a user is rejected because none of the network policies matched, then this attribute is blank.
0
Reason-Code
Number
The reason for rejecting a user, which can be:
  • 0 = IAS_SUCCESS
  • 1 = IAS_INTERNAL_ERROR
  • 2 = IAS_ACCESS_DENIED
  • 3 = IAS_MALFORMED_REQUEST
  • 4 = IAS_GLOBAL_CATALOG_UNAVAILABLE
  • 5 = IAS_DOMAIN_UNAVAILABLE
  • 6 = IAS_SERVER_UNAVAILABLE
  • 7 = IAS_NO_SUCH_DOMAIN
  • 8 = IAS_NO_SUCH_USER
  • 16 = IAS_AUTH_FAILURE
  • 17 = IAS_CHANGE_PASSWORD_FAILURE
  • 18 = IAS_UNSUPPORTED_AUTH_TYPE
  • 32 = IAS_LOCAL_USERS_ONLY
  • 33 = IAS_PASSWORD_MUST_CHANGE
  • 34 = IAS_ACCOUNT_DISABLED
  • 35 = IAS_ACCOUNT_EXPIRED
  • 36 = IAS_ACCOUNT_LOCKED_OUT
  • 37 = IAS_INVALID_LOGON_HOURS
  • 38 = IAS_ACCOUNT_RESTRICTION
  • 48 = IAS_NO_POLICY_MATCH
  • 64 = IAS_DIALIN_LOCKED_OUT
  • 65 = IAS_DIALIN_DISABLED
  • 66 = IAS_INVALID_AUTH_TYPE
  • 67 = IAS_INVALID_CALLING_STATION
  • 68 = IAS_INVALID_DIALIN_HOURS
  • 69 = IAS_INVALID_CALLED_STATION
  • 70 = IAS_INVALID_PORT_TYPE
  • 71 = IAS_INVALID_RESTRICTION
  • 80 = IAS_NO_RECORD
  • 96 = IAS_SESSION_TIMEOUT
  • 97 = IAS_UNEXPECTED_REQUEST
This is an IAS-internal attribute.

Class
Text
The attribute that is sent to the client in an Access-Accept packet.

Session-Timeout
Number
The length of time (in seconds) before the session is terminated.

Idle-Timeout
Number
The length of idle time (in seconds) before the session is terminated.

Termination-Action
Number
The action that the network access server takes when service is completed.

EAP-Friendly-Name
Text
The friendly name of the EAP-based authentication method that was used by the access client and NPS server during the authentication process. For example, if the client and server use Extensible Authentication Protocol (EAP) and the EAP type MS-CHAP v2, the value of EAP-Friendly-Name is “Microsoft Secured Password (EAP-MSCHAPv2)."

Acct-Status-Type
Number
The number that specifies whether an accounting packet starts or stops a bridging, routing, or Terminal Server session.

Acct-Delay-Time
Number
The length of time (in seconds) for which the network access server has been sending the same accounting packet.

Acct-Input-Octets
Number
The number of octets received during the session.

Acct-Output-Octets
Number
The number of octets sent during the session.

Acct-Session-Id
Text
The unique numeric string that identifies the server session.

Acct-Authentic
Number
The number that specifies which server authenticated an incoming call.

Acct-Session-Time
Number
The length of time (in seconds) for which the session has been active.

Acct-Input-Packets
Number
The number of packets received during the session.

Acct-Output-Packets
Number
The number of packets sent during the session.

Acct-Terminate-Cause
Number
The reason that a connection was terminated.

Acct-Multi-Ssn-ID
Text
The unique numeric string that identifies the multilink session.

Acct-Link-Count
Number
The number of links in a multilink session.

Acct-Interim-Interval
Number
The length of interval (in seconds) between each interim update that the network access server sends.

Tunnel-Type
Number
The tunneling protocol to be used.

Tunnel-Medium-Type
Number
The medium to use when creating a tunnel for protocols. For example, L2TP packets can be sent over multiple link layers.

Tunnel-Client-Endpt
Text
The IP address of the tunnel client.

Tunnel-Server-Endpt
Text
The IP address of the tunnel server.

Acct-Tunnel-Conn
Text
An identifier assigned to the tunnel.

Tunnel-Pvt-Group-ID
Text
The group ID for a specific tunneled session.

Tunnel-Assignment-ID
Text
The tunnel to which a session is assigned.

Tunnel-Preference
Number
The preference of the tunnel type, as indicated with the Tunnel-Type attribute when multiple tunnel types are supported by the access server.

MS-Acct-Auth-Type
Number
A Routing and Remote Access service attribute. For more information, see RFC 2548.

MS-Acct-EAP-Type
Number
A Routing and Remote Access service attribute. For more information, see RFC 2548.

MS-RAS-Version
Text
A Routing and Remote Access service attribute. For more information, see RFC 2548.

MS-RAS-Vendor
Number
A Routing and Remote Access service attribute. For more information, see RFC 2548.

MS-CHAP-Error
Text
A Routing and Remote Access service attribute. For more information, see RFC 2548.

MS-CHAP-Domain
Text
A Routing and Remote Access service attribute. For more information, see RFC 2548.

MS-MPPE-Encryption-Types
Number
A Routing and Remote Access service attribute. For more information, see RFC 2548.

MS-MPPE-Encryption-Policy
Number
A Routing and Remote Access service attribute. For more information, see RFC 2548.

Proxy-Policy-Name
Text
The name of the connection request policy that matched the connection request.

Provider-Type
Number
Specifies the location where authentication occurs. Possible values are 0, 1, and 2. A value of 0 indicates that no authentication occurred. A value of 1 indicates that authentication occurs on the local NPS server. A value of 2 indicates that the connection request is forwarded to a remote RADIUS server for authentication.

Provider-Name
Text
A string value that corresponds to Provider-Type. Possible values are "None" for a Provider-Type value of 0, "Windows" for a Provider-Type value of 1, and "Radius Proxy" for Provider-Type value of 2.

Remote-Server-Address
IP address
The IP address of the remote RADIUS server to which the connection request was forwarded for authentication.
"CLIENTCOMP"
MS-RAS-Client-Name
Text
The name of the remote access client. The Vendor-Length of the Value field, including the vendor ID, vendor-type, vendor-length, and value, must be at least 7 and less than 40.
Value, which specifies the computer name of the endpoint that is requesting network access, is sent in ASCII format and is null terminated.
The valid character set for the computer name includes letters, numbers, and the following symbols: ! @ # $ % ^ & ‘ ) ( . - _ { } ~.

MS-RAS-Client-Version
Number
The operating system version that is installed on the remote access client. The Vendor-Length of the Value field, including the vendor ID, vendor-type, vendor-length, and value, must be at least 7.
Value, which specifies the version of the operating system on a remote access client, is a string that is in network byte order.

Como siempre, gracias por leerme. Espero que os guste.
Related Posts Plugin for WordPress, Blogger...