Hola mundo,

Finalmente y después de tanta espera, Let’s Encrypt ha entrado en fase de Public Beta, es decir ya cualquiera que desee probarlo puede entrar y generar sus certificados.

Para quienes no conozcan que es Let’s Encrypt, es una nueva Autoridad de Certificación, abierta y gratis. Es administrado por la Internet Security Research Group (ISRG), y es patrocinado por las mas importantes Fundaciones de Internet, tales como la EFF, Mozilla, y también por grandes empresas como Cisco, Facebook, Ident Trust, Internet Society, entre otros.

La idea de Let’s Encrypt es que cualquiera tiene derecho de poder ofrecer seguridad a través de la encriptación (HTTPS) en sus sitios web, antes de la llegada de Let’s Encrypt, uno tenía que pagar a una Autoridad de certificación tales como Symantec, GoDaddy, DigiCert, Verizon, etc… cierta cantidad desde unos cientos y hasta los miles de USD dependiendo el nivel de certificación deseada.

Pero para la mayoría de usuarios un certificado de validación de nombre de dominio es mas que suficiente y esto es lo que ofrece Let’s Encrypt, que tus usuarios tengan plena seguridad de que los datos que viajan desde su máquina a tu servidor/sitio no puede ser leída por nadie mas, pues el certificado sólo puede provenir del servidor donde reside el dominio auténtico y no de un suplantador (ó de una agencia de espionaje cofcofNSAcofcof)

 

Instalación

Primero que nada, todo lo siguiente debes correrlo en el servidor en donde residen los dominios para los que quieres generar los certificados, pues Let’s Encrypt debe poder escribir ciertos archivos en su WebRoot (a.k.a. DocumentRoot) para poder validar efectivamente que eres el dueño del dominio y tienes control sobre él.

Paso 1, Debes tener Git instalado y clonar el depósito:

user@webserver:~$ git clone https://github.com/letsencrypt/letsencrypt.git

Paso 2, Córrelo una vez para que pueda instalar todas sus dependencias (la mayoría bibliotecas en python), por tanto debes tener privilegios de administrador ya sea acceso a root directo o por medio de sudo, posteriormente generará una nueva llave privada y con el email que le especifiques creará una nueva cuenta para ti en los servidores de Let’s Encrypt, todo esto es un proceso automático. NOTA: De momento no le especifiques ningún dominio.


root@webserver:~$ cd letsencrypt
root@webserver:~/letsencrypt$ ./letsencrypt-auto --email tudireccion@deemail.com --agree-tos

Paso 3, Let’s Encrypt tiene plugins para poder leer archivos de configuración de Apache, saber que dominios tienes, donde están y modificar estas configuraciones para añadir los certificados de manera automágica, pero esto es un grave problema para los que tenemos servidores web con algún tipo de panel de control que genera sus propias configuraciones y sobreescribirían los cambios hechos por Let’s Encrypt, otra opción es que dejes a Let’s encrypt levantar un web server standlone, pero esto implica que debes detener tu web server principal.

En mi caso estos 2 primeros métodos no son una opción, así que me fuí por la tercera, puedes darle a Let’s Encrypt el path al DocumentRoot de tu dominio para que realice la validación con unos archivos especiales que debe guardar allí. Aclarado esto, digamos que tienes tus dominios en /var/www/$dominio, por ejemplo /var/www/fulanito.com, correríamos lo siguiente:


root@webserver:~/letsencrypt$ ./letsencrypt-auto certonly --webroot -w /var/www/fulanito.com/ -d fulanito.com

¡Y listo!, generará automáticamente tu CSR (Certificate Signing Request), lo firmará, lo enviará a los servidores de Let’s Encrypt, estos validará que existan los archivos en fulanito.com/.well-known/acme-challenge/ y de ser así devolverá el certificado firmado. Se generarán 4 archivos en /etc/letsencrypt/live/fulanito.com/


