Automatiza las salvas de logs en tu dominio.

Salva y borrado de los logs en servidores y computadoras de un dominio en Windows

Debido a las recientes auditorías realizadas a nuestras empresas en todo el país, y a las deficiencias comunes detectadas. Redacte esta ayuda para los que como yo tienen sin implementar un sistema de salvas de los logs. Es muy engorroso, difícil de recordar y además consume mucho espacio la salva de todos los logs de un dominio. Por eso me di a la tarea de cómo resolver la automatización del mismo. Espero que mi tutorial ayude a todos los que no tengan implementado nada y a los que lo tengan, pero lo hacen manualmente.

En el servidor donde queramos almacenar todos los Logs de las pc’s del dominio debemos configurar EventViewer para los logs locales del servidor, así como también las Políticas de grupo por defecto del dominio para que se propaguen a todas las PC’s del dominio.

Lo primero que haremos será configurar las políticas globales del dominio para lograr que cada PC del dominio al autentificarse configure sus logs de la manera que deseamos. Para ello debemos ir al administrador de políticas de grupo (Group Policy Managent) también en español seria Directiva de Seguridad de Dominio.

Desplegamos nuestro dominio y veremos la opción de Default Domain Policy, click derecho y editamos. Nos saldrá la ventana de Editor de Políticas de grupo (Group Policy Management Editor). Abrimos Computer configuration ya que es una política que le aplicaremos al pc y no al usuario. Y seguimos el camino de Polices\Windows Settings\Security Settings\Event log veremos que a la derecha podremos configurar que opciones queremos propagar en el dominio.

Estas opciones serian:

  • Tamaños Máximos de los Logs de aplicaciones, sistemas y seguridad.
  • Prevenir que el invitado local acceda a los Logs.
  • Definir si se almacenaran los Logs y su tiempo.
  • Definir la forma en que se almacenaran.

Como se aprecia he configurado como tamaño máximo de los logs para todas las PC’s del dominio, el máximo posible que se permite en Windows que no son para servidores. Estos 4Gb serán el máximo para almacenar todos los logs que generan las PC’s durante 365 días. Pero no se preocupen por esto, que nunca llegaran a esas cifras porque estarán limpiando y almacenando esos logs mucho antes de que se llenen.

Cuando esas políticas de dominio se propagan en el dominio entonces las PC’s quedarían regidas por ellas, como se aprecia en la foto.

Como se ve ya la PC del usuario tiene puesto que almacenara sus logs hasta un máximo de 4GB y los sobrescribirá si llegan a llenarse.

Pasamos ahora a configurar el EventViewer del Servidor que este es diferente ya que almacenara más datos. Configuramos cada logs (Application, Security y System) con el máximo posible que permite un Windows server. Como no me sabia el máximo simplemente llene el campo de 9999999….da ENTER así el mismo pondra su límite.

Aunque haya definido ese número tan grande nunca llegara al mismo pues configuraremos el tiempo en que queremos salvarlos y borrarlos. Al no saber qué tamaño tendrá en ese tiempo siempre fijo el máximo para no dejar afuera ningún log. En la fig. esta el ejemplo de configuración para el log de aplicaciones (application)

Ahora pasamos a la parte más importante, como salvar los logs almacenarlos y borrarlos para que nunca se desborden y nos ocupe todo el disco duro.

