sábado, 28 de abril de 2018

ERROR: Failed to create ZFS base dataset on FreeNAS

El error "ERROR: Failed to create ZFS base dataset" suele salir al momento de instalar un Plugin.

Para resolver esto por linea de comandos hay que ejecutar:


  • umount /mnt/{Storage}/jails/.warden-template-*
  • rm -fr /mnt/{Storage}/jails/.warden-
  • zfs inherit mountpoint {Storage}/jails/.warden-template-pluginjail


Volver a inetntar instalar el Plugin.


Saludos

lunes, 10 de julio de 2017

Davmail Proxy para Gmail




El desafio es conectar una cuenta del correo corporativo Exchange (solo HTTPS) con Gmail.

El problema es que el correo corporativo solo es accesible por HTTPS desde Internet, los puertos POP, IMAP y SMTP se encuentran cerrados por políticas de la empresa.
Otro problema con el que me he encontrado es que Gmail chequea que los certificados de SMTPS y POP3S y si el servidor Exchange no tiene certificados validos al momento de validar la conexión devolvera error.

La solución al problema es DavMail que es en un Gateway de POP y SMTP para poder usar desde Gmail.

Como funciona? 
DavMail depende de WebDav (Exchange 2003/2007) o EWS (Exchange 2007/2010) para tener acceso al Servidor Exchange via HTTPS.
Por otro lado DavMail es capas de brindar los servicios POP/IMAP/SMTP/Caldav/Carddav/LDAP para que se pueda conectar un cliente de correo, como Thunderbird, Evolution o Gmail.


Aclarado que es DvMail y como funciona, es importante destacar que esta guía va a servir para dar seguridad a los servicios de DavMail (POP3S y SMTPS) pueda exponer ya que trabajaremos con certificados y reglas de firewall.

He trabajado con DavMail por años como Getway local instalado en mi Ubuntu para ofrecer soporte a Thunderbird para cuando estoy fuera de la empresa o incluso dentro, y este gran desarrollo en Java siempre se comporto de maravilla y no me deja de sorprender ahora en este tipo implementación funcionando en modo server!.

Como mencione DavMail esta escrito en Java con lo cual es compatible en cualquier OS, en esta guía se explicara como instalarlo en Linux, pero el procedimiento puede aplicarse a cualquier OS.



Veamos un ejemplo de la topologia a implementar:




Pre requisitos:
1- Disponer de un Dominio de internet.
2- Un Linux in-house o VPS.
3- Sun JRE 5, 6 o 7 o OpenJDK 6 o 7.
4- Un Firewall local o externo.

Pasos:
1- Crear un Registro A de DNS para nuestro dominio, por ejemplo: mail.tudominio.com.ar
2- Crear un Certificado SSL para el dominio a usar.
3- Instalar  y Configurar DavMail.
4- Configurar Gmail.


1- Registro de DNS

Crear un registro de DNS, por ejemplo: mail.tudominio.com.ar
Si es la primera vez administras DNS puedes usar por ejemplo, afraid FreeDNS o CloudFlare.

2- Certificado SSL

Con su Certificate Authority preferido o con alguno gratuito por ejemplo StartSSL o Let's Encrypt hay que crear un certificado para el dominio.

Lo primero es crear el .csr, desde nuestro Linux ejecutar:

# openssl req -newkey rsa:2048 -keyout mail.tudominio.com.ar.key -out mail.tudominio.com.ar.csr

Con el .csr ya podremos generar el certificado.
Una vez generado el certificado, bajamos el certificado, el intermedio y el CA.
Creamos el Bundle en nuestro Linux para luego crear el .p12 para el DavMail.


# cat mail.tudominio.com.ar.pem > bundle.crt
# cat sca.server1.crt >> bundle.crt
# cat ca.crt >> bundle.crt

Crear p12

# openssl pkcs12 -export -in bundle.crt -inkey mail.tudominio.com.ar.key -out davmail.p12


3- Instalar y Configurar Davmail

El unico pre requisito para que Davmail funcione es tener instalado Java en el OS, las versiones de Sun JRE 5, 6 o 7 o OpenJDK 6 o 7 son las que se pueden instalar.

Vamos al Sitio Oficial: http://davmail.sourceforge.net/download.html
Elegimos la descarga que corresponda para nuestro sistema.

Luego de instalar

Configuramos con nuestro editor favorito el archivo davmail.properties

Cambiamos lo siguiente:

davmail.ssl.keystoreFile=davmail.p12
davmail.ssl.keystoreType=PKCS12
davmail.popPort=995
davmail.smtpPort=465
davmail.url=https\://mail.tuCompany.com.ar/exchange/


Las primeras dos lineas establecen el certificado que creamos anteriormente.
La linea tercera y cuarta son los puertos que usaremos para conectar la cuenta de Gmail, adicionalmente puedes cambiar el puerto IMAP si lo deseas abrir.
Y la ultima linea apunta al Web Server del Exchange que queremos proxiar.

Lo que quedaria es ejecutar davmail:

# davmail -notray

Algunos links para tener a mano de Davmail:

http://davmail.sourceforge.net/serversetup.html
http://davmail.sourceforge.net/linuxsetup.html

No se olvide de configurar su Firewall para solo permitir los puertos configurados y porque no solo las Source IP de Gamail!


4- Configuracion de Gmail

Es tan sencillo como configurar como se en las imagenes siguientes







Salu2!
Hernan

viernes, 7 de julio de 2017

Configurar F5 para sacar un A+ en SSL Labs

En tres sencillos pasos se puede configurar un F5 para sacar un A+ en SSL Labs.

Primero hay que configurar el certificado con los siguientes parametros:

En Local Traffic  ››  Profiles : SSL : Client ›› tuCeri

ltm profile client-ssl /Common/tuCerti {
    app-service none
    cache-size 65536
    cert /Common/tuCerti.crt
    cert-key-chain {
        tuCerti_tuCerti {
            cert /Common/tuCerti.crt
            chain /Common/tuCerti.crt
            key /Common/tuCerti.key
        }
    }
    chain /Common/tuCerti.crt
    ciphers !LOW:!SSLv3:!MD5:!RC4-SHA:!EXPORT:!DHE:ECDHE+AES-GCM:DHE+AES-GCM:ECDHE+AES:DHE+AES:AES-GCM+RSA:RSA+AES:@SPEED
    defaults-from /Common/clientssl
    inherit-certkeychain false
    key /Common/tuCerti.key
    mode enabled
    options { dont-insert-empty-fragments no-ssl single-dh-use no-tlsv1 }
    passphrase none
    renegotiation disabled
}

En segundo lugar hay que crear una politica para agregar el security enhancement.

En Local Traffic  ››  Policies : Policy List  ›› Strict-Transport-Security


ltm policy /Common/Strict-Transport-Security {
    last-modified 2017-07-07:12:11:26
    requires { http }
    rules {
        default {
            actions {
                0 {
                    http-header
                    response
                    insert
                    name Strict-Transport-Security
                    value max-age=15552000
                }
            }
        }
    }
    strategy /Common/first-match
}


Y finalmente agregar la politica dentro del Resource del VS en cuestion.

Salu2!

viernes, 24 de marzo de 2017

VNC en DISPLAY 0 para Ubuntu 16.04

Si lo que buscamos es que la sesión de VNC inicie para ver lo mismo que tenemos en el Monitor local, lo que tenemos que hacer es que el servicio de VNC se conecte al Display 0 que es la primer sesión de Monitor que inicia el Sistema Operativo.

Vamos a instalar x11vnc:
$ sudo apt-get install x11vnc

Creamos una Password para el servicio:
$ sudo x11vnc -storepasswd miPassword /etc/x11vnc.pass

Creamos el archivo x11vnc.service y agregamos las siguientes lineas:
$ sudo vim /etc/systemd/system/x11vnc.service

