Está en la página 1de 8

Servidor de archivos con Samba en UBUNTU

No es una receta, no partimos de cero y es como recordatorio para nivel INTERMEDIO en LINUX.

Lista de tareas:

1. Adaptar cortafuego de sistema para que acepte Samba he impresoras


2. Configuración común de Samba
3. Seguridad
4. Agregar usuarios y grupos
5. Configurar la forma de compartir carpetas
6. Ejemplo
7. Compartir Impresoras conectadas al server
8. Negar el almacenamiento a ciertas extensiones de archivos
9. Reiniciar servicio samba
10. Probar

Cortafuego para que acepte samba he impresoras


Normalmente Ubuntu tiene el cortafuegos habilitado y sino mejor habilitarlo. Hay que decirle que deje
pasar protocolo samba y cups:

$ sudo ufw status verbose


$ sudo ufw enable
$ sudo ufw allow Samba
$ sudo ufw allow Cups

Configuración común de Samba


TODA la configuración de samba se hace en un solo archivo /etc/samba/smb.conf y es recomendable hacer
una copia del original

Edite el archivo /etc/samba/smb.conf:

$ sudo nano /etc/samba/smb.conf


Dentro de este archivo, encontrará información que será de utilidad y que está comentada con numeral
(símbolo #) y varios ejemplos comentados con punto y coma (símbolo ;), siendo estos últimos los que se
pueden tomar como referencia para configurar.

Opción workgroup.
Se utiliza para establecer el grupo de trabajo. El valor puede estar indistintamente en mayúsculas o
minúsculas y debe tener una longitud del nombre debe ser de hasta 12 caracteres.

Laboratorio Samba – Administración de Servidores (2018-1)


Ejemplo:

workgroup = MIGRUPO

Opción netbios name.


Permite establecer arbitrariamente un nombre de anfitrión distinto al detectado automáticamente. Este
nombre de anfitrión deberá corresponder con el establecido en el archivo /etc/samba/lmhosts. El valor
puede estar indistintamente en mayúsculas o minúsculas y debe tener una longitud del nombre debe ser
de hasta 12 caracteres.

Ejemplo:

netbios name = servidor

Opción server string.


Es de carácter informativo para los usuarios de la red de área local. Permite definir una descripción breve
acerca del servidor.

server string = Servidor Samba %v en %L

Opción hosts allow.


Permite establecer seguridad adicional estableciendo la lista de control de acceso de anfitriones. En ésta se
pueden definir direcciones IP individuales o redes que tendrán permiso de acceso hacia el servidor. Si, por
mencionar un ejemplo, la red consiste en las anfitriones con dirección IP que van desde 192.168.70.1 hasta
192.168.70.254, el rango de direcciones IP que se definirá en hosts allow será «192.168.70.», de modo tal
que sólo se permitirá el acceso dichas máquinas. En el siguiente ejemplo se definen las redes
192.168.70.0/24 y 192.168.37.0/24, especificando los tres primeros octetos de la dirección IP de red, así
como cualquier dirección IP de la red 127.0.0.0/8 (retorno del sistema o loopback), siendo necesario definir
sólo el primer octeto de dicho segmento:

hosts allow = 127., 192.168.70., 192.168.37.

Agregar usuarios y grupos


Las cuentas de usuario que se utilizarán para acceder hacia Samba pueden prescindir de acceso al intérprete
de mandatos. Se puede definir /sbin/nologin o /bin/false como intérprete de mandatos para la cuenta de
usuario involucrada.

$ sudo useradd -s /sbin/nologin fulano


$ sudo smbpasswd -a fulano

Es opcional e innecesario asignar contraseña con passwd, por lo cual las cuentas correspondientes estarían
inactivas para el resto de los servicios.

Laboratorio Samba – Administración de Servidores (2018-1)


Es MUY recomendable cuando se tienen muchos usuarios usar grupos para administrar los permisos de
acceso más rápidamente. Se usan los grupos del sistema y se agregan así

$ sudo groupadd departamento_contable


$ sudo groupadd departamento_grafico

Y para agregar usuarios al grupo se hace

$ sudo useradd -g departamento_contable -m fulano


$ sudo useradd -g departamento_grafico -m mengano

Seguridad
Hay varios aspectos para ver de la seguridad. El principal es configurar correctamente el dueño y grupo de
la carpeta y archivos del sistema. Podemos hacerlo al crear una carpeta

$ sudo mkdir algo


$ sudo chown usuario:grupo -R algo

Si queremos cambiar solo el grupo hacemos

$ sudo chgrp grupo /algo

Más al respecto en https://help.ubuntu.com/lts/serverguide/user-management.html

Configurar la forma de compartir carpetas


Para los directorios o volúmenes que se irán a compartir, en el mismo archivo de configuración encontrará
distintos ejemplos para distintas situaciones particulares.

$ sudo nano /etc/samba/smb.conf


Lo siguiente corresponde a un ejemplo básico:

[lo_que_sea]
comment = Comentario que se le ocurra
path = /cualquier/ruta/que/desee/compartir

Procure que los nombres de los recursos a compartir tengan un máximo de 12 caracteres, utilizando sólo
caracteres alfanuméricos de la tabla de caracteres ASCII.

El volumen puede utilizar cualquiera de las siguientes opciones:

O P C I ÓN D E S C RI P CI Ó N
Define si se permitirá el acceso como usuario invitado.
guest ok
El valor puede ser Yes o No.

Laboratorio Samba – Administración de Servidores (2018-1)


Es un equivalente de guest ok, es decir define si se permitirá el acceso como
public
usuario invitado. El valor puede ser Yes o No.

Define si se permitirá mostrar este recurso en las listas de recursos compartidos.


browseable
El valor puede ser Yes o No.

Define si se permitirá la escritura. Es la opción contraria de read only.


El valor puede ser Yes o No.
writable
Ejemplos: «writable = Yes» es lo mismo que «read only = No».
Obviamente «writable = No» es lo mismo que «read only = Yes»

Define los usuarios o grupos, que podrán acceder al recurso compartido.


Los valores pueden ser nombres de usuarios separados por comas o bien
valid users
nombres de grupo antecedidos por una @.
Ejemplo: fulano, mengano, @administradores

Define los usuarios o grupos, que podrán acceder con permiso de escritura.
Los valores pueden ser nombres de usuarios separados por comas o bien
write list
nombres de grupo antecedidos por una @.
Ejemplo: fulano, mengano, @administradores

Define los usuarios o grupos, que podrán acceder con permisos administrativos
para el recurso. Es decir, podrán acceder hacia el recurso realizando todas las
operaciones como super-usuarios.
admin users
Los valores pueden ser nombres de usuarios separados por comas o bien
nombres de grupo antecedidos por una @.
Ejemplo: fulano, mengano, @administradores

Es lo mismo que directory mode.


Define qué permiso en el sistema tendrán los subdirectorios creados dentro del
directory mask
recurso.
Ejemplos: 1777

Define que permiso en el sistema tendrán los nuevos archivos creados dentro del
create mask recurso.
Ejemplo: 0644

IMPORTANTE!
No basta con definirla en el archivo de configuración, también hay que definir los permisos del sistema
en ella con “chown”

Laboratorio Samba – Administración de Servidores (2018-1)


Ejemplo
En el siguiente ejemplo se compartirá a través de Samba el recurso denominado ejemplo, el cual está
localizado en el directorio /srv/samba/ejemplo de la unidad de almacenamiento. Se permitirá el acceso a
cualquiera, pero será un recurso de sólo lectura excepto para los usuarios fulano y mengano, quienes
tendrán privilegios de lectura y escritura. Todo nuevo directorio que sea creado en su interior tendrá
permiso 755 (drwxr-xr-x) y todo archivo que sea puesto en su interior tendrá permisos 644 (-rw-r–r–).

Suponemos que aún no se agregaron los usuarios, entonces, los agregamos al sistema:

$ sudo useradd -s /sbin/nologin fulano


$ sudo smbpasswd -a fulano
$ sudo useradd -s /sbin/nologin mengano
$ sudo smbpasswd -a mengano
$ sudo groupadd los_fulanos
$ sudo useradd -g los_fulanos -m fulano
$ sudo useradd -g los_fulanos -m mengano

Genere el nuevo directorio /srv/samba/ejemplo ejecutando lo siguiente:

$ sudo mkdir -p /srv/samba/ejemplo

Configure los permisos de esta carpeta

$ sudo chown nobody:nogroup /srv/samba/ejemplo

Edite el archivo /etc/samba/smb.conf:

$ sudo nano /etc/samba/smb.conf

Al final del archivo añada el siguiente contenido:

Laboratorio Samba – Administración de Servidores (2018-1)


[ejemplo]
comment = Recurso de ejemplo
path = /srv/samba/ejemplo
guest ok = Yes
read only = Yes
write list = @los_fulanos # o usuarios individuales separado con coma
directory mask = 0755
create mask = 0644

Guarde los cambios y salga del editor de texto. Reinicie el servicio smb para aplicar los cambios:

$ sudo service smbd restart

Compartir impresoras conectadas al server


Las impresoras se comparten de modo predeterminado y sólo hay que realizar algunos ajustes. Si se desea
que se pueda acceder hacia la impresora como usuario invitado sin contraseña, añada public = Yes (lo
mismo que guest ok = Yes) en la sección de impresoras.

Edite el archivo /etc/samba/smb.conf:

$ sudo nano /etc/samba/smb.conf

Localice la sección de impresoras y añada public = Yes a la configuración:

[printers]
comment = El comentario que guste.
path = /var/spool/samba
printable = yes
browseable = no
writable = no
printable = yes
public = yes
guest ok = yes # OJO ONSERVE BIEN ESTA LINEA!

Negar el almacenamiento a ciertas extensiones de


archivos he iniciados con “.”
En algunos casos puede ser necesario denegar el acceso a ciertas extensiones de archivos, como archivos
de sistema y archivos de multimedios como MP3, MP4, MPEG y DivX.

Laboratorio Samba – Administración de Servidores (2018-1)


El parámetro veto files se utiliza para especificar la lista, separada por diagonales, de aquellas cadenas de
texto que denegarán el acceso a los archivos cuyos nombres contengan estas cadenas. En el siguiente
ejemplo, se denegará el acceso hacia los archivos cuyos nombres incluyan la palabra «Security» y los que
tengan extensión o terminen en «.tmp»:

[homes]
comment = Home Directories
browseable = no
writable = yes
hide dot files = Yes
veto files = /*Security*/*.tmp/

En el siguiente ejemplo, se denegará el acceso hacia los archivos que tengan las extensiones o terminen
en «.mp3», «.mp4», «.mpeg» y «.avi» en todos los directorios personales de todos los usuarios del
sistema:

[homes]
comment = Home Directories
browseable = no
writable = yes
hide dot files = Yes
veto files = /*.mp3/*.mp4/*.mpg/*.avi/*.tmp/

Reiniciar el servicio samba


Reinicie el servicio smb para aplicar los cambios:

$ sudo service smbd restart

Probar

Acceda con smbclient hacia el servidor Samba con el usuario fulano:

smbclient //127.0.0.1/fulano -Ufulano%123qwe

Lo anterior debe devolver una salida similar a la siguiente:

Domain=[M064] OS=[Unix] Server=[Samba 3.2.0rc1-14.9.el5.al]


smb: >

Utilizando el mandato put del intérprete SMB, suba el archivo prueba.txt al directorio personal de fulano:

Laboratorio Samba – Administración de Servidores (2018-1)


smb: > put prueba.mp3

Lo anterior debe devolver una salida similar a la siguiente indicando el


mensaje NT_STATUS_OBJECT_NAME_NOT_FOUND como respuesta, lo cual indica que no fue permitido
subir el archivo prueba.mp3:

smb: > put prueba.mp3


NT_STATUS_OBJECT_NAME_NOT_FOUND opening remote file
prueba.mp3
smb: >

Para salir del intérprete SMB utilice el mandato exit:

smb: > exit

Laboratorio Samba – Administración de Servidores (2018-1)

También podría gustarte