Después de una larga búsqueda en internet y de probar miles de variantes encontré un script muy bueno y decidí probarlo, para todo el que quiera está en (https://technet.microsoft.com/es-es/library/2009.07.heyscriptingguy) y bien explicadito por si saben modificarlo y quieren mejorarlo…compartan si hacen alguna mejora.

En esencia el script que se ejecuta en el servidor almacena todos los logs de las pc’s del dominio en una ubicación específica y deja también esos logs almacenados en cada PC. Por lo que en el pc del usuario tendremos en una ubicación del disco duro las salvas periódicas de sus logs. Con su fecha correspondiente y almacenados en carpetas organizadas. Y en el servidor donde se corre el script tendremos los logs de todas las PC’s del dominio incluyendo las locales del servidor.

El script está programado para correr con el powershell de Windows server, no es un batch de cmd. Por lo que tuve que hacer algunas correcciones para lograr un fichero por lotes más manejable que lo ejecuté automáticamente.

Para correr automáticamente las tareas sin preocuparme cree 2 ficheros de lotes uno para salvar los logs del server y otro para salvar los logs de las PC’s del dominio.

Estos ficheros son:

logAD.bat – Salva localmente los logs de todas las pc’s del dominio que se encuentran encendidas en ese momento los replica en el servidor y al final los borra en cada PC.

logserver.bat – Salva localmente los logs del servidor y los borra al final de la salva.

Para correrlos automáticamente use el task manager de Windows en el cual programe las 2 tareas por separado. Una para los servidores y la otra para las Pc’s del dominio.

Si quieren saber cómo programar tareas en Windows vean este link , es fácil.

Programe en el server, que se realizaran las salvas del servidor todos los días 15 de cada mes a la 1pm. Eso sería 1 vez al mes, ya que los servidores siempre estarán encendidos no hay problemas.

Para las pc’s del dominio lo programe 3 veces al mes, los días 1, 16 y el ultimo día de cada mes a las 3pm. Eso hace que sea cada 15 días. Lo hice de esa forma para lograr almacenar la mayor cantidad de logs posible porque puede darse el caso de que algunos pc’s no este encendida en el momento de la salva. Así que si el día 1 un determinado pc estaba apagado a las 3pm y el día 16 si se le pudo hacer la salva entonces los logs serian de 1 mes.

Pasemos ahora a la explicación del script de powershell que realiza todo el trabajo. El fichero se llama BackUpAndClearEventLogs.ps1 y realiza una salva de los logs de un pc remoto los guarda localmente y también los almacena desde el pc que fue llamado.

Para ello crea la siguiente estructura de carpetas:

En el servidor:

D:\logarchive (yo modifique el camino para la torre D porque hay más espacio para almacenar todos los logs de las pc’s del dominio)

D:\logarchive\nombre del pc-Logs-fecha (dentro anida las carpetas correspondientes a cada salva de logs de PC)

En las PC’s:

D:\logfolder\nombre del pc-Logs-fecha (dentro los logs de ese PC)

En la figura se aprecia la estructura de carpetas en el servidor donde se han guardado ya varias salvas de logs de PC del dominio. Algo parecido tendremos en cada pc, pero solo verán los logs de esa PC.

El script cuanta con su ayuda la cual pueden acceder si ponen en el powershell de Windows el siguiente comando:

BackUpAndClearEventLogs.ps1 –help

Se les mostrara la siguiente ayuda:

DESCRIPTION:

NAME: BackUpAndClearEventLogs.ps1

This script will backup, archive, and clear the event logs on

both local and remote computers. It will accept a computer name,

query AD, or read a text file for the list of computers.

PARAMETERS:

-LogsArchive local or remote collection of all computers event logs

-List path to a list of computer names to process

-Computers one or more computer names typed in

-AD switch that causes script to query AD for all computer accounts

-Localhost switch that runs script against local computer only

-Clear switch that causes script to empty the event log if the back succeeds

-Help displays this help topic

SYNTAX:

BackUpAndClearEventLogs.ps1 -LocalHost

Backs up all event logs on local computer. Archives them to C:\logarchive.

BackUpAndClearEventLogs.ps1 -AD -Clear

Searches AD for all computers. Connects to these computers, and backs up all event

logs. Archives all event logs to C:\logarchive. It then clears all event logs

if the backup operation was successful.

BackUpAndClearEventLogs.ps1 -List C:\tmp\ListOfComputers.txt

Reads the ListOfComputers.txt file to obtain a list of computer. Connects to these

computers, and backs up all event logs. Archives all event logs to C:\logarchive.

BackUpAndClearEventLogs.ps1 -Computers “economia,caja” -LogsArchive “\\economia\C$\tmp\Logs”

Connects to a remote computers named economia and caja, and backs up    all event

logs. Archives all event logs from all computers to the path c:\tmp\Logs directory on

a remote computer named economia.

BackUpAndClearEventLogs.ps1 -help

Prints the help topic for the script

Como pueden apreciar el scritp es muy versátil y pueden combinarlo de muchas formas y pasarle parámetros para obtener diferentes resultados.

Pueden básicamente:

BackUpAndClearEventLogs.ps1 –LocalHost (salva logs localmente)

BackUpAndClearEventLogs.ps1 -AD –Clear (salva los logs de todas las pc’s del dominio y después los borra)

BackUpAndClearEventLogs.ps1 -List C:\fso\ListOfComputers.txt (salva los logs de las pc’s que están listadas en el txt)

BackUpAndClearEventLogs.ps1 -Computers “Berlin,Vista” -LogsArchive \\berlin\C$\fso\Logs (salva los logs de las pc’s especificadas con el comando –computers y crea un fichero de logs en el camino especificado)

Se pueden combinar estas opciones para crear una mayor complejidad.

En la figura se observa el script corriendo sobre el AD, las pc’s que no están activas las salta y las que están activas las procesa. Espero les sirva de ayuda el script y no les cojan como deficiencia en las auditorias que no salvan los logs.

Siéntanse libres de modificar los ficheros que les suministro y adecúenlo a sus necesidades.

Alex out

Aca dejo los scripts.

Los ficheros batch para automatizar el proceso..les recuerdo q yo utilice un txt con mis pc dentro para separar las pc que tengo en la gerencia de las q tengo en las demas bases, por un problema de velocidad..ustedes pueden hacer lo que deseen.

 

 

(Visited 565 times, 1 visits today)
Sobre Alexander Rivas Alpizar 23 Artículos
Administrador de Redes de EMPRESTUR Cienfuegos

1 Comentario

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*