viernes, 22 de noviembre de 2013

Error durante actualizacion de Alfresco con locale LATIN1


Estaba actualizando la version del Alfresco que tengo instalado, para ello estuve siguiendo estos pasos:

http://www.fossoffice.com/en/2012/10/31/alfresco-community-upgrade/

En ese proceso me sale el siguiente mensaje de error:

Error: Se ha producido un error.
initdb.bin: encoding mismatch
The encoding you selected (UTF8) and the encoding that the
selected locale uses (LATIN1) do not match.  This would lead to
misbehavior in various character string processing functions.
Rerun initdb.bin and either do not specify an encoding explicitly,
or choose a matching combination.

Estos es debido a los locales del SO, en mi caso tengo un CentOS 6.3 , para corregir ello realizamos lo siguiente:

# vi /etc/environment
...
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
...

Guardamos los cambios y reinicio la PC ... fue lo que hice, no se si hay forma de cargar eso sin reiniciar ...

martes, 22 de octubre de 2013

Mejorando el filtrado del spamassassin en Zimbra

En este resumen vamos a ver los pasos para poder agregar herramientas ya conocidas que nos permitan mejorar la capacidad del filtrado del spam en Zimbra.

Datos:
Version de Zimbra: 8.0.4
SO: CentOS 6.2

Se asume que ya tenemos nuestro servidor Zimbra corriendo ...

A continuacion un breve resumen de lo que se usara...

- SPF(Sender Policy Framework)
Cuando un correo ingresa a nuestro servidor, el SPF revisa los datos de origen(IP), luego realiza una consulta a los servidores DNS(registro TXT para SPF) del dominio origen, comprueba si dicha IP esta autorizada a enviar o no.

- Razor
Es una red colaborativa de detección/notificación de spam. Cuando se recibe un spam nuevo, se informa a esa red de ese mensaje y a partir de ese momento, los servidores que reciban ese mismo mensaje y utilicen razor, lo detectará también como spam sin tener que configurar nada.

- Pyzor
Similar a Razor, se complementan de manera mutua.

Procedemos a instalar

1. SPF

# rpm -Uvh http://mirror.as24220.net/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install perl-Mail-SPF -y

Nos aseguramos que dentro del archivo /opt/zimbra/conf/spamassassin/init.pre tenga descomentado la linea
loadplugin Mail::SpamAssassin::Plugin::SPF


2. Razor

# yum install -y perl-Razor-Agent razor-agents

Configuramos Razor

# mkdir /opt/zimbra/amavisd/.razor
# chown -Rf zimbra:zimbra /opt/zimbra/amavisd/.razor
# su - zimbra
$ razor-admin -home=/opt/zimbra/amavisd/.razor -create
$ razor-admin -home=/opt/zimbra/amavisd/.razor -discover
$ razor-admin -home=/opt/zimbra/amavisd/.razor -register

Nos aseguramos que en el archivo /opt/zimbra/conf/spamassassin/v310.pre tenga descomentado la linea
loadplugin Mail::SpamAssassin::Plugin::Razor2

3. Pyzor

# yum -y install pyzor python

Configuramos pyzor

mkdir /opt/zimbra/amavisd/.pyzor
# chown zimbra:zimbra /opt/zimbra/amavisd/.pyzor
# su - zimbra
$ pyzor --homedir /opt/zimbra/amavisd/.pyzor discover


Nos aseguramos que en el archivo /opt/zimbra/conf/spamassassin/v310.pre tenga descomentado la linea
loadplugin Mail::SpamAssassin::Plugin::Pyzor

Adicionalmente instalaremos DCC, el cual tambien es una base de datos colaborativa com el Razor..

# wget http://rhyolite.com/anti-spam/dcc/source/dcc.tar.Z
# tar xzf dcc.tar.Z
# cd dcc-1.3.152
# ./configure --with-uid=zimbra
# make
# make install
# chown -R zimbra:zimbra /var/dcc

Hecho lo de arriba, ahora vamos al archivo /opt/zimbra/conf/spamassassin/local.cf y le agregamos al final

