¿La forma más segura de acceder al servidor Linux de mi hogar mientras estoy de viaje? Se busca una solución especializada

¿La forma más segura de acceder al servidor Linux de mi hogar mientras estoy de viaje? Se busca una solución especializada

Creo que mucha gente puede estar en mi situación. Viajo por negocios con una computadora portátil. Y necesito acceso seguro a los archivos desde la oficina (que en mi caso es mi casa).

La versión corta de mi pregunta:

¿Cómo puedo hacer SSH/SFTP?en realidad¿Es seguro cuando solo una persona necesita conectarse al servidor desde una computadora portátil? En esta situación, ¿qué pasos especiales harían casi imposible que alguien más tenga acceso en línea al servidor?

Muchos más detalles:

Utilizo Ubuntu Linux tanto en mi computadora portátil (KDE) como en el servidor de mi hogar/oficina. La conectividad no es un problema. Puedo conectarme a la conexión de mi teléfono si es necesario. Necesito acceso a una gran cantidad de archivos (alrededor de 300 GB). No los necesito todos a la vez, pero no sé de antemano qué archivos podría necesitar. Estos archivos contienen información confidencial del cliente e información personal, como números de tarjetas de crédito, por lo que deben estar seguros.

Dado esto, no quiero almacenar todos estos archivos en Dropbox o Amazon AWS, o similar. De todos modos, no podría justificar ese costo (Dropbox ni siquiera publica precios para planes superiores a 100 GB y la seguridad es una preocupación). Sin embargo, estoy dispuesto a gastar algo de dinero en una solución adecuada. ¿Un servicio VPN, por ejemplo, podría ser parte de la solución? ¿U otros servicios comerciales? He oído hablar de PogoPlug, pero no sé si existe un servicio similar que pueda solucionar mis problemas de seguridad.

Podría copiar todos mis archivos a mi computadora portátil porque tiene espacio. Pero luego tengo que sincronizar entre la computadora de mi casa y mi computadora portátil y en el pasado descubrí que no soy muy bueno para hacer esto. Y si pierdo o me roban mi computadora portátil, mis datos estarán en ella. La unidad de la computadora portátil es una SSD y las soluciones de cifrado para unidades SSD no son buenas.

Por lo tanto, parece mejor mantener todos mis datos en mi servidor de archivos Linux (que está seguro en casa).

¿Es esa una conclusión razonable, o cualquier cosa conectada a Internet supone un riesgo tal que debería simplemente copiar los datos a la computadora portátil (y tal vez reemplazar el SSD con un HDD, lo que reduce la duración y el rendimiento de la batería)?

Considero que los riesgos de perder una computadora portátil son mayores. No soy un objetivo obvio para los hackers en línea. La banda ancha de mi hogar es Internet por cable y parece muy confiable. Por eso quiero saber cuál es la mejor forma (razonable) de acceder de forma segura a mis datos (desde mi computadora portátil) mientras estoy de viaje.

Sólo necesito acceder desde este ordenador, aunque puedo conectarme desde el 3G/4G de mi teléfono o vía WiFi o banda ancha de algún cliente, etc. Así que no sabré de antemano qué dirección IP tendré.

Me inclino por una solución basada en SSH y SFTP (o similar). SSH/SFTP proporcionaría todas las funciones que anticipo que necesitaré. Me gustaría utilizar SFTP y Dolphin para buscar y descargar archivos. Usaré SSH y la terminal para cualquier otra cosa.

Mi servidor de archivos Linux está configurado con OpenSSH. Creo que tengo SSH relativamente seguro. También estoy usando Denyhosts. Pero quiero ir varios pasos más allá. Quiero tener las posibilidades de que cualquiera pueda ingresar a mi servidor lo más cerca posible de cero y al mismo tiempo permitirme acceder desde la carretera.