[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2

[Install]
WantedBy=multi-user.target


Para que el servicio se inicie automaticamente al iniciar el OS:
$ sudo systemctl enable x11vnc

Iniciar el servicio:
$ sudo systemctl start x11vnc


Para hacer las pruebas nos conectamos a la IP del host que configuramos con el puerto 5900.

Eso es todo... Salu2!

miércoles, 15 de marzo de 2017

Cisco IP Communicator en Linux Ubuntu

La instalación del software va perfecto pero a la hora de escuchar los llamados el audio se siente horrible como si estuviera saturando.




Cisco IP Phone



La solución es modificar los siguientes parámetros de audio:

vim /etc/pulse/daemon.conf
default-sample-rate = 48000

vim /etc/pulse/default.pa
load-module module-udev-detect tsched=0

Reiniciar el pulseaudio:
pulseaudio -k
pulseaudio -D

Salu2

domingo, 27 de noviembre de 2016

Bloques de IP de Google Inc. para trafico de correo

Aquí los rangos de IP de Google para el Trafico de correo electrónico.

El métodos de consulta es sencillo, con una simple consulta a algunos registros TXT de DNS puedes obtener los bloques IP.


Sitio de referencia de google: https://support.google.com/a/answer/60764?hl=en




Saludos!

jueves, 25 de agosto de 2016

Solución a Yowsup "status: fail \ reason: old_version - Authentication Error: not-authorized"

Hoy me percate de que Yowsup dejo de funcionar.

Ya que la razón del error que salia en pantalla marcaba "old_version" lo primero que supuse es que tenia que reinstalar yowsup, pero la solución es mucho mas sencilla.

En internet encontré el siguiente link que da a la solución: https://github.com/tgalal/yowsup/pull/1725


Lo que propone es cambiar una variable en uno de los archivos .py, y es la variable que hace referencia a la versión de whatsapp.

Ejemplos de los errores en pantalla:

[root@sysmon01 ~]# yowsup-cli registration --requestcode voice --phone 549112395XXXX --cc 54
yowsup-cli v2.0.15
yowsup v2.5.0
Copyright (c) 2012-2016 Tarek Galal
http://www.openwhatsapp.org
This software is provided free of charge. Copying and redistribution is encouraged.
If you appreciate this software and you would like to support future development please consider donating:
http://openwhatsapp.org/yowsup/donate

INFO:yowsup.common.http.warequest:{"status":"fail","reason":"old_version"}
INFO:yowsup.common.http.warequest:{"status":"fail","reason":"old_version"}

status: fail
reason: old_version


[root@sysmon01 ~]# yowsup-cli demos -c /root/yowsup-cli.conf -s 5491140XXXXX 'Prueba'
yowsup-cli  v2.0.15
yowsup      v2.5.0
Copyright (c) 2012-2016 Tarek Galal
http://www.openwhatsapp.org
This software is provided free of charge. Copying and redistribution is encouraged.
If you appreciate this software and you would like to support future development please consider donating:
http://openwhatsapp.org/yowsup/donate

/usr/lib/python2.6/site-packages/yowsup2-2.5.0-py2.6.egg/yowsup/demos/sendclient/stack.py:33: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
  print("Authentication Error: %s" % e.message)
Authentication Error: not-authorized

La solución:
  1. Buscar donde tenemos el archivo: env_s40.py

    find / -name "env_s40.p*"

    /usr/lib/python2.6/site-packages/yowsup2-2.5.0-py2.6.egg/yowsup/env/env_s40.pyc
    /usr/lib/python2.6/site-packages/yowsup2-2.5.0-py2.6.egg/yowsup/env/env_s40.py
  2. Eliminar el archivo compilado: env_s40.pyc

    rm -f /usr/lib/python2.6/site-packages/yowsup2-2.5.0-py2.6.egg/yowsup/env/env_s40.pyc
  3. Editar el archivo: env_s40.py

    vim /usr/lib/python2.6/site-packages/yowsup2-2.5.0-py2.6.egg/yowsup/env/env_s40.py

    Cambiar el contenido de la variable de la linea 4 por: _VERSION = "2.16.9"

    Guardar y salir: wr
  4. Eso es todo, solo quedaría verificar, no hay que reinstalar ni volver a registrar!


Para los curiosos, encontré un excelente visor de logs hecho por el creador del Logstalgia que se puede adaptar a nuestro querido yowsup:




Saludos!
Hernán


Actualización:

En el siguiente link se pueden ver las versiones previas de whatsapp: https://whatsapp-messenger.en.uptodown.com/android/old