# vim /opt/zimbra/conf/spamassassin/local.cf
...

ok_languages en es 
ok_locales en es 
trusted_networks 127. 172.16.
skip_rbl_checks 0
use_razor2 1
use_pyzor 1
use_dcc 1
dcc_path /usr/local/bin/dccproc
dns_available yes 
score DCC_CHECK 4.000
score SPF_FAIL 10.000  
score SPF_HELO_FAIL 10.000
score RAZOR2_CHECK 2.500
score PYZOR_CHECK 2.500
score BAYES_99 4.300
score BAYES_90 3.500
score BAYES_80 3.000
bayes_ignore_header Received: from localhost
bayes_ignore_header Received: from mail.dominiolocal.com
...


Habilitamos el DCC en el archivo /opt/zimbra/conf/spamassassin/v310.pre

# vim /opt/zimbra/conf/spamassassin/v310.pre
...
loadplugin Mail::SpamAssassin::Plugin::DCC
...


Tambien habilitaremos el DSPAM, esto examina el contenido de cada mensaje y aprende qué tipo de contenido el usuario considera como spam...

Para ello, hacemos lo siguiente:
# su - zimbra
$ zmlocalconfig -e amavis_dspam_enabled=true

Finalmente reiniciamos el zimbra...

# su - zimbra
$ zmcontrol restart








viernes, 18 de octubre de 2013

Zimbra - zmstat-fd.pid not running

En un momento dado cuando veo el estado del servidor Zimbra, el estado del stats esta detenido

Ingresamos a la consola del Zimbra y vemos que un proceso no esta corriendo...

# su - zimbra

$ zmstatctl status
Running: zmstat-df
Running: zmstat-mtaqueue
Running: zmstat-mysql
process 4579 in /opt/zimbra/zmstat/pid/zmstat-fd.pid not running
Running: zmstat-io
Running: zmstat-allprocs
Running: zmstat-vm
Running: zmstat-cpu
Running: zmstat-proc
Running: zmstat-io-x
Running: zmstat-ldap

Este es un problema de permisos, para corregir ello ejecutamos el siguiente comando de zimbra como root

/opt/zimbra/libexec/zmfixperms

Claro, tambien debemos asegurarnos que el usuario y grupo propietario sea zimbra y finalmente reiniciamos el servicio

# su - zimbra
$ zmcontrol restart

Nos fijamos el status del stat y vemos que ya esta corriendo ...

$ zmcontrol status 
Host mail.dominio.com.pe
 antispam                Running
 ldap                    Running
 logger                  Running
 mailbox                 Running
 mta                     Running
 opendkim                Running
 snmp                    Running
 spell                   Running
 stats                   Running
 zmconfigd               Running


Espero le sirva a alguie mas ...!!!

miércoles, 16 de octubre de 2013

Reenvio en Postfix usando archivo aliases

Este es un pequeño recordatorio para hacer reenvio de correo en Postfix usando el archivo /etc/aliases

En este caso en particular se tiene un dominio virtual, aqui los datos para el ejemplo:

Dominio local: dominiolocal.com.pe
Dominio virtual: dominiovirtual.com.ec


Las cuentas de correo para el dominio local son:
useruno
userdos


Las cuentas de correo para el dominio virtual son:
e_useruno
e_userdos

Dato: el nombre del servidor es mail.dominiolocal.com.pe

Ahora si queremos hacer un reenvio de una cuenta local a otra seria sel siguiente modo:

Dentro del archivo /etc/aliases ponemos del siguiente modo

# vim /etc/aliases
...
#reenvio sin copia, el correo enviado a useruno llegara solo a la cuenta userdos
useruno: userdos@dominiolocal.com.pe
#reenvio con copia, el correo enviado a useruno llegara a ambas cuentas
useruno: useruno@dominiolocal.com.pe,userdos@dominiolocal.com.pe

#Para el caso de las cuentas virtuales seria del siguiente modo