No soy administrador de sistemas ni programador ni "superusuario" real. Tengo que dedicar la mayor parte de mi tiempo a otras cosas. He oído hablar del "port knocking", pero nunca lo he usado y no sé cómo implementarlo (aunque estoy dispuesto a aprender).

Ya he leído varios artículos con títulos como:

  • Las 20 mejores prácticas de seguridad del servidor OpenSSH
  • 20 consejos de seguridad para reforzar el servidor Linux
  • Debian Linux detenga los ataques de piratería y craqueo de usuarios SSH con el software DenyHosts
  • más...

Esos artículos mencionan cosas como

  • Utilice Denegar hosts
  • Configure la opción AllowUsers en /etc/ssh/sshd_config para permitir que solo se conecten usuarios específicos.
  • Deshabilite los inicios de sesión de root a través de SSH.
  • Utilice la autenticación de clave pública y no permita el inicio de sesión con contraseña
  • y mucho más.

Estoy haciendo todas las cosas anteriores (y algunas más). Pero no he implementado todo lo que he leído. Probablemente no pueda hacer eso.

Pero tal vez haya algo aún mejor que pueda hacer en mi situación porque solo necesito acceso desde una única computadora portátil. Soy solo un usuario. No es necesario que mi servidor sea accesible al público en general. Teniendo en cuenta todos estos hechos, espero poder obtener algunas sugerencias aquí que estén dentro de mi capacidad de implementar y que aprovechen estos hechos para crear una seguridad mucho mejor que las sugerencias de propósito general en los artículos anteriores.

Un ejemplo es el golpe de puerto. Esto parece perfecto para mi situación. ¿Qué más hay en este sentido?

Respuesta1

No existe la seguridad perfecta. Cada opción de seguridad es una compensación. Personalmente recomiendo:

  1. Utilice DenyHosts para evitar la fuerza bruta, pero establezca un valor de tiempo de espera razonable para no bloquearse durante todo el tiempo que esté de viaje. Definitivamente eso puede suceder si no tienes cuidado.
  2. Configure la opción AllowUsers /etc/ssh/sshd_configpara permitir que solo se conecten usuarios específicos.
  3. Deshabilite los inicios de sesión de root a través de SSH.
  4. Utilice la autenticación de clave pública desde su computadora portátil.
  5. Utilice contraseñas de un solo uso como OPIE u OTPW desde cualquier terminal pública.
  6. Nunca utilices tu contraseña de root desde una terminal pública, ni siquiera junto con sudo o su.

Alternativamente, valoro mucho las unidades portátiles cifradas con un teclado PIN, como las unidades Apricorn Aegis Padlock. Son muy portátiles, razonablemente seguros contra la mayoría de los modelos de amenazas y los mayores riesgos son olvidar su PIN o perder las unidades mientras viaja, pero en ambos casos, aún tiene los archivos originales a salvo en casa.

Si prefiere una alternativa gratuita, puede utilizar encfs, ecryptfs o similar para crear montajes cifrados para guardar sus datos confidenciales. Podría perder los datos junto con la computadora portátil, o alguien podría alterar su kernel, gestor de arranque o hardware para instalar un registrador de teclas mientras está fuera de su vista, pero eso no suena como su modelo de amenaza actual, y los soportes cifrados deberían servir. tus propósitos están bien. No considero que esta opción sea tan segura como el teclado PIN, pero sigue siendo una opción bastante sólida.

Básicamente, a menos que realmente sientas que necesitas elserviciosproporcionado por un sistema remoto, recomendaría simplemente llevar sus archivos a un contenedor tan seguro como crea necesario. Luego puede usar rsync, conduit o unison cuando llegue a casa para sincronizar sus archivos, o simplemente copiar sus archivos actualizados nuevamente a su sistema principal.

Realmente no existe una respuesta única para su pregunta. Espero que esto ayude.

Respuesta2

Voy a proponer la activación de puertos como respuesta para llegar al siguiente nivel de seguridad además del refuerzo SSH estándar que ya se está realizando en este caso. Las otras respuestas que proponen el endurecimiento SSH estándar ignoran el hecho de que esos pasos ya se han tomado. Esta pregunta trata sobre ir más allá del endurecimiento SSH.

