miércoles, 9 de septiembre de 2015

Envia Mailing con Thunderbird


En el siguiente post detallaré como realizar un mailing o envío de correos masivos con el gestor de correo Thunderbird. El proceso que veremos no es el mas extendido para realizar un mailing en un entorno profesional, pero aplicando la metodología descrita en este post conseguiremos realizar un mailing sin tener que depender de aplicaciones/servicios de terceros como por ejemplo el archiconocido MailchimpMax Bull mailer, etc.
Después de implementar los pasos descritos en este artículo, dispondremos de un sistema de mailing capaz de realizar las siguientes acciones:
  1. Enviar un mail personalizado, con texto e imágenes a la totalidad de contactos de nuestra base de datos.
  2. Programar el envío de mails para incrementar la tasa de apertura de los mails, y evitar que nuestro servidor de correo electrónico nos bloquee la cuenta de correo por Spam.
  3. Hacer un seguimiento de la tasa de apertura de nuestro mails, si los destinatarios han realizado click en alguno de los links del email, saber que han realizado los usuarios después de entrar en los links que se proporcionan en el email, etc.
Nota: En los entornos profesionales, la gran mayoría de empresas que precisan realizar un mailing utilizan una herramienta llamada Mailchimp.
Nota: Quien tenga un blog y envíe boletines e información a sus lectores, le aconsejaría utilizar un plugin de wordpress llamado mailpoet para hacer la distribución de sus newsletters a los lectores.
Nota: El hecho de no utilizar servicios de terceros como mailchimp o mailpoet tiene grandes ventajas en el campo de la privacidad. De este modo nadie podrá analizar el contenido de nuestro emails, ni disponer de nuestra base de datos, ni cortarnos el servicio por considerar que estamos violando sus términos de uso, etc.

INSTALAR LAS EXTENSIONES MAIL MERGE Y ENVIAR MAS TARDE

El primer paso a realizar es instalar las extensiones Mail merge y Enviar más tardepara poder realizar el envío masivo de mails.
La extensión mail merge es la que nos permitirá realizar el envío masivo de mails. Para poder instalarla accedéis al menú Herramientas de vuestro gestor de correo Thunberbird. Una vez abierto el menú Herramientas se desplegará un submenú en el que tendréis que seleccionar la opción Complementos.
Seguidamente se abrirá una pestaña para administrar los complementos. Para instalar mail merge, tal y como se puede ver en la captura de pantalla, accedemos al cuadro de búsqueda, escribimos el nombre del complemento, que en nuestro caso es mail merge, y presionamos la tecla Enter.
Después de presionar Enter se realizará la búsqueda de la extensión. Una vez encontrada, tal y como se muestra en la captura de pantalla presionamos el botón Instalar y la extensión se instalará.
mail merge para realizar un mailing
Una vez instalada la extensión mail merge instalaremos la extensión Enviar más tarde. La extensión Enviar más tarde es la que nos permitirá programar el envío de nuestros mails.
Para instalar Enviar más tarde, tal y como se puede ver en la captura de pantalla,accedemos al cuadro de búsqueda, escribimos el nombre del complemento, que en nuestro caso es enviar más tarde, y presionamos la tecla Enter.
Después de presionar Enter se realizará la búsqueda de la extensión. Una vez encontrada, tal y como se muestra en la captura de pantalla presionamos el botón Instalar y la extensión se instalará.
Programar el envío del mailing
Una vez instaladas estas dos extensiones, cerramos Thunderbird y lo volvemos a abrir.

ELABORAR LA PLANTILLA PARA PODER REALIZAR EL MAILING

Una vez tenemos todo el software necesario disponible, ya podemos empezar a redactar nuestro correo. Imaginemos que tenemos una empresa y queremos invitar a la totalidad de nuestros clientes a una convención comercial.
Nota: Obviamente tenemos muchos clientes y es interesante poder realizar un envío masivo de correos y que además estén personalizados para quedar bien con ellos.
Para invitar a los clientes, tal y como se puede ver en la captura de pantalla, empezamos a redactar el mail de invitación con la particularidad que las partes a personalizar las tendremos que escribir entre corchetes. Así a modo de ejemplo si en el asunto del mail queremos poner:
Comunicado a la empresa Bobinados Alonso
Queda claro que la parte a personalizar es el nombre del cliente. Por lo tanto nosotrosdeberemos sustituir Bobinados Alonso por una referencia cualquiera entre corchetes tal y como se muestra a continuación:
Comunicado a la empresa {{empresa}}
Siguiendo este patrón el mensaje quedará tal y como se muestra en la siguiente captura de pantalla:
Plantilla del mailing finalizada
Tal y como se puede ver en la captura de pantalla, las partes/campos a personalizar son los siguientes:
{{mail}} : El campo {{mail}} ubicado en la parte donde ponemos nuestra dirección de email, obviamente es variable ya que cada mail que enviemos irá dirigido a una dirección de email diferente.
{{cliente}} : Como hemos comentado antes, el campo {{cliente}} es variable ya que en cada una de las invitaciones que enviemos a nuestros clientes esta parte será diferente.
{{imagen}} : El campo {{imagen}} también es variable, ya que cada cliente o cada persona a la que enviemos la invitación, le aparecerá una imagen diferente que será un mapa con instrucciones para llegar a nuestra oficina.
Nota: Si os fijáis bien, el mail contiene una dirección a una URL que contiene las novedades que se presentarán en la convención comercial. Este link se puede generar con el creador de URL de Google. De esta forma, mediante google analytics, podremos analizar cuales son las novedades que más interesan a nuestro equipo comercial.
Una vez completada la plantilla la tenemos que guardar. Para ello accedemos al menúArchivo. Una vez hayamos accedido al menú se desplegará un submenú en el que tendremos que seleccionar la opción Guardar como. Finalmente aparecerá otro menú desplegable en el que seleccionaremos Plantilla.
Nota: Si se hubiera personalizado aún más el envío del mail, se podrían haber preparado 2 mailings. Uno dirigido a nuestros clientes mujeres y otro dirigido a nuestros clientes hombres. Esta segmentación podría ser importante para analizar que novedades de nuestra convención comercial interesan más a los hombres y cuales interesan más a las mujeres. Para ello es importante tener una buena base de datos de nuestro clientes.
Nota: Tal y como se puede ver en la última captura de pantalla, el mail tiene un fondo completamente blanco. No obstante si quisiéramos podríamos haber insertado una plantilla html en Thunderbird para modificar el look de nuestro mail de invitación y dar una imagen más corporativa o más publicitaria a nuestro mail. Si quieren saber como pueden realizar lo que acabo de citar pueden visitar el siguiente enlace.

