Cómo compartir archivos en una red Linux

28
5442

Este va para nuestro compañero Claudio, quien desea aprender a configurar una red Linux sin usar Samba. En un comentario poco amigable, Claudio solicita la creación de un GUI para poder realizar un trabajo que miles (sino son millones) de personas ya han realizado antes y lo seguirán realizando… como gran parte de este trabajo es por consola, y no le gusta mucho, prefiere la creación de un GUI para poder utilizar de manera sencilla (a lo Windows como él mismo dice) su red interna. Primero vamos a discurrir un poco sobre esto antes de la solución.

El modo empresarial vs el FOSS

Bueno, vamos por lo sencillo desde el principio… Esto es algo que siempre se reclama a los proyectos FOSS (Free and Open Source Software), la falta de calidad en el trabajo. Siempre he escuchado, pero tal juego es mejor comprarlo de la empresa tal porque es mejor, tal programa es mejor que su versión libre, tal sistema es mejor que otro libre. Vamos a ver por qué es esto:


La empresa tal vive de su software

Si yo soy una empresa y mi trabajo es vender software, eso quiere decir que tengo que vender algo extremadamente bueno para que la gente lo compre, y por tanto tengo que pagar a mis desarrolladores para conseguirlo, y este es el punto de partida de este asunto, el software libre y en algunos casos el open source es desarrollado por buena voluntad. A la gente no le están pagando por desarrollar algo para el resto. Así que si tú me dices que tal software sistema o lo que sea es mejor que su versión libre, pues yo te digo, probablemente, pero existe un gran problema en eso:

Está hecho para hacerte dependiente

Esto es como una droga, mientras más software privativo usas, menor es tu capacidad de pensar y resolver cosas de manera autónoma. Solo pensemos en esto un segundo, ¿saben dónde se gana más,?¿en la venta o en el mantenimiento? Pues la respuesta a esto es sencilla, no importa cuán caro sea un programa o sistema, siempre será mayor la ganancia en mantenimiento que la ganancia en venta, porque al momento de los problemas, no importa la cantidad de dinero que deba invertirse para resolverlo porque simplemente no se puede cambiar la infraestructura a esas alturas.

La necesidad es la madre de la creación

Una forma poco amigable de solicitar una GUI no es motivo suficiente para hacerla, y al mismo tiempo, disculpa si te duele Claudio, pero tengo cosas mucho más importantes que hacer y proyectos en los que participar como para invertir mi tiempo en resolver tu falta de autonomía y tu pasividad mental. Pero como lo has pedido, pues te vamos a explicar por qué no existen los GUI todavía para algo que en Windows es tan sencillo.

Cuando compartes carpetas en windows creas huecos de seguridad

Aquí más de uno me dirá que me equivoco y etc etc… pero la verdad es que cuando utilizas nmap para reconocer un equipo windows, probablemente si este se encuentra en una red de “confianza”, estará corriendo un servicio en algún puerto para poder compartir archivos. Esto no solo es peligroso, sino que es tan poco sabido que muchos de los ataques exitosos surgen a causa de que se estaba compartiendo el accesso por medio de la red. ¿Pero por qué surge esto? Pues porque la filosofía  de Windows te enseña a decir SI sin saber exactamente qué está sucediendo. (¿Recuerdan lo de dependencia?) Una manera muy sencilla de solucionar esto sería cuidando bien el equipo, pero como la filosofía de Windows no es esa, aquí es donde el mantenimiento entra en juego, y hace que tengas que necesitar de alguien que haga las cosas por ti.

No es necesario

Si la necesidad es la madre de la creación, sin necesidad, pues no hay nada. Esto es algo sumamente sencillo de entender, si la gente que lo usa (normalmente administradores de sistemas, o gente usando servidores) no lo necesita, pues no lo va a crear. En casos muy especiales (normalmente en software libre) los creadores se ponen un poco en los pies de los menos experimentados y deciden ayudar creando un GUI (Git tiene un GUI para los que desean probarlo), pero nuevamente, esto es por pura buena voluntad de los creadores, puesto que la cantidad de trabajo real es tan grande, y los desarrolladores tan pocos, que esos trabajos quedan relegados al tiempo libre de algún desarrollador de buen corazón. ( Recordemos que nadie le paga por hacerlo, y aún así tiene familia, trabajo y responsabilidades)