Según Wikipedia,

Considere que, si un atacante externo no conociera la secuencia de acceso al puerto, incluso la secuencia más simple requeriría un esfuerzo masivo de fuerza bruta para ser descubierta. Una secuencia TCP simple de tres golpes (por ejemplo, puerto 1000, 2000, 3000) requeriría que un atacante sin conocimiento previo de la secuencia probara cada combinación de tres puertos en el rango 1-65535 y luego escaneara cada puerto intermedio para ver si algo se hubiera abierto. Como sistema con estado, el puerto no se abriría hasta que se hubiera recibido en orden la secuencia correcta de tres dígitos, sin otros paquetes en el medio.

Esto equivale a un máximo de 655363 paquetes para obtener y detectar una sola apertura exitosa, en el peor de los casos. Eso es 281.474.976.710.656 o más de 281 billones de paquetes. En promedio, se necesitarían aproximadamente 9,2 quintillones de paquetes para intentar abrir con éxito un único y simple golpe de tres puertos TCP mediante fuerza bruta. Esto se vuelve aún más impráctico cuando se utiliza la limitación de intentos de golpe para detener ataques de fuerza bruta, se utilizan secuencias más largas y complejas y se utilizan hashes criptográficos como parte del golpe.

La llamada de puerto tiene algunas limitaciones (por ejemplo, es un secreto compartido). Pero, como se indica en la pregunta, esta es una solución paraunopersona. Por lo tanto, la activación de puertos además del refuerzo SSH existente (y denyhosts y otras cosas) es un paso eficaz y sencillo para llevar la seguridad al siguiente nivel.

El uso generalizado de las utilidades Port Knocker es un tema de controversia entre los expertos en seguridad, pero esta pregunta es un caso de libro de texto sobre cuándo se puede utilizar Port Knocking con gran efectividad.

Por supuesto, usar port knocking implica usar iptables también. Entonces, llegar al siguiente paso, que es la cuestión aquí, requiere estos dos pasos:

  1. utilizar iptables

  2. utilizar el golpe de puerto

Esta es la implementación particular de golpe de puerto que me gusta:
http://www.portknocking.org/view/implementations
Existen clientes para muchos sistemas populares, incluido Android.

Referencias:

Respuesta3

Asegure sus archivos.

Cifrelos antes de irse. Luego configure su servidor ssh, acceda a su servidor de forma remota, use claves versus contraseñas para su servidor ssh. Descargue su archivo cifrado, corte la conexión y descifre su archivo. No importa lo que uses, tendrás que comprender que todo lo que uses puede ser pirateado y será pirateado en algún momento, por lo que debes disuadir al hombre del riesgo aceptable para ti.

Por ejemplo, si tienes un producto Apple lo más probable es que tengas un kit de raíz instalado de fábrica; Lo mismo con Dell, HP, ASUS, todos ellos. Sólo funcionan en OS X y Windows XP y versiones posteriores. Entonces,usarLinux.

Respuesta4

Utilizo Ubuntu Linux tanto en mi computadora portátil (KDE) como en el servidor de mi hogar/oficina. La conectividad no es un problema. Puedo conectarme a la conexión de mi teléfono si es necesario. Necesito acceso a una gran cantidad de archivos (alrededor de 300 GB). No los necesito todos a la vez, pero no sé de antemano qué archivos podría necesitar. Estos archivos contienen información confidencial del cliente e información personal, como números de tarjetas de crédito, por lo que deben estar seguros.

Entiendes que usar la conexión 3G/4G de tu teléfono no es seguro, ¿verdad? La compañía telefónica tiene la capacidad (sin duda) de ver todo su tráfico de Internet. Ahora el tráfico de Internet puede ser seguro, pero en teoría podría realizarle un ataque Man in the Middle. Si usa una conexión 3G/4G, querrá usar una VPN antes de cargar cualquier contenido a través de otra conexión segura.

