jueves, 20 de noviembre de 2014

Calculadoras para Android

Este es uno de esos posts que quedan en el tintero, nunca lo termino. Acá va .....

Compré una tablet Samsung Galaxy tab 2, con upgrade de sistema operativo a Android 4.2. La compré con intenciones de tomar contacto de primera mano con tablets, veo difícil encontrar tiempo para hacer algo de desarrollo de software. La utilizo en una carcasa otterbox de la serie defender. Parece una tablet industrial,  pero ha sobrevivido con éxito varias caídas y viajes diarios en mi mochila.

Le instalé poco software extra: acrobat reader, kindle para android y un par de aplicaciones de GPS. La he utilizado bastante para hacer fotografías y vídeos caseros. En lineas generales estoy bastante conforme con la  tablet. Encontré la calculadora que venia de fabrica un poco pobre, por lo que decidí buscar algo mejor.

Si bien mis actividades diarias me demandan poco de una calculadora científica, decidí buscar una de ese tipo. Que soportara lo habitual: logaritmos y exponenciales, trigonometría, funciones hiperbólicas.  otra cosa útil era la capacidad de graficar.

Hay una oferta grande de calculadoras para dispositivos android en Google Play, aca dejo un comentario de lo que me gustó más:
  • Scientific Calculator: de Scalea Software. Si aspecto recuerda a una calculadora clásica HP o TI. No gráfica, esto no la hace menos valida.
  • Droid48sx: Basada en un emulador de calculadora HP. Trabaja con notacion polaca, esto puede ser incomodo si no se tiene costumbre. 
  • TechCalc: Esta calculadora grafica permite representar varias funciones simultaneamente. 
Me quedé con TechCalc, lo unico que me molesta son los avisos. Pero la calculadora esta muy completa, puede ser útil para un estudiante de secundaria o bachillerato,  incluso cursos universitarios.

martes, 11 de noviembre de 2014

Rotacion de logs

Esta entrada del blog tiene que ver con mi trabajo con fortigate y syslog-ng. Una vez configurados los appliances para que loguee mediante syslog, es necesario administrar los logs. De no hacerlo los logs crecerán indefinidamente. La rotación de logs consiste en remplazar un archivo de logs "lleno", por uno nuevo vacío. Los archivos viejos se guardan de acuerdo a un criterio a definir o necesidades particulares de la instalación. 

En mi caso concreto estoy trabajando con logrotate, una herramienta disponible en muchas distribuciones Linux. Ha sido portada a varios UNIXes (Solaris, AIX). Si no se cuenta con una herramienta como logrotate, es necesario desarrollar un script ad hoc. En una próxima entrada del blog voy a poner uno. Estoy trabajando en SuSE enterprise, algún camino podría cambiar en otra distribución.

EN el directorio de configuración de logrotate, /etc/logrotate.d/, agregue un archivo para rotar los logs de los fortigate. Va el listado del archivo:


/var/log/fortigate {
    create 0644 root root
    compress
    dateext
    daily
    rotate 30
    missingok
    postrotate
        /etc/init.d/syslog reload > /dev/null
    endscript
}


Por cada archivo o grupo de archivos a rotar tendremos una entrada como esta. Tenemos las entradas prerotate o postrotate, donde podemos poner un script que se corre antes o después de la rotación. La entrada daily define que la rotación sea diaria, podría ser weekly o monthly para rotar semanalmente o mensualmente. Otra alternativa es rotar por tamaño del archivo, en lo personal no me gusta, prefiero rotar por fecha. Otras entradas importantes son rotate, compress y missingok. Con rotate definimos cuantos archivos queremos conservar. El comando compress es opcional pero muy recomendado, los archivos son comprimidos luego de rotados. Podría darse que un archivo de logs no exista, para esto tenemos la directiva missingok. En la pagina man del paquete se puede ver mas opciones, el paquete es muy versatil.

lunes, 10 de noviembre de 2014

Limpiar directorio SoftwareDistribution

Buscando solución a un problema de respaldos encontré este directorio consumiendo casi 2GB de disco. La mayoría de los archivos aparentaba estar allí hace mucho, decidí borrar ese directorio. Una búsqueda en los foros de soporte de microsoft me llevo a armar el procedimiento que detallo acá:

  • Ir a Inicio, opción ejecutar. Alli poner cmd y dar enter.
  • En la línea de comando ejecutar  net stop wuauserv.
  • Renombrar el directorio c:\windows\softwaredistribution a
    c:\windows\softwaredistribution.old.
  • Iniciar nuevamente el servicio: net start wuauserv.
  • Cerrar la ventana
