Configurar mail/mailx en Linux

He pasado un par de días, desde que hube de formatear mi Linux Mint 19.3 para actualizarlo a Linux Mint 20.1 recuperando pequeñas personalizaciones que había hecho en el PC.

Una de ellas es la herramienta (script) de realización de BackUps que, entre otras cosas, me envía por correo electrónico diariamente el resultado de la sincronización realizada.

Lo uso desde hace más de 10 años y lo he ido perfeccionando con el paso del tiempo. Entre otras cosas, ahora lo ejecuto con un «cron«, de línea de comandos, que hace una llamada al programa en cuestión y envía el correo informativo utilizando el programa mail del sistema operativo.

Pero he tardado mucho en configurarlo.

No recordaba qué había que hacer para que funcionase, pero, tras unas cuantas horas, lo he logrado con un par de cosas sencillas que no sé muy bien porqué no tenía apuntadas.

Tenía una restricción, más o menos tonta autoimpuesta, que era que no quedase abierto un servidor SMTP (ni su puerto 25) permanente en el PC (obsesiones absurdas de seguridad), así que algunas de las soluciones que pasan por instalar un MTA como Sendmail o Postfix estaban descartadas. (Aunque también las probé, ya cuando empezaba a desesperar)

Por más que intentaba configurar mailutils (que incluye mail/mailx) no conseguía enviar un correo fuera del equipo, utilizando una cuenta de correo personal en mi hosting preferido (giusseppe.net). Creo que revistando la información del manual de mailutils sí que habría sido posible enviar correos sin que fuese preciso instalar nada más, pero no daba con la forma, así que probé con alternativas a mailutils, como era s-nail, pero me daba resultados no deseados y algunas configuraciones que había que hacer no me apetecía tenerlas así.

Finalmente, instalé sSMTP y su configuración fue trivial:

sSMTP es un programa que entrega correo electrónico desde un ordenador local a un servidor de correo configurado (mailhub). No es un servidor de correo (como si lo es el servidor de correo rico en funciones sendmail) y no recibe correo, ni expande alias, ni administra una cola. Uno de sus usos principales es reenviar el correo electrónico automatizado (como las alertas del sistema) desde su equipo a una dirección de correo electrónico externa.

Por supuesto, tenía que instalar el pequeño programita mailutils que serviría para los comandos mail/mailx. No he optado por ninguna de las alternativas que no aportan nada que me sea útil. (No obstante, también se puede enviar correo sólo usando sSMTP, pero no se dispone del comando mail)

Para instalar ambas utilidades, bastaba un simple:

sudo apt-get update && sudo apt-get install ssmtp mailutils

 

Y después proceder a configurar el fichero /etc/ssmtp/ssmtp.conf con lo siguiente:

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=jmdomin@giusseppe.net

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=mail.giusseppe.net:587
AuthUser=jmdomin@giusseppe.net
AuthPass=LAFAMOSACONTRASEÑA
UseSTARTTLS=YES

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=giusseppe.net

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES

 

Ahora mis correos salen estupendamente y lo puedo poner a prueba con un simple:

echo "Este es el cuerpo del mensaje" | mail -s "Este es el subject" jmdomin@gmail.com

Recortar una imagen desde la línea de comandos

A veces tomo una fotografía y parte de lo que hay en los laterales me sobra. Especialmente cuando hago muchas, como una serie de imágenes captadas desde el móvil con un dispositivo disparador bluetooth que evite que toque el teléfono y provoque temblor o distorsión en la imagen.

El viernes pasado estuve trabajando sobre unas imágenes de «blackout-poetry» que había hecho y eran más de 40, así que no era muy razonable ir abriéndolas con GIMP y buscar el mismo corte, pues era el mismo corte, en todas y cada una de ellas.

En cuanto tengo que hacer algo más de 5 veces seguidas, pienso si existe una manera «automática» o más eficaz de tratar la serie. Que puede no serlo en pequeñas series, pero que me permite ir aprendiendo por si alguna vez necesito aplicar el mismo procedimiento en una serie más numerosa.

En esta ocasión, gracias a un tutorial que he encontrado en internet sobre cómo recortar imágenes en línea de comando con Imagemagick, recurrí a un utilísimo comando o programa linux que ya había usado con anterioridad, pero en esta ocasión para aplicar un corte o «crop» a las imágenes que con esta sencilla línea quedaron como las quería:

mogrify -crop 1800x3100+190+280 *

Transformando imágenes de 2250×4000 en una imagen recortada a partir del pixel 190 de la izquierda (la x) y 280 pixels hacia abajo (la y), con un nuevo tamaño: 1800×3100, despreciando lo que no esté ahí.

