¿Hacer que una unidad de red esté disponible en Internet?

19

Recientemente construí una pequeña máquina de servidor, usando Ubuntu Server y Samba, para actuar como un servidor de archivos (entre otras cosas) para que toda mi familia pueda acceder a ciertos archivos a través de la red desde máquinas Windows. Sin embargo, me encantaría llevar esto un paso más allá y hacer que las acciones sean accesibles a través de Internet, lejos de casa. ¿Cómo haría esto? Sé muy poco sobre cómo funciona el sistema de redes compartidas de Windows, así que no tengo idea de por dónde empezar.

Sasha Chedygov
fuente
Realmente deberías usar SCP.
kzh
@kzh: Eso es un poco complejo para algunos de los miembros de mi familia.
Sasha Chedygov
1
Nada personal con respecto a la respuesta aceptada, pero si bien eso podría haber respondido técnicamente a su pregunta, NUNCA haría esto. Realmente te estás exponiendo, especialmente si tienes algo sensible en tu red. Diría que la forma correcta es configurar una VPN PPTP simple para que su familia se conecte, y luego permitirles tener acceso.
KCotreau
1
@KCotreau: Hay mucho más en esta pregunta que dejé por razones de simplicidad. Digamos que los datos que expondremos no son de ninguna manera sensibles. Entiendo y acepto los riesgos de seguridad: solo quería una respuesta simple a mi pregunta específica.
Sasha Chedygov
1
@musicfreak Mi preocupación es que es un punto de ataque a otras áreas de la computadora, o incluso a la red en su conjunto. Obviamente, eres libre de hacerlo como quieras, pero todavía no lo recomiendo a menos que no haya nada en la computadora, al menos, no solo el recurso compartido. Un libro muy bueno es "Hacking Exposed". Muestra cuánto atacan los hackers a estos protocolos.
KCotreau

Respuestas:

13

Con Samba, tendría que exponer los puertos 139 / tcp y 445 / tcp al exterior; por lo general, esto implica configurar el "reenvío de puertos" en su enrutador. Además, debe asegurarse de que su dirección IP externa sea pingable desde el exterior.

Después de esto, podrá acceder a los recursos compartidos ingresando \\youraddressen la barra de direcciones del Explorador o en Inicio - Ejecutar . (Aquí youraddress es o bien su dirección IP externa o su nombre DNS, si tiene uno).

Sin embargo, tenga en cuenta que el protocolo CIFS y SMBv2 utilizado por el uso compartido de archivos de Windows no proporciona cifrado de datos (por lo que cualquiera con un sniffer de paquetes puede monitorear sus transferencias de archivos), y su autenticación tampoco es especialmente fuerte. Solo SMBv3 obtuvo soporte de cifrado.

Además, no olvide que el servicio SMB de Windows ha sido en el pasado un objetivo de infección muy frecuente. Si bien la mayoría de las vulnerabilidades de Windows no afectan a Samba de ninguna manera, vale la pena recordar esto (y a menudo significa que los puertos SMB se bloquean a nivel de ISP).

También tenga en cuenta que las máquinas Windows por defecto recuerdan las credenciales de inicio de sesión para toda la sesión local. A menos que se conecte a Samba como "Invitado", debe tener especial cuidado en las máquinas públicas: use siempre net use \\addressantes de abrir en Explorer / net use \\address /delpara desconectarse. (Esto no es necesario en computadoras personales).

Para mayor seguridad, agregue lo siguiente a la sección general en smb.conf:

LANMAN auth = no
NTLM auth = no
invalid users = root
usuario1686
fuente
Huh, pensé que sería mucho más complejo que eso. ¡Gracias por el consejo!
Sasha Chedygov
2
En una nota al margen, ¿tiene alguna recomendación para que la falta de cifrado de datos sea un problema menor? Confío en todas las redes a las que me conecto, pero es posible que desee, por ejemplo, hacer una cuenta para mi novia (que puede estar en una red no confiable), para que pueda acceder a mi música / fotos / etc. Siempre podría darle una cuenta de solo lectura y llamarla buena, pero me pregunto si quizás tenga algún consejo más específico. ¡Gracias de nuevo!
Sasha Chedygov
Para el acceso de solo lectura, puede configurar un servidor HTTPS (StartSSL / CAcert). Para cargar archivos, esto podría extenderse a WebDAV ... pero Windows no usará WebDAV si CIFS está disponible, y la mayoría de las versiones de Windows tienen algunos problemas con WebDAV con seguridad SSL. Otras soluciones requieren software externo (SFTP usando WinSCP) o incluso configuración de VPN.
user1686
Bueno, estaba planeando configurar un sistema de copia de seguridad basado en versiones (algo así como Time Machine en Mac OS X), de modo que incluso si alguien tuviera acceso a los recursos compartidos y borrara todo, aún estaría seguro. ¿Crees que esto es suficiente? Por supuesto, preferiría evitar que algo así suceda en primer lugar.
Sasha Chedygov
2
Solo una nota: con los ISP canadienses, los puertos SMB están bloqueados a menos que tenga una cuenta comercial. Asegúrese de que su ISP desbloquee los puertos si está utilizando SOLO SMB
Canadian Luke REINSTATE MONICA
8

Si su familia puede manejar el uso de WinSCP, entonces:

  • instalar y configurar SSH
  • dar cuentas locales a los miembros de su familia en su servidor
  • enlace simbólico su almacén de archivos en estos directorios. Por ejemplo, si está exponiendo a /srv/samba_filestravés de Samba, desearía hacer una ln -s /home/{user}/files /srv/samba_fileso similar para cada cuenta. Si tiene que hacer esto para muchas cuentas, puede escribir un script para hacerlo.
  • instale WinSCP en las computadoras de su familia

Entonces tendrá un método muy seguro para transferir archivos que no es demasiado difícil de usar.

Sin embargo, si realmente desea la integración de "unidad de red" con Windows, aprendería sobre OpenVPN y luego configuraría un túnel puenteado para su red doméstica. He conseguido que los archivos compartidos de Windows funcionen en esos túneles.

También puede usar PoPToP (pptpd) para permitir que un sistema Windows se conecte de nuevo a su caja de Ubuntu a través de un PPTP vpn. (Un túnel IPSec / L2TP proporcionaría una mejor seguridad, pero es difícil de configurar).

LawrenceC
fuente
¿Por qué no simplemente crear un filesrecurso compartido que apunta /srv/samba_filesdirectamente?
user1686
Los recursos compartidos de Samba solo serían visibles en el lado de LAN. En el lado de Internet usarías WinSCP.
LawrenceC
@LawrenceC ¿Este método "openvpn" comparte peso pesado para computadoras de placa única como raspberry pi?
Bhavesh Gangani
OpenVPN tomó 20% de CPU en un sistema ARM de 1.3Ghz y no me agotó con 512mb de RAM. Esto también funcionaba como un enrutador, servidor DHCP y DNS. Algunos enrutadores SOHO con menos especificaciones lo ejecutan. Debería estar bien pero consumirá algunos recursos.
LawrenceC
1

Depende de qué tipo de archivos tiene la intención de servir. Si se trata de documentos, o simplemente archivos a los que necesita acceder de forma remota, simplemente ejecute un servidor FTP en su servidor Ubuntu. Asegúrese de asegurarlo bien, con buenas contraseñas y acceso solo al directorio de archivos y no a la raíz.

Sin embargo, si tiene la intención de transmitir archivos multimedia (canciones, películas), está buscando ejecutar un servidor de transmisión. Hay muchas soluciones para eso ( aquí hay una ).

Finalmente, siempre puede usar una solución de disco "en la nube" existente como Dropbox o SkyDrive, o Amazon Cloud Player, solo sincronice sus archivos con uno de esos servicios y el acceso a Internet (uno rápido) está garantizado.

Travelling Tech Guy
fuente