Vincular Membership a Proyecto Taiga

Desde hace unos 4 meses que me dio la fiebre de los contenedores y quería volver todo un contenedor tuve la genial idea de poner Taiga en un contenedor, lo bueno fue que lo logré, lo malo es que tuve problemas épicos con los archivos estáticos y configuraciones de correo.

Para mitigar esto, me veo en la obligación de colocar este código para la vinculación de usuarios de una manera manual.

from taiga.users.models import User, Role
from taiga.projects import models
for p in models.Project.objects.all():
    print(p.id, p.name)
for u in User.objects.all():
    print(u.id, u)
for r in Role.objects.all()
for r in Role.objects.all().order_by("project"):
    print(r.id, r.project, r)

project_id = 4
user_id = 7
role_id = 21
p = models.Project.objects.get(pk=project_id)
u = User.objects.get(pk=user_id)
r = Role.objects.get(pk=role_id)

models.Membership.objects.create(project=p, user=u, role=r)

Cambiar de Dominio en Wordpress

Además de lo obvio, y con obvio me refiero a cambiar el Virtual Host también necesitaremos actualizar nuestra base de datos

UPDATE wp_options SET option_value = replace(option_value, 'http://54.214.66.247', 'http://54.191.241.251') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'http://54.214.66.247','http://54.191.241.251');

UPDATE wp_posts SET post_content = replace(post_content, 'http://54.214.66.247', 'http://54.191.241.251');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://54.214.66.247','http://54.191.241.251');

Instalando Freeling 4.0 en Ubuntu 16

Hace tiempo escribí un post sobre cómo instalar Freeling 4.0 en OSX y es tiempo ya de pasar los cambios a producción.

Posiblemente en un futuro cercano cree una receta ansible para facilitar el trabajo, pero primero como me manda la praxis, prefiero hacerlo a mano.

Necesitamos algunas dependencias

sudo apt install libboost-regex1.58.0 libicu-dev libboost-system1.58.0 libboost-thread1.58.0 libboost-program-options1.58.0 libboost-filesystem1.58.0 

Luego podremos descargar e instalar freeling

wget https://github.com/TALP-UPC/FreeLing/releases/download/4.0/freeling-4.0-xenial-amd64.deb
sudo dpkg -i freeling-4.0-xenial-amd64.deb 

Y ya está.

No instalo desde código fuente esencialmente porque para compilar los binarios se necesitan las versiones de desarrollo de libboost, que son pesadas, y el proceso toma bastante tiempo y al final ocupa bastante espacio.

Hardening en un servidor web Apache2

Otra de las deudas técnicas que tenía con este blog era la de algunos tips útiles para realizar un Hardening a un servidor Apache2. A continuación relaciono algunas de las cosas mas importantes:

  1. Desactivar las banderas de versión:
    Cuando mostramos la versión de nuestro navegador estamos facilitando la vida del atacante, pues ya restringe el dominio de vulnerabilidades que tendrá que explorar para buscar un vector de ataque.
    Añadir esto al final de nuestro archivo de configuración de apache, en ubuntu en /etc/apache2/httpd.conf

    ServerTokens Prod
    ServerSignature Off 
  2. Desactivar el indexado de archivos:
    Apache por defecto permite explorar archivos por medio de un navegador, lo cual puede revelar información confidencial de nuestros usuarios o nuestro sistema, por eso es bueno desactivar el indexado:
    Añadir esto en el segmento de nuestro virtualhost

    <Directory /ruta/al/directorio/raiz/de/apache>    
    Options -Indexes    
    AllowOverride None    
    Order deny,allow    
    Deny from all    
    </Directory>
  3. Quitar los permisos de ejecución a terceros en carpetas donde se pueda subir información:
    Una explicación mas detallada de esto se puede encontrar en este post

    sudo groupadd varwwwusers
    sudo adduser www-data varwwwusers
    sudo chgrp -R varwwwusers /var/www/html
    sudo chmod -R 770 /var/www/html
  4. Deshabilitar métodos inseguros:
    Aunque a veces nos limitamos al GET y al POST, HTTP tiene otro montón de métodos que pueden ser usados en nuestra contra, para el robo de credenciales por medio de cookies se suele usar el método TRACE que esencialmente hace un eco de la petición entrante, permitiendo a un tercero interceptar las cookies entrantes
    Para deshabilitarlo, basta añadir esta línea al archivo de configuración

    TraceEnable off

    Se pueden Restringir todos los métodos a excepción de los nombrados usando la etiqueta LimitExcept, pero lo dejo a decisión de cada desarrollador

    <LimitExcept GET POST HEAD>
    deny from all
    </LimitExcept>
  5. Mantenerse actualizado:
    Siempre es importante mantener la versión de nuestras aplicaciones lo mas actualizadas posibles, usualmente los proveedores parchan los bugs y vulnerabilidades en los nuevos lanzamientos de versiones.