#reenvio sin copia, el correo enviado a useruno llegara solo a la cuenta userdos
e_useruno: userdos@dominiovirtual.com.ec
#reenvio con copia, el correo enviado a e_useruno llegara a ambas cuentas
e_useruno: e_useruno@mail.dominiolocal.com.pe,userdos@dominiovirtual.com.ec
...

Luego de de guardar los cambios ejecutamos

# newaliases

Listo !





viernes, 10 de mayo de 2013

Zimbra - Enabled services read from cache. Service list may be inaccurate

En un momento dado el servidor Zimbra no estaba operativo, cuando trate de reniciar me salia el siguiente mensaje de "error".


# su - zimbra
# zmcontrol start
Host mail.dominio.com
Unable to determine enabled services from ldap.
Enabled services read from cache. Service list may be inaccurate.
Starting logger...Failed.
Starting logswatch...ERROR: service.FAILURE (system failure: ZimbraLdapContext) (cause: javax.net.ssl.SSLHandshakeException sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed)
zimbra logger service is not enabled! failed.

Buscando en la web, encontre que esto sucede porque los certificados han expirado. 

Para ello se puede verificar ejecutando lo siguiente:

/opt/zimbra/bin/zmcertmgr viewdeployedcrt all


Para "corregir" lo mencionado, realice lo siguiente:

Generar un nuevo CA

# /opt/zimbra/bin/zmcertmgr createca -new # /opt/zimbra/bin/zmcertmgr createcrt -new -days 365 # /opt/zimbra/bin/zmcertmgr deploycrt self # /opt/zimbra/bin/zmcertmgr deployca # /opt/zimbra/bin/zmcertmgr viewdeployedcrt

Luego

# /opt/zimbra/java/bin/keytool -import -alias root -keystore /opt/zimbra/java/jre/lib/security/cacerts -storepass changeit -file /opt/zimbra/conf/ca/ca.pem
Trust this certificate? [no]:  yes
Certificate was added to keystore


Finalmente reiniciamos el servicio


# su - zimbra
# zmcontrol restart

Espero le sirva a alguien mas ...


lunes, 29 de abril de 2013

BackUp - Zimbra Open Source

La version de Zimbra open source no cuenta con una interfaz web de BackUp's, para ello existen scripts que se pueden realizar mediante los comandos de Zimbra. Para un facil manejo de ello, elabore un pequeño script.

Edito el archivo /usr/local/sbin/ZimbraBackup.sh

# vim /usr/local/sbin/ZimbraBackup.sh


