Ubiquiti Edgerouter como cliente OpenVPN de Zentyal (modo túnel Zentyal-2-Zentyal)

edgerouterÚltimamente estoy usando los aparatos de Ubiquiti ya que la relación calidad/precio me parece muy buena. En este caso se trata de EdgeRouter que tiene que reemplazar a una máquina con Zentyal en modo comunicaciones. Es una instalación multisede y tenemos una VPN montada con Zentyal y su opción de montar un tunel OpenVPN de zentyal a zentyal. Vamos a ver como podemos configurar el edgerouter para que se conecte a esa VPN.

  1. Vamos a suponer que ya tenemos el EdegeRouter con su configuración básica, tenemos salida a internet, sabemos acceder a el vía ssh, etc
  2. Primero nos conectamos al Zentyal que hace de server OpenVPN y nos bajamos el tar.gz con los archivos necesarios (necesitamos los certificados).
  3. Copiamos vía scp los certificados al edgerouter en /config/auth
  4. Nos conectamos por ssh al EdgeRouter, entramos en modo configuración y configuramos la vpn:
configure
edit interfaces openvpn vtun1
set mode client
set device-type tap
set openvpn-option --comp-lzo
set remote-host alava.sartu.org
set remote-port 1194
set tls ca-cert-file /config/auth/ca.crt
set tls cert-file /config/auth/cert.crt
set tls key-file /config/auth/privateKey.crt
commit
save

Ya debería funcionar. En el dashboard nos aparecerá la nueva interfaz (sin posibilidad de configuración) y podremos realizar el resto de tareas que necesitemos (routing, nat, ….)

Instalar Cordova en Ubuntu 14.10 para programa aplicaciones Android

Apache Cordova es el framework de desarrollo de aplicaciones para móviles multiplataforma que está detrás de phonegap. Vamos a ver como instalarlo en la última Ubuntu para empezar a trabajar con el desarrollando una app para Android.

Lo primero es instalar node.js (el lenguaje en que el que está programado cordova) y npm (el gestor de paquetes que usa node)

sudo apt-get install nodejs npm

Necesitamos lincar el ejecutanel de nodejs con el nombre node para que luego no falle cordova

sudo ln -s /usr/bin/nodejs /usr/bin/node

Instalamos cordova con npm

sudo npm install -g cordova

Ahora hay que Instalar JAVA y el compilador ant

sudo apt-get install openjdk-8-jdk openjdk-8-jre ant

Nos bajamos el SDK de android

https://developer.android.com/sdk/index.html

Los descomprimimos y establecemos la variable de entorno ANDROID_HOME a donde lo hayamos descomprimido:

echo 'export ANDROID_HOME="/home/patataman/android-sdk-linux/"' >> ~/.bashrc ; . ~/.bashrc

Lanzamos el gestor del sdk para instalar la versión que queramos (la API 19 de Android 4.4.2 nos irá bien)

$ANDROID_HOME/tools/android

Después de instalar el SDK y si queremos emular un android tendremos que crear un emulador. Para ello en el gestor del sdk del paso anterior vamos a Tools>Manage AVDs y creamos una imagen con los parámetros que más nos convengan.

Y ya estamos listo para crear, compilar y ejecutar una aplicación cordova en Android y comprobarq ue todo funciona:

cordova create hello com.example.hello HelloWorld
cd hello
cordova platform add android
cordova run android

Puppet en 15 minutos.

Introducción

Este post va a ser un breve esquema de como poner en marcha una arquitectura cliente/servidor con Puppet. Va a ser solo unas pinceladas para información más en detalle tenemos la web de puppet o es este libro de James Loope publicado en o’relly.

¿Qué es Puppet?

Puppet es, en poca palabras, un sistema de gestión de la configuración. Lo que nos permite es gestionar los ficheros, configuraciones, software instalado, etc de N máquinas (unix o windows) de una manera similar a como programaríamos. En puppet programamos “manifiestos” que declaran como será la configuración de un servicio, etc.

Es algo realmente útil cuando tenemos varias máquinas y queremos poder gestionarlas de manera centralizada, distribuyendo cambios de configuración entre ellas. Es indispensable en entornos de tipo cloud donde creamos nuevas máquinas y queremos que estas estén listas para funcionar (con una configuración de servidor web, por ejemplo).

¿Cómo funciona?

Aunque puppet se puede usar de manera aislada en una sola máquina (toda la docu de iniciación que encontré al principio describía este uso) su verdadera potencia viene cuando tenemos un puppet maestro y varios puppet cliente (agentes) que consiguen los manifiestos de configuración del maestro.

http://docs.puppetlabs.com/guides/installation.html#debian-and-ubuntu

http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html#for-debian-and-ubuntu

Instalación del maestro

Instalamos el repo de puppetlabs para tener las últimas versiones:

wget http://apt.puppetlabs.com/puppetlabs-release-`lsb_release -c -s`.deb

sudo dpkg -i puppetlabs-release-`lsb_release -c -s`.deb

sudo apt-get update

Instalamos el maestro:

sudo apt-get install puppetmaster

A que no ha dolido? 😀

Ahora hay que editar un par de ficheros para que nuestro maestro esté en marcha. Vamos a crear un par de manifiestos necesarios para que funcione el maestro. Por defecto puppet master va a leer el manifiesto en el fichero site.pp, pero para se un poco ordenados en este site.pp vamos a decirle que cargue el manifiesto donde definidos todos los agentes y un par de opciones más:

# fichero /etc/puppet/manifests/site.pp

import "nodes"

filebucket { main: server => "masterpuppet.mired.lan" }

# defaults

File { backup => main }

Exec { path => "/usr/bin:/usr/sbin/:/bin:/sbin" }

Ahora debemos crear el manifiesto nodes.pp donde le diremos como configurar cada nodo. De momento solo vamos a crear un nodo “default” el cual se encargar de configurar ntp en el nodo.

#fichero /etc/puppet/manifests/nodes.pp

node base {
include ntp

}

node 'clientepuppet.mired.lan' inherits base {
}

Ya tenemos el maestro listo. Para probarlo vamos a instalar un módulo que nos creará la clase ntp y así probaremos desde un agente. Instalar


cd /etc/puppet/modules
puppet module install puppetlabs-ntp

Instalación del nodo

 

Si tenemos una ubuntu medio actual (12.04 o superior) instalamos desde el repositorio de la propia Ubuntu, sino usamos el mismo sistema para instalar el repo de puppetlabs que hemos visto para el maestro.

Instalamos puppet:

sudo apt-get install puppet

Lanzamos en agente contra el server:


sudo puppet agent --test --server masterpuppet.mired.lan

Fallara por la falta de firma del cert:

info: Creating a new SSL key for clientpuppet.mired.lan
info: Caching certificate for ca
info: Creating a new SSL certificate request for clientpuppet.mired.lan
info: Certificate Request fingerprint (md5): 37:16:56:D5:15:09:E0:A0:DF:B5:73:CF:5A:76:45:54
Exiting; no certificate found and waitforcert is disabled

En el SERVER firmamos el cert del cluente


sudo puppet ca list

Miramos el que esta pendiente y lo firmamos


puppet ca sign clientpuppet.mired.lan

(se puede hacer que autofirme siempre y evitar este paso pero hay que ser consciente de los problemas de seguridad que implica ello).

Ya podemos volvemos al nodo cliente y volvemos a lanzar el agente de puppet.

En la docu de puppet tenemos una explicación de como funciona el agente vs master y un útil “trobleshoot”

http://docs.puppetlabs.com/learning/agent_master_basic.html

Y con eso tenemos lo básico. Ahora tendríamos que empezar a escribir manifiestos 🙂

Todas las opciones de configuración de owncloud

owncloud-logo copy

Últimamente estamos usando en el trabajo owncloud, tanto a nivel interno como de cara a implantar en clientes. Una cosa que me ha costado un pelín encontrar son las opciones de configuración y eso que lo tenía delante de las narices!!!

https://github.com/owncloud/core/blob/master/config/config.sample.php#L65-L66

Con tanto autoinstalador/configurador los sysadmins nos volvemos vagos/tontos 😛

Optimizar Ubuntu para equipos con poca RAM

ram

ram

La verdad es que Ubuntu no es lo mejor solución para equipos con poca RAM y alternativas como Xubuntu o Lubuntu nos pueden ir mejor. Pero si a pesar de todo queremos usar Ubuntu con Unity en equipos con poca RAM hay una serie de programas que es mejor que desinstalemos. Dejo 2 links donde nos explican que quitar y como hacerlo.

http://blog.desdelinux.net/consejos-practicos-para-optimizar-ubuntu-12-04/

http://www.ubuntuleon.com/2012/05/2-fast-2-linux-como-acelerar-ubuntu.html

Se trata de desinstalar lentes de unity y servicios con Ubuntu One para ahorrar unos cuantos megabytes de RAM. Luego ya si queremos podemos tomar medidas más avanzadas como el uso de preload o zram.

Breves notas para instalar Zentyal 3.0 en Proxmox (OpenVZ)

Dicen que a la 3ª va la vencida y Zentyal 3.0 parece que confirma el refrán. Es una versión que va realmente fina, la interfaz es mucho más agradable y fluida. Vamos a ver como ponerlo en marcha dentro de un entorno OpenVZ/PROXMOX

  1. Bajarse un template de Ubuntu 12.04 (http://download.openvz.org/template/precreated/ubuntu-12.04-x86.tar.gz)
  2. Crear el contenedor como siempre.
  • Crear el grupo admin y añadir root a el (addgroup admin && adduser root admin)
  • Hacer sudo suid (chmod +s /usr/bin/sudo)
  • Desinstalar samba (dpkg -P samba)
  • Activar soporte acl en el contenedor (en punto de montaje del contenedor debe tener la opcion acl en el fstab) si vamos a usar el módulo SAMBA4
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
  • Para la vpn y el firewall tenemos que hacer lo mismo que con un Zentyal 2.2
    • Hay que añadir a la configuración (/etc/vz/conf/VEID.conf) lo siguiente:
      IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state"
    • Si queremos usar la VPN (ya sea para subscribir nuestro Zentyal al cloud o para montar una VPN)
vzctl set VEID --devnodes net/tun:rw --save

Optimizar GNU/Linux para discos SSD

OCZ-s-Next-Gen-Barefoot-3-Controller-Will-Likely-Change-the-SSD-World-2

Los discos de estado sólido (SSD) son una muy buena idea para aumentar el rendimiento de nuestros ordenadores (sobre todo en portátiles). Pero para que la vida de los SSD se alarge y mejorar aun más el rendimiento de nuestra distro GNU/Linux favorita hay que hacer alguna pequeña optimización. En howtogeek tienen un buen artículo:

 

How to Tweak Your SSD in Ubuntu for Better Performance