PREPARAR UNA BASE DE DATOS PARA EL ENVÍO DEL MAILING

Una vez tenemos preparada y guardada la plantilla, ya podemos empezar a preparar la base de datos que nos servirá para enviar enviar los mailings a nuestros clientes. Para elloabrimos Excel, Libreoffice o cualquier otra hoja de cálculo.
Una vez abierta la hoja de cálculo, tal y como se puede ver en la captura de pantalla, en la primera fila de cada una de las columnas tenemos que escribir el nombre de los campos que queremos modificar, que si miramos en el apartado anterior veremos que son mailempresacliente e imagen:
Base de datos para el mailing
Seguidamente tal y como se puede ver en la captura de pantalla, tenemos que rellenar las filas de cada uno de los campos a personalizar. Así por lo tanto:
En la columna A, que contiene el campo mail, iremos poniendo la totalidad de mails a los que queremos enviar nuestra invitación.
En la columna B, que contiene el campo empresa, tendremos que poner el nombre de la empresas de cada uno de los clientes.
En la columna C, que contiene el campo cliente, tendremos que poner el nombre de cada nuestro clientes.
Finalmente en la columna D, que contiene el campo imagen, tenemos que indicar la URL o dirección de las imágenes que queremos ir adjuntando a cada uno de nuestros clientes. Para ver como indicar la URL pueden ver la captura de pantalla.
Nota: Los datos de la columna A, B, C y D tendrán que tener una correlación. Por lo tanto la fila 2 contendrá la totalidad de datos del primero de los clientes, la fila 3 contendrá la totalidad de datos del segundo de los clientes, etc.
Una vez terminada la base de datos ya la podemos guardar. Para ello accedemos al menúArchivo. Al desplegarse el submenú seleccionamos la opción Guardar como. Seguidamente aparecerá la siguiente ventana:
Archivo .csv
Tal y como se puede ver en la captura de pantalla, en la ventana Guardar como tenemos que seleccionar el formato en el que queremos guardar el archivo que en mi caso es.csv.
Una vez seleccionado el formato tan solo tenemos que poner un nombre a nuestro archivo, seleccionar la ubicación donde lo queremos guardar y finalmente tan solo falta presionar el botón Guardar.
Una vez hayamos presionado encima del botón guardar nos aparecerá otra ventana:
Codificación del archivo .csv
En esta ventana tendremos que seleccionar el tipo de codificación de nuestro archivo así como los delimitadores de campo y de texto junto con otras opciones de configuración.
Les aconsejo que se use la configuración que se muestra en la captura de pantalla ya que es plenamente funcional y no da ningún tipo de problema. En el hipotético caso que tengan problemas en la visualización de los caracteres cuando se envíe el mailing, pueden probar de reemplazar la codificación Unicode (UTF-8) por la Windows-1252.
Nota: Las codificación UTF-8 y la Windows-1252, son las 2 únicas codificaciones a probar, ya que estas 2 son las únicas plenamente soportadas por Thunderbird y Mail Merge.
Una vez seleccionadas las opciones pertinentes tan solo falta presionar el botón Aceptar. Después de presionar el botón aceptar se generará nuestro archivo .csv que contiene toda la información necesaria para realizar el envío masivo de mails.

TRACKEAR SI SE ACCEDEN A LOS LINKS DEL MAILING

Obviamente si realizamos un mailing o enviamos un mail de forma masiva, es importante conocer los resultados obtenidos del envío. Para ello, mediante el uso de google analytics podemos analizar multitud de parámetros, como por ejemplo la tasa de apertura de nuestros mails, los clicks que realizan los receptores del mail en los links que contiene nuestro mail, que acciones realizan los usuarios que acceden a una web a través del mailing que hemos realizado, etc.
Como es un tema complejo y largo de explicar, en un futuro escribiré una serie de post que detallarán como realizar cada una de las acciones que acabo de citar.

ENVIAR EL MAILING

