lunes, 3 de noviembre de 2014

Respaldos MOODLE

He estado trabajando en la actualización de un servidor Moodle muy viejo, versión 1.9.4. Para llevar este servidor a la ultima versión estable, es necesario hacer una serie de actualizaciones pasando por varias de las versiones intermedias. Se aconseja realizar respaldos totales, previo a cada actualizaciones. Es deseable que en el respaldo esté el directorio de datos (MOODLEDATA), la base de datos y el directorio que contiene los ejecutables.

Para este trabajo hice un script que dejo acá:

#!/bin/sh
# Respaldo Total de Moodle


MYSQLDUMP=$(which mysqldump)
TAR=$(which tar)


# Directorio Instalación de Moodle
MOODLE_DIR="/var/www//moodle"

# Directorio de Datos de Moodle
MOODLE_DATA_DIR="/var/moodledata"


APACHE_CONF_DIR="/etc/apache2"
PHP_CONF_DIR="/etc/php5"

MYSQL_USER="mysql_administrator"
MYSQL_PASSWORD="Muy.Secreta"
MYSQL_DB="moodle_db"

SERIAL=$(date +%Y%m%d-%H%M)

BKP_DIR="/home/RESPALDO"
BKP_FILE="TOTAL-MOODLE_EMPRESA"

echo "Comienza Respaldo de Moodle"
echo "DUMP de Base de datos"
${MYSQLDUMP} -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DB} > ${BKP_DIR}/${MYSQL_DB}.sql
echo "Respaldo de Moodle y MoodleData"
${TAR} -cvzf ${BKP_DIR}/${BKP_FILE}-${SERIAL}.tar.gz ${MOODLE_DIR} ${MOODLE_DATA_DIR} ${PHP_CONF_DIR} ${APACHE_CONF_DIR} ${BKP_DIR}/${MYSQL_DB}.sql
echo "fin"

 Pendientes

Este script es muy básico, bien ad hoc. El script puede hacerse mas generico, Moodle trabaja con las bases de datos más populares. La mayoria de las instalaciones trabajan con MySQL, pero estaría bueno soportar otras bases de datos. Es útil contar con algo de documentación y un paquete de instalación, para las distribuciones más populares.

jueves, 2 de octubre de 2014

configurar syslog-ng para logs de FortiOS

Esta entrada es una suerte de segunda parte, de la publicada semana atrás. Una vez que tenemos nuestros equipos Fortigate logueando a un servidor syslog es deseable que los logs vayan a uno o más archivos;  separando por dispositivo y/o tipo de mensajes. Trabajé con syslog-ng, que facilita mucho este trabajo.

Paso previo: configurar syslog-ng para logueo remoto

 Esto debería estar pronto, es útil para las pruebas de configuración de los clientes remotos. En el archivo de configuración de syslog-ng, buscar la sección source src, alli descomentar o agregar la siguiente linea:

udp(ip("0.0.0.0") port(514));

Esta linea  habilita a recibir mensajes de clientes remotos. En equipos con múltiples interfaces de red, si quisiéramos habilitar una sola interface, sustituir 0.0.0.0 por la IP de la interface que queremos utilizar.

Configurar filtros

Syslog NG marca el trafico mediante filtros, esas marcas serán utilizadas para redirigir el trafico. En  mi caso tengo los equipos fortigate configurados para loguear en la facility LOCAL7. Quiero que los logs generados por aplicaciones locales no se mezclen con los logs del fortigate. Asi queda configurado mi filtro para la facility local:

filter f_local { 
    facility(local0, local1, local2, local3,local4, local5, local6, local7)
    and not match('devname=FGT');
};

Este filtro marca todo el tráfico de las facilities local, menos el generado por dispositivos fortigate. En mi caso tuve que cambiar adicionalmente otros filtros:

filter f_messages { not facility(news, mail) and not filter(f_iptables)
and  not match('devname=FGT'); };

filter f_warn { level(warn, err, crit) and not filter(f_iptables)
and not match('devname=FGT'); };

Finalmente, configuré filtros específicos para dispositivos mis dispositivos fortigate:

filter f_ap    { facility(local7) and match('devname=FGT50'); };

filter f_forti  { facility(local7) and match('devname=FGT70'); };


En mi caso basta con que filtre por modelo de dispositivo, aquellos que tengan todos los dispositivos del mismo modelo deberán afinar los filtros. El tag devname trae el numero de serie, adicional al modelo.

Configurar destino del log

 Solo resta configurar el destino de los logs, en mi caso un archivo para access points y otro para firewalls:


destination apforti { file("/var/log/ap-fortigate"); };
log { source(src); filter(f_ap); destination(apforti); };

 

destination firewall { file("/var/log/firewall-fortigate"); };
log { source(src); filter(f_forti); destination(firewall); };


Conclusiones

 Esta configuracion la tengo funcionando hace varios meses. Para quienes no necesitamos las herramientas especificas de fortigate, es más que adecuada. Quienes tengan muchos dispositivos fortigate pueden necesitar configuraciones adicionales. Y no olvidar configurar la rotación de logs.

martes, 16 de septiembre de 2014

logs a syslog en FortiOS 5.0 y 4.0

La semana pasada tuve que trabajar con un equipo fortigate, configurando que el mismo loguear a syslog. La novedad de este equipo es que esta con la versión 5 de FortiOS. En la versión 5 para configurar syslog es necesario hacerlo por linea de comando, en versiones previas donde se hacia por menú.

Configuración de logs en FortiOS 4.0
En la Knowledge Base de Fortigate encontré un documento que cubre este caso. Los equipos admiten loguear hasta 3 servidores syslog simultáneos. Para quien no quiere leer el documento, va aquí un resumen de la tarea. La primera parte es habilitar el envío de logs a syslog, para esto entramos a la CLI y digitamos algo como lo que sigue:

       config log syslogd setting
        set facility nombre
        set port puerto
        set server direccion_ip
        set status enable
   end

Si quisiéramos configurar servidores adicionales, basta con remplazar syslogd por syslogd2 o syslogd3. La facility se recomienda utilizar alguna de las local (local1 a local7). El puerto estandar de syslog es el 514/UDP. En el manual hablan de poner la dirección IP del servidor syslog, el nombre DNS debería funcionar bien, en la medida que pueda resolverse con los DNS configurados en el appliance. Luego de configurado para probar esto desde la linea de comando ejecutamos:

       diag log test

Esto enviará a el servidor syslog un mensaje por cada categoría configurada. La configuración por defecto manda todos los eventos del equipo, para configurar que eventos enviamos:

      config log syslog filter
             set evento (enable|disable)
      end

Con estas directivas se puede configurar el envío a syslog tanto en FortiOS 4.0 como 5.0, en 4.0 es más cómodo hacerlo desde la interfase WEB. Lamentablemente Fortinet sigue, con cada nueva versión, sacando de la interfase WEB aquellas características que facilitan la integración con terceros.Para una proxima entrada del blog, voy a publicar como configurar el syslog para acceder a los logs de los equipos fortigate.

miércoles, 10 de septiembre de 2014

Restringir login en Windows con Active Directory

En un dominio necesité restringir el acceso de un usuario a ciertos equipos. Cuando se crea el usuario active directory este queda habilitado para acceder a todos los equipos del dominio. Si se quiere restringir a un equipo en particular, se listan los equipos a los que puede acceder. 




Una pista de que esta restricción está activa puede ser un mensaje como este: La configuracion de su cuenta no permite que use este equipo. Pruebe con otro equipo. Habilité a un usuario a acceder a un equipo adicional, no recordaba que había configurado esta restricción, de ahi este post..