[truco] mariadb se va de paseo (MySQL server has gone away)

O dicho en el idioma de los errores de sistema, ERROR 2006 (HY000) at line 21232: MySQL server has gone away.

El lío

mariadb

mariadb

El error me apareció cuando intentaba importar la base de un wordpress en una instalación de MariaDB 10.1.37-0+deb9u1. Tengo que decir que el fichero SQL no es muy diferente al montón de importaciones que he hecho con MySQL, tiene un tamaño aproximado aunque sí que ha habido ficheros varios megas más grandes en el mismo servidor. Lo inusual del error, el que no fuese un error de sintaxis del fichero me hacía sospechar de la configuración de MariaDB.

La solución

Hay que aumentar una variable del sistema que se encarga del tamaño máximo del buffer donde se almacenan los paquetes, max_allowed_packet. Basta con añadir (o modificar) el valor y ponerlo a algo tremendo para que no falle, en este caso, 2 GB.

Tras aplicar el cambio, ya se puede importar sin problema volcados de wordpress o de lo que sea.

 

WordPress Multisite, Let’s Encrypt Wildcard y dominios redirigidos

Inciso: Dabo, te lo dije, te advertí que no pararía hasta terminar sabiendo cómo hacer funcionar esto 🙂

Tengo varias web, varios WordPress y un puñado de dominios. Es, creo yo, lo habitual cuando te mueves por estas aguas y a cada proyecto, idea o viaje místico le asocias un dominio y un espacio en internet. La mayoría no llega a ningún sitio pero eso no es lo importante. Al final, te juntas con un puñado de webs en un WordPress Multisite, con varios dominios apuntando a varios de sus subdominios y con unas ganas locas de ponerles a todas un bonito certificado SSL patrocinado por Let’s Encrypt.

El escenario

example.com es el dominio principal de un WordPress Multisite que alberga una veintena de webs en su propio subdominio, loquesea.example.com y, algunas de ellas, además, tienen un dominio propio que apunta al subdominio. Así tenemos, por ejemplo, example1.com que apunta a ex1.example.com y example2.net que apunta a ex2net.example.com.

Y un día quieres que todos los dominios tengan su propio certificado de Let’s Encrypt y es un problema porque como todos los subdominios dependen del mismo dominio principal y Let’s Encrypt no soporta wildcards, no hay mucho que hacer.

Así que te planteas hacer que sea Apache (2.4) el que se coma el marrón y te pones a mirar cómo hacerlo. El VirtualHost ya tiene declarado el dominio y los subdominios y también cuenta con el certificado para si mismo. Y no encontré la forma de meterle el resto de certificados, ni declarando otros VirtualHosts para que cada dominio tuviese su certificado, ni de ninguna forma.

Al final lo dejas por un tiempo porque no, ni apache es la solución ni Let’s Encrypt soporta wildcards y ya estás bastante cansado de batallar con molinos multisite.

La solución

El 13 de marzo, con dos meses de retraso sobre la fecha previstas, Let’s Encrypt anuncia que soporta wildcards y empiezas con las pruebas.

Primero, el VirtualHost de apache debe reconocer todos y cada uno de los dominios y subdominios, incluídos los dominios asociados:

Luego, se invoca a cerbot con los parámetros adecuados:

Con el parámetro --manual deberemos añadir un registro TXT _acme-challenge con una clave al DNS de cada uno de los dominios especificados para que sean capaces de comprobar que realmente eres el propietario del dominio.

Los dominios a incluir en el certificado se especifican por separado, todos ellos, con un -d, incluyendo el wildcard para los subdominios de example.com.

Se cambia la declaración del certificado porque es un fichero diferente, se reinicia apache y esta parte está lista. Cada dominio y subdominio tiene un certificado nominal válido, firmado por Let’s Encrypt y se puede acceder a cada uno, por HTTP y HTTPS.

En WordPress es una buena idea activar el plugin Really Simple SSL que convierte todas las peticiones HTTP en HTTPS para que todo el contenido esté cifrado.

Bonus track: redirigir las peticiones HTTP a HTTPS

Añadir estas pocas líneas al VirtualHost de apache:

Sólo he necesitado un año y pico y que Let’s Encrypt admitiese los wildcard para poder tener los dominios funcionando a mi gusto. Y si, seguro que hay una docena (o más) de mejores formas de hacerlo pero, sinceramente, no he encontrado ninguna otra.

 

De owncloud a nextcloud y tiro porque me toca…

Tener tu propia nube, ya sea en un servidor casero (de las raspi en adelante) o en algún servidor alquilado, es sencillísimo desde la llegada de Owncloud. De hecho, mi nube cuenta ya con un par de años y más de 20 GB de ficheros a cuestas. Pero desde que me enteré que uno de los fundadores dejaba la empresa que está detrás de la nube (otro ejemplo más de cómo monetizar el software libre) por discrepancias con la dirección de Owncloud Inc. y fundaba nextcloud junto con gran parte de los desarrolladores de la primera, empecé a interesarme por la otra nube.

Hace una semana tuve la oportunidad de instalar una nube en el trabajo y elegí nextcloud, en parte porque estoy a favor de los forks porque suelen ser mejores que los originales y también para probarla en un entorno de producción serio. Llevaba, además, un tiempo dándole vueltas a la idea de migrar de owncloud a nextcloud pero, primero la vagancia innata que hay en mi y segundo la duda de si funcionarían los plugins que utilizo y la app del móvil, me mantenían quieto.

Por supuesto, la instalación desde cero de nextcloud es tan sencilla como la de su predecesora y fue grato comprobar que el entorno está más pulido y mejorado y que los plugins y clientes son los mismos o superiores. Aún no lo sabía pero iba a saltar de una nube a otra.


Tengo que advertir que, aunque este proceso me haya funcionado puede no hacerlo para el resto del mundo y que declino toda responsabilidad en los fallos y problemas que pueda acarrear.


La migración en si es realmente sencilla aunque haya que mezclar diferentes manuales porque no hay un procedimiento actualizado de migración de owncloud a nextcloud (o, al menos, yo no lo he encontrado). Al final hice caso a un hilo del foro de nextcloud en donde decían que hay que borrar (o mover) todo el contenido de owncloud menos config y data y descomprimir nextcloud para, a continuación, actualizar via web o con occ. No era mucho pero es un buen punto de partida.

Como me definieron como vago, utilicé el actualizador web de nextcloud, accediendo a https://minube.example.com/updater/.

El proceso de actualización fallaba en un punto en el que solicitaba un secreto, una clave que se encuentra cifrada en el fichero config/config.php y que pedía descifrada. La solución pasaba por generar una nueva clave, guardarla cifrada en el fichero config.php y pasársela en claro al actualizador.

Tras hacer esto, la actualización finaliza sin problemas.

Después de comprobar que todos los ficheros estaban donde se suponía, que los usuarios siguen ahí y los clientes de escritorio de owncloud se conectan correctamente a nextcloud (si, flipante), respiré tranquilo.

Los últimos remates fueron la activación de los plugins de calendario, contactos, galería y grauphel (imprescindible para la vida moderna), adaptar el tema para que quede bonito, cifrar los ficheros e instalar al nueva app en el móvil que, dicho sea de paso, es mucho mejor y ofrece más configuración que la de owncloud.

 

Apurando plazos con hacienda, errores, certificados y linux

Desde el año pasado (creo) la AEAT (hacienda, para el que no sea de siglas), tiene un programa Java que sustituye al programa PADRE. Al final creo que se cansaron de mantener varios sistemas para cumplir telemáticamente con el fisco y lo hicieron en Java. Yo me lo imagino tal que así:

INTERIOR, TARDE OSCURA DE INVIERNO EN UN EDIFICIO DE CRISTAL Y ACERO. UN GRUPO DE GENTE CON CORBATA (HOMBRES TODO) DISCUTE.
–Es un coñazo rehacer el programa ese año tras año. ¡Está en visual basic!
–Pues otra vez montar un Citrix para que se conecten los cuatro idiotas de linux, no. ¡Se quejaban de que no era una solución libre!
–Pues a ver qué hacemos…
–Un momento, que le pregunto a mi cuñao por whatsapp, que sabe mucho de estas cosas… Que busquemos una solución multiplataforma… Que se hace una vez y sirve para todos los sistemas operativos… Algo web, fácil, rápido y basado en estándares abiertos…
–Suena bien…
–Espera, que sigue. Dice que pidamos que lo hagan en java, que es todo eso y más.
–¡Cojonudo! Ahora sólo hay que montar que concurso para que se lleve un amiguete y que hagan una web con todo eso. Mándame los whatsapps que tengan siglas o cosas de esas, que quedarán muy bien en el concurso. Y a ver quien tiene narices ahora de quejarse…

Si, es una pantomima y es muy personal pero no creo que se aleje mucho de la realidad.

Si, además, eres de esas personas que apuran los plazos cuando se trata de pagar (bienvenido/a al club) y la web te de un error del certificado justo después de pagar y antes de declararte al día de tus obligaciones, a día y medio del plazo final, entonces no le encontrarás la gracia por ningún lado.

Usamos el Macbook con Linux Mint y todo fue bien hasta el paso siguiente tras haber pagado. Cuando sólo te falta confirmar tu identidad con el certificado electrónico, nos saltó un popup con el error «Error message: El almacén no contenía entradas». Muy clarito todo.

error-aeat2

Así que tocó revisar certificados, ficheros del programa y volverse loco para acabar concluyendo que la culpa es de java. ¿De quién sino?

El maldito programa o al menos la parte final que muestra el justificante de la operación y del pago, sólo funciona con java, java, el java de adobe, el de java.com. Linux Mint trae, por defecto, openjre, que es una opción muy válida para casi todo el mundo menos para hacienda por lo que tocó borrar openjre, bajar java-java, instalarlo y, para que el maldito programa lo reconociese sin mucho esfuerzo, crear un enlace en /usr/bin/java apuntando al binario de la nueva versión.

Después de eso, repetir, alegar que ya se había pagado y terminar el proceso no sin antes mentar mil veces a la familia directa del águila que señaló java-java como una solución multiplataforma.

PD a los que lo dejáis todo para el último día… ¡corred insensatos! ¡Sólo quedan unas horas! 🙂
PD2 no hay ningún enlace a la web de java-java porque aún me dura el cabreo.

 

Aprendices de sysadmin

Resulta que tres elementos que conocemos, admiramos y queremos (y en ocasiones padecemos, ¿eh, presionator? :)) se han juntado para darle forma a un blog llamado Aprendiz de Sysadmin que ha abierto sus puertas hace un mes. @fpalenzuela, @itzala74 e @israelmgo van a escribir sobre administración de sistemas en varios entornos y ya tienen un par de entradas de cada, bastante interesantes.

Pero lo mejor está llegando porque ya han comenzado con la guía Hardening en sistemas Linux con un capítulo sobre el proceso de instalación de un debian cifrado. Viendo el índice de esa guía lo mejor está por llegar.

Así pues, ¡bienvenidos!

 

Instalación de un repositorio debian con reprepro

Lenny Updated

Cuando se pega mucho (pero mucho, mucho) con debian, lleva un momento en que empieza a hacer o modificar paquetes y es entonces cuando el uso de un repositorio personal es una buena idea. Hace unos años, crear y sobre todo mantener un repositorio de paquetes de debian era doloroso por los scripts que había que ejecutar, puesto que funcionaban una de cada dos veces y estaban llenos de parches. Afortunidamente han surgido unos cuantos programas que facilitan mucho la tarea de instalación y sobre todo de mantenimiento de los repositorios y, dentro de todos ellos, mi favorito es reprepro.

No es excesivamente pesado, se maneja completamente desde la línea de comandos y el cifrado de los ficheros que contienen las sumas MD5 (los ficheros Release) es transparente. También, la configuración de cada repositorio es sencilla y mediante ficheros de texto y toda la información de los paquetes se almacen en una base de datos Berkeley, por lo que no es necesarios ningún SGBD.

Tener los repositorios disponibles para un sólo equipo no es muy inteligente así que se suelen instalar bajo servidores web o ftp. Los repositorios de mi red están en ranas, mi servidor raspberry NAS, así que por motivos de rendimiento y recursos preferí instalar un servidor pure-ftpd antes que un apache2. Como ambos pillan fuera del ámbito de esta guía, os dejo los enlaces de configuración de ambos:

Instalación

Instalamos conjuntamente reprepro y pure-ftpd.

pure-ftpd

Configuramos pure-ftp según se explica en los enlaces superiores y configuramos unas cuantas cosas más.

  • crear usuario ftp con directorio /media/nas/ftp/.

  • asignar permisos a mi usuario en el directorio de los repositorios.

reprepro

Toda la configuración y gestión del repositorio con reprepro se realiza como un usuario sin privilegios, salvo el de escribir en el directorio de los repositorios.

Dada la versatilidad de reprepro puedo crear tantos repositorios como quiera. Si, por ejemplo, quiero tener los repositorios de cada proyecto organizados, puedo crear dentro de /media/nas/ftp un directorio, proy01, que contenga los repos proy01, partners y apps. Para el segundo proyecto crearía proy02 con los repos proy02 y extras y así… Cada proyecto con sus paquetes y, probablemente, un repo general con debian, con jessie, wheezy y sid dentro.

  • debemos crear una llave gpg de 2048 bits con que firmar los paquetes.

  • exportamos la parte pública de la llave a un fichero asc.

  • creamos el fichero de configuración del repo nimhix.

Las líneas más jugosas son Architectures, donde indicamos que arquitecturas están soportadas, Components, donde se enumeran las ramas del repo y SignWith, donde especificamos la clave pública que se usará para firmar los paquetes. Codename es el nombre en clave del repositorio y si, en este caso viene de la serie Justified.

  • creamos el repositorio y los enlaces. Si estamos en el directorio principal del repositorio (donde se ve el directorio conf), no es necesario pasar el argumento -b.

Gestionando paquetes

Todos los ejemplos se ejecutan desde el directorio principal (al mismo nivel que conf). De no ser así, el argumento -b es tu amigo. 🙂

Listar paquetes del repositorio

Añadir nuevos paquetes (o versiones actualizadas)

Borrar paquetes

Y con esto ya tenemos cuantos repositorios necesitemos. Actualmente es ranas quien sirve los paquetes en mi red local, así que el gasto de recursos está bastante contenido (con pure-ftpd). Si, además, configuras samba para “tirar” los paquetes en el directorio del ftp, lo tienes todo más a mano.

 

Firefox is back

Después de casi diez años usando la versión debianizada del mejor navegador que ha surcado internet, Mozilla Firefox, acabo de ver en los paquetes de debian que ya está de vuelta en los repositorios, al menos en la rama testing (si, lo sé pero es uno de esos vicios confesables...). Una gran noticia para los que no sabemos movernos sin esta gran pieza de software, ya sea en su estado normal o encebollado.

diego@tola:~$ apt-cache search firefox-esr
firefox-esr – Mozilla Firefox web browser

Han marcado como transitional a iceweasel y basta con hacer una actualización de paquetes para que se instale limpiamente, con los 450 MB restantes, por supuesto. Ha sido un detalle que hayan hecho coincidir el cambio con la mayor fiesta cristiana fuera del mes de diciembre y así nos ha pillado, por sorpresa y cara de susto.

Personalmente estoy encantado de que, por fin, haya vuelto la cordura y podamos disponer de Firefox sin trucos para evitar demandas legales absurdas porque, a pesar de intentar utilizar otros navegadores, ninguno
me convencía y no tardaba en volver a la comadreja de los hielos.

NOTA: esta entrada carece de enlaces y etiquetas html por un problema con el servidor. En cuanto se solvente, aparecerán mágicamente. :)

 

Securizando un VPS