Una vez realizados la totalidad de los pasos tan solo nos falta enviar el mailing. Para enviar el mail abrimos el gestor de correo Thunberbird y recuperaremos la plantilla que generamos para enviar el mail. Para ello, tal y como se puede ver en la captura de pantalla, nos vamos a la carpeta Plantillas, buscamos nuestra plantilla y hacemos doble click encima de ella para que se abra.
Abrir la plantilla del mailing
Una vez abierta la plantilla, tal y como se puede ver en la captura de pantalla, abrimos el menú Archivo y a posteriori ejecutamos la opción Mail Merge:
Enviar el mailing con mail merge
Seguidamente aparecerá la siguiente ventana:
Opciones de configuración de Mail Merge
En esta ventana es donde deberemos indicar a mail merge, cual el fichero .csv que rellenamos en uno de los apartados de este artículo, y además podremos programar el envío de nuestros emails. En cada una de las distintos campos de esta ventana podemos seleccionar las siguientes opciones:
Campo Source: En este campo deberemos seleccionar la opción CSV ya que la información para personalizar los emails está contenida en un archivo .csv.
Campo Deliver Mode: En este campo tenemos que considerar 3 opciones. Send Now,Send Later y Send as a draft.
La opción Send Now nos permite enviar de forma inmediata un correo cada x segundos seleccionando porqué número de cliente de la base de datos queremos empezar y porqué número queremos terminar.
La opción Send Later: Cada x segundos guarda uno de los email que queremos enviar en la bandeja de salida de nuestro mail. Una vez que la bandeja de salida contenga todos los emails, y una vez hayamos comprobado que los mails se visualizan correctamente, nos tenemos que ir al menú Archivo y una vez dentro del menú tenemos que seleccionar la opción Procesar mensajes no enviados. Una vez seleccionada la opción se enviaran la totalidad de correos a sus destinatarios.
La opción Send as a Draft: Permite programar envíos a un ahora determinada y con una periodicidad determinada. Una vez enviado el correo los mensajes quedarán en la carpeta borradores esperando que llegue la hora del envío que hemos determinado.
Campo Format: En este campo podemos elegir entre las opciones Plain Text, HTML o Both. Si elegimos la opción Plain text nuestros emails se enviaran en texto plano y por lo tanto no se podrán mostrar las imágenes incrustadas o lincadas en él. Si elegimos el modo HTML, el mail se enviará en formato HTML y entonces el personal que reciba el email si que podrá ver las imágenes incrustados y el resto de código html.
Campo Attachment: En un envío de mails masivo, o mailing, no es muy aconsejable incluir archivos adjuntos, ya que lo que nos interesa son mails ligeros para no saturar el servidor y para que no nos consideren spammers. No obstante en este campo si queremos podemos añadir la dirección del archivo que queremos adjuntar en el mail. De este modo todos los mails enviados contendrán un archivo adjunto. Si esta forma no nos gusta podemos añadir el archivo que queremos enviar directamente en la plantilla que hemos preparado.
Campo File: En este campo tenemos que clicar la opción Browse. Al clicar aparecerá el navegador de archivos. En el navegador de archivos deberemos indicar la ruta de nuestro fichero .csv.
Campo Character set: Como la base de datos / fichero csv, lo codificamos en formatoUnicoide (UTF-8) en este campo también deberemos indicar que la codificación es del tipo UTF-8. Si la base de datos la codificamos en formato Windows-1252, en este apartado deberemos seleccionar la opción Windows-1252.
Campo Field Delimeter: En el fichero .csv definimos que el campo delimitador era una coma (,). Por lo tanto en esta campo deberemos seleccionar , como campo delimitador.
Campo Text Delimeter: En el fichero .csv definimos que el texto delimitador eran dos comillas (). Por lo tanto en esta campo deberemos seleccionar  como texto delimitador.
Campo Start: En este campo tenemos que indicar el número de fila de nuestra base de datos por la que queremos que nuestro cliente de correo electrónico empiece a enviar los mails.
Campo Stop: En este campo tenemos que indicar el número de fila de nuestra base de datos por la que queremos que nuestro cliente de correo electrónico termine de enviar los mails.
Campo Pause: En este campo tenemos que indicar cada cuantos segundos queremos que se envíe un email. Este campo es útil ya que si enviamos muchos mails en un periodo de tiempo corte, es posible que nuestra cuenta de correo pueda ser considerada spam.
Campo At (solo activo cuando seleccionamos la opción Send as a Draft): En este campo podemos indicar la hora y el día en que queremos que se envíe el mailing.
Campo Recur (solo activo cuando seleccionamos la opción Send as a Draft): En este campo podemos seleccionar las opciones DailyWeeklyMonthly e Yearly. De este modo podemos indicar la periodicidad con que queremos que se repita el envío del mailing.
Campo Every (solo activo cuando seleccionamos la opción Send as a Draft): En este campo tenemos que indicar cada cuantos días, semanas, meses o años queremos que se repita el mailing.
Una vez vistas la totalidad de opciones de forma teórica, ha llegado el momento de ver unos ejemplos prácticos para ver que es mucho más fácil de lo que parece.

Ejemplo de envío con el modo Send Now

mailing con la opción send now
Si seleccionamos las opciones que se muestran en la captura de pantalla, en el momento que presionemos el botón Aceptar se enviarán 10 mails. Los emails se enviarán cada 30 segundos, y los usuarios a los que se enviará el mail serán aquellos que están entre la posición 10 y 20 de nuestra base de datos.

