Mostrando entradas con la etiqueta servidor samba. Mostrar todas las entradas
Mostrando entradas con la etiqueta servidor samba. Mostrar todas las entradas

jueves, 10 de diciembre de 2020

Servidor de archivos Samba orientado a openSUSE

                            (C) Hugo Napoli, 2018                          
                            (P) Hugo Napoli, 2020                          

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

Se utilizará la consola durante todo el tutorial. Es recomendable iniciarla en modo superusuario  (o "root"). También se utilizará el editor de archivos "vi".

Idea básica:

- Instalación de Linux (en este caso, Opensuse) con repositorios nativos únicamente, y con escritorio XFCE para poder mantener un entorno gráfico liviano.
- Creación de cada usuario Windows que vaya a conectarse, con las mismas contraseñas en ambos sistemas.
- Creación de directorio/s a compartir.
- Aplicación de permisos (chmod) a dichos directorios.
- Configuración en Samba de los mismos directorios compartidos.
- Establecimiento de nombre de host.
- Establecimiento de dirección IP de host.
 
 
En primer lugar, deberemos identificarnos como usuario "root":

su [ENTER] (e ingresar la contraseña del usuario root). 

1. Revisar si está instalado Samba:

zypper search samba

1.1. De no estar instalado, instalarlo:

zypper install samba

En lugar de instalar únicamente "Samba", se puede probar a instalar los siguientes paquetes, dependiendo de la distribución Linux de la que se trate:
samba samba-common system-config-samba cifs-utils python-glade2 

2. Crear el directorio necesario para compartir archivos:

mkdir /servidor-admin

2.1. Cambiar los permisos de acceso de dicho directorio, para que todos puedan acceder a él:

chmod 777 /servidor-admin

2.2. Comprobar que los directorios han sido creados correctamente, y que sus permisos son los adecuados:

ls -l /servidor-admin

3. Crear los diferentes usuarios openSUSE (con sus directorios "home" correspondientes) que accederán a los archivos del servidor:

useradd -c "Mariana Nasazzi" mariana -m -d /home/mariana
useradd -c "Oscar Italiano" oscar -m -d /home/oscar
useradd -c "Jorge Martínez" jorge -m -d /home/jorge
useradd -c "Lorena Gutiérrez" lorena -m -d /home/lorena

3.1. Si quisiéramos crear usuarios sin directorio "home", podemos utilizar la siguiente línea:

useradd -M pepe
 
3.2. Hay varias maneras de comprobar si los usuarios recientemente creados ya figuran en la lista de usuarios del sistema, siendo cat /etc/passwd una la más usuales entre los usuarios Linux.
Pero esta sentencia nos mostrará todos los usuarios existentes, no solamente los que acabamos de crear. Esta lista puede ser extensa, y en nuestro caso, más vale acotarla.
Para ello, también existen varios métodos. Utilizaremos el siguiente:

cat /etc/passwd | grep home

Lo anteriormente escrito, mostrará los usuarios que poseen directorio home, tal como fueron creados en el paso 3.

3.3. Para eliminar usuarios, utilizaremos el comando userdel, de un modo muy sencillo:

userdel pepe

Borrará al usuario "pepe"

4. Crear las contraseñas de acceso de dichos usuarios del sistema:

passwd mariana
passwd oscar
passwd jorge
passwd lorena

5. Crear el grupo que contendrá a los 4 usuarios:

groupadd administracion

6. Incluír en dicho grupo a todos los usuarios recientemente creados:

usermod -a -G administracion mariana
usermod -a -G administracion oscar
usermod -a -G administracion jorge
usermod -a -G administracion lorena

7. Habilitar a dichos usuarios para el uso de samba:

smbpasswd -a mariana
smbpasswd -a oscar
smbpasswd -a jorge
smbpasswd -a lorena

8. De nuevo, creamos los directorios dentro del directorio "padre" en donde de clasificará la información a compartir:

mkdir /servidor-admin/planillas
mkdir /servidor-admin/texto
mkdir /servidor-admin/imagenes
mkdir /servidor-admin/otros

Obsérvese que en algunos casos, no se utilizan tildes por precaución ante problemas posteriores (es el caso del directorio "imágenes" o el grupo "administración", por ejemplo).

9. Nos movemos al directorio "Samba":

cd /etc/samba

9.1. Listamos su contenido, para comprobar la existencia del archivo de configuración "smb.conf":

ls -l

10. Respaldamos el archivo Samba original, para recuperarlo en caso de "desastre":

cp smb.conf smbANT.conf

11. Abrimos en modo edición el archivo Samba existente (no el respaldado recientemente) con el editor "vi":

vi smb.conf

12. Presionamos la tecla "INSERT", y establecemos:

[global]
workgroup = @administracion
netbios name = servidor
security = user

Si existe información en el área "global", la eliminamos, e introducimos la que acabamos de indicar.

Método #2

9. Editamos el archivo /etc/samba/smb.conf, dejando la sección [GLOBAL] intacta.
Debajo del todo, agregamos las siguientes líneas:

[planillas] #Nombre "fantasía" del directorio (así es como aparecerá en la red para todos los usuarios)
path = /servidor-admin/planillas/
read only = no
browseable = yes
writeable = yes
valid users = lorena # Solamente Lorena tendrá acceso a este directorio

[texto] #Nombre "fantasía" del directorio (así es como aparecerá en la red para todos los usuarios)
path = /servidor-admin/texto/
read only = no
browsable = yes
writeable = yes
valid users = mariana oscar # Solamente Mariana y Oscar tendrán acceso a este directorio

[imagenes] #Nombre "fantasía" del directorio (así es como aparecerá en la red para todos los usuarios)
path = /servidor-admin/imagenes/
read only = no
browsable = yes
writeable = yes
valid users = Jorge # Solamente Jorge tendrá acceso a este directorio

[otros] #Nombre "fantasía" del directorio (así es como aparecerá en la red para todos los usuarios)
path = /servidor-admin/otros/
read only = no
browsable = yes
writeable = yes
valid users = mariana oscar jorge lorena # Los 4 usuarios tendrán acceso a este directorio

ENTRADA EN CONSTRUCCIÓN

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...