root@webserver:~# ls /etc/letsencrypt/live/fulanito.com/
cert.pem  chain.pem  fullchain.pem  privkey.pem

Los cuales contienen:

  • cert.pem – contiene el certificado firmado
  • chain.pem – certificado “intermedio”
  • fullchain.pem – contiene ambos cert.pem y chain.pem, para los servicios que soporten este formato
  • privkey.pem – la llave privada del certificado

Configurar el webserver (Apache y NginX)

Esto sería lo único a añadir en tu virtualhost de Apache, (si antes no usabas SSL, asegúrate de activar los módulos y habilitar el virtualhost de SSL que contiene las entradas para el puerto 443)


<VirtualHost ww.xx.yy.zz:443>
        ...
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/fulanito.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/fulanito.com/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/fulanito.com/chain.pem
        ...
</VirtualHost>

Y para NginX, algo como lo siguiente:


server {
    listen      ww.xx.yy.zz:443;
    server_name fulanito.com www.fulanito.com;
    ssl         on;
    ssl_certificate      /etc/letsencrypt/live/fulanito.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/fulanito.com/privkey.pem;
    ...

Y eso es todo, espero este artículo les sirva en algo y les ayude a brindar mas seguridad a sus sitios web. Como ven es bastante fácil utilizar Let’s Encrypt.

Sólo resta mencionar que quienes tienen su hosting/cloud server/dedicado con ideaslabs.com pueden solicitar su certificado gratis y se les será configurado casi al instante sin costo alguno ;)

Saludos!

Esta “pequeña” aplicación me tiene encantado.

¿Alguna vez han querido instalar un wiki para su uso personal? , ¿les ha dado flojera enorme instalar ese wiki en php, o peor aún en perl :-S, o python, configurar los CGI’s, etc…?, ¿sienten que es matar moscas a cañonazos el instalar un mediaWiki sólo para uso personal?, pues bien, TiddlyWiki es para ti ! =)

TiddlyWiki es un sistema de wiki hecho en absoluta y totalmente JavaScript, puedes usar gradientes, pequeñas gráficas, hasta smileys con ¡0 imágenes!, ¡sólo JavaScript puro!, es un sólo archivo HTML, en el que se incluyen los CSS (sí! *los*, puedes tener varios temas :-D), el sistema JS, y todas tus notas!, soporta Tags, journal, EmbeddedImages, lo puedes extender con plugins, templates, tiene traducciones en varios idiomas.

Además de ser fácil de usar, ligero, SUPER interactivo, el hecho de que sea en un sólo archivo HTML, le da otro factor importantísimo, portabilidad, puedes llevarte tu wiki.html a cualquier parte, en un cd, en un USB, enviarlo por mail, subirlo a la Web, las posibilidades son infinitas! (bueno bueno, si, exagero :-p)…

El “sistemita” esta publicado bajo la licencia BSD OpenSourceLicense, así que, ¿Qué esperas para probarlo?

Página de TiddlyWiki, lee atentamente las intrucciones para “bajarlo”

Tutorial de TiddlyWiki

P.D. Cuidado, es sumamente adictivo

¿Eres administrador de sistemas?, ¿Administras un servidor de correo?, ¿Te harta lidiar con el spam?, ¿Tienes ese spammassasin lleno de reglas que ya ni recuerdas y aun así te sigue llegando spam?, ¿Usas Postfix?, ¿Te dejó tu novia?, bueno eso no :-p, pues Postgrey es para ti !

Postgrey es un pequeño script en perl (pequeño de 800 líneas :-/) que te permite implantar listas grises (Greylisting) en tu postfix, ¿Que que es greylisting?:

Greylisting es el método por el cual se deniega el primer envío de un remitente desconocido, mediante un código de error 450 (deferred). Muchos de los virus y spammers no siguen el protocolo SMTP correctamente, con lo que nunca volverán a enviar ese mensaje. Mediante el greylisting podemos evitar que nos lleguen mensajes de virus y proxies abiertos, pero no podemos evitar que nos lleguen de servidores de correo mal configurados que permiten relay, aunque con un poco de suerte en el siguiente reenvío ese servidor ya esté en alguna lista RBL y podremos evitarlo.