Ejemplo de envío con el modo Send Later

Ejemplo de envío con la opción Send Later
Si seleccionamos las opciones que se muestran en la captura de pantalla, en el momento que presionemos el botón Aceptar cada 120 segundos aparecerá un mail nuevo en la bandeja de salida listo para salir.
Una vez tengamos la bandeja de salida llena con los 20 emails que queremos enviar a los 20 primeros usuarios de nuestra base de datos, tal y como se puede ver en la captura de pantalla, deberemos acceder al menú Archivo y a posteriori clicar en la opciónProcesar mensajes no enviados.
Procesar el envío con el modo Send Later
Una vez seleccionada esta opción se enviarán la totalidad de mails a sus destinatarios.
Nota: Esta opción resulta útil para asegurarnos que el mail preparado se puede visualizar de forma correcta por parte de los destinatarios, ya que permite visualizar el mail que enviaremos antes de enviarlo.

Ejemplo de envío con el modo Send as a Draft

Programar el envío del mailing
Si seleccionamos las opciones que se muestran en la captura de pantalla, en el momento que presionemos el botón Aceptar cada 30 segundos aparecerá un mail nuevo en la carpeta borradores de nuestro correo electrónico.
Una vez tengamos la carpeta borradores llena con los 20 emails que queremos enviar a los 20 primeros usuarios de nuestra base de datos, tan solo tenemos que esperar hasta que lleguen las 15:40 horas del día 15/04/2015. En el momento que sean las 15:40 horas de la tarde del mencionado día, los 20 primeros usuarios de nuestra base de datos recibirán un mail.

Ejemplo de envío con el modo Send as a Draft indicando una periodicidad de envío

Programar periodicidad de envío de un mailing
Si seleccionamos las opciones que se muestran en la captura de pantalla, en el momento que presionemos el botón Aceptar cada 30 segundos aparecerá un mail nuevo en la carpeta borradores de nuestro correo electrónico.
Una vez tengamos la carpeta borradores llena con los 20 emails que queremos enviar a los 20 primeros usuarios de nuestra base de datos, tan solo tenemos que esperar hasta que lleguen las 15:40 horas del día 15/04/2015. En el momento que sean las 15:40 horas de la tarde del mencionado día, los 20 primeros usuarios de nuestra base de datos recibirán un mail. Además cada 2 semanas a partir de la fecha 15/04/2015 a las 15:40 se repetirá el envío de mails a los 20 primeros usuarios de nuestra base de datos.

RESULTADO OBTENIDO

Una vez enviados los correos tan solo falta comprobar que están recibiendo los los receptores del mail. Así por lo tanto supongamos uno de los clientes recibe el mail. Justo en el momento de abrirlo verá el siguiente contenido:
Resultado del mailing
Por lo tanto podemos estar tranquilos porqué el mailing ha sido completamente satisfactorio.

PRECAUCIONES QUE HAY QUE TENER

Las precauciones que debemos tener usando el sistema detallado en este artículo son obvias y son las siguientes:
  1. No es aconsejable realizar un envío masivo de correos electrónicos usando cuentas gratuitas de gmail, yahoo, hotmail, etc. Las cuentas gratuitas poseen limitaciones, y una de estas limitaciones es el número de mails que se pueden enviar por día. Si superamos los límites establecidos de nuestra cuenta de correo se bloqueará. A modo de ejemplo, las limitaciones de las cuentas de correo de gmail son las podéis consultar en el siguiente enlace. En el caso de querer realizar los mailing uno mismo lo mejor es contratar un servicio de smtp dedicado.
  2. La linea que separa el envío masivo de emails y el spam es fina. Por lo tanto convieneno abusar del envío de mailings y hacer el envío de forma progresiva. Nuestro servidor lo agradecerá y además el peligro que nuestra cuenta de correo sea considerada spammer será mucho menor.
  3. En el caso de realizar un mailing comercial, o envío de correos de correos masivos,hay que informar debidamente a los destinatarios del mail, aunque sea en letra pequeña. Además al usuario hay que darle herramientas para que en caso que lo desee pueda solicitar no recibir más correos de forma masiva.
  4. Cada mailing que se haga hay que analizar y ver los correos que han llegado a su destinatario y cuales no. De esta forma podremos detectar que direcciones de nuestra base de datos son incorrectas. Las direcciones incorrectas hay que borrarlas de nuestra base de datos ya que si enviamos muchos mails a direcciones inexistentes corremos el peligro que nuestra cuenta de correo sea detectada como Spam.
  5. Los correos que se envíen deben contener una cantidad importante de texto y hay que evitar poner archivos adjuntos e incrustar imágenes. Si la relación entre texto/imagen es baja es posible que nuestro correo electrónico sea considerado spam.
Fuente: http://geekland.eu/

Montar un sistema de archivos remoto con SSHFS

A raíz de la propuesta de uno de los lectores del blog, en este post veremos los pasos a seguir para montar un sistema de archivos remoto usando SSHFS.

¿QUÉ ES LO QUE PRETENDEMOS CONSEGUIR?

