My Authors
Read all threads
Tienes un pc viejo con al menos un núcleo, 512mb de ram y 2 HDD (o todas las piezas equivalentes) y te vendría bien un NAS casero // sitio más seguro para almacenar tus datos que un solo disco que puede fallar en tu PC?

¡Abro hilo tutorial!
1: Bajémonos la iso de Ubuntu Server.

releases.ubuntu.com/18.04.4/ubuntu…

Nota: Para este tutorial vamos a usar 18.04 que es para x64. Si tu equipo no soporta x64, deberías poder seguir los mismos pasos para 16.04 pero no lo he testado. Comenta si encuentras problemas.
2: Tanto si estás en Windows como si estás en Linux, podemos usar "Balena Etcher" para pasar esta ISO a un pendrive que usaremos para instalar Ubuntu Server en la máquina destinada a ser un NAS -> balena.io/etcher/

Veréis que no requiere nada especial para hacerlo.
3a: Arranquemos la instalación de Ubuntu Server. Lo único que tenemos que modificar realmente es, en la configuración de red, poner una IP estática. La mayoría de vosotros tendréis una IP local de estas:

192.168.1.X
192.168.10.X
192.168.100.X
3b: Lo importante a especificar es el número del final. Podéis adaptar estas capturas de pantalla a vuestra configuración local (pero si os queda cualquier duda, preguntad).

En Name Servers, podéis poner la dirección de vuestro router, el name server de vuestro ISP o una pública
Pequeña corrección, os hace falta un tercer disco, por pequeño que sea (con 20Gb vamos sobrados) para el Sistema Operativo.
4: Elegid los valores por defecto hasta llegar a la pantalla donde configuramos discos. Tenemos que indicarle que use el disco designado al Sistema Operativo entero. Los otros 2 discos (para el NAS) los ignoramos por ahora.
5: Sigue con la instalación. Elige lo que quieras para el nombre del servidor pero a efectos de tutorial, lo llamaremos "server-nas". Como usuario, a efectos del tutorial, pondré luciel.
6: Justo en la siguiente pantalla, os dará la opción de elegir instalar OpenSSH Server, di que si (usando la tecla Espacio) y sigue hacia adelante. No elijas nada en la siguiente pantalla ("Featured Server Snaps") y sigue hacia adelante. Solo nos queda esperar hasta que termine.
7: Reiniciemos al tener la opción. Cuando arranque el equipo, nos quedamos con un login en línea de comando. Es muy posible que salga alguna línea más que oculte dicho login la primera vez. Si vemos que pasa esto, con que le demos a la tecla Enter, volvemos a dicho login.
8a: Ya tenemos la base de lo necesario. A partir de ahora, sería muy tedioso tener que tener un segundo teclado para teclear comandos o tener que depender de la pantalla enchufada, etc. Nada de eso, esto es un servidor. Desenchufemos pantalla y teclado (si si, ahora os explico).
8b: Volvemos a nuestro PC principal. Si tienes, Linux, abre una consola de comandos. Si tienes Windows (como imagino tendréis la mayoría), abre "Powershell" (viene instalado por defecto en Windows). En ambos caso, el comando es el mismo: "ssh usuario@ip-de-nuestro-servidor"
8c: Si hemos puesto el usuario y la IP correctamente (esto lo especificamos en los pasos 3 y 5), nos notificará sobre la autenticidad del host no pudiendo ser establecida (esto es normal) a la que respondemos "YES", acto seguido, especificamos nuestra contraseña (del paso 5)
9: Al estilo más Hollywood posible, podéis deciros a vosotros mismos, "¡Estoy dentro!". Lo primero que hay que hacer es estar al día, vamos a actualizar todo con el siguiente comando:

"sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y"
10: Ahora, tenemos que asegurarnos de que el sistema detecta todos los discos correctamente. Hacemos esto con el comando:

"lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT"

Como vemos en la captura, nos detecta SDA (donde está Ubuntu) seguido de SDB y SDC, los 2 discos para el NAS.
11a: Para nuestro NAS, al tener 2 discos, usaremos RAID 1. Esto, de forma simple, significa que perdemos el espacio de uno de los discos pero, si un disco falla, no perderemos nada. Para más sobre esto, hace unos años escribí un artículo en @Benchmarkhw -> benchmarkhardware.com/2015/03/sistem…
11b: Con el siguiente paso, vamos a destruir toda información en los 2 discos a usar. Asegúrate de que no hay nada en ellos que necesites guardar, ¡quedas avisado!
11c: Gracias al paso 10, sabemos que nuestros discos a usar se identifican por "sdb" y "sdc" por lo que usaremos el siguiente comando (modifica los identificativos si a ti te difieren):

"sudo mdadm --create --verbose /dev/md/nas --level=1 --raid-devices=2 /dev/sdb /dev/sdc"
11d: La herramienta MDADM empezará ahora (de fondo) a configurar nuestro RAID1, podemos ver como va con el siguiente comando:

"cat /proc/mdstat"

Dependiendo del tamaño de los discos, esto puede tardar un tiempo, sin embargo, no nos impide seguir con el proceso.
11e: Para terminar la configuración inicial de nuestro RAID, tenemos que darle un formato. Al ser Linux, le daremos formato ext4 pero no os preocupéis, ¡Windows, Linux y MacOS podrán acceder al NAS una vez acabados!

Ejecutemos este comando:

"sudo mkfs.ext4 -F /dev/md/nas"
12: Esto va cogiendo forma. Ahora, tenemos que crear un directorio donde "montaremos" el RAID para acceso común (en simples términos, la carpeta que nos da acceso al contenido de los discos) con este comando:

"sudo mkdir -p /mnt/nas && sudo mount /dev/md/nas /mnt/nas"
13a: El problema, es que si apagamos o reiniciamos el NAS, no estará automáticamente montada esta carpeta por lo que tenemos que indicarle que lo haga automáticamente. Podemos hacer esto con los comandos en el paso 13b.
13b: "sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf && sudo update-initramfs -u"

y (hay que hacer ambos):

"echo '/dev/md/nas /mnt/nas ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab"
13c: Procedemos a reiniciar con el comando:

"sudo reboot"

Y nos volvemos a conectar al NAS una vez reiniciado con el comando:

"ssh usuario@ip-de-nuestro-servidor"

(aunque si le das a la tecla direccional arriba, te saldrá el último comando usado desde tu PC,que será este ;) )
13d: Tenemos que asegurarnos de al reiniciar, el sistema ha hecho lo que le pedimos de forma automática y que se detecta correctamente nuestro RAID como una unidad mas. Podemos hacer esto con el siguiente comando (este es uno cortito):

"df"
13e: Como podéis ver, está "/dev/md127" en "/mnt/nas" (no tiene que llamarse el vuestro "md127", lo importante es que salga en la lista y sale montado en "/mnt/nas".

Pero, que pasa si no sale en la lista? Ni el RAID ni los 2 discos usados?
13f: Esto puede pasar la 1a vez, lo arreglamos así:

"sudo mdadm --assemble nas && sudo rm /etc/mdadm/mdadm.conf && sudo touch /etc/mdadm/mdadm.conf"

y:

"sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf && sudo update-initramfs -u"

Reiniciamos y conectamos al NAS
14a: Ya tenemos nuestro RAID totalmente listo, ahora nos toca que nuestros dispositivos puedan ver el espacio de almacenamiento de nuestro NAS. Para hacer esto, necesitamos instalar Samba (¡rio de janeiro!, ahora os quedáis con la canción en la cabeza para el resto del tutorial).
14b: Para hacer esto, usamos este comando:

"sudo apt install samba samba-common-bin -y"

Y vemos que se ha instalado así:

"smbd --version"

Para ver que está funcionando:

"systemctl status smbd nmbd"

Si no se han arrancado automáticamente:

"sudo systemctl start smbd nmbd"
14c: Vamos ahora a crear nuestras carpetas a compartir.

Lo siguiente son ejemplos a modo de tutorial pero, por supuesto podéis usar los nombres que queráis, simplemente cambiar donde haga falta.

Primero, vamos al directorio:

"cd /mnt/nas"
14d: Ahora, creamos las carpetas. Yo voy a crear "Pelis", "Series", "Fotos" y "Música" (no uséis tildes a la hora de crearlas). Podéis hacerlo con el siguiente comando (además, metemos el comando "ls" al final para poder comprobar):

"sudo mkdir Pelis Series Fotos Musica && ls"
15a: Creamos ahora las credenciales de la gente a la que vamos a dar acceso (luego especificamos a que carpetas, por si tenéis alguna...privada). Usa esto para cada usuario (nos pedirá que creemos una contraseña para tal,cambia paquito por lo que quieras):

"sudo adduser paquito"
15b: Ahora hay 2 usuarios en el NAS, el mío (luciel) y el segundo (paquito). Tenemos también que especificar contraseñas para estos en Samba. Por simplificar todo, especifica las mismas contraseñas que elegiste al crearlos:

"sudo smbpasswd -a luciel"

"sudo smbpasswd -a paquito"
15c: Siguiendo con las credenciales, creamos el grupo de usuarios Samba (esto nos facilita dar acceso a todos los miembros de un solo grupo. Puedes hacer esto con cuantos grupos quieras, luego especificaremos que grupo o usuario tiene acceso a que carpeta).

"sudo groupadd samba"
15d: Agregamos nuestros 2 usuarios a este grupo (de nuevo, cambiad los usuarios acordemente por los que vosotros estéis usando):

"sudo gpasswd -a luciel samba && sudo gpasswd -a paquito samba"
15e: y damos permisos de lectura, escritura y ejecución al grupo de usuarios samba sobre la carpeta principal (en el siguiente paso, hablo sobre variantes por si queréis ser más específicos con los permisos):

"sudo setfacl -R -m "g:samba:rwx" /mnt/nas/"
15f: 1/2 Hipotéticamente, digamos que que queremos dar al usuario "luciel" acceso a todo. Entonces, con meterlo en el grupo samba (o el que hagamos hecho) y ejecutar el comando del paso 15e es suficiente.
15f: 2/2 Si queremos dar acceso al usuario "paquito" solo a "Musica", no debería estar en el grupo, y usamos este comando:

"sudo setfacl -R -m "u:paquito:rwx" /mnt/nas/Musica/"

Nota el cambio "g" por "u" (Grupo por Usuario) pero seguimos con rwx (rLectura,wEscritura,xEjecución)
16a: Con los permisos listos, pasamos a la configuración de Samba. Tenemos que indicarle a que carpetas puede acceder que usuario o grupo en la red. Al fin y al cabo, esta es la funcionalidad principal de un NAS.

"sudo nano /etc/samba/smb.conf"
16b: Al principio vemos esto:

"# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP"

En Windows, si no está cambiado, ya formamos parte de "WORKGROUP",si no es así, cambiadlo aquí acordemente o en Windows/Linux/Mac (como queráis)
16c: Vamos al final del archivo con la tecla direccional (tira pa'bajo) y ponemos lo siguiente:

[Pelis]

comment = cualquier descripcion que quieras dar
path = /mnt/nas/Pelis/
browseable = yes
guest ok = no
writable = yes
valid users = @samba
16d: Os explico:

[X] -> Nombre con el que saldrá en red.

comment -> una pequeña descripción
path -> el directorio en el NAS
browseable -> encontrable en red?
guest ok -> hacen falta credenciales?
writable -> se puede modificar?
valid users -> grupos o usuarios con acceso
16e: Recordad que tenéis que hacer esto por cada carpeta que queráis compartir en red. Una vez terminados, usad las siguientes teclas para guardar y salir del editor:

ctrl+x
y
Intro
16f: Para asegurarnos de que lo hemos hecho bien y no hemos cometido errors de sintaxis, usamos el siguiente comando (no os preocupéis por el Warning de "Syslog"):

"testparm"
16g: Acabamos la configuración (si si, ¡ya casi podemos usarlo!) reiniciando los servicios de Samba con este comando:

"sudo systemctl restart smbd nmbd"

Si todo ha ido bien, no nos dará ningún resultado visual
17a: Llegó la hora de probar a acceder a nuestro NAS un equipo Windows, Linux o MacOS en la misma red (disculpad la falta de capturas de MacOS, no dispongo de un equipo con tal OS para hacerlos, si alguien quiere responder con tales, bienvenido sea).
17b: Si todo ha salido bien, veremos ahí nuestras carpetas creadas y compartidas en el NAS. Si quieres que salgan Siempre en "Mi PC" como si fuese otro disco mas, sin tener que acceder manualmente. Puedes hacer click derecho en cada una y seleccionar "Conectar unidad de Red".
Como nota secundaria: En Linux no es necesario esto ya que al conectar al NAS nos pedirá que especifiquemos en que workgroup está por lo que podemos dejar la configuración de SAMBA tal cual.
17c: "Conectar unidad de Red" en Linux es algo más complicado. Podéis ignorar el resto del Paso 17 si vuestro PC no es Linux.

Para Debian o derivados (Ubuntu, Mint, etc):
"sudo apt install cifs-utils"

Para CentOS/RHEL:
"sudo dnf install cifs-utils" (o "yum" en vez de "dnf").
17d: Creamos un punto donde montar por cada carpeta (en el PC. Cambiad acordemente):

"sudo mkdir /mnt/nas && sudo mkdir /mnt/nas/Pelis && sudo mkdir /mnt/nas/Series && sudo mkdir /mnt/nas/Fotos && sudo mkdir /mnt/nas/Musica"
17e: Usamos el siguiente comando para montar (cambiar luciel,IP y Pelis por lo que os corresponda y a repetir con cada carpeta):

"sudo mount -t cifs -o username=luciel //192.168.120.200/Pelis /mnt/nas/Pelis"

Te pedirá usuario y contraseña por cada comando.
17f: Ya tienes todas las carpetas montadas pero, queremos que haga esto cada vez que arranques el PC. Editemos fstab.

"sudo nano /etc/fstab"
17g: Agrega lo siguiente por cada carpeta (cambia la IP y Pelis por lo que os corresponda) NO INCLUYAS LAS COMILLAS ":

"//192.168.120.200/Pelis /mnt/nas/Pelis cifs x-systemd.automount,_netdev,credentials=/etc/samba-credential.conf,uid=1000,gid=1000,x-gvfs-show 0 0"
17h: Cierra el editor

ctrl+x
y
Intro

Abrimos otro archivo:

"sudo nano /etc/samba-credential.conf"

Agregamos las credenciales (cambia luciel y xxxxx acordemente):

username=luciel
password=xxxxxxxxx
domain=WORKGROUP
17i: Cierra el editor

ctrl+x
y
Intro

nos aseguramos de los permisos con el siguiente comando:

"sudo chmod 600 /etc/samba-credential.conf"
17j: ¡Listo! Si todo ha salido bien, cada vez que arranques tu PC Linux, si el NAS está encendido, tendrás las carpetas automáticamente montadas.
18: ¡Enhorabuena, has terminado! Ya tienes tu NAS funcional en casa y una buena forma de darle nueva vida a tu PC viejo (o incluso uno super básico que compras solo para esto).

¿Quieres poder acceder a tu NAS desde fuera de casa? Tienes tutorial aquí -> bit.ly/2L0UQ4F
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Luciel Campbell

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!