El procedimiento es simple, permite recuperar algo del espacio desperdiciado. Hay más, tendré que dedicar futuras entradas del blog a esto. 

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 envio 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..

miércoles, 27 de agosto de 2014

Aprender electrónica

Quiero aprender más electrónica. En mi adolescencia hice cursos de "Técnico en Radio y TV". Esos cursos se centraban en el diagnostico y reparación de fallas comunes en radios, equipos de audio y televisores. Cubrían poca cosa de fundamentos de electrónica, necesaria para diseñar y/o adaptar circuitos. Algo de eso me sirvió para diagnosticar fallos en fuentes y algún equipo periférico.

En facultad tuve un curso de arquitectura de computadoras, que dedicaba un tiempo importante a fundamentos de electrónica digital. Trabajé con compuertas lógicas y simulamos unos cuantos circuitos.

Libros

 Me gusta recurrir a libros, no reniego de los recursos en linea pero tengo habito de lectura. Acá van algunos libros que a mi entender pueden ser útiles para el autoaprendizaje. 

  • Electrónica básica para ingenieros: Este libro esta pensado para quienes necesitan saber electrónica, sin ser el centro de su actividad profesional. El libro esta disponible en la pagina personal del autor.Es de los pocos que he visto en español que van hacia lo que busco. 
  • Understanding Basic Electronics: Este libro de ARRL está orientado a radioaficionados, es igualmente útil al aficionado. Tiene dos libros complementarios, que cubren temas de radio y antenas. 
  • Basic Electronics: Una reimpresión de un viejo libro de la US Navy, aun vigente.No es un libro profundo, apunta a que el personal embarcado adquiera conocimientos básicos que puedan serle de utilidad en su trabajo diario. Tiene un libro complementario de electricidad. 
  • Make: Electronics: Libro de la revista make, aparenta ser bastante llano.Pone énfasis en aprender haciendo (learn by doing).

Sitios

Me queda mucho por escribir, especialmente de software. La simulación por software de circuitos tiene ventajas y baja costos; para llegar a armar un circuito eliminando errores.

Actualizacion 20/09/2014: Por una publicacion de un amigo en Facebook, me entero de esta nota de EFYTimes, con muchos enlaces útiles.

lunes, 18 de agosto de 2014

Direcciones virtuales en Zimbra

Un problema que tuve que resolver días atrás en Zimbra: tengo que redirigir el correo que llega a una direccion a otra direccion externa.

Conozco algo la estructura interna de Zimbra, como el MTA es Postfix salí a buscar la solución por el lado de tablas de direcciones virtuales. Y no dudo que sea posible hacerlo, pero implica cambiar archivos de configuración de zimbra.

La "forma zimbra" de resolver esto es con listas de Correo. Soy consciente de estar abusando de una herramienta, pero no implica hacer cambios que en un upgrade puedan dejar de andar.

Me queda en mi lista de pendientes tratar de resolverlo con direcciones virtuales, de alguna forma que sea compatible con la configuración interna de zimbra.

lunes, 21 de julio de 2014

Diagramas de Red con Software libre

El blog viene quieto, con poca actividad. Lejos de poder sentarme a escribir, los últimos meses han venido bastante atareados. Hoy leí a Suren, en Google+, me hizo acordar algo interesante a compartir.

En mayor o menor medida, muchos tenemos necesidad de representar gráficamente topologias de redes o arquitecturas física de soluciones a desplegar. El estándar de facto para esta tarea es Visio, un paquete opcional para de Microsoft Office. Con todas las contras que esto tiene, empezando por el costo. 

Una de las primeras herramientas que utilicé es Xfig, un programa bastante antiguo. Tiene una buena biblioteca para dibujar diagramas. Es capaz de exportar SVG, que ayuda a integrar esos diagramas en otros documentos. La interface de usuario es difícil de aprender, hay opcionesmodernas y amigables al usuario.
Circuito dibujado en XFig
 DIA es una opción muy popular, ademas de ser pensado como una alternativa a Visio. Kivio/Calligra Flow es otra alternativa, aparentemente más pulida. Con DIA supe trabajar, los resultados finales son adecuados.

DIA en acción


Lo que me motivó a escribir es la posibilidad de usar Libre Office (u OpenOffice) para dibujar diagramas de red. Hace mucho tiempo Sebastian Criado publicó al respecto en su blog, creo que lo comentó en una de las listas del UYLUG. El post del blog esta aqui, para el quiera leerlo. Suren contaba de un POST que en el sitio de VRT Systems hay disponible para descarga formas y clipart para diagramas de redes, para Libre/Open Office.

Los gráficos son de muy buena calidad, cubren equipo actual de uso corriente.