jueves, 26 de marzo de 2015

Manual basico de instalación y configuración Zoneminder 1.28 en fedora 21

No voy a entrar en definiciones de que es y para que sirve zoneminder, para eso puedes ir a la pagina principal o buscar en otros sitios; Lo que haremos en este pequeño escrito es ver la instalación y configuración del mismo, así que manos a la obra.



[Nota de actualización a v1.29.0]

En el proceso de actualización nos va a dar errores nuevamente con los sockets de apache, el error es como el siguiente:

web_php[19063]: ERR [socket_sendto( /var/lib/zoneminder/sock/zms-329947s.sock ) failed: No such file or directory]

A lo cual debemos modificar nuestro zoneminder de la siguiente forma:

1) cambios en la interfaz web en el menú "Opciones->Rutas" en el campo "PATH_ZMS" y cambiar el valor a "/zoneminder/cgi-bin/zms"
2) El segundo cambio que debemos realizar es a nivel de la configuración del virtualhost de apache, en /etc/httpd/conf.d/zoneminder.conf en la linea

ScriptAlias /cgi-bin-zm "/usr/libexec/zoneminder/cgi-bin"

debemos modificarla de la siguiente forma:

ScriptAlias /zoneminder/cgi-bin "/usr/libexec/zoneminder/cgi-bin"


Reiniamos zoneminder y apache y con esto ya deberían tener funcionando nuevamente el streaming por el ambiente web

Ref: https://forums.zoneminder.com/viewtopic.php?f=34&t=24265&p=92469#p92469


1 Verificar el soporte

Lo primero que debemos tener en cuenta al momento de configurar zoneminder es el dispositivo de captura a usar y ver si esta soportada o al menos hay pruebas con el mismo, esto se puede verificar directamente en la pagina de zoneminder en donde ademas nos indican los ajustes que se le deben hacer a las cámaras.

2 Instalación

Una vez se haya verificado el soporte procedemos a la instalación, tenemos dos métodos para la instalación si bien lo podemos hacer a través de las fuentes, lo mas cómodo para la actualización son los repositorios; por lo cual vamos a utilizar uno en particular el cual nos ofrece las ultimas versiones. En este enlace están las instrucciones de como instalarlo.

2.1 Instalar repositorio y software base

Una vez instalado el repositorio se instala zoneminder y la base de datos mariadb el cual es un clon de mysql.

yum install zoneminder mariadb-server

2.2 Configuración de la base de datos

Ahora es necesario configurar la base de datos y el usuario en mariadb(mysql)
Lo primero que haremos será definir una contraseña al usuario root de la base de datos esto se hace de la siguiente forma:

2.2.1 Configuración de la contraseña del usuario root


mysqladmin -u root password 'mirootpass'

2.2.2 Ingresar a mariadb

mysql -u root -p
Enter password:

2.2.3 crear la base de datos

MariaDB [(none)]> create database zm;

2.2.4 Crear usuario y permisos

grant all on zm.* to zm@localhost identified by 'mizmpass';

Con esto ya tenemos creado el usuario y sus respectivos permisos, ahora debemos cargar la base de datos básica para que zoneminder inicie.

2.2.5 Cargar datos iniciales a la base de datos


Primero vamos al directorio en donde esta el script para inicializar la base de datos:

cd /usr/share/zoneminder/db/

Ahora cargaremos los datos a la base de datos de zoneminder:
mysql -u zm -p zm < zm_create.sql

Con esto ya se debe poder iniciar el servicio de zoneminder, tener en cuenta que la base de datos debe estar activa.

systemctl enable zoneminder.service
systemctl start zoneminder.service



2.2.6 Ajustes adicionales apache

Hay una particularidad con los scripts cgi de zoneminder y fedora, por lo cual hay que modificar la configuración de apache para que funcione correctamente, esto se hace editando el siguiente archivo:

vi /etc/httpd/conf/httpd.conf

Seguidamente buscamos la siguiente linea “#   ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
Con esta modificación terminamos la modificación de apache y procedemos a la configuración.

3 Configuración de zoneminder

3.1 Acceder a la administración

Con el servicio iniciado es hora de acceder a la configuración ingresando la ip en donde se instaló el servicio: http://127.0.0.1/zm



Como se puede observar se permite acceder directamente a la consola sin ningún tipo de autenticación lo cual se debe modificar ademas del idioma, a continuación veremos como modificar estos valores y agregar las cámaras y demás.

3.2 Activar autenticación y cambio de idioma

Hacemos click en el menú “options” y nos desplegá las opciones.


Guardamos los cambios y nos exige el reinicio de zoneminder

systemctl restart zoneminder.service

Ahora cuando se vuelve a intentar ingresar nos exige autenticarnos, el usuario y contraseña es “admin”.

3.3 Agregar una cámara

En la interfaz principal hacemos click en el botón “agregar nuevo monitor” lo cual nos despliega el siguiente menú.



A continuación la descripción de los campos:
Nombre: nombre descriptivo del monitor o como se va a identificar la camara.
Tipo de origen: como su nombre lo dice es como se va a acceder el dispositivo, si es esta conectado directamente al pc debería ser local, en caso que sea una camara ip sería remoto o ffmpeg; o depende de las instrucciones que se den en la wiki en donde se especifica como se deben ajustar estos valores.
Función: en este caso se debería colocar en “modec”, el cual solo graba cuando se detecta movimiento, en caso de querer solo el streaming se debería colocar en “monitor”, en caso de querer grabar solo lapsos de tiempo específicos se debería colocar en “record”, por utlimo se tiene la opción “mocord” la cual grabará continuamente.
Linked monitors: en esta opción se debería seleccionar las cámaras que se deberían activar en caso que en este monitor se presente una alarma, esto es particularmente útil cuando se esta monitoreando un pasillo o espacios los cuales tengan una sola entrada.
Máximos FPS: esto es útil cuando se tiene una cámara potente y un pc con poco rendimiento, lo que se hace es limitar el flujo de fotogramas desde la cámara y procesar solo la cantidad necesaria.
Un monitor configurado en esta pestaña quedaría de la siguiente forma, para una cámara que esta recibiendo un flujo rtsp; en este caso no hay monitores enlazados.



Ahora veremos la pestaña en donde se especifica el origen del dispositivo.






En este espacio es altamente recomendable consultar el hardware soportado ya que de allí tomaremos las instrucciones de configuración de cada dispositivo en particular, en el caso particular para una cámara TL-SC3130 tendremos las siguientes configuraciones para capturar el flujo rtsp.


3.4 Borrar las capturas antiguas

Uno de los puntos mas importantes y que son poco claros es el hecho de borrar la información que ya no es útil o que sencillamente es necesario liberar ese espacio en el disco, aun así la herramienta con la que cuenta para tal fin es muy versátil y podemos jugar muchos valores a la vez, la opción por la que debemos ingresar es por filtros.




Una vez dentro de filtro veremos algo como lo siguiente:

Ahora para crear un nuevo filtro y borrar los videos que sean mayores a 4 días, se deben seleccionar por “fecha”, “menor que” y escribir tal cual “-4 days”, seguidamente en las opciones a ejecutar se seleccionar “borrar todas las coincidencias”.



Ahora se guarda y sin olvidar de marcar la opción “ejecutar filtro en segundo plano” lo cual ejecutara dicho filtro periódicamente.



Con esto se terminaría una instalación básica de zonemider, no sobra mencionar los foros de zoneminder ya que son de mucha ayuda y cuentan con una comunidad muy activa.

Nota: se debe tener selinux desactivado ya que los módulos existentes no son totalmente compatibles para el correcto desempeño.

jueves, 4 de diciembre de 2014

Actualización dansguardiancm GUI ncurses version

Después de mas de un año del lanzamiento de la versión escrita en c++ y ncurses de la GUI de dansguardian llamada danguardiancm e terminado de reescribir la aplicación con un poco  mas de técnica y tratando de cuidar algunos aspectos de programación y otros detalles.

Algunos aspectos que se mejoraron fueron los siguientes:
- Se elimino la dependencia innecesaria de qmake.
- Programación basada en objetos.
- Compilación vía cmake
- Soporte de desinstalación a través de "make uninstall"
- Separación de ficheros de configuración de los binarios

Por el momento no se agregaron funcionalidades aparte de las que ya se tenían, pero se agrego el soporte de las clases lo cual hará mucho mas rápido el desarrollo de nuevas funcionalidades.

por el momento no me queda mas que dejar el link y quien se anime a probarlo aquí esta el link del proyecto.

https://sourceforge.net/projects/dansguardiancmn/

miércoles, 9 de julio de 2014

zabbix template 3com 4200G 48 ports

Esta ves me a tocado crear un template para un switch 3com 4200G de 48 puertos, en este caso el template lo he creado sin la pantalla de uso de los puertos puesto que zabbix a tenido la idea genial de no vincular las pantallas de los templates a la pestaña "pantallas", por lo tanto sin mas, aqui el template.

https://sourceforge.net/projects/zt3crom4200g48port/

Como siempre las dudas y recomendaciones son bien recibidas.

PD: Al fin decidí agregar la plantilla dentro del template, a fin de cuentas es bastante útil.

martes, 17 de junio de 2014

Template lxc para scientific linux

Probando las "nuevas" tecnologías dentro de las que destacan los contenedores en linux, me decidí a probarlo, encontrando templates para debian, fedora y oracle linux? :S. Probé los contenedores debian y fedora y trabajan muy bien.


Pero al momento de crear un contenedor de tipo centos entro mi primera duda, no fue difícil una pequeña búsqueda en google y di con el template para centos, teniendo como primera pega que al momento de estar dentro del contenedor no se puede ver el espacio en el disco.

Desde ese momento me nació la duda si pasaría también el scientific linux u oracle linux; la primera que descarté fue oracle linux la cual arrastra el mismo problema, pero a la hora de instalar un scientific linux comenzaron mis problemas; lo primero que encontré fue un template viejo no funcional y con mucho trabajo por hacer.

https://github.com/johanek/toft/blob/master/scripts/lxc-templates/lxc-scientific-6

así que me decidí a echar mano de bash y entender un poco el proceso de la creación de los contenedores y como resultado aquí lo tenemos, un template para scientific linux que soporta limites dentro de los parámetros y sin arrastrar los problemas al ver el espacio en disco.

https://sourceforge.net/projects/lxctsl/

Espero que sea de utilidad para alguien y si se encuentran errores los informen.

lunes, 3 de marzo de 2014

verificar RBL/listas negras mediante scritp en bash

Como todo mundo ya conoce y a vivido en carne propia el molesto spam y el día de hoy tuve otro encuentro cercano con un cliente listado en RBL's, decidí comenzar en la búsqueda de como automatizar la verificación de determinados servidores en las listas negras mas populares.

Me encontré con este script que si bien es de mi utilidad no llenaba todos los requisitos que necesitaba, así que le hice ciertas modificaciones para que se adaptará a mis necesidades.

