Antes de comenzar en mi trabajo actual (en una pequeña empresa), mi oficina no tenía firewall en la red y, literalmente, nunca se hizo una copia de seguridad. Ahora que me he registrado como un departamento dedicado de sysadmin / one-man-IT, he estado haciendo todo lo posible para cambiar esto. Después de explicarle a mi jefe cuán vulnerables éramos, me permitió configurar algunos servidores de respaldo, uno de los cuales está en su casa.
En este momento, estoy tratando de configurar todo para poder automatizar las copias de seguridad diarias. Estoy planeando usar rsync a través de ssh para hacer esto. Por razones de seguridad y para facilitar la automatización, estaba planeando deshabilitar el inicio de sesión de contraseña ssh y solo usar la validación de clave rsa. Bueno, si tengo un conjunto de frases de contraseña rsa, todavía tendría que ingresar una contraseña, y eso es un problema.
¿No tener una contraseña rsa hace que las cosas sean significativamente menos seguras? Soy la única persona en la compañía que tiene algún tipo de pista sobre este tipo de cosas, por lo que no me preocupa demasiado que alguien llame a una terminal en mi máquina (que siempre está bloqueada cuando estoy AFK, de todos modos ) y enviarse a uno de los servidores de respaldo y causar daños. Todavía soy muy, muy nuevo en el mundo de la administración de sistemas, y esta es la primera vez que hago algo así, y no quiero dejar ningún hueco en la configuración de seguridad.
Las computadoras en cuestión aquí ejecutan Ubuntu 10.10, SME Server y OSX 10.6, si eso de alguna manera hace alguna diferencia.
Respuestas:
Como sabes, la ventaja que te brinda la frase de contraseña es que si alguien puede leer tu clave privada, no puede usarla.
Si alguien puede acceder a esa clave privada, debe dar por sentado que tiene acceso (ed) / comprometido a cualquier máquina configurada con la clave pública. Cosas como .bash_history o .ssh / config solo lo hacen más fácil, incluso si su .ssh / known_hosts está ofuscado.
No tener una contraseña en tu clave no es el fin del mundo, aquí hay 3 ideas para intentar y ayudarte a asegurarte un poco mejor a pesar de esto. ( El problema es el segundo, lee eso si nada más )
No utilice la misma clave en todas las máquinas y usuarios. Genere a cada usuario en cada máquina (que necesita hacer este tipo de cosas) su propio par de claves. Esto le permitirá mantener un control de grano fino sobre qué es capaz de saber dónde.
Al agregar la clave a su archivo Author_keys, puede bloquearla para que solo pueda ejecutar un comando específico o usarla solo desde un host específico.
Vea
man ssh
y busque command = y from =La sintaxis es algo así como:
from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name
es decir, ingrese 'rsync' allí y solo su clave podría llamar a 'rsync', y solo desde la dirección IP 1.2.3.4. Se pueden separar varias IP por
,
. Los nombres de host también son compatibles.Otra cosa que me viene a la mente es la directiva 'AllowUser' en su sshd_config
Básicamente, eso garantiza que el usuario solo pueda iniciar sesión desde una determinada ubicación. (aunque también acepta comodines). No va a resolver todos sus problemas, pero al menos lo hará más difícil para los demás.
fuente
Puede usar algo como un llavero para que tener una frase de contraseña sea menos doloroso. Esto es un poco más seguro que usar un inicio de sesión sin contraseña, y se puede usar en combinación con las otras respuestas aquí. La respuesta de PriceChild fue bastante buena.
fuente
Personalmente uso DSA, no RSA, principalmente porque es lo que siempre he usado y sé que "simplemente funciona", pero la teoría, supongo, es la misma. Puede reemplazar
dsa
conrsa
en el siguiente.En la fuente:
Luego copie el contenido del
.ssh/id_dsa.pub
archivo.ssh/authorized_keys
en la cuenta de usuario en el destino.Entonces, debería poder intercambiar entre la fuente y el destino sin contraseñas.
fuente