Soy un fan de la línea de comandos linux

Quizá porque mi primer contacto con un ordenador fue con línea de comandos, allá por los tiempos en los que en la UAM usé un AIX desde una terminal conectada a un ordenador central que era el único que tenía entorno gráfico.

Quizá porque es más rápida y consume menos recursos que los sofisticados programas de gestión de software que vienen con las distribuciones populares de Linux (yo, de hecho, lo primero que instalo es Synaptic).

Quizá porque lo puedo hacer remotamente desde mi teléfono móvil o, como hoy, desde mi PC mediante una conexión (bien configurado su acceso PKI) por SSH, conectándome a la Raspberry que tengo de servidor de backup y de desarrollo, al mismo tiempo que me conecto al PC que habitualmente usa Carmen para trabajar (mientras ella está trabajando, de hecho).

Cada noche hago un repaso de los dispositivos conectados y tecleo un

sudo apt update
sudo apt upgrade

 

(y si procede un sudo apt autoremove, para limpiar lo innecesario)

Termino con un shutdown now que me remite a aquellos tiempos de mis primeros tecleos… donde una broma habitual era hacerse con la password de root y proceder a un apagado de los 5 terminales conectados al central. ¡Qué vandalismo!.

Había una forma muy sencilla que consistía en simular una pantalla con un «login» en el que la persona que había de encender y administrar los equipos se conectaba y devolver un pantallazo tras haber capturado su contraseña. A continuación, se volvía a mostrar la verdadera pantalla de login y parecía un minúsculo error de tecleo… Sigue siendo un ataque eficaz a pesar de lo poco sofisticado del método.

Fondo blanco en PNG

Para eliminar la transparencia (canal alpha), existe este valioso comando linux que he utilizado más de una vez para luego poder subir las fotos a mi galería que maneja Piwigo:

mogrify -background white -alpha remove -alpha off *.png

Puede combinarse, por supuesto, con un find bien manejado, como el comando que usé para modificar los tamaños de múltiples archivos simultáneamente.

Instalando un dispositivo BlueTooth en Linux Mint

Desde hace meses hago todas las clases online, así que estoy equipando los equipos, valga la redundancia, con auriculares, mejorando las conexiones, como en el estudio que hube de adquirir una antena especialmente potente para atravesar la pared que me separa del router, y en ocasiones, incluso, dotando a los PCs de conectividad que no tenían, como el caso del BlueTooth para poder utilizar dispositivos inalámbricos.

Pero luego viene la realidad de vivir luchando a la contra con mi empeño en utilizar Linux, aunque sé que no es la mejor de las herramientas desde el punto de vista de la productividad, pero algo «fanático» convencido de que instalar linux es un acto político y, quizá, incluso, poético, si considero que la sociedad es el papel en el que escribir el poema de mi vida.

He probado varios adaptadores con mala suerte en casi todos los casos. Recientemente adquirí uno (afortunadamente no muy caro) que garantizaba tener soporte para Linux, pero no era así, salvo que estuvieses dispuesto a compilar sus drivers para el kernel que usases y renunciases a actualizaciones so pena de perder el driver así creado.

Después de varios intentos de compilación (que no acaban de funcionar porque el «makefile» estaba mal diseñado), después de revisar el código abierto del mismo para intentar entender qué hacía y corregirlo, después de trastear de diversos modos, así como tener que saber si tenía que instalar la versión USB, la versión UART o la versión ALL, es decir, después de horas de trabajo… aún no funcionaba y además ralentizó el arranque de mi sistema.

En resumidas cuentas, doy la razón a quienes dicen que para usar Linux hay que ser un experto… o similar. Salvo contadas excepciones.

Finalmente, me di por vencido y decidí no perder más tiempo y cambiar el dispositivo en Amazon, con la pérdida de tiempo asumida.

Por si acaso, volví a darle una opción a otro dispositivo que no garantizaba la compatibilidad con Linux, un cacharrito que era al mismo tiempo antena WiFi y BlueTooth, lo que, si funcionaba bien, podría ser muy conveniente especialmente en el estudio, donde siempre me viene bien una antena de backup y además soporte BT para conectar auriculares.

Esta vez, después de que en marzo lo comprase y lo intentase instalar, parece ser que sí ha habido suerte (amén de un cambio de versión de sistema operativo), reconociéndome ambas funcionalidades. Hice bien, quizá, en suponer que un día funcionaría.

Pero Linux y los drivers de dispositivos…

No sin mi gluten