Dado esto, no quiero almacenar todos estos archivos en Dropbox o Amazon AWS, o similar. De todos modos, no podría justificar ese costo (Dropbox ni siquiera publica precios para planes superiores a 100 GB y la seguridad es una preocupación). Sin embargo, estoy dispuesto a gastar algo de dinero en una solución adecuada. ¿Un servicio VPN, por ejemplo, podría ser parte de la solución? ¿U otros servicios comerciales? He oído hablar de PogoPlug, pero no sé si existe un servicio similar que pueda solucionar mis problemas de seguridad.

Además, cualquier archivo que contenga PII y/o información confidencial del cliente debe estar cifrado. No les está haciendo ningún favor a sus clientes al no cifrar esos archivos ni CUALQUIER medio de almacenamiento que contenga esos archivos. TODAS las copias deben estar cifradas.

Entonces, usar un servicio en la nube realmente es una solución, siempre que toda su información esté cifrada antes de cargarla, su única preocupación sería realmente la retenibilidad a largo plazo. Se debe utilizar el almacenamiento en la nube, también debe tener sus propias copias locales y remotas que pueda hacer usted mismo, dependiendo de la cantidad de almacenamiento con la que realmente esté tratando.

Además... si realmente estás tratando con 300 GB de datos, una conexión 3G/4G realmente no será suficiente.

Podría copiar todos mis archivos a mi computadora portátil porque tiene espacio. Pero luego tengo que sincronizar entre la computadora de mi casa y mi computadora portátil y en el pasado descubrí que no soy muy bueno para hacer esto. Y si pierdo o me roban mi computadora portátil, mis datos estarán en ella. La unidad de la computadora portátil es una SSD y las soluciones de cifrado para unidades SSD no son buenas.

Cualquiera que diga que un dispositivo SSD cifrado no es 100% seguro siempre que se haga ANTES de que se coloquen datos en él es un completo y total idiota y no debería volver a recibir asesoramiento técnico de ellos nunca más.

¿Es esa una conclusión razonable, o cualquier cosa conectada a Internet supone un riesgo tal que debería simplemente copiar los datos a la computadora portátil (y tal vez reemplazar el SSD con un HDD, lo que reduce la duración y el rendimiento de la batería)?

Parece que deberías idear una rutina que sincronice todos tus dispositivos de almacenamiento. Hay soluciones....

I view the risks of losing a laptop to be higher. I am not an obvious hacking target online. My home broadband is cable Internet, and it seems very reliable. So I want to know the best (reasonable) way to securely access my data (from my laptop) while on the road.

Si el dispositivo de almacenamiento de su computadora portátil está encriptado y usted encripta los archivos, entonces todo lo que cualquiera tendría sería una computadora portátil con bytes aleatorios.

Sólo necesito acceder desde este ordenador, aunque puedo conectarme desde el 3G/4G de mi teléfono o vía WiFi o banda ancha de algún cliente, etc. Así que no sabré de antemano qué dirección IP tendré.

Usaría un servicio VPN de terceros, que le permitirá incluir en la lista blanca una dirección IP específica, lo que le permitirá tener siempre exactamente la misma dirección IP. El uso de una contraseña aleatoria larga y segura, datos cifrados y medios de almacenamiento cifrados hace que sus datos sean 100% seguros. Los datos cifrados son solo bytes aleatorios.

A menos que almacene los archivos cifrados en el servidor, cualquier cosa que haga será menos segura que una solución remota en la nube. Amazon y Dropbox gastan millones para proteger sus servidores; usted, como usuario único, probablemente no instalará todas las actualizaciones del kernel que se publiquen.

Además, parece que deberías concentrarte en tus clientes, hacer lo que haces y luego preocuparte por la seguridad de un servidor Linux doméstico que no es tan seguro como Amazon y Dropbox.

información relacionada