¿Y eso de que me sirve? , bien, como todos sabemos los spammers tienen scripts que se conectan a servidores smtp mal configurados, y desde ahi te envian su spam con direcciones falsas tipo hot_jenny_wants_you@xYab34S09.com , y es imposible responderles para mentarselas :-), pues bueno en esto está la ventaja del greylisting, lo que hace es:

  1. Recibe el mail, guarda en una pequeña bd la dirección del remitente, si ésta no existe en la bd de mail’s auténticos prosigue con el paso 2, si está paso 4
  2. inmediatamente lo rechaza con un código de error 450 (delay ó intentar después)
  3. el servidor SMTP remoto entiende el mensaje y vuelve a mandar el mail en el tiempo especificado
  4. postgrey recibe de nuevo el mail se da cuenta que ya habia llegado antes, revisa el delay, agrega el remitente a la bd de cuentas de mail auténticas (si es que aun no está) y lo deja pasar al mta (postfix)
  5. el mail llega a su destino (tu cuenta)

¿Y que ganamos con esto?, la seguridad de que te van a llegar mails sólo de cuentas existentes, adiós spam!, ¿demasiado bueno para ser verdad?, así es :-D, los spammers podrían adaptar su software para engañar al postgrey enviando spam desde cuentas existentes, pero esto te da una enorme ventaja, ya que puedes bloquear facilmente esas cuentas, o rango de ip, o dominios o como se te plazca, que de otra forma no podrías, como bloquear un dominio inexistente de la forma xYab34S09.com, por ejemplo, o un usuario xyasdyigsf2314.yahoo.it que tampoco existe

Lo he probado desde hace 1 mes en dos servidores de mail y hasta ahora 0 spam, lo juro! (si split_yo, por mi madre que si), CERO, altamente recomendado ;-)

Página de PostGrey:
http://isg.ee.ethz.ch/tools/postgrey/
Informacion de postfix acerca de greylisting
http://www.postfix.org/SMTPD_POLICY_README.html
Sobre greylisting
http://greylisting.org/
Guía rápida de Postfix (buenísima)
http://www.servitux.org/view.php/page/postfix

Anterior Utilidad – Las Pequeñas Grandes Utilidades (Woof)

Desde hace mucho tiempo que he querido postear sobre esta gran tool, pero ya ven que el “mañana” nunca llega :-P

Woof Simply exchange files, es un pequeño script hecho en python (pues en que mas :-), que simplemente te permite intercambiar archivos con tus amigos/compañeros/novia/etc, esto en pocas palabras, si nos ponemos técnicos, es un script que levanta un pequeño servidor HTTP para que otro baje de tu “servidor” el archivo indicado.

¿Como se usa? fácil:
$ woof filename
Esto te saca en pantalla un texto por ejemplo como este:
Now serving on http://148.xxx.xxx.xxx:8080/
le das esa url a tu cuate y el puede con un simple wget http://148.xxx.xxx.xxx:8080 bajar el archivo ‘filename’ , en caso de que ‘filename’ sea un directorio Woof lo targezeteará y servirá un filename.tar.gz ;-)

Ventajas:

  • No tienes que levantar/instalar/compilar(yuck!) todo un servidor web para compartir algun archivo
  • Es rápido
  • Sí, puedes hacer un cp archivo ~/public_html/ , pero vamos, con woof ni tienes que hacer el cp, ni tienes que duplicar el archivo, ni se te amontonan los archivos en public_html y luego ya no sabes porque los tienes ahí
  • Puedes sacarle fácilmente la ip a tus contactos del messenger >:)
  • usa tu imaginación

La página de Woof: http://www.home.unix-ag.org/simon/woof.html
Descarga: http://www.home.unix-ag.org/simon/woof

Espero les sirva tanto como a mí, saludos!