Sé que puede parecer irreverente, pero no pude por menos, después de ver la advertencia de sexo, violencia, etc, que añadir unas cuantas cosas más de las que advertir. Y me dejé tantas pendientes…

Por contra, no hay series o películas en las que se advierta de falta de rigor científico ni histórico, ni de machismo, ni de racismo… así que las advertencias las «desleo» en mi cerebro ya harto de simplezas y religiones.

Es un fotograma capturado de la serie «The Last Kingdom» que narra la vida y aventuras de los sucesos que siguieron al reinado de Alfredo de Wessex, a quien a veces se considera el primer rey de «Inglaterra», la tierra de los anglos (y sajones, claro está, y britanos…) en perpetua lucha contra las invasiones nórdicas. Es una especie de respuesta a la mucho mejor interpretada «Vikings», pero curiosamente, bastante veraz en cuanto a los personajes históricos se refiere.

La modifiqué añadiendo las advertencias culinarias mediante el uso de GIMP sobre Linux Mint.

Caballo de Troya

Es tan conocida la historia (leyenda) del Caballo de Troya que casi da pereza tener que explicar qué es un troyano, pero cuando te llega un mensaje como este por correo corres el riesgo de creer que verdaderamente es un mensaje destinado a ti.

Cada día más, los antivirus heurísticos son capaces de discernir con una inteligencia más o menos artificial, implementada en forma de algún algoritmo (¿son algoritmos las redes neuronales artificiales, los sistemas expertos, la lógica difusa?), si se trata de SPAM, virus, o si por el contrario es un mensaje «verificado» como sin peligro.

Por supuesto, queda la llamada a la ciudadanía, a los y las internautas, para que sean conscientes del riesgo que asumen al tener un dispositivo conectado a estos ataques que muchas veces es muy complejo distinguir de cartas bienintencionadas.

Me llegó este mensaje al correo electrónico de mi flamante linux (algo más seguro frente a ataques «convencionales» de software que se ejecuta en el equipo, básicamente porque la seguridad es implícita al propio sistema operativo y además (y sobretodo) porque no se desarrollan muchos virus para atacar a menos del 1% de dispositivos, pudiendo atacar al 99%):

Cuando el cuerpo del mensaje es como este:

señor.
Siga según lo solicitado, ¡tómese su tiempo!
(Archivo_10009256727)

yo sospecho, ya de primera, por la mala redacción del mismo, el iniciar la presentación de manera tan formal, pero en minúsculas, y ese «según lo solicitado» tan inespecífico, amén de incluir un «asunto» con problemas en la codificación UTF-8.

Además, me encuentro con que lleva a un presunto PDF (que tampoco abriría, pues no sé las capacidades de ejecutar macros o similar por el lector de PDF que tengo instalado y que no es el habitual de Adobe, por supuesto, en LinuxMint), que para colmo tiene la extensión .html tras de sí y un tamaño ridículo de menos de 1kb.

Ya con esta información puedo saber de qué tipo de virus se trata, pero no pierdo la ocasión de recordar viejos tiempos, cuando me tocaba analizarlos como parte de mi trabajo en seguridad informática y lo descargo en una zona segura (no voy a «pincharlo», así, sin más) y lo abro con un editor al que confiaría mi vida (tecnológica). El código es tan simple que espanta:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="XXXrefresh" XXXcontent="0;URL=https://XXXbit.ly/XXX3jeIkxk">
</head>
<body>
<br>
</body>
</html>

En realidad, lo único que hace este código (al que le he añadido las XXX por seguridad) es redireccionar (con http-equiv=»refresh»)  el navegador a un lugar seguramente malicioso. Ahí sí que no voy a arriesgarme, salvo que lo hiciese en una máquina virtual… y no tengo tiempo ni ganas.

 

 

 

 

Cambiar el tamaño del lienzo de una imagen sin alterar la imagen

mogrify -gravity center -background white -extent 5000x5000 *.png

Con este comando linux puedo cambiar automáticamente el tamaño de todos los archivos PNG en una carpeta dada, pero específicamente cambiar el tamaño del lienzo (de ahí la opción «extent») del mismo, sin tocar la proporción de la imagen.

Con la opción «-gravity center», mantengo la imagen a transformar en el centro del mismo y con la opción «background white» le añado un conveniente fondo blanco, ideal para subir archivos a Instagram, por ejemplo, que no se lleva muy bien con las transparencias de los PNG.

Esto ha transformado esta imagen original (transparente) de 2044×513 pixels:

En esta imagen de 5000×5000 pixels con fondo blanco:

Esto no es una broma