#!/bin/bash
echo ""
echo "*******************************************"
echo "********  Zimbra BackUp & Restore  ********"
echo "*******************************************"
echo ""
echo "Seleccione una opcion..."
echo ""
echo "BackUp completo de todo el Zimbra         : opcion 1"
echo "BackUp de todas las cuentas                       : opcion 2"
echo "BackUp de una cuenta                              : opcion 3"
echo "Restore completo de todo el Zimbra                : opcion 4"
echo "Restore de todas las cuentas                      : opcion 5"
echo "Restore de una cuenta                             : opcion 6"
echo "Enviar BackUp por SSH a otro servidor             : opcion 7"
echo ""
echo -n "Ingrese opcion : "
read opcion
if [ $opcion -eq 1 ]; then
        echo ""
        echo "BackUp Completo"
        echo "---------------"
        echo Start time of the backup = $(date +%T)
        before="$(date +%s)"
        echo -n "Ingrese ruta destino local :"
        read destino
        echo "Se va a realizar el BackUp completo de /opt/zimbra a $destino ..."
        /usr/bin/rsync -aHK --delete /opt/zimbra $destino/
        before2="$(date +%s)"
        echo The process lasted = $(date +%T)
        after="$(date +%s)"
        elapsed="$(expr $after - $before)"
        hours=$(($elapsed / 3600))
        elapsed=$(($elapsed - $hours * 3600))
        minutes=$(($elapsed / 60))
        seconds=$(($elapsed - $minutes * 60))
        echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
        else
                if [ $opcion -eq 2 ]; then
                echo ""
                echo "Backup all email accounts"
                echo "-------------------------"
                echo Start time of the backup = $(date +%T)
                before="$(date +%s)"
                echo ""
                echo -n "Ingrese ruta destino local :"
                read destino
                echo "Generando backup a la ruta $destino/ ..."
                DATE=`date +"%a"`
                ZDUMPDIR=$destino/$DATE
                ZMBOX=/opt/zimbra/bin/zmmailbox
                if [ ! -d $ZDUMPDIR ]; then
                mkdir -p $ZDUMPDIR
                fi
                echo " Running zmprov ... "
                       for mbox in `/opt/zimbra/bin/zmprov -l gaa`
                do
                echo " Generating files from backup $mbox ..."
                       $ZMBOX -z -m $mbox getRestURL "//?fmt=zip" > $ZDUMPDIR/$mbox.zip
                done
                before2="$(date +%s)"
                echo The process lasted = $(date +%T)
                after="$(date +%s)"
                elapsed="$(expr $after - $before)"
                hours=$(($elapsed / 3600))
                elapsed=$(($elapsed - $hours * 3600))
                minutes=$(($elapsed / 60))
                seconds=$(($elapsed - $minutes * 60))
                echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
                else
                        if [ $opcion -eq 3 ]; then
                        echo ""
                        echo "Backup una cuenta"
                        echo "-----------------"
                        echo Start time of the backup = $(date +%T)
                        before="$(date +%s)"
                        echo ""
                        echo -n "Ingrese ruta destino local :"
                        read destino
                        echo -n "Ingrese una cuenta de correo, ejemplo user@dominio.com :"
                        read cuenta
                        echo "Generando backup a la ruta $destino/ ..."
                        DATE=`date +"%a"`
                        ZDUMPDIR=$destino/$DATE
                        ZMBOX=/opt/zimbra/bin/zmmailbox
                        if [ ! -d $ZDUMPDIR ]; then
                        mkdir -p $ZDUMPDIR
                        fi
                        $ZMBOX -z -m $cuenta getRestURL "//?fmt=zip" > $ZDUMPDIR/$cuenta.zip
                        before2="$(date +%s)"
                        echo The process lasted = $(date +%T)
                        after="$(date +%s)"
                        elapsed="$(expr $after - $before)"
                        hours=$(($elapsed / 3600))
                        elapsed=$(($elapsed - $hours * 3600))
                        minutes=$(($elapsed / 60))
                        seconds=$(($elapsed - $minutes * 60))
                        echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
                        else
                                if [ $opcion -eq 4 ]; then
                                echo ""
                                echo "Restore todo el Zimbra"
                                echo "----------------------"
                                echo Start time of the backup = $(date +%T)
                                before="$(date +%s)"
                                echo ""
                                echo -n "Ingrese ruta donde esta el Backup completo(todo el directorio zimbra) :"
                                read origen
                                echo "Generando backup desde $origen hacia /opt/zimbra..."
                                /usr/bin/rsync -aHK --delete $origen /opt/zimbra
                                /bin/chown -R zimbra:zimbra /opt/zimbra
                                before2="$(date +%s)"
                                echo The process lasted = $(date +%T)
                                after="$(date +%s)"
                                elapsed="$(expr $after - $before)"
                                hours=$(($elapsed / 3600))
                                elapsed=$(($elapsed - $hours * 3600))
                                minutes=$(($elapsed / 60))
                                seconds=$(($elapsed - $minutes * 60))
                                echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
                                else
                                        if [ $opcion -eq 5 ]; then
                                echo ""
                                echo "Restore all email accounts"
                                echo "--------------------------"
                                echo Start time of the backup = $(date +%T)
                                before="$(date +%s)"
                                echo ""
                                echo -n "Ingrese ruta de origen :"
                                read origen
                                echo "Restaurando backup desde $origen/ ..."
                                ZMBOX=/opt/zimbra/bin/zmmailbox
                                if [ ! -d $origen ]; then
                                echo "Backups do not exist !"
                                exit 255;
                                fi
                                for mbox in `/opt/zimbra/bin/zmprov -l gaa`
                                do
                                echo " Restoring files from backup $mbox ..."
                                $ZMBOX -z -m $mbox postRestURL "//?fmt=zip&resolve=reset" $origen/$mbox.zip
                                done
                                before2="$(date +%s)"
                                echo The process lasted = $(date +%T)
                                after="$(date +%s)"
                                elapsed="$(expr $after - $before)"
                                hours=$(($elapsed / 3600))
                                elapsed=$(($elapsed - $hours * 3600))
                                minutes=$(($elapsed / 60))
                                seconds=$(($elapsed - $minutes * 60))
                                echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
                                else
                                        if [ $opcion -eq 6 ]; then
                                echo ""
                                echo "Restore de una cuenta"
                                echo "---------------------"
                                echo Start time of the backup = $(date +%T)
                                before="$(date +%s)"
                                echo ""
                                echo -n "Ingrese ruta de origen :"
                                read origen
                                echo -n "Ingrese la cuenta de correo, ejemplo user@dominio.com :"
                                read cuenta
                                echo "Restaurando la cuenta $cuenta desde $origen ..."
                                ZMBOX=/opt/zimbra/bin/zmmailbox
                                $ZMBOX -z -m $cuenta postRestURL "//?fmt=zip&resolve=reset" $origen/$cuenta.zip
                                before2="$(date +%s)"
                                echo The process lasted = $(date +%T)
                                after="$(date +%s)"
                                elapsed="$(expr $after - $before)"
                                hours=$(($elapsed / 3600))
                                elapsed=$(($elapsed - $hours * 3600))
                                minutes=$(($elapsed / 60))
                                seconds=$(($elapsed - $minutes * 60))
                                echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
                                else
                                        if [ $opcion -eq 7 ]; then
                                echo ""
                                echo "Enviar por SSH a otro servidor"
                                echo "------------------------------"
                                echo Start time of the backup = $(date +%T)
                                before="$(date +%s)"
                                echo ""
                                echo -n "Ingrese ruta del BackUp :"
                                read origen
                                echo -n "Ingrese la IP y ruta destino del BackUP, ejemplo 192.168.1.100:/backup/ :"
                                read destino
                                echo "Enviado el Backup desde $origen hacia el servidor $destino ..."
                                /usr/bin/rsync -aHK --delete $origen $destino
                                before2="$(date +%s)"
                                echo The process lasted = $(date +%T)
                                after="$(date +%s)"
                                elapsed="$(expr $after - $before)"
                                hours=$(($elapsed / 3600))
                                elapsed=$(($elapsed - $hours * 3600))
                                minutes=$(($elapsed / 60))
                                seconds=$(($elapsed - $minutes * 60))
                                echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
                                else
                                echo "Ingrese una opcion valida"
                                fi
                                fi
                        fi
                fi
        fi
        fi
fi

Finalmente le damos permiso de ejecucion


# chmod +x /usr/local/sbin/ZimbraBackup.sh

Listo, espero le sirva a alguien ...

sábado, 2 de febrero de 2013

OpenVPN sobre YealinkT20P

Este es un resumen para poder habilitar el OpenVPN en un teléfono Yealink T20P.

Lo primero que haremos sera actualizar nuestra versión de firmware, para ello podemos descargarlo desde la siguiente dirección http://www.yealink.co.uk/downloads/  hasta la fecha se uso la version 9.70.0.111

Se asume que ya tenemos el OpenVPN corriendo en nuestro Linux(central Asterisk). Pasamos a prepara el archivo .tar para el teléfono...


Creamos el archivo vpn.cnf usando vim


 Luego de guardar los cambios vemos los archivos



 Finalmente empaquetamos en un solo archivo cz.tar


Luego de bajar el archivo a nuestra pc accedemos a la siguiente ruta del teléfono Network > Advanced > VPN, cargamos el archivo cz.tar y le damos click en importar


Habilitamos el VPN y le damos click en confirmar, el teléfono pasara a reiniciarse...


Ahora configuramos la cuenta, para el ejemplo uso el anexo 541


Listo !