Rsync sobre SSH y seguridad de clave sin contraseña

0

Necesito enviar archivos de un grupo de servidores a un servidor remoto. Mi plan era usar rsync a través de SSH, ya que cumple con mi requisito de una conexión segura y la capacidad de eliminar de la fuente después de una transferencia exitosa. También puedo restringir el firewall para permitir solo IP en las que confío en el puerto 22.

Si configuro un trabajo cron para transferir estos archivos usando rsync a través de SSH, supongo que necesitaría configurar claves SSH para comunicarme. Sin embargo, ¿cuál es el riesgo de seguridad de almacenar claves públicas en un montón de servidores? ¿Es mejor crear claves individuales por servidor? Esta cuenta solo se usará para transferir archivos.

Edición para expandir en mi red.

Tengo varios servidores alojados por una empresa de alojamiento de terceros que tienen IP públicas. Mi red doméstica tiene una IP estática y los servidores se encuentran detrás de un enrutador NAT. Así que no estoy seguro de cómo puedo extraer datos en el servidor central de los dispositivos detrás de NAT.

Podría crear un servidor central detrás de NAT que recopile todo y abra un puerto hacia adelante. Con un cortafuegos que restringe el puerto 22 y la IP estática del servidor de la base de datos, supongo que manejaría cualquier posible violación de seguridad.

linmod77x
fuente
1
Si puedes hacer lo contrario. ¡Pon todas las llaves en el cental y defiéndelo! Es más fácil mantener actualizado un servidor que un montón de clientes. :)
Hastur
Estaba pensando esto también, ya que funcionaría para todos los servidores con una IP pública. Sin embargo, no estoy seguro de cómo funcionaría dentro de la LAN en mi casa con una IP estática.
linmod77x
1
Existe un riesgo insignificante al almacenar claves públicas en un montón de servidores. Son públicos y no necesitan mantenerse en secreto. Los riesgos están en el almacenamiento de claves privadas en servidores o en el uso de claves públicas para otorgar acceso a los servidores.
Mike Scott
Agregue la descripción precisa de su red. ¿Está el servidor central fuera de su red y todos los clientes con IP privada detrás de un firewall? ¿Hay una manera de acceder al cliente único desde el servidor (incluso a través de noip)?
Hastur
Modifiqué mi pregunta para explicar mi red Hastur.
linmod77x

Respuestas:

1
  1. Haz lo contrario si puedes.
  2. Realice un script en el servidor central con todas las acciones de rsync y ejecútelo desde ese servidor .
  3. Mantendrá todas las claves de acceso en él. Puede configurar todos los clientes / bin / nologin como un shell para disminuir los riesgos nuevamente.
  4. Si uno de los clientes se cae, todos los demás continuarán trabajando.
Hastur
fuente
1

Agregaré que cuando use rsync sobre ssh, siempre es una buena idea restringir qué comando se puede ejecutar con una clave correspondiente: incluso si la clave privada se roba en el servidor central, solo este comando se puede ejecutar en el grupo de otros servidores .

Puede hacer esto con la opción "comando = script_personalizado" en el archivo "claves_autorizadas".

Simplemente use el script "rrsync" como el "comando de restricción" que hace un trabajo perfecto. (/usr/share/doc/rsync/scripts/rrsync.gz en distribuciones similares a debian)

Más detalles aquí:

http://www.guyrutenberg.com/2014/01/14/restricting-ssh-access-to-rsync/

https://www.v13.gr/blog/?p=216

sligor
fuente