#!/usr/bin/env bash
DEBUG="$1"
LOG="`mktemp`"
SRV="correo.prueba.org.co mail.example.com.co"
# RBL list from http://www.anti-abuse.org/multi-rbl-check/
RBL="bl.spamcop.net
cbl.abuseat.org
b.barracudacentral.org
dnsbl.sorbs.net
http.dnsbl.sorbs.net
dul.dnsbl.sorbs.net
misc.dnsbl.sorbs.net
smtp.dnsbl.sorbs.net
socks.dnsbl.sorbs.net
spam.dnsbl.sorbs.net
web.dnsbl.sorbs.net
zombie.dnsbl.sorbs.net
dnsbl-1.uceprotect.net
pbl.spamhaus.org
sbl.spamhaus.org
xbl.spamhaus.org
zen.spamhaus.org
bl.spamcannibal.org
psbl.surriel.com
ubl.unsubscore.com
dnsbl.njabl.org
combined.njabl.org
rbl.spamlab.com
dnsbl.ahbl.org
ircbl.ahbl.org
dyna.spamrats.com
noptr.spamrats.com
spam.spamrats.com
cbl.anti-spam.org.cn
cdl.anti-spam.org.cn
dnsbl.inps.de
drone.abuse.ch
httpbl.abuse.ch
dul.ru
korea.services.net
short.rbl.jp
virus.rbl.jp
spamrbl.imp.ch
wormrbl.imp.ch
virbl.bit.nl
rbl.suresupport.com
dsn.rfc-ignorant.org
ips.backscatterer.org
spamguard.leadmon.net
opm.tornevall.org
netblock.pedantic.org
multi.surbl.org
ix.dnsbl.manitu.net
tor.dan.me.uk
rbl.efnetrbl.org
relays.mail-abuse.org
blackholes.mail-abuse.org
rbl-plus.mail-abuse.org
dnsbl.dronebl.org
access.redhawk.org
db.wpbl.info
rbl.interserver.net
query.senderbase.org
bogons.cymru.com
csi.cloudmark.com"
for server in $SRV
do

  lip=$(dig +short $server)
  for ip in $lip
  do
    rip=$(echo $ip|awk -F"." '{for(i=NF;i>0;i--) printf i!=1?$i".":"%s",$i}')
    echo $server $rip
    for rbl in $RBL
    do
      if [ ! -z "$DEBUG" ]
      then
    echo "testing $server ($ip) against $rbl"
      fi
      result=$(dig +short $rip.$rbl)

      if [ ! -z "$result" ]
      then
    echo "$server ($ip) esta en $rbl con codigo $result" >> $LOG
    echo "$server ($ip) devolvió el siguiente mensaje $(dig +short -t txt $rip.$rbl)" >> $LOG
    echo "" >> $LOG
      fi
      if [[ ! -z "$DEBUG" && -z "$result" ]]
      then
    echo "\`->negative"
      fi
    done
  done
done

if [ ! -z "$(cat $LOG)" ] ; then
    cat $LOG | mail -s "Spam en uno de nuestros clientes" admin@example.com.co
fi

rm $LOG


Las modificaciones mas relevantes fueron el hecho de que en caso que un nombre de los servidores a verificar tuviese mas de una ip estas también fuesen verificadas y el envío de la notificación a través de correo electrónico en caso de que encuentre algún servidor listado.

Eso es todo por el momento, agradezco los comentarios y mejoras que se le puedan hacer al script.

lunes, 30 de diciembre de 2013

Dansguardian Console Manager ncurses Version (Beta)

Después de estar tocando cosas aquí y allá con mi primera versión de dansguardiancm y ver lo incomodo que resultaba trabajar con él, decidí crear otra versión un poco mas seria y un poco mas elaborada, esta ves escrita en C++ apoyandome en las librerias ncurses, la nueva versión es mucho mas amigable y mucho mas facil de expandir sus funcionalidades ya que se cuidaron bastantes aspectos es la programación estructurada (si, si ya se que debo hacerlo en POO pero eso será para futuras versiones) que no es lo mejor pero por algo se empieza (recuerden no soy desarrollador) asi que al igual que en la versión anterior lo cargue a sourceforge allí encontraran la wiki y demas puntos a considerar.

Sobra decir que espero sus comentarios a fines de hacer mejor la herramienta y claro desempolvar c++ ya que hacía años que no hacía algo minimamente serio :)

Dansguardiancm ncurses version