Lo que pretendemos hacer en este tutorial es acceder y editar archivos de un equipo remoto como si los tuviéramos en nuestro propio ordenador. Por lo tanto el objetivo es trabajar con archivos que no están en nuestro ordenador como si estuviesen físicamente en nuestro ordenador.
El objetivo planteado lo conseguiremos usando SSHFS. Con SSHFS montaremos un volumen adicional en nuestro ordenador que contendrá la información que queramos del equipo remoto. Este volumen adicional que montaremos actuará de la misma forma que si tuviéramos un pendrive o un disco duro adicional conectado en nuestro ordenador.
Nota: Lo que que pretendemos conseguir también lo podríamos conseguir instalando y configurando un servidor NFS. No obstante en este tutorial usaremos SSHFS.

¿QUÉ ES SSHFS?

SSHFS (Secure Shell FileSystem) es la herramienta que nos permite montar sistemas de archivos remotos en nuestro ordenador. Además nos posibilita interactuar con los ficheros remotos usando el protocolo SFTP.
Mediante el protocolo SFTP podremos acceder, transferir y modificar los archivos remotos de forma segura, porque el protocolo SFTP usa SSH para la autenticación y transmisión de datos entre el equipo local y el equipo remoto.

USOS QUE PODEMOS DAR AL SISTEMA DE ARCHIVOS REMOTO SSHFS

El uso principal que podemos dar a SSHFS es tener disponibles nuestros datos remotos de forma segura y amigable en todo momento. Por lo tanto usos posibles que le podemos dar son los siguientes:
  1. Nube personal para almacenar información de forma segura.
  2. Tener acceso a la información de los ordenadores que forman parte de nuestra red local.
  3. Poder interactuar y tener información compartida con las máquinas virtuales que tenemos montadas en nuestro ordenador.
  4. Tener acceso permanente al contenido de un servidor web.
  5. Compartir una misma carpeta en varios ordenadores distintos.
  6. Método para realizar copias de seguridad de ficheros y archivos remotos.
  7. Etc.

REQUISITOS PREVIOS A MONTAR EL SISTEMA DE ARCHIVOS REMOTO CON SSHFS

Antes de proceder a montar el sistema de archivos remotos con SSHFS tenemos que cumplir con los siguientes requisitos:

Equipamiento necesario

Como mínimo precisamos de 2 ordenadores con un sistema sistema operativo GNU-Linux.
El primero de los ordenadores actuará como cliente. En mi caso este equipo tiene instalado el sistema operativo Lubuntu y tiene la IP 192.168.1.12.
El segundo de los equipos actuará como servidor. En mi caso este equipo tiene instalado el sistema operativo Debian y tiene la IP 192.168.1.14.
Nota: Para averiguar la ip interna, tan solo hay que abrir una terminal y ejecutar el comando ifconfig. Para averiguar la IP Publica pueden clicar encima del siguiente enlace.
Nota: También es posible implementar este tipo de solución en Mac OS y en Windows, pero obviamente el procedimiento es diferente.

Instalar los paquetes necesarios

Los 2 ordenadores que usaremos tienen que tener instalados los paquetes openssh-server y openssh-client. Para instalar estos paquetes hay que abrir una terminal y ejecutar el siguiente comando tanto en el servidor como en el cliente:
sudo apt-get install openssh-server openssh-client
En el ordenador que actúa como cliente tenemos que asegurarnos que los paquetes paquetes sshfs y fuse están instalados. Para ello ejecutamos el siguiente comando en la terminal:
sudo apt-get install sshfs fuse

Activar el módulo Fuse en ordenador que actúa como cliente

Para que el sistema de archivos remoto se pueda montar hay que hacer uso de un módulo del Kernel conocido como FUSE. Para ver si este módulo está activado tenemos queteclear el siguiente comando en la terminal:
lsmod | grep fuse
Si el comando nos da un resultado del tipo “fuse 86016 3” podemos tener la seguridad que el módulo FUSE está activado y podemos pasar al siguiente apartado.
Si por lo contrario el comando no devuelve ningún resultado pueden pasar 2 cosas. La primera es que el módulo esté desactivado. La segunda es que el módulo FUSE se haya compilado directamente en el Kernel y por lo tanto no haga falta cargar ningún módulo.
Para comprobar si el módulo FUSE se ha compilado directamente en el Kernel ejecutamos el siguiente comando en la terminal:
grep -i fuse /lib/modules/$(uname -r)/modules.builtin
Si el comando nos devuelve un resultado similar del tipo “kernel/fs/fuse/fuse.ko” podemos tener la seguridad que FUSE está activo y por lo tanto podemos pasar al siguiente apartado.
Finalmente en el caso que el comando no devuelva ningún resultado significará que el módulo no está cargado en el kernel. Para cargarlo tan solo hay que ejecutar el siguiente comando en la terminal:
modprobe fuse

Asegurar que nuestro usuario forme parte del grupo FUSE

Una vez activado el módulo Fuse, en el ordenador que actúa como cliente tenemos que comprobar que nuestro usuario forme parte del grupo fuse. Para ello instalamos el paquete members ejecutando el siguiente comando en la terminal:
sudo apt-get install members
Justo después de instalar el paquete ejecutamos el siguiente comando en la terminal:
members fuse
Si la salida del comando no muestra el nombre de nuestro usuario, que en mi caso es joan, entonces es que nuestro usuario no pertenece al grupo fuse. Si es este el caso, para que nuestro usuario pertenezca al grupo fuse hay que ejecutar el siguiente comando en la terminal:
sudo gpasswd -a joan fuse
Una vez ejecutado el comando el usuario joan se habrá añadido dentro del grupo fuse. Si queremos lo podemos comprobar ejecutando de nuevo el siguiente comando en la terminal:
members fuse
Nota: Una vez hecha la comprobación se puede desinstalar el paquete members.

