Usando rsync y cron para automatizar respaldos incrementales

La pérdida de datos en una seria preocupación para individuos y compañías que se confían en el uso de computadoras para su vida u operaciones diarias. Aquellos que tienen un sistema basado en Unix cuentan con poderosas herramientas para prevenir esto, como lo es rsync para respaldar la información y cron para hacer el proceso de respaldo automático. En publicaciones previas escribí sobre lo básico de rsync y su uso como un servicio, así como lo básico de cron. En esta publicación el enfoque está en la funcionalidad de rsync para respaldos y su uso conjunto con cron para automatizar el proceso de respaldo.

Como crear un túnel reverso de SSH

A veces que necesitamos conectarnos vía SSH a otra computadora, nos encontramos con que esta computadora a la que deseamos conectarnos vía SSH (llamaremos a esta computadora "destino") se encuentra utilizando NAT y por lo tanto no cuenta con una dirección de IP pública que podamos usar para conectarnos a ella, o bien se encuentra tras un muro de fuego que no permite el acceso desde fuera.

Si "Destino" puede establecer una conexión SSH a otra computadora que es accesible, podemos utilizar esta segunda computadora para establecer un tunel de SSH en reversa a nuestra computadora "Destino", llamaremos a esta segunda computadora "Origen" (aún si no es realmente la computadora que vamos a usar para manejar a "Destino" remotamente, sino solo un puente).

Definiendo servidores de SSH

Si necesitamos conectarnos seguido al mismo o los mismos servidores de SSH, en vez de escribir todo el comando de conexión cada vez que lo hacemos, ya que una cadena de conexión puede ser algo así:

ssh -p 34567 usuario@subdominio.dominio.tld

Podemos crear un archivo de configuración de SSH que nos permita definir los parámetros con los que nos conectamos al servidor, y así podemos establecer conexiones simplemente escribiendo el nombre que le asignamos al servidor.

Conexión SSH sin contraseña usando firmas digitales

Cuando nos conectamos por medio de SSH a un servidor, una manera de autenticarnos con el que no requiere que introduzcamos una contraseña es el uso de firmas digitales. Lo que hacemos en este caso es generar un par de llaves (una llave pública y una llave privada), y agregar nuestra llave pública a la lista de llaves autorizadas en el servidor al que queremos poder conectarnos.