Hace ya tiempo que busqué y alquilé el VPS (Virtual Private Server) más barato que pude encontrar, animado por dabo, que mantenía (y con razón) que por unos euros al mes tienes un juguete con el mantenerte bastante en forma en esto del sysadmining. Tras darle muchos usos, alguno incluso para el que no estaba preparado y no podía con ellos, se quedó con un apache2 y un par de blogs en wordpress durante el último año. Pero he decidio hacer de él un servidor de provecho y eso pasa por una reinstalación (aka limpieza) y configuración.

Ésta es una guía no exhaustiva de los pasos que sigo para dejar el servidor un poco más seguro tras la instalación.

1. Reinstalar el VPS

Desde el panel de control del VPS (al menos en mi caso), elijo una Debian GNU/Linux 8 de 64 bits y le digo que si, que estoy seguro de que se puede cargar el servidor y reinstalar. Al cabo de unos minutos asigno una nueva contraseña de root y me conecto por ssh.

2. Cerrar puertos abiertos (de más)

Ejecuto netstat -pta y detengo todos aquellos servicios que no sean ssh. En este caso, apache2 y postfix. En alguna ocasión me he encontrado con un montón de servicios instalados y funcionando, algunos de ellos inseguros por definición, así que antes de seguir, cerrojo.

3. Borrado de paquetes

Igual que con los servicios funcionando (o precisamente por eso), hay bastantes paquetes que a mi juicio sobran y que desinstalo por real decreto. Y si, algunos de los paquetes que elimino los instalaré más tarde pero será bajo demanda, porque decido instalar el servicio y configurarlo y no porque tenga que venir preinstalado. Llamadme exagerao pero, en un VPS donde no puedes instalar un escritorio, ¿para qué hacen falta fuentes truetype?

En esta ocasión, partí de una lista total de 380 paquetes y los reduje hasta los 290. La lista la genero mediante el comando:

Normalmente, en otra pestaña del terminal abro otra sesión ssh y creo un alias para que sólo sea copiar y pegar nombres de paquetes.

La lista de paquetes eliminados es:

Y para eliminar varios paquetes que empiezan por el mismo nombre, como las fuentes, unas cuantas tuberías y listo.

4. Creación y configuración de un usuario

Lo de conectarse como rootnunca ha sido una opción así que una de las primeras acciones es crear un usuario con el que conectarse.

No voy a explicar porqué debe usarse sudo porque, como decía un profe en la universidad “es de sentido común”.

5. SSH

Si ejecutamos nmap sobre sobre el propio servidor descubriremos que ssh es un chivato de cuidado.

Así que para vamos a pedirle que de menos información y a evitar que root pueda iniciar sesión a través de este protocolo.

Ahora estará un poco más callado :).

6. NTP

El VPN que estoy configurando está situado en la costa oeste americana a siete horas de diferencia y eso puede (y lo hace, vaya si lo hace) complicar bastante las cosas. Así que se impone el ajuste de la zona horaria y la instalación de un servidor de hora.

7. Securización extra

1. portsentry

No está de más tener un perro guardian que vigile todos los recovecos de la casa y eso precisamente hace portsentry. Audita los puertos inactivos del sistema en busca de actividad e informa si la encuentra donde no debe.

Si ejecutamos un netstat -pta veremos que hay servicios que antes no estaban y que ni tan siquiera están instalados, como finger.

2. logwatch

Un estupendo servicio que lee los logs del sistema y nos avisa en caso de que algo no le cuadre. Es un poco pesado en la configuración pero merece mucho la pena. Unas excelentes guías para la configuración de logcheck son las de Un pingüino en mi ascensor: Vigilando los logs con logcheck (I) y Vigilando los logs con logcheck (II).

3. maldet

maldet es un software muy interesante que escanea en busca de malware, se actualiza automáticamente y emite unos informes con todos los cambios que encuentra y que pueden ser de interés. No tiene paquete debian por lo que se descarga e instala.

En este punto tenemos un directorio, /usr/local/maldetect con el software instalado, por eso se borra el directorio de instalación en la última línea.

Lo configuramos y ejecutamos.

4. iptables (o ufw)