Crear la carpeta donde se montará el sistema de archivos SSHFS

Seguidamente en el ordenador que actúa como cliente crearemos la carpeta en la que montaremos el sistema de archivos remoto SSHFS. Para ello ejecutamos el siguiente comando en la terminal:
mkdir /home/joan/desktop
Por lo tanto en mi caso montaré el sistema de archivos remotos en una carpeta llamada desktop que está ubicada en mi partición home.
Una vez realizados los pasos previos ya podemos pasar a la acción montando el sistema de archivos remoto en nuestro ordenador.

MONTAR EL SISTEMA DE ARCHIVOS REMOTO SSHFS MANUALMENTE

Primeramente montaremos el sistema de archivos de forma manual para comprobar si todo está funcionando correctamente. Para ello en el ordenador que actuará como cliente ejecutaremos el siguiente comando el la terminal:
sshfs joan@192.168.1.14:/home/joan /home/joan/desktop
El significado de cada uno de los parámetros que aparecen en el comando es el siguiente:
sshfs : Es el comando que tenemos que ejecutar para montar sistema de archivos SSHFS.
joan@192.168.1.14 : Es la dirección ip servidor. El usuario del servidor es joan y la ip del servidor es 192.168.1.14. Como podréis observar la ip del servidor es la interna. En caso de tener necesidad de acceder al servidor de archivos fuera de la red local, deberemos sustituir la ip interna por la ip pública o por un dominio de redireccionamiento DNS.
:/home/joan : Es la dirección de la carpeta que queremos montar en nuestro equipo cliente. Por lo tanto una vez montado el sistema de archivos en nuestro equipo cliente, tendremos acceso al contenido del servidor ubicado en la partición home (/home/joan)
/home/joan/desktop : Es la ruta del cliente en la que queremos montar el sistema de archivos remoto SSHFS.
Después de ejecutar el comando tan solo hay que abrir el gestor de archivos y comprobar que aparezca un nuevo volumen llamado desktop. Tal y como se puede ver en la captura de pantalla, si clicamos encima del volumen desktop tendremos acceso a la totalidad de contenido de la partición home del equipo remoto que actúa como servidor.
Sistema de archivos remoto montado con SSHFS
Nota: Obviamente los comandos de este apartado hay que adaptarlos en función de las características de vuestra red.

Desmontar el volumen

Si queremos desmontar el volumen que acabamos de montar, tan solo tenemos que abrir la terminal y ejecutar el siguiente comando:
fusermount -u /home/joan/desktop
Después de ejecutar el comando, el volumen SSHFS se desmontará y dejaremos de tener acceso a los ficheros del equipo remoto.

MONTAR EL SISTEMA DE ARCHIVOS REMOTO SSHFS AUTOMÁTICAMENTE

Acabamos de comprobar que el sistema de archivos SSHFS se puede montar de forma manual sin ningún tipo de problema. Por lo tanto ahora ya podemos automatizar el proceso de montaje de la siguiente forma:

Crear un par de claves asimétricas

Vamos a generar un par de claves asimétricas para poder montar nuestro sistema de archivos remoto SSHFS sin necesidad de introducir ninguna contraseña.
Para ello en el ordenador que actuará como cliente, tenemos que abrir una terminal y teclear el siguiente comando:
ssh-keygen -b 4096 -t rsa -C "$(whoami)@$(hostname)-$(date -I)"
El significado de cada unos de los parámetros del comando es el siguientes:
ssh-keygen : Es el comando que genera el par de claves.
-b 4096 : Estamos indicando que la clave asimétrica que se generará tenga un tamaño de 4096 bits. Otros tamaños que podemos elegir por ejemplo son 1024 o 2048.
-t rsa : Indica que el algoritmo usado para generar el par de claves tiene que ser el rsa. Otros algoritmos que podemos usar son el dsa, ecdsa, rsa1 y ed25519.
-C “$(whoami)@$(hostname)-$(date -I)”: Esta parte del comando es simplemente para insertar un comentario identificativo en nuestra clave. Quien lea el contenido de nuestra clave verá que la clave fue creado por el usuario joan, cono el equipo Lubuntu el día 25-08-2015.
Justo después de ejecutar el comando, se nos preguntará la ubicación donde queremos guardar las claves y el nombre que les queremos poner. Cuando nos haga esta preguntapresionaremos la tecla Enter. De este modo las claves que generaremos se guardarán en la ubicación estándar que es la /home/usuario/.ssh/, y tendrán el nombre estándar que es id_rsa.
Seguidamente se nos preguntará si queremos introducir una contraseña para cifrar nuestra clave privada. Como queremos conectarnos al servidor sin necesidad de introducir ninguna contraseña, presionamos la tecla Enter sin introducir ninguna contraseña.
Finalmente se nos pregunta que volvamos a introducir la contraseña que acabamos de introducir. Como anteriormente no introducimos ninguna contraseña volvemos apresionar la tecla Enter.
Nota: Al no introducir un password, la clave privada se guarda en nuestro disco duro sin cifrar. Esto es un riesgo de seguridad que correremos. Si alguien robase nuestro ordenador podría acceder sin problemas al contenido remoto de nuestro servidor. Para protegernos de este peligro podemos cifrar el disco duro de nuestro ordenador o poner una contraseña a nuestra clave y usar ssh-agent.
Después de realizar estos pasos se crearan las claves asimétricas en la ubicación ~/.ssh. En la siguiente captura de pantalla se puede ver un resumen de todos los pasos realizados.
Generar un par de claves

