Glacier y tartarus

Esto es un minimanual de como utilizar la herramienta de backup tartarus con amazon glacier.

Definiciones previas:

Tartarus (http://wertarbyte.de/tartarus.shtml) es un inteligente script escrito en bash que sirve para hacer copias de seguridad. Es muy versátil y debido a sus conectores permite usar desde SCP, FTP, FTPS, rsync y casi cualquier otra herramienta de copia. Este script hace un tar del directorio indicado y lo comprime en gzip o bzip además de poder cifrarlo con GNUpg, además, llamándolo con la opción -i (incremental) permite transmitir y guardar en un nuevo fichero sólo los cambios.

Si disponemos de LVM, podremos crear snapshots durante la copia de seguridad y consolidarlos después de la misma para hacer un backup en caliente de datos que están cambiando.

Por otro lado, glacier (http://aws.amazon.com/glacier/) es un servicio de almacenamiento en la nube bastante barato. Con un coste aproximado de un centavo de dólar por giga al mes a octubre de 2013. No obstante, su bajo coste trae aparejado una merma de funcionalidad: Las tareas de recuperación de archivos tardan varias horas, no almacena nombres de archivos sino descripciones de los mismos y las tareas de inventario (listar ficheros) deben solicitarse y también tardan varias horas.

Leer más

Grub2 + UEFI + secureboot + fedora 18 + windows 8

Hace falta seleccionar el archivo .efi de microsoft llamado bootmgfw.efi para cargar Windows 8 en BIOS con sistema EFI/UEFI.

menuentry "Windows 8" {
insmod part_gpt
insmod chain
set root='(hd0,gpt2)'
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

Tanto tiempo sin trastear con grub y más que espero pasar, lo dejo aquí para mi futura referencia. Espero que a alguien le sirva.

Cambiar etiqueta (label) de memoria USB en linux

Estuve luchando con mtools y con 3 o 4 cosas más cuando lo simple es usar dosfslabel. Si a alguien más le pasa que no pierda 10 minutos leyendo y use el comando dosfslabel.

# dosfslabel /dev/sdXX nueva_etiqueta

Esto permite cambiar la etiqueta de vuestra memoria USB o de cualquier disco en fat.

Una sugerencia para fedora/ubuntu o gnome: Hay que incluir el cambio de etiqueta en las propiedades de la unidad. Incluso el administrador de discos no me dejaba renombrar la unidad.

Wake On Lan (WOL) en placa Gigabyte

La placa Gigabyte con tarjeta de red: Realtek Semiconductor Co., Ltd. RTL8111/8168B. Además de Wake On Rign/Wake on Modem (WOR/WOM) soporta Wake On Lan (WOL).

He aquí los sencillísimos pasos para que el «paquete mágico» encienda vuestro ordenador:

1) Activar WOM/WOR en la BIOS (por si acaso).

2) Activar modo WOL para siguiente vez:

ethtool -s eth0 wol g

3) Editar /etc/init.d/halt y en la línea que pone:

halt -d -f -i $poweroff $hddown

sustituirla por:

halt -d -f $poweroff $hddown

Es decir, quitar el «-i» que según la documentación de halt apaga los interfaces de red y en linux (repito, según la docuemntación de halt) «no es necesario porque lo hace el kernel».

4) Editar /etc/rc.local que es el archivo que se ejecuta al inicio y antes de la línea que pone «exit 0» ejecutar el mismo comando que antes para permitir en cada arranque el WOL.

ethtool -s eth0 wol g

5) Apagar el ordenador.

6) Desde otro ordenador que pueda mandar un «paquete mágico» al broadcast de la red en que se encuentre nuestro ordenador apagado usar el script wakeonlan (yo lo usé desde gentoo):

$ wakeonlan 00:01:02:03:04:05

Sustituir 00:01:02:03:04:05 por la MAC de vuestra tarjeta de red, et voilá, vuestro ordenador se encenderá «mágicamente».

La MAC la podéis conseguir desde vuestro ordenador por medio del comando /sbin/ifconfig

Instalando mailman en debian

Hoy me ha sorprendido gratamente lo fácil y sencillo que es instalar y configurar de forma muy básica mailman (un gestor de listas de correo). Lo he instalado en debian con soporte para leer las listas en apache y usando postfix como MTA.

Tan sencillo como:

apt-get install mailman 