Si quieres una guía adicional, te recomiendo este artículo

Es mejor estar tranquilo que con deudas

Posiblemente sea el primer post no técnico que escriba en este blog, y tal vez el último, pero quiero ponerlo aquí porque como decimos en el trabajo, existen 3 cosas que nos acompañan de por vida:

  • Tu familia
  • Tu salud
  • Tu billetera

Diré que desde hace 4 años mas o menos venía con esta idea de comprarme mi moto, un capricho de adolescente inmaduro que se adentró en mi adultez temprana y se convirtió en algo así como una obsesión, no de esas enfermizas que te quitan el sueño sino de esas que colocas en tu lista de objetivos de año nuevo y las tienes en tu lista de prioridades de todos los días.

Solicité un crédito de libre inversión por el valor total de la moto y luego de trámites me encontré con la primera frustración: el crédito lo aprobaron por el 30% del solicitado. No los culpo, un recién egresado sin experiencia crediticia no parece ser un buen prospecto para desembolsarle un monto de ese tamaño en su primer crédito de consumo.

Lo positivo era que la tasa mensual era del 1.2% que representa una tasa del 15% Efectivo Anual y pintaba bien de acuerdo con los valores estándares de mi país.

Luego de un par de semanas con el efectivo en mi cuenta de ahorros, me atacó ese impulso de idiotez que me caracteriza tan a menudo y dije ya es hora, quiero mi moto de cumpleaños así que paguemos con la tarjeta de crédito, que tiene una tasa mensual del 2.34% que en Efectivo Anual se convierte en 32% cercano a la tasa máxima permitido por el gobierno de mi país.

Fui al concesionario y pedí mi moto.

El sin sabor se sintió inmediatamente deslicé la tarjeta por el datáfono. Camino al trabajo esos pensamientos de persona adeudada no se separaban de mi. Sabía que los meses siguientes se pondrían bastante feos por el tema económico, pero al menos tenía ese alivio de que por fin estaba cumpliendo mi capricho de adolescente.

Con el paso de los días estaba mucho mas impaciente por la llegada de mi anhelada moto y un preocupado por como haría para pagar las cuotas el próximo mes y al cabo de otro par de semanas racionalicé que ese estrés por la deuda venidera me estaba transformando en alguien mas ansioso, preocupado e incluso ya no podía conciliar el sueño con facilidad. Y llegó el primer extracto de la tarjeta de crédito.

No era sorpresa, pues como buen estudiante había realizado la tabla de amortización tal cual como me la enseñaron en la academia y sabía el valor por el que llegaría, pero en ese momento sabía que las cosas estaban mal. A pesar que sabía que podía pagar el monto me di cuenta que estaba ahorcando mi presupuesto mensual de una manera increíble y que si en algún momento ocurría alguna eventualidad iba a quedar colgado de una manera que no quería imaginarme.

Afortunadamente aún no me habían entregado la moto.

Fui al concesionario y hablé con mi vendedor, quien expresó sus disculpas de muchas maneras distintas, diciéndome que aún la moto no llegaba y que definitivamente no llegaría sino hasta la otra semana. Le expresé mi inconformidad de una manera calmada y me dijo que entendía y que si lo deseaba podía solicitar un reembolso de mi dinero. Sin pensarlo dos veces agarré un bolígrafo e inicié el proceso.

Se que los procesos de devolución pueden ser complicados y tediosos, pero en algún momento llegan a un feliz término.

Al salir del concesionario supe que había le había comprado plata al banco de una manera tonta, que iba a pagar al siguiente mes una cuota con los intereses del 70% de una moto que no voy a tener, pero por primera vez en tres semanas estaba tranqui.