viernes, 16 de marzo de 2018

Servidor de archivos openSUSE-Samba



                                                         (P) Hugo Napoli, 2018                                                        

Creación de servidor de archivos multi sistema, utilizando openSUSE Linux con protocolo Samba (guía paso a paso).

En este caso, se ha tomado OpenSuse 13.2 en plataforma de 64 bits, con escritorio XFCE para disfrutar de un entorno gráfico, que a su vez sea liviano, ágil y práctico.
El núcleo Linux (dato opcional) es el 3.16.7-53.1

La versión de Samba utilizada es la 4.2.4-40.1 (recordemos que la versión de Samba siempre debe ser mayor a la v. 3.00 si se quiere dejar atrás sistemas obsoletos como D.O.S., Windows 95 y 98, etc.).


Preparación inicial:

1. La configuración de unidades de almacenamiento propuesta, es: una únicamente para la instalación y el funcionamiento del sistema, otra para albergar los datos remotos, y una última para respaldos.

2. Eliminar todo repositorio NON-OSS o de código cerrado, privativo, comercial, etc, conservando únicamente:
http://download.opensuse.org/distribution/[VERSIÓN]/repo/oss/
http://download.opensuse.org/update/[VERSIÓN]/

3. Para instalar el sistema, se propone el siguiente esquema de particionado:

  • tabla de particiones GPT,
  • sistema ext4 para particiones boot, root, tmp, home
  • y sistema linux-swap para la partición swap.





4. Configurar el escritorio y, en general, los aspectos gráficos del sistema, para las necesidades del técnico instalador, que será quien únicamente intervenga sobre el servidor.

5. Dentro del administrador de software de Yast, menú "Opciones", marcar la opción "Ignorar paquetes recomendados para paquetes que ya están instalados", para que los programas persistentes que los desarrolladores de OpenSuse creen que deben ser instalados en todos los sistemas OpenSuse por igual, pierdan su atributo de persistencia y puedan ser removidos con suma facilidad, y de manera permanente.

6. Desinstalar todos los programas innecesarios, tales como AdobeICCProfiles, shotwell, thunderbird, pidgin, transmission (y sus varios paquetes asociados directamente), remmina, juegos (gnome-games, gnuchess, gnome-chess, four-in-a-row, five-or-more, iagno, gnome-klotski, lightsoff, gnome-mahjongg, gnome-mines, nibbles, quadrapassel, robots, gnome-sudoku, swell foop, tali, tetravex, etc.), totem y totem-plugins, rhythmbox y rhythmbox-lang, sound-juicer, orage, etc.

7. Refrescar repositorios y actualizar el sistema.

8. Configurar la actualización en línea del siguiente modo:

  • con período diario de actualizaciones,
  • únicamente para actualizaciones de seguridad,
  • omitiendo parches interactivos para que una actualización automática no quede trunca y obsoleta esperando confirmación del usuario,
  • aceptando licencias (recordar que no poseemos, en este caso, más que los únicos 2 repositorios oficiales y libres de OpenSuse),
  • incluyendo paquetes recomendados, utilizando delta rpms.
No activar "actualizaciones recomendadas", para que no se instalen programas que no serán necesarios en este proyecto.

9. Instalar paquetes thunar-plugin-shares, kolourpaint y gparted. Opcionalmente, y si se han desinstalado todos los reproductores multimedia, se puede instalar VLC.
Es recomendable instalar únicamente paquetes que sean imprescindibles para nuestro trabajo en el servidor. Se recomienda no instalar más que estos dos que se sugieren, o, desde un plano más estricto, instalar solamente Gparted.

10. Copiar al servidor, clasificar y ordenar los datos de usuario (o de los usuarios)

11. Con Gparted, determinar punto de montaje y UUID de cada disco e identificar cada uno de ellos, para montar los que sean necesarios al inicio: seleccionar disco, menú "Partición", submenú "Información".
/dev/sda1 248fafdc-4536-4d17-8e69-f97b8791f20c Respaldos
/dev/sdb1 2e03d491-7f14-4836-a9e6-a37898757eb7 Datos_remotos
/dev/sdcX Disco del sistema, con 5 particiones (boot-efi, /, tmp, swap, home), cada una con su propio UUID (no es necesario montarlas, puesto que el mismo sistema se encarga de ello al iniciar, y además estas particiones no alojarán datos para compartir).

12. Crear directorio de montaje en el directorio raíz. En este caso, lo llamaremos, justamente, "montaje".

13. Crear directorios "padre" dentro de "montaje", si es necesario. Ejemplo:
devsda1
devsdb1
devsdc1

14. Aplicar de manera recursiva al directorio "montaje" [chmod 777 montaje] para que sea escribible por todos los usuarios, en principio. Creemos en que las restricciones debe hacerlas Samba, no el sistema, para evitar conflictos de autenticación, en donde el subsistema Samba otorga permisos de acceso y el sistema OpenSuse los deniega a la misma vez.