Y contestar a unas sencillas preguntas. Luego editar /etc/mailman/mm_cfg.py para cambiar las rutas por defecto y el nombre del host en caso que sea necesario (para que por ejemplo vaya por SSL utilizando https://secure.tudomnio.tld/pipermail/.

Leer más

GOsa: Administración de cuentas y sistemas en LDAP

GOsa es una herramienta gráfica vía web muy interesante que permite gestionar una ldap y crear cuentas de sistema: Unix, samba, correo, proxy, intranets, etc con muchas opciones.

Además, provee a los usuarios finales de un panel de control para que vean sus datos y cambien su clave, etc.

Hasta ahora, para la gestión de directorios LDAP yo usaba phpldapadmin (que no es precisamente la herramienta más completa pero sirve para explorar un ldap e incluso añadir datos de determinadas estructuras por defecto y facilita algo la vida). Sin embargo, en cuanto a lo que gestión de cuentas vía un interfaz web se refiere, GOsa, es lo mejor que he visto hasta ahora.

Leer más

Lighttpd con SSL

Todos los servidores web suelen tener métodos bastante estándares para añadir SSL, lo típico cuando se usa OpenSSL es (como ya he explicado en otro articulo anterior):

Generar la clave privada:

openssl genrsa -out serhost.com.key 1024

Generar la solicitud de certificado:

openssl req -new -key serhost.com.key -out serhost.com.csr

Ahora queda o bien enviar esa solicitud a una entidad certificadora (que nos cobrarán: 10$ (registerfly), 20$ (godaddy) a otros precios menos razonables como verisign que intentará cobrar más de 350$ por certificado, todas las compañías hacen lo mismo, pero unas tienen «mas nombre» que otras).

La otra opción es optar también por una entidad certificadora gratuita (cacert.org) que ya no está reconocida ni siquiera por firefox, para lo cual, mejor, autofirmamos nuestro certificado (nos dará un aviso que el certificado no está firmado por una autoridad certificadora de confianza, pero podemos aceptarlo de forma permanente).

Actualización: Desde que se creó este artículo, existen alternativas gratuitas como por ejemplo: letsencrypt.

Para firmarlo y obtener un crt:

openssl x509 -req -days 365 -in serhost.com.csr -signkey serhost.com.key -out serhost.com.crt

Ahora necesitamos el certificado en formato .pem (el .pem no es más que el archivo .key y a continuación el archivo .crt), luego los concatenamos:

cat serhost.com.key serhost.com.crt > serhost.com.pem

En mi caso he guardado todos estos archivos:

  • serhost.com.key
  • serhost.com.csr
  • serhost.com.crt
  • serhost.com.pem

En un directorio: ssl-certs, de modo que tengo todo un poco más clasificado, hay que recordar darles los permisos adecuados (que el propietario sea el usuario con que se ejecuta lighttpd y solo puedan ser accedidos por él).

Una vez tenemos todo esto (vamos a suponer que en: /etc/lighttpd/ssl-certs) editamos el fichero de configuración de lighttpd (que suponemos está en: /etc/lighttpd/lighttpd.conf) y añadimos al final:

var.confdir = "/etc/lighttpd"
$SERVER["socket"] == "127.0.0.1:443" {
ssl.engine = "enable"
ssl.pemfile = var.confdir + "/ssl-certs/serhost.com.pem"
server.name = var.confdir + "serhost.com"
server.document-root = "/var/www/localhost/htdocs/"
}

Las opciones creo que son autoexplicativas, también se puede establecer la opción:

ssl.ca-file = var.confdir + "/entidadcertificadora.crt"

que indicaría donde se encuentra el certificado con que ha sido firmado nuestro propio certificado.

Por último, comentar que lighttpd soporta PHP, python, perl, ruby, y que tiene soporte para virtualhosts y diferentes módulos útiles: mod_proxy, mod_auth, mod_alias, mod_cache, mod_deflate, mod_cgi, mod_accesslog, mod_rewrite, etc, además, sus fuentes comprimidos ocupan unos 700 KB y parece ser que funciona más rápido que apache, una vez compilado a mano con todas las librerías y el man correspondiente ocupa menos de 2 megas (tras pasarle el comando strip).

Más información:

  • Configuración extraída y adaptada de: http://www.varlogarthas.net/blog/2007/03/installing_a_godaddy_ssl_certi.html (el enlace ya no funciona)
  • Lighttpd: http://www.lighttpd.net

Manejando OpenSSL

Cosillas útiles que dejo aquí para referencias posteriores:

Crear una llave privada RSA de 1024 bits sin cifrar por contraseña (para que sea más fácil trabajar con ella, si se quiere cifrar añadir -des3 y -out llaveprivada.key sin el > llaveprivada.key)

openssl genrsa 1024 > llaveprivada.key

Generar un certificado X509 de 999 días de validez usando la llave privada generada anteriormente

openssl req -new -x509 -days 999 -key llaveprivada.key -out certificado.crt

ó

openssl x509 -req -days 999 -in server.csr -signkey server.key -out server.crt

Crear un .pem a partir de llave y certificado (yo los concateno a mano estos ficheros, aunque se puede hacer con openssl pasando varios parámetros).

cat llaveprivada.key > certificado.pem
cat certificado.crt >> certificado.pem

Pasar de PEM (.PEM) a PKCS12 (.P12)

openssl pkcs12 -export -in certificado.pem -out certificado.p12

Al revés (por si hace falta convertir un p12 a .pem)

openssl pkcs12 -in certificado.p12 -out certificado.pem

Links externos:

Conflicto: No usar svn + mod_evasive

Cuidado, me he dado cuenta mirando el log de errores de mi apache2, tan contento como estaba con mod_evasive (lo había configurado con muy pocas páginas para que si una araña de spam accedía muy rápido a esta web o bien una araña de M$ que también gasta mucho ancho de banda se les prohibiese el acceso).

Problema: Si usas SVN (mod_dav, mod_svn…) te prohíbe el acceso, el motivo es evidente: Demasiadas peticiones cuando el repositorio es minimamente grande.

Podía leer una línea en el log que decía:

[Tue Oct AA XX:YY:ZZ BBCC] [error] [client X.Y.Z.T] client denied by server configuration: /AAA/BBB/CCC

He probado a quitar el mod_evasive y bingo! ya no hay un 403 PROPFIND (porque no estoy detrás de ningún proxy ni nada).

Si tengo que prescindir de algo, creo que de mod_evasive y ya intentaré configurar en QoS o con iptables lo que necesite o incluso mirando que más opciones tiene el propio mod_evasive.

Es debido a que mod_svn recibe muchas peticiones de un cliente (para sincronizar el repositorio), con lo que si está configurado para permitir pocas paginas por minuto, te bloqueará el acceso.

Desconozco si se puede filtrar por directorio o hacer alguna configuración distinta para donde tengas montado el svn.