Intimidar nunca será la solución

Esto tómenlo de consejo y comentario para todos aquellos que lo lean, recuerdo mucho un video que vi una vez de una entrevista de Obama (alguien que considero un gran ejemplo de persona) , donde un hombre enojado empieza a criticarlo e insultarlo y el no hizo absolutamente nada. No hizo nada, no porque no pudiese, es decir, era el hombre más poderoso del planeta en ese momento, sino porque sabía que no debía rebajarse a ese nivel. Esa no es ni será una solución en esta vida, entrar en discusión nunca traerá nada bueno, hay gente que puede creer que sí, pero a mí al menos no me va a mover la intimidación y comentarios de un X. Solo lo dejaba como comentario suelto antes de empezar el tutorial.

NFS

Network File System es un protocolo a nivel de aplicación que permite contar con información centralizadasincronizada en una red, funciona tanto para sistemas Linux como Windows y otros (esto debido a estar diseñado a nivel de aplicación). Como hablamos de manera centralizada, quiere decir que nos encontramos frente a una solución de modelo Cliente/Servidor. Esto ya lo hemos tocado superficialmente en otro momento, pero nada más recalcar un pequeño detalle.

¿Por qué es importante tener centralizada la información?

Alguno que otro dirá, “pero yo tengo información importante en cada tipo de máquina que tengo, la laptop de trabajo, el equipo de casa, etc etc”. El problema es el siguiente, si se siguiese un modelo de backup eficiente, uno notaría que crear y mantener backups de muchos puntos es compicado, mucho más sencillo (para todos los que usamos scripts y demás) es crear un único punto donde la información llegue y de ahí empezar a resguardar la data. Además que contar con múltiples versiones en distintos puntos no solo hace difícil seguir la información, sino que hace más complicado el trabajo.

No estoy inventando la pólvora

Para quien por un segundo crea que he descubierto esto a modo de prueba y error, pues nada más lejano de la verdad, solo uso un poco de lo que Google me ofrece y veamos lo que encontré en la primera búsqueda (Asumiré que están en Ubuntu aquellos que lo usen, y supongo que para Fedora el cambio debe ser mínimo)

Google

Diseño propio. Christopher Díaz Riveros

Siempre sigan lo que dice Oficial. Esto es tal vez uno de los primeros pasos a seguir, y lo pongo por si alguno cree que yo sabía algo de NFS antes de escribir este post.

TL;DR

Diseño propio. Christopher Díaz Riveros

Too long; don’t read. Cada vez que vean este acrónimo, pueden estar 100% seguros que es la manera “floja” de resolver un problema, muchos me reclamarán que cómo saberlo si está en inglés, bueno, pues ahora lo saben para que no pueda haber opción a reclamos después 😉 Yo uso bastante el urban dicciontary para entender muchos de estos conceptos.

Official Documentation (¡¡En español!!)

Diseño propio. Christopher Díaz Riveros

Algún alma de buen corazón se dio el trabajo de traducir por nosotros esta simple pero completa página con todo lo necesario para poder instalar un servidor NFS en nuestra red.

Vamos a ver de manera rápida los pasos a seguir. Les dejo el link para los curiosos que no puedan usar por X motivos Google para llegar al mismo lugar.

Instalar el servidor y el cliente

Ahora vamos a instalar por consola lo necesario en ambos lugares para utilizar los archivos compartidos. En el servidor instalamos nfs-kernel-server y en el cliente nfs-common

Diseño propio. Christopher Díaz Riveros
Diseño propio. Christopher Díaz Riveros

Configurar el servidor

NFS funciona mediante un archivo de configuración ubicado en /etc/exports. Dicho archivo indica a NFS qué archivos compartir y cómo llamarlos, además de contar con muy buenos ejemplos de cómo usarlo por default, usaremos nuevamente la consola para editarlo gracias al siempre confiable vim (los que no estén cómodos con vim pueden usar nano)

Diseño propio. Christopher Díaz Riveros

Para este simple ejemplo yo estoy diciendo a exports que quiero compartir mi carpeta workspace (el * indica que quiero compartir todo el contenido y sin dejar espacio escribo los permisos y opciones que más me acomoden, en este caso rw para escritura y lectura)

Reiniciar el servidor

Si hemos configurado bien, necesitamos reiniciar el servidor (o iniciarlo si es que no está activo), no es necesario cada vez que hay un cambio, pero aprovecho la oportunidad para dejarlo claro, si no deseas reiniciar todo, un simple exportfs -ra resuelve el asunto.

Diseño propio. Christopher Díaz Riveros

La primer línea systemctl start nfs-kernel-server activa el servidor, la segunda solo es para verificar que todo está bien (si no está verde, no está bien).

Conectar al servidor

Ahora vamos a conectar nuestro otro equipo, para eso usaremos nuevamente la consola, y el comando mount.

Diseño propio. Christopher Díaz Riveros

Aquí vale la pena recalcar que los IP se asignan a su gusto, no sé si usarán DHCP o manual, pero una vez tengan el IP pueden usarlo, agregen :/ruta/de/tu/carpeta y un lugar donde puedas montar la conexión, en mi caso creé una carpeta llamada compartido.

Abre tu explorador

Diseño propio. Christopher Díaz Riveros

Aquí están tanto en versión consola como en versión GUI. Y les muestro un poco de cómo llevo mi trabajo en el instituto, siempre uso máquinas virtuales para trabajar la información de los cursos, (por eso van a ver un OSX instalado) y uno por cada lenguaje, así puedo tener ambientes de desarrollo controlados y no llenar mi Gentoo de programas innecesarios. ¿Por qué ubuntu? pues me gusta más que Fedora y es más rápido para crear máquinas de prueba que puedo borrar también de manera rápida. Como ya dije 🙂 cada cual sigue su filosofía y el dejar todo listo para usar sin pensar mucho es algo que facilita mucho ubuntu a sus usuarios 🙂 (además que mi certificación de administrador de sistemas la hice en ubuntu (LFCS te permite darlo en las tres grandes familias de sistemas: Ubuntu(Debian),CentOS(Red Hat) y SUSE(SUSE) ) , así que era una buena forma de recordar apt-get y apt)

 Reflexiones finales

Ya he escrito mucho esta vez, pero como podrás ver Claudio, son solamente 4 pasos ( espero que puedas hacer el de Google tú solo para no contarlo), y adivina qué… no es necesario un GUI para cinco comandos. Disculpa si no puedo cumplir tu deseo de hacerte el mundo GNU/Linux más Windows, y evitar que pienses un poco y aprendas a googlear cosas. Y si quieres tener cambios permanentes en tu red y equipos mediante /etc/fstab, pues tendrás que buscarlo tú mismo.

Para todos los demás, disculpen por favor si he sido rudo con este post, y aunque lo he escrito un poco mal humorado (debo admitir que a nadie le gusta que pongan en duda su trabajo y esfuerzo, y menos que lo tilden de fanfarronería)… espero que de verdad esto pueda ayudar a más de uno en sus trabajos de conexión. Muchas gracias por llegar hasta aquí a pesar de mis torpezas y errores, Saludos 🙂

COMPARTIR
Artículo anteriorHoly wars: Uno de los mayores problemas *NIX
Artículo siguienteNuestro primer mes juntos :)
ChrisADR

Soy un jóven desarrollador de software, apasionado por la seguridad informática. Colaboro en mi comunidad linux (Gentoo Linux) como Coordinador de Avisos de Seguridad de Gentoo (GLSA) y en diversos proyectos FOSS como git y el kernel.

