miércoles, mayo 19, 2010

Programación de copias seguras entre servidores UNIX, Linux

Bueno, el título lo dice todo.

Tenemos nuestra red con varios servidores y queremos programar la copia de ficheros de configuración, exports de bases de datos, etc. pero con dos características:


1.-Queremos que la copia sea segura. O sea, que vaya cifrada entre los servidores.

2.-Tenemos que salvar el problema de la petición de password. Quiero decir que como va a ser algo programado no va a haber nadie para meter la password que requiere un comando online como sftp (sequre ftp) o scp (sequre copy).

Esto es tremendamente sencillo, pero hay que tener clara una cosa:

1.-Llamaré máquina A al que ejecuta el sftp, scp, ssh, etc.

2.-La máquina B será la que requiere la password.

No voy a usar los términos cliente y servidor porque inducen a error.

Como se hace

En la máquina A hay que generar el par de claves pública y privada para RSA. Esto puede tardar unos minutillos.

$ ssh-keygen -b 4096 -t rsa



Nos fijamos en la clave pública porque es la que tenemos que llevar a la máquina B.

/home/aitor/.ssh/id_rsa.pub

En la máquina B dejamos esa clave pública en /home/aitor/.ssh/id_rsa.pub

Si no existe el fichero llamado authorized-keys entonces renombramos esa clave pública como authorized_keys y arreglado:

mv id_rsa.pub authorized_keys

Si authorized-keys existe entonces le agregamos la nueva clave pública:

cat id_rsa.pub >> authorized_keys

De esta forma ya podemos ejecutar los siguientes comandos sin necesidad de introducir la password porque hay plena confianza entre los servidores. Cuidado con esto por si la situación cambia en el futuro.

Para mover un fichero del servidor A al servidor B:

scp fichero servidorB:/prueba/fichero-movido

o si cambia el usuario:

scp fichero pedro@servidorB:/prueba/fichero-movido

Del servidor B al servidor A:

scp servidorB:/fichero /prueba/fichero-movido

El comando lo ejecuta siempre el servidor A. Si hace falta que lo ejecute el servidor B tendríamos que generar las claves en la máquina B y mover la clave pública a la máquina A.

Saludos.

No hay comentarios: