Creación de un servidor multiservicios, que sirva un servidor Samba, ofreciendo una unidad en red local accesible desde dispositivos Windows. Que corra una app (de desarrollo propio) en Electron JS, con funcionalidades para la gestión del hogar u otras funcionalidades.
NOTA: Esta es mi configuración personal, rapida y sencilla para crear un servidor linux con interfaz grafica.
Por costumbre, confianza, estabilidad y comodidad suelo usar Linux Mint, por lo que realizo una instalación tradicional de Linux Mint en cualquiera de sus versiones (Cinnamon, Mate, XFCE).
NOTA: Generalme eligo la versión XFCE solo si sé que es un dispositivo que no voy a estar usando de manera constante y por tanto no me interesa ni personalizarlo, ni quiero que tenga apps de utilidades.
⬇️ Linux Mint: download
Se instala y configura SSH para poder acceder y administrar de manera remota y cómoda el servidor de aquí en adelante.
NOTA: SSH no nos muetra imagen por lo que puede ser necesario tener un monitor que dé salida de video del servidor.
Abrimos una terminal en el servidor y ejecutamos:
sudo apt update
sudo apt install openssh-server -y
Para instalar el servicio de ssh.
systemctl status ssh
Se consulta el estado del servicio.
sudo systemctl start ssh
Se activa en caso de no estarlo.
sudo systemctl enable ssh
Nos aseguramos de que el servicio inicie con el sistema.
ip a | grep inet
Solicitamos la dirección IP local del servidor.
Vamos a acceder de manera clasica, desde la terminal (en este caso PowerShell) sin la necesidad de software externo que haga las veces de cliente.
ssh tu_usuario@192.168.x.x
Modificamos el comando remplazando: tu_usuario 👉 tu usuario en el servidor de Linux Mint. 192.168.x.x 👉 la dirección IP local obtenida anteriormente.
otra forma es a traves del comando mas especifico:
ssh -p 22 tu_usuario@192.168.x.x
A continuación nos solicitará aceptar la huella y solicitará nuestra contraseña (la del usuario en el servidor de Linux Mint).
NOTA: En caso de errores al intentar acceder a SSH un comando que puede resultar útil es:
ssh-keygen -R 192.168.x.xEsto eliminará la huella anterior de ese host y a continuación podrás volver a intenter conectarte.
Para el acceso a archivos a través de la red local y de manera accesible a Windows, usaremos samba.
Instalamos samba con el comando:
sudo apt update && apt install samba -y
Verificamos que el servicio esté activo.
systemctl status smbd
Lo activamos en caso de no estarlo.
sudo systemctl enable --now smbd
Para dar inicio a la configuración de samba, creamos la carpeta que se compartirá en red y le otorgamos permisos.
sudo mkdir -p /srv/compartido
sudo chmod -R 777 /srv/compartido
(Esto le da permisos totales de lectura/escritura para simplificar).
Hacemos una copia de seguridad del archivo de configuración original de samba.
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Luego editamos el archivo principal:
sudo nano /etc/samba/smb.conf
Al final del archivo añadimos la configuración de nuestra carpeta:
[compartido]
path = /srv/compartido
browseable = yes
writable = yes
guest ok = yes
force user = nobody
Guardamos con Ctrl + O, luego Enter y salir con Ctrl + X.
Reiniciamos el servicio para efectuar los cambios.
sudo systemctl restart smbd
Damos permisos de firewall a samba.
sudo ufw allow samba
Dentro del explorador de archivos de Windows, escribimos la dirección.
\\IP_DE_TU_SERVIDOR\compartido
una variación de esto puede ser:
\\NOMBRE_DE_TU_EQUIPO\compartido
Hasta este punto debería permitir el acceso sin mayor problema.
Crea un usuario en Samba:
sudo smbpasswd -a tu_usuario
Cambia la configuración del bloque [compartido] en /etc/samba/smb.conf por:
[compartido]
path = /srv/compartido
browseable = yes
writable = yes
valid users = tu_usuario
Reiniciamos el servicio.
sudo systemctl restart smbd
NOTA: La contraseña que el explorador de archivos en Windows solicitará ahora para acceder a la carpeta en red es la contraseña de tu usuario de Linux Mint.
Una herramienta que puede ser de bastante utilidad en un servidor es git.
sudo apt update
sudo apt install git -y
Una vez termine la instalación, verifica que git funcione:
git --version
Si te muestra algo como git versión 2.x.x, ya estás listo.