28 COMENTARIOS

  1. Yo seguí los pasos para Manjaro (Arch) en su día y no me funcionó (Comparto con Samba) y los plugins de compartir de Thunar y Nautilus
    Respecto a lo de “windowizar” me parece inapropiado el KISS es FLOSS. En MS WOS también hay cosas complicadas de hacer, y en ninguno de los dos casos me parece bueno para el susuario.
    ¿Porqué no facilitar un script o un metapaquete que instale y configure NFS en vez de copiar y pegar 5 comandos?
    A lo primero tampoco se atreven tantos, a lo segundo muchos menos
    Y si le añadimos el plugin para NFS share en Thunar y/o Nautilus (u otros) mejor para el FLOSS y el KISS ¿O no?
    Y no escribo que sea tu tarea, pero estaría encantado de que alguien la hiciera (par Samba también que conste) y la usaría como otra herramienta para “convertir” gente a GNU/Linux enseñando lo fácil que es compartir una carpeta por NFS (o Samba) para usarla desde la Smart TV con Kodi

    • Hola Rafael, para poder dejarlos de manera predeterminada con el inicio de la máquina es necesario editar el archivo /etc/fstab para que conecte directamente con la red, dado que eso es un poco más especializado y considero que lo preguntas en un ambiente empresarial, hay que tener otras consideraciones de seguridad como permisos y nombres de acceso, puntos de acceso, logs, entre otros. Saludos 🙂

  2. Pues me estoy iniciando en este mundo de linux, y leo todo lo que publicas desde hace poco, no entiendo el contexto de tu post y me refiero a la pelea que tienes con Claudio, pero de verdad YO valoro el tiempo que dedicas al escribirlos y a compartir tu conocimiento, lo menos que podemos hacer quienes no pagamos por ello, es leerte con respeto! muchas gracias y mis sinceras felicitaciones por tan excelente trabajo.

  3. con el post esta todo bien, lo que no ” comparto ” para nada es que OBAMA SEA UNA BUENA PERSONA!!!!! uno de los MAYORES TIRABOMBAS DE LA HISTORIA JUNTO A ISRAEL…. lo de compartir una carpeta pasa a ser un dato menor despues de leer ESO.
    Sigo Desdelinux hace muchos anios y lo recomiendo a mis amigos que usan linux, pero por favor lo de Obama es muy fuerte.

    • Hola Ivan, gracias por darte un tiempo para comentar y compartir. Pues yo considero de Obama lo que considero (y es algo muy personal, puedes compartirlo o no, pero vale la pena aclarar aquí) por cosas como esta:

      Para los que ya han leído otros post míos, tanto aquí como en otros lugares, sabrán que yo no soy una persona muy “política” en el sentido de estar al tanto de esta, y en realidad ese es uno de los temas que menos me gusta tratar, pero he de hacerlo cuando es necesario. Como dijo el mismo Trump poco después de convertirse en presidente… “esto es más difícil de lo que pensé”… ya hemos hablado que existen negros, blancos y matices, pero yo considero que una forma real de reconocerlos es conocer TODO el contexto… y eso es algo que en dicisiones de política es bastante complicado por el caracter de mucha de la información.

      Si yo digo que lo considero buena persona, es en base a las cualidades de líder positivas que ha mostrado a lo largo del tiempo de cargo público, no digo que sea perfecto en todo sentido, pero sí que tiene muchas cualidades que son dignas de ser imitadas. Espero que esto haya podido dejar un poco más claro el tema.
      Saludos

  4. Samba para mi cumple todos mis requerimientos actualmente lo tengo funcionando en una red empresarial con usuarios y grupos y con permisos a ciertas carpetas en base al perfil de usuario me va super bien y tengo clientes windows y linux

  5. Hola:
    El yast de opensuse tiene un módulo de nfs, no tengo ni idea de estos temas, es mas, en mi manjaro el otro día desinstalé paquetes de nfs porque no los uso para nada, cada vez que voy aprendiendo un poco mas le voy quitando cosas a mi manjaro gnome que descubro que no me sirven para nada, y poco a poco va consumiendo menos RAM, creo que las distros sencillas deberían llevar menos cosas preinstaladas, me doy cuenta que llevan muchas cosas que un principiante ni sabe para que sirven, seguro que si el autor del post me pusiera gentoo igual me instalaba 200 paquetes menos y hacía todo lo que hago con manjaro, hasta que por mi desconocimiento rompiera gentoo claro.
    Por último sobre este tema hay que indicar lo que muchas veces dice Richard Staliman software libre no implica que deba ser gratuito, creo que en la sociedad actual se nos está acostumbrando a pagar por un smartphone lleno de software privativo que no sabemos todo lo que hace y en cambio queremos software libre que nos haga todo fácil y sea gratis, también debemos acostumbrarnos a pensar un poco y buscar en el caso de este post no tengo ni idea de nfs pero he visto que al menos en opensuse hay un módulo gráfico para esto, que no sé si irá bien o mal.
    Saludos.

    • Manjaro está genial y no es mucho menos rápida que Gentoo.
      Pero si quieres probar con Gentoo (también) te recomiendo Sabayon.
      Es una Gentoo pre instalada y sencilla, poco mas o menos lo que es Manjaro a Arch.

  6. Hace no mucho tiempo yo también lidiaba con estos temas, cuando uno recién comienza en Linux es frustrante no encontrar soluciones rápidas o aplicaciones q deberían contar con procedimientos prácticos y no emborrosos. Respeto y agradezco a los desarrolladores que se toman su tiempo, y les gusta hacer bien su trabajo, a mi me enseñaron si uno hace algo sea gratis o no se debería hacer bien porque ahí lleva el sello personal. Pero hay extremos. Linux es mal visto porque en su mayoría es emborroso hacer procedimientos e instalar funciones y todo por desarrolladores q pudiendo mejorar su trabajo lo dejan a la deriva sujeto a comandos largos de la terminal. El otro extremo es q hay usuarios que se pasan de “conchan” que por ociosidad o peresa mental quieren q uno les haga todo.

    • Hola Ismael, pues gracias por compartir y solo quisiera recalcar un par de cosas… UNIX usa una filosofía bastante clara en el desarrollo de programas “haz una cosa, y hazla muy bien”, debido a esto muchos programas solo hacen una cosa, y es necesario tener que unir varios para poder solucionar situaciones “complejas”. No niego que existen bastantes programas que podrían ser mejores, pero al menos en la base de todo, yo no he experimentado una falta de lógica en los programas esenciales de GNU ni el kernel. Es lamentable que se genere esa mala idea por culpa de uno que otro programa que está mal “pensado”.

  7. GRACIAS Amigo ChrisADR, evidentemente sabes mucho de lo tuyo, te felicito y pido disculpas si fui un poco duro en mi comentario anterior, en la salida de preferencia de terminal o gui. Pero con este post, acabas de confirmar lo que sigo reclamando en linux, una forma facil de compartir carpetas en una Red LAN Linux y como bien describes en este muy buen post, es muy tedioso para mi como usuario, el tener que hacer tantos pasos en un terminal para poder compartir las carpetas en una red lan Linux. Repito, gracias por este post y seguro a muchos les servira, a mi no , lamentablemnte. Espero mucho mas de linux. De momento , tendre que seguir usando Guindous para mis redes LAN. Y por supuesto, en mi notebook, sigo con mi querido MX Linux.

    • Hola Claudio 🙂 pues muchas gracias por darte el tiempo de compartir, y gracias por tus disculpas, discúlpame a mi también si he sido rudo en alguna parte. Pues aunque es una pena lo que me comentas, te tengo una propuesta; dado que podría ser una función útil y que más de uno parece estar interesado, podríamos solicitar a algún proyecto su implementación como propuesta de mejora 🙂 Yo personalmente no tengo el tiempo ni la facilidad de hacer todo un programa desde cero, pero tal vez nuestros compañeros de Nautilus (GNOME) o Dolphin (Plasma) puedan tenerlo en su lista de pendientes hasta que algún otro desarrollador pueda darse el tiempo, y probablemente hacerlo mucho más rápido que yo 🙂

      Si te gusta la idea, podemos ver juntos cómo y dónde publicar la propuesta de mejora, quién sabe y tal vez ya se está cocinando algo parecido en alguna parte 🙂 Saludos

  8. Buenas, admito que desde que ChrisADR anda en este blog estoy a la espera del siguiente, simplemente se aprende de el, gracias por eso, en otro orden y siguiendo con uno de los puntos del post.

    El contexto es que tengo que copiar unos archivos de los cajeros y pasarlo a un servidor(GNU/LINUX), estoy trabajando en un sistema de backup, pero tengo una condición estoy trabajando con ATMs(cajeros automáticos) y no puedo abrir ningún puerto, tampoco tengo el servicio de transferencia de archivo por red de windows, tampoco puedo usar ftp. Simplemente no tengo herramientas para eso, es un servicio demasiado especifico y no existe herramienta para ello.

    Pero se que existe algo como SSH y SCP y que en conjunto son herramientas muy seguras hasta ahí bien, pero como instalo SSH en windows? y no precisamente un programa que me permita usar el protocolo, necesito algo mas versátil necesito algo con interfaz CLI, obvio no se nada, investigando descubrí paramiko libreria de python que te permite usar distintos protocolos de red e investigando un poco sobre como funciona, ya tengo un sistema funcional, donde no uso samba ni SFN pero si puedo transferir archivos mediante un buen protocolo seguro.

    Donde quiero llegar con esto es que con saber python y saber de que algo existe (ssh), termine la tarea dada , si yo fuese otra persona hubiese dicho, eso no es posible, necesito que me habiliten puertos o activen features de windows o que no existe una herramienta que me permita eso.

    y no va en el tema, pero si me preguntaran por que prefiero CLI sobre GUI, simplemente el CLI es re utilizable y eso le da una potencia demasiada superior sobre la grafica. Una herramienta CLI puede ser usada por otros programas(wrapper) la grafica solo esta pensada para el usuario.

    • Hola 🙂 Pues muchas gracias por lo que comentas, y gracias por compartir tu experiencia.
      Como tu mencionas, los CLI son como la magia tras bambalinas, no siempre reconocidos, pero sin ellos mucho de lo que se puede ver (GUI) no funcionaría para nada.

      Saludos 🙂

  9. No te desesperes, recuerda que el usuario de Windows es bastante especial y no es hasta que este sistema les arruina la existencia que a veces empiezan a cuestionar su utilidad, y aún asi regresan a usarlo.

    Los usuarios de Windows son legión, y algunos mas endemoniados que otros, y no estan acostumbrados a leer la documentación, por eso cuando los traes al ambiente de GNU/Linux sufren tanto.

    Uso bastante tu información, gracias por compartir.

  10. eurekaaaa , por fin encontre lo que necesitaba, “el open source es desarrollado por buena voluntad.” eso esta claro y es muy meritorio, y se ve que hay alguien que tubo la misma necesidad que yo y desarrollo(o compartio) no pude leer todo, una solucion que tanto reclamaba. Y si , de buena voluntad, “compartio” y yo muy agradecido. pero como bien reza la introduccion de este post, “las buenas soluciones hay que cobrarlas” , obviamente no voy a cobrar , pero no vay a poner el link en donde encontre la solucion, porque mi tiempo vale y mucho, no cobro pero… me llevo tiempo encontrar. Solo les puedo comentar a quienes les interese y tengan mi misma inquitud, que lo puede encontrar en yuotube. 🙂

Dejar una respuesta