Crear el fichero donde se guardaran las claves públicas autorizadas (acción en el servidor)

En el ordenador que actúa como servidor de ficheros vamos a crear un archivo donde se van a guardar las claves públicas que nuestro servidor aceptará. Para ello ejecutamos el siguiente comando en la terminal:
touch ~/.ssh/authorized_keys
Una vez tecleado el comando se creará el archivo authorized_keys en la ubicación ~/.ssh.

Copiar la clave pública del cliente al servidor

En el ordenador que actuará como cliente abrimos una terminal. Una vez abierta la terminal exportaremos la clave pública al servidor ejecutando el siguiente comando:
scp ~/.ssh/id_rsa.pub joan@192.168.1.14:~/.ssh
El significado de cada unos de los parámetros del comando es el siguiente:
scp : Es el comando que sirve para copiar archivos de forma cifrada entre un sistema local y un servidor remoto.
~/.ssh/id_rsa.pub : Es la ruta de la clave pública que queremos exportar al servidor.
joan@192.168.1.14:~/.ssh : Es la dirección del servidor donde queremos copiar la clave pública. El usuario del servidor es joan, la ip del servidor es 192.168.1.14 y queremos que la clave pública se guarde en la ubicación home/.ssh. En el caso que el servidor remoto al que queremos copiar la clave esté fuera de nuestra red local, deberemos reemplazar la ip 192.168.1.14 por la ip pública del servidor o por un dominio de redireccionamiento DNS
Nota: Obviamente los comandos de este apartado hay que adaptarlos en función de las características de vuestra red.
Una vez se haya ejecutado el comando se nos preguntará la contraseña del servidor SSH al que queremos copiar la clave pública. Introducimos la contraseña y justo después de introducirla, la clave pública del cliente se copiara la ubicación home ~/.sshdel servidor SSH. Seguidamente se muestra una captura de pantalla de los pasos realizados en este apartado:
Copiar clave pública al servidor

Autorizar la clave pública del cliente en el servidor (acción en el servidor)

Una vez tenemos la clave pública del cliente en el servidor tan solo nos queda introducir la clave pública del cliente a la lista de claves autorizadas del servidor authorized_keys. Para ello ejecutamos el siguiente comando en la terminal del servidor:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
El significado de cada unos de los parámetros del comando es el siguiente:
cat : Comando que usamos para añadir la clave pública dentro del fichero authorized_keys.
~/.ssh/id_rsa.pub : Es la ruta y el nombre de la clave pública que queremos autorizar.
>> ~/.ssh/authorized_keys : Es la ruta del archivo que almacenará las claves públicas autorizadas. La parte del comando >> es importante ya que es la parte posibilita que se añada la clave pública al fichero authorized_keys.
Una vez ejecutado el comando la clave pública se copiará en el fichero de claves autorizadas. Para comprobar que es que así podemos ejecutar el siguiente comando:
cat ~/.ssh/authorized_keys
Si después de ejecutar el comando nos aparece una clave en pantalla el proceso ha sido un éxito. Ahora ya podemos montar nuestro sistema de archivos remoto SSHFS sin necesidad de introducir ninguna contraseña. En la siguiente captura de pantalla se muestran los pasos que se han seguido para autorizar la clave pública:
Clave pública autorizada

Configurar fstab para que el sistema de archivos remoto SSHFS se monte de forma automática

Si queremos que nuestro sistema de archivos remoto SSHFS se monte de forma automática al arrancar nuestro ordenador tenemos que configurar debidamente el archivo fstab. Para ello ejecutamos el siguiente comando en la terminal del ordenador que actuará como cliente:
sudo nano /etc/fstab
Una vez abierto el fichero fstab, tenemos que introducir la siguiente línea al final del archivo:
joan@192.168.1.14:/home/joan /home/joan/desktop fuse.sshfs defaults,idmap=user,_netdev,users,IdentityFile=/home/joan/.ssh/id_rsa,allow_other,reconnect 0 0
La línea que acabamos de introducir para montar el sistema de archivos me ha funcionado tanto en distros que usan systemd como en distros que usan SysVinit. En el caso que este comando os de problemas y estéis usando una distro que use Systemd, deberéis reemplazar la linea anterior por la siguiente:
joan@192.168.1.14:/home/joan /home/joan/desktop fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/joan/.ssh/id_rsa,allow_other,reconnect 0 0
El significado de cada uno de los parámetros introducido en el comando son los siguientes:
joan@192.168.1.14 : Es la dirección del servidor donde está ubicado el sistema de archivos que queremos montar en nuestro equipo. El usuario del servidor es joan, la ip del servidor es 192.168.1.14. Como podréis observar la ip del servidor es la ip interna. En caso de tener necesidad de acceder al servidor de archivos fuera de nuestra red local, deberemos sustituir la ip interna por la ip pública o por un dominio de redireccionamiento DNS.
/home/joan : Es la ruta del servidor que queremos montar en el cliente.
/home/joan/desktop : Es la ruta del cliente donde queremos montar el sistema de archivos remoto SSHFS.
fuse.sshfs : Estamos indicando el tipo de sistema de archivos que queremos montar.
defaults : Esta parte asigna las opciones de montaje estándar al sistema de archivos sshfs que vamos a montar. Las opciones por defecto son rw, suid, dev, exec, auto, nouser, y async.
idmap=user: Está opción hace que el propietario de los ficheros remotos sea nuestro usuario. Si no usamos esta opción es posible que nuestro ordenador piense que el propietario de los archivos remotos sea otro.
_netdev : Con este comando indicamos que para montar el sistema de archivos se requiere una interfaz de red levantada.
users : Para permitir que la totalidad de usuarios puedan montar y desmontar el sistema de archivos remotos SSHFS.
IdentityFile=/home/joan/.ssh/id_rsa : Se indica la ruta de la clave privada. De esta forma podremos montar el sistema de archivos sin usar contraseña.
allow_other : Para dar acceso a otros usuarios diferentes al usuario root a la carpeta que vamos a montar.
reconnect : En el caso que el sistema de archivos se caiga por cualquier motivo, se reconectará de forma automática sin tener que hacer nada.
0 0 : Introduciendo el primer cero estamos diciendo que no queremos respaldar el sistema de archivos SSHFS que vamos a montar. Introduciendo el segundo cero lo que hacemos es indicar que no queremos que la utilidad fsck compruebe el sistema de ficheros.
Una vez realizadas las modificaciones guardamos los cambios y cerramos el fichero.
Nota: Si alguno de los parámetros en el fichero fstab es introducido de forma errónea es posible que el ordenador no arranque. Por lo tanto recomiendo tener un LiveUSB a mano y realizar una copia de seguridad del archivo /etc/fstab para poder actuar de forma fácil en caso de tener problemas.

Modificar la configuración de fuse

En el apartado anterior habréis observado que una de las opciones de montaje esallow_other. Para que esta opción sea válida tenemos que modificar la configuración de fuse. Para ello abrimos una terminal y tecleamos el siguiente comando:
sudo nano /etc/fuse.conf
Una vez se abra el editor de textos nano con la configuración de fuse, tenemos quelocalizar la siguiente línea:
#user_allow_other
Una vez localizada la descomentamos de forma que quede de la siguiente forma:
user_allow_other
Una vez realizadas las modificaciones guardamos los cambios y cerramos el fichero.

Comprobación de los pasos realizados

A estas alturas el proceso ha finalizado. Para comprobar que las configuraciones aplicadas funcionan de forma correcta abrimos una terminal y ejecutamos el siguiente comando:
mount ~/desktop
El significado del comando que acabamos de ejecutar es el siguiente:
mount: Comando para indicar que se monte el sistema de ficheros.
~/desktop: La ubicación donde se tiene que montar el sistema de ficheros.
Si el sistema de archivos remoto se monta sin problemas entonces la configuración y todos los pasos realizados hasta el momento son correctos. En caso de tener problemas habrá que volver a repasar todos los pasos que se han realizado.

Montar el sistema de archivos SSHFS en el arranque del sistema

En estos momentos ya estamos en condiciones de reiniciar el ordenador. Al reiniciar el ordenador el sistema de archivos remoto SSHFS se montará de forma automática. Una vez arrancado el ordenador, tal y como se puede ver en la captura de pantalla, tan solo tenemos que abrir el gestor de archivos y veremos que existirá un volumen nuevo llamado desktop que contiene los ficheros de nuestro equipo remoto.
Sistema de archivos remoto montado con SSHFS
Ahora tan solo tenemos clicar encima del volumen desktop, y tal como se puede ver en la captura de pantalla, podremos navegar y hacer absolutamente lo que queramos en el sistema de archivos remoto.
Usar el sistema de archivos remotos SSHFS

Desmontar el sistema de archivos SSHFS

Sí queremos desmontar el sistema de archivos ahora tenemos 2 opciones. Podemos desmontarlo vía terminal, tal y como hicimos en el caso anterior, o podemos hacerlo mediante el explorador de archivos.
Si lo queremos hacer con el explorador de archivos, tal y como se puede ver en la captura de pantalla, seleccionamos el volumen que acabamos de montar, presionamos el botón derecho del ratón y finalmente clicamos encima de la opción Desmontar Volumen.
Desmontar sistema de archivos remoto SSHFS

PUNTOS ADICIONALES A TENER EN CUENTA

Los puntos adicionales para poder montar y optimizar el rendimiento de nuestro sistema de archivos remoto son los siguientes:
  1. La configuración de nuestro firewall tiene que ser la adecuada correcta. En caso contrario no podremos copiar las claves ni montar el sistema de archivos remoto.
  2. En el caso que nuestro sistema de archivos remoto se halle fuera de nuestra red local, tenemos que configurar el router de la red que tiene el sistema de archivos remoto para que redireccione las peticiones de los clientes al ordenador que actúa como servidor.
  3. Este tutorial no contiene ningún consejo para fortificar la seguridad de nuestro sistema de archivos remoto. En el caso de tener necesidad de asegurar el servidor tendrán que buscar en google como fortificar un servidor SSH.
  4. Un usuario cualquiera podría llegar a montar una partición del servidor a la que no queremos que tenga acceso. Para ello lo que podríamos realizar es enjaular al usuario joan. Para enjaular a un usuario pueden aplicar el método que se muestra en el siguiente enlace.


Fuente: http://geekland.eu/