*** OPCIONAL *** Al directorio "montaje", aplicarle el comando [chgrp users montaje] para cambiar el grupo preestablecido por "root" al crear el directorio ***

15. Al directorio "montaje", aplicarle el comando [chattr +i montaje] para que no pueda ser borrado.

16. A los directorios "padre" internos de "montaje", aplicarle el comando [chattr +i DIRECTORIO] para que no puedan ser borrados. Recordar que al aplicar este comando a las particiones por entero, de no haber creado previamente al menos 1 directorio escribible en cada una de ellas, la opción de escritura no estará disponible.

17. Editar fstab con vi [vi /etc/fstab]
Pulsar <Insert> o <i>
Agregar estas líneas al final de las ya existentes:
UUID=248fafdc-4536-4d17-8e69-f97b8791f20c /montaje/devsda1/ ext4 defaults 0 0
UUID=2e03d491-7f14-4836-a9e6-a37898757eb7 /montaje/devsdb1/ ext4 defaults 0 0
Luego <Esc> :wq <Enter> para escribir los cambios y salir

18. Establecer:

  • dirección IP fija,
  • máscara de IP,
  • IP de encaminamiento,
  • nombre de equipo.


19. Configurar el cargador de arranque para que:

  • no demore más de 2 segundos en permanecer esperando interacción del usuario,
  • no busque sistemas operativos foráneos,
  • oculte el menú en el arranque.

Aunque la opción de ocultar el menú ya es suficiente para la mayoría de los casos, también se puede proteger el cargador con contraseña en entornos desconocidos o de desconfianza exacerbada.

20. En el cortafuegos, habilitar el servidor y el cliente Samba para la zona externa, para que los equipos puedan comunicarse con el servidor sin restricciones de este tipo.

21. Configurar el servidor Samba, del siguiente modo:

  • sin controlador de dominio,
  • con inicio durante el arranque,
  • con puerto abierto en el cortafuegos.

Desactivar todas las entradas dentro de "Recursos compartidos", e introducir las rutas de los directorios que sí se quieren compartir.

22. EN EL SISTEMA, crear todos los usuarios que tendrán acceso al servidor, cada uno con su contraseña correspondiente, desactivando el inicio de sesión para ellos.

23. EN SAMBA, crear todos los usuarios que tendrán acceso al servidor, cada uno con la misma contraseña de acceso al sistema, para mayor practicidad al acceder a los datos.
[smbpasswd -a USUARIO]
Es de muy buena práctica, que en los sistemas operativos que accederán al servidor los usuarios posean idéntico nombre y contraseña, es decir, que los usuarios y contraseñas del servidor Linux sean los mismos que en Samba y que en los sistemas Linux, Windows y MAC que accedan a él a través de la red.

24. En "Centro de seguridad y fortificación" de Yast -> Configuración de arranque, configurar el sistema para que el apagado solo pueda ser realizado por superusuarios. 

25. EN EL SISTEMA, crear grupos de usuarios e incluír a los usuarios involucrados, por ejemplo "daniela" y "alcides" en "administracion", "lilián" y "santiago" en "dirección", etc.

26. Crear copia de seguridad del archivo /etc/samba/smb.conf, y luego abrirlo y agregar
writeable = yes
browseable = yes
guest ok = Yes o No, según corresponda
write list = @NOMBRE_DEL_GRUPO USUARIO_(OPCIONAL)
read list = @NOMBRE_DEL_GRUPO USUARIO_(OPCIONAL)
valid users = @NOMBRE_DEL_GRUPO USUARIO_(OPCIONAL)
en cada sección correspondiente, para obtener acceso a nivel de GRUPOS mediante Samba al servidor OpenSuse.
Para DIRECTORIOS PÚBLICOS:
writeable = yes
browseable = yes
guest ok = yes
create mask = 777
directory mask = 777

27. Ejecutar el comando testparm /etc/samba/smb.conf para asegurarnos de que no haya errores de sintaxis en el archivo smb.conf que acabamos de modificar. Si surge este tipo de error, la consola devolverá el mensaje 'Ignoring unknown parameter "SENTENCIA_MAL_ESCRITA"', y habrá que revisar nuestra configuración.



Artículos consultados:

https://en.opensuse.org/SDB:Basics_of_partitions,_filesystems,_mount_points

https://forums.opensuse.org/showthread.php/470431-How-to-Auto-Mount-HDDs

https://en.opensuse.org/SDB:Mount_additional_disk

https://forums.opensuse.org/showthread.php/413463-FSTAB-Editing-Manually

https://unix.stackexchange.com/questions/658/linux-how-can-i-view-all-uuids-for-all-available-disks-on-my-system

https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html

https://www.techrepublic.com/article/how-to-set-up-quick-and-easy-file-sharing-with-samba/

https://www.howtoforge.com/samba-server-installation-opensuse-13.2

https://unix.stackexchange.com/questions/197175/how-to-properly-configure-samba-access-using-groups

https://www.cyberciti.biz/tips/test-your-samba-server-for-configuration-errors.html


ARTÍCULO EN CONSTRUCCIÓN...