A estas alturas un firewall resulta imprescindible, ya estés configurando un servidor en el otro lado del mundo o una raspberry pi para tu red local. De hecho, es más importante en el caso de la raspi porque el servidor está protegido por la empresa que te lo alquila. Haz la prueba, instala ufw en tu raspi y échale un ojo a los logs, te garantizo que querrás llorar. Si iptables te asusta (a mí me pasó durante un tiempo), instala ufw que es su cara amable y de lenguaje llano. Si no te asusta, usálo a discrección porque es uno de esos programas sin los que linux estaría cojo.

Aquí dejo el script con las reglas para ufw que uso en una de mis raspberries.

Y hasta aquí, la configuración básica. Obviamente se complica cuando instalamos algún servicio porque hay que habilitarlo en el firewall, configurarlo adecuadamente y ajustar algunas cosas más. Pero esa es la magia de este juego al que es difícil cansarse de jugar.

 

Boosting tola

Turbo_Boost01

Hace unas semanas que el ordenador portátil que utilizaba para trabajar, tola, ha pasado a ser de mi propiedad y, a pesar de que sólo tiene tres años, decidí que podía intentar mejorar su rendimiento. El aparato en cuestión es un ACER Aspire E-571, con un procesador i3 de Intel, 4GB de memoria RAM y 500 GB de disco duro y no lo hace mal, sobre todo teniendo en cuenta que he llegado a ejecutar dos máquinas virtuales con Windows 2012 a una velocidad aceptable. Pero ya que es mío… ¡qué carajo, voy a doparlo! 🙂

Mis intenciones eran dos: ampliar la memoria RAM, doblando los 4GB, porque nunca se tiene suficiente RAM y meter un disco SSD como disco principal, instalando el disco mecánico en el hueco del DVD. Por el camino tuve que sustituir la batería que perdió un 75% de capacidad en apenas dos semanas y sin estar conectada a la toma de corriente.

La batería

En la eterna lucha entre duración de batería y ligereza, esta vez ganó la duración y le endosé medio kilo largo que dan 6600 mA de capacidad, lo que se traduce en unas cinco horas y media de uso normal (y cuatro de uso salvaje, lo que está muy bien :D). Además viene con un alza, lo que le da mejor ventilación en los largos veranos extremeños. En conjunto se nota que ha ganado peso pero, insisto, lo compensa la duración de la batería con creces.

La memoria RAM

Personalmente prefiero tener 4GB de RAM riéndose de mí por haberme gastado el dinero para que luego se usen cada veintinueve de febrero, a no tenerla y preguntarme si realmente habría mejorado el rendimiento con ellos. Así que me llevé el portátil a una tienda, que no tengo edad ni paciencia para perseguir frecuencias, chips y formatos de pastillas de memoria y salí de allí con 4GB más de RAM.

IMG_20160211_172949

Una nota negativa para ACER: no encontré por ningún lugar documentación relativa a la BIOS ni a las posibilidades de cambiar piezas para aumentar la potencia ni en la web, cosa que me extraña, ni tan siquiera buscando por el número de versión de la BIOS. Este modelo de ordenador, además, tiene docena y media de submodelos de los que no hay información y cuyo nombre varía en una letra añadida al final: E-571G, E-571B… Al final, en la caja vi que ponía 8GB/4GB, dando a entender que soporta ambas configuraciones, me arriesgué y salió bien (por esta vez).

El disco duro SSD

Había oído que los discos duros de estado sólido, SSD, revivían ordenadores dándoles una velocidad desconocida y no fue hasta que reinicié un MacBook Air en un centro comercial y vi que tardaba unos pocos segundos en arrancar, que me lo creí. Desde aquel día sólo era cuestión de tiempo que le metiese uno a uno de mis ordenadores. Y le tocó a tola y, de paso, al macbook de 2007 que heredó mi señora.

Me decanté por un SanDisk SATA III de 120GB tras leer varias comparativas que ponían a Kingston a caer de un burro y hacer un ejercicio de análisis profundo para saber si realmente iba a necesitar un disco del doble de capacidad para el directorio raíz, la swap y un home medio decente. La respuesta fue que no, que si podía instalar debian en 120MB no necesito tanto disco para el raíz. Además, para almacén de datos se iban a quedar los 500GB del disco mecánico.

Lo que más me mosqueó al recibirlo fue el poco peso del dispositivo. Son sólo unos gramos y mi impresión es que me habían colado una carcasa vacía y que no albergaría ni un mísero bit. Pero no, el disco funciona a pesar de que se lo llevaría el viento y creo que he podido ver esas 23 veces más rápido que comentan en amazon. Porque sí que se nota la velocidad, empezando por el arranque del sistema operativo, que dura entre dos y cinco segundos hasta que aparece lightdm, cuando antes le llevaba unos 30-40. Y las aplicaciones que más recursos consumen, vuelan. Iceweasel y Icedove se abren en un parpadeo y hasta con VirtualBox se nota cláramente. Y esto fue antes de instalar la memoria RAM, que conste.

IMG_20160211_172924

Para cambiar la memoria RAM como el disco duro, hay que quitar únicamente un par de tornillos de la parte inferior del portátil y hacer palanca ligeramente. Si, suena a roto pero no es para prevenir accesos de usuario mediante el uso del miedo :). El disco sale al tirar de la solapa de plástico, deslizándolo lateralmente hacia la izquierda y la memoria RAM basta con añadir el módulo de 4GB en el zócalo vacío.

El DVD

Seamos serios: ¿quién utiliza un DVD hoy en día, habiendo discos duros USB por cuatro duros? Yo no, así que me dije que ese hueco estaría mejor aprovechado con los 500GB del disco duro mecánico y también dejaría de tropezar con el bótón de apertura cada vez que muevo el ordenador (si, pasa mucho). Si es que son todo ventajas.

En eBay adquirí una carcasa que entra en el hueco, tiene conexión SATA y alberga un disco de 2,5 pulgadas por menos de diez euros, fácil y rápida de instalar.

IMG_20160303_124738

Parece fácil, ¿verdad? Bien, pues ahora los trucos.

Primero, no es necesario quitar todos los tornillos del ordenador buscando la forma de extraer del DVD. En este tutorial tan sencillo de ifixit.com explican que basta con hacer un poco de palanca tras quitar un único tornillo. Y ya está.

El segundo se basó en que no leí completamente la descripción de la carcasa una vez que la recibí y sí me fijé en la serigrafía que trae, concretamente en la forma en que se sujeta el disco para que no se mueva. No se aprecia pero utiliza una pieza para calzar el disco, pieza que no trae y que, obviamente, sustituí con imaginación, cinta americana y unos calzos de cinta de carrocero. Casi nadie lo aprecia así pero era una obra de arte improvisado. Hasta que, al intentar meter el la caja en el hueco del DVD noté que algo metálico chocaba. Eran un par de tornillos que fijan el disco duro sin necesidad de cinta americana… ¡y hasta te adjuntan el destornillador con que apretarlos!

IMG_20160307_022539

Luego, leyendo la descripción del artículo me topé con esta línea: The build-in lock screws make it easy to mount your second hard drive in the caddy. Más claro, agua.

El tercer y último truco es la tapita de plástico de forma triangular con el perfil del portátil. En teoría se quita esa tapa para colocarla sobre la cuna del disco duro para que no se pierda el diseño del ordenador. En la práctica, los tres anclajes que trae no son de plástico, son de adamantium y se resisten a abandonar su acomodo sin dar batalla. Me llevó casi quince minutos de autocontrol y mantras quitar la tapita sin arrancarla del DVD. Todo por el diseño del portátil, que luego queda feo, repetía. Personalmente valoré más sacar entera la tapa que la integridad de la pieza que sujetaba el último enganche y… la corté.

El resultado después de media hora de pelea fue este:

discos

Bola extra: cifrar el disco duro

A dabo le debo muchas cosas, incluída la paranoia de «¿dónde vas con un portátil sin cifrar?» y claro, sus sabias palabras retumbaban en mi cabeza mientras instalaba Debian GNU/Linux en el disco SSD, así que cifré las particiones de swap y home. Si, no es la mejor solución pero quería tener el portátil instalado y me pudo la vagancia. Me consuelo pensando que todo lo que se puede encontrar son un montón de paquetes estándar y una configuración básica porque los logs los elimino periódicamente. Y claro, un par de semanas después instalé el disco duro mecánico y me pareció oportuno que también fuese cifrado.

Lo primero es crear la partición sobre la que irán los datos cifrados. Aunque el destino de esta es que cryptsetup la sobreescriba, hay que crearla.

Y ahora se inicializa la partición cifrada con cryptsetup, que se encargará de sobreescribirla con datos aleatorios y pedirá la contraseña de acceso.

Se puede comprobar que se ha creado correctamente mediante un volcado de la información de la partición:

Y, finalmente, abrimos la partición para poder asignarle un sistema de ficheros:

Como no devuelve ninguna información, se ejecuta sudo fdisk -l para ver que el dispositivo al que accede es /dev/mapper/sdb1:

Y, finalmente, se crea el sistema de ficheros sobre /dev/mapper/sdb1:

Para hacer que se monte durante el arranque del sistema operativo (preguntando la contraseña), primero hay que averiguar el UUID asignado a la partición con el comando blkid:

Luego se edita el fichero /etc/fstab para añadir una línea similar a esta:

Vinculamos el dispositivo sdb1_crypt con el UUID del dispositivo en el fichero /etc/crypttab:

Y terminamos actualizando el fichero initram:

Durante el próximo inicio del sistema pedirá las contraseñas de todos los sistemas de ficheros cifrados.

Conclusiones

Si descontamos la batería (era obligado si no quería un ordenador de sobremesa), el total invertido en el proceso no superó los 85€ y el resultado es realmente impresionante. Todo aquello que está en el disco SSD se ejecuta a una velocidad endiablada y el acceso a disco ha dejado de ser un cuello de botella. Personalmente me parece poco dinero para el resultado obtenido y creo que voy a empezar a convertir otros ordenadores al SSD-ismo.

 

WordPress Multisite y el tamaño de ficheros

wordpress

Hay un dicho que reza que la confianza es mala consejera y, otra vez, acabo de darme cuenta por la vía difícil. El escenario es de sobra conocido: un servidor, con apache2 y php5, alojando varios wordpress y, en uno de ellos, el tamaño máximo de archivos a subir es de un mísero mega y yo, que tengo disquetes de 3 1/2 con más capacidad que eso, me niego.

Y claro, ahí es donde la confianza campa a sus anchas porque voy de cabeza a editar /etc/php/apache2/php.ini, a meterle megas a los valores post_max_size y upload_max_filesize hasta que puedan albergar una instalación media de SAP. Reinicio apache2y… nada. Sigue diciendo que con un mega voy que ardo. Desde algún lugar de mi cabeza, la confianza asiente mientras me susurra que lo que hice está bien y que el maldito wordpress (lo sé, lo sé, hablaba el enfado) está equivocado. Compruebo los fallos un par de veces más, reinicio con saña y… lo mismo, nada.

Al cabo de un rato, toca recapitular, volver al génesis, a los orígenes, me digo. Si, es un apache2 con php5 y varios blogs pero en un dos instalaciones de wordpress, una normal y otra multisite. Y si, contínuo pudiendo subir ficheros de hasta un megabyte pero la función php_info() me muestra que valor que he puesto en el fichero php.ini así que esto tiene que ser algo del multisite que está gracioso.

Y así, desoyendo a la maldita confianza, me puse a bucear por las opciones generales de wordpress multisite, que son muchas y variadas y, abajo del todo, encontré un título autoexplicativo, Tamaño máximo de archivo, cuyo valor asignado era de un megabyte.

La conclusión es que es para aumentar el tamaño de los ficheros a subir al servidor, debemos modificador ambos valores y que el asignado en el fichero php.ini debe ser mayor que el referenciado en la configuración de la plataforma. Y, por supuesto, no hacer las cosas por inercia, fiándonos de la confianza.