Como instalar Samba en Debian o Ubuntu

Publicado por firecold, Julio 28, 2015, 12:31:33 AM

Tema anterior - Siguiente tema

firecold

¿QUE ES SAMBA?
CitarSamba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que computadoras con GNU/Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autentificar con su propio archivo de usuarios.

Entre los sistemas tipo Unix en los que se puede ejecutar Samba, están las distribuciones GNU/Linux, Solaris y las diferentes variantes BSD entre las que podemos encontrar el Mac OS X Server de Apple.

Samba nos permite compartir archivos, directorios e impresoras en red entre Windows, Gnu/Linux, Mac, Unix, esto es muy util cuando te encuentras en una red y deseas compartir entre equipos cierta informacion, como documentos, musica, etc.

Parametros de Configuracion

Estos son algunos parámetros de configuración normalmente vistos en smb.conf, pero hay muchos mas, lo que no los encuentren aqui los encontraran aca: Parametros Samba en Español, Smb.conf

Globales

  • check password script : permite definir un script que verificará la complejidad de la contraseña definida, retornando 0 si es aprobada por el programa indicado
  • debug uid : permite registrar los uid, gid, euid y egid del usuario que solicita un recurso en el log del servidor
  • domain master : habilita a nmbd con un nombre NetBios específico que lo identifica como maestro de dominio del grupo de trabajo indicado
  • guest account : usuario utilizado para acceder a los recursos que tienen definido "guest ok"
  • include : incluye otro archivo de configuración complementario
  • interfaces: El parámetro interfaces permite establecer desde que interfaces de red del sistema se escucharán peticiones.
  • debuglevel o log level : permite definir el nivel de detalle del log.
  • map to guest : le indica al servidor la acción a tomar cuando falla el inicio de sesión de un usuario. inútil en security = share o server.
    Estos tres valores son:
    Never - Significa que las solicitudes de conexión con una clave incorrecta se rechazan. Este es el valor por defecto.
    Bad User - Significa que las solicitudes de conexión con una clave incorrecta se rechazan, salvo que el nombre de usuario no exista, en cuyo caso se trata como una conexión de invitado y se aplica en guest account.
    Bad Password - Significa que las conexiones de usuarios con claves incorrectas se tratan como conexiones de invitados y se aplican en guest account. Observe que esto puede originar problemas en tanto que significa que cualquier usuario que se equivoque al teclear su clave será conectado como invitado de forma inadvertida sin ningún mensaje de que ha introducido una clave incorrecta.
  • max log size : tamaño máximo del log
  • message command : le indica al servidor la acción al recibir un mensaje tipo WinPopup
  • netbios name : nombre netbios del servidor samba
  • null passwords : permite el acceso a usuarios con contraseñas vacías
  • panic action : comando a realizar al caerse smbd o nmbd
  • prefered master o preferred master : indica si samba es preferencialmente maestro en el grupo de trabajo
  • security : determina cómo los clientes responden el logeo (usuario y contraseña) según el "security mode bit" enviado en las negociaciones de protocolo.
    share : clientes se registran al solicitar un recurso (permite ver la lista de recursos para visitas)
    user : clientes se registran al solicitar la lista de recursos o solicitar un recurso
    domain : idéntico al anterior, pero los datos de registro se consultan con controlador de dominio
    server : idéntico al anterior, pero los datos de registro se consultan con servidor SMB
  • server string : texto desplegado como nombre completo del servidor.
  • remote announce: se encarga de que el servicio nmbd se anuncie a si mismo de forma periódica hacia una red en particular y un grupo de trabajo específico.
  • workgroup: indica el nombre del grupo de trabajo (o dominio) en el que se quiere que funcione Samba.
  • wins support:  indica si se desea que el servidor Samba actue como un servidor WINS.
  • wins server : = <host>, indica que maquina actua como servidor WINS. Es decir, se supone que la maquina que ejecute Samba actuaria como cliente WINS.

Recursos

  • administrative share : recurso administrativo. creado por defecto en sistemas MS. Por Ejemplo: C$ , D$ , IPC$.
  • admin users : lista de usuarios con total permiso sobre los recursos (no aplica si secury = share).
  • browsable o browseable : define si el recurso es apreciable en la lista de recursos del servidor.
  • comment : permite definir un comentario aplicado al recurso, desplegable en los recursos de toda la red; a través de net view o de smbclient.
  • create mode o create mask : permite restringir los permisos de los archivos/directorios creados en un recurso a través de una máscara de permisos.
  • force create mode : permite aplicar permisos a los archivos/directorios creados en un recurso.
  • directory mode o directory mask : similar a create mode o create mask, aplicado a directorios.
  • force directory mode : similar a force create mode, aplicado a directorios
  • directory security mask : mascara de permisos aplicado a clientes Windows NT.
  • group o force group : grupo utilizado como gid del usuario conectado.
  • user o force user : usuario utilizado como uid del usuario conectado.
  • guest ok : permite acceder a un recurso sin identificarse.
  • only guest o guest only : permite acceder sólo a usuarios sin identificación. requiere el parámetro "guest ok".
  • allow hosts o hosts allow : lista de equipos permitidos de acceder al recurso. puede aplicar como global.
  • deny hosts o hosts deny : lista de equipos no permitidos de acceder al recurso. puede aplicar como global.
  • invalid users : lista de usuarios no permitidos de acceder al recurso.
  • only user : permite el acceso sólo a los usuarios en la lista user.
  • directory o path : ruta del recurso indicado.
  • read list : lista de usuarios que tienen acceso de sólo lectura.
  • read only o writeable : no se permite crear ni modificar los archivos/directorios del recurso.
  • user , users o username : usuarios con los cuales se probará la contraseña entregada.
  • valid users : lista de usuarios permitidos de acceder al recurso.
  • 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.
  • delete veto files: con la opcion yes permite borrar los veto files y no la viceversa.
  • invalid users : lista de usuarios no permitidos de acceder al recurso.
  • writable o writeable : permite escribir/modificar en el recurso indicado

usershares
       Parámetros de configuración aplicables a las carpetas compartidas a través de nautilus ("Opciones de compartición"):

  • usershare allow guests : las carpetas compartidas serán accedidas por los usuarios sin registrarse.
  • usershare max shares : número máximo de carpetas compartidas por usuario.
  • usershare owner only : permite compartir sólo las carpetas pertenecientes al usuario.
  • usershare path : ruta donde se almacenan las carpetas compartidas por cada usuario (los permisos de la carpeta indicada controlan quienes pueden compartir a través de este medio).
  • usershare prefix allow list : lista separada por comas de las rutas absolutas permitidas para compartir (incluye directorios dentro de estas rutas).
  • usershare prefix deny list : lista separada por comas de las rutas absolutas no permitidas para compartir (incluye directorios dentro de estas rutas)

INSTALACION DE SAMBA

Para poder instalar Samba en Debian como en Ubuntu tendremos que instalar los paquetes correspondiente y lo haremos en consola con:

Código (bash) [Seleccionar]
apt-get install samba samba-client cifs-utils smbclient

Habiendo terminado la instalacion y sus dependencias podremos configurar Samba con el archivo /etc/samba/smb.conf, en mi caso mi archivo de configuracion no ha cambiado con los años, ya que samba a cambiado muy poco, pero sigue siendo igual de util, esta configuracion esta probada en WinXP/WinVista/Win7/Win8/Win8.1, compartiendo archivos sin ningun problema.

[global]
workgroup = proxy.os.com   # nombre del grupo de trabajo.
server string = Servidor de Archivos
        netbios name = PROXY
dns proxy = no
security = user                    # modo de seguridad.
passdb backend = tdbsam
cups options = raw
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192   # Parámetros de optimizacion.
usershare allow guests = yes
map to guest = Bad User
username map = /etc/samba/smbusers       # cuando falla el inicio debe de hacer esto.
guest ok = yes
log file = /var/log/samba/log.%m               # log de samba.
max log size = 100
syslog = 0
name resolve order = lmhosts host wins bcast
time server = yes                                      # si tienes un servidor de hora y lo quieres integrar.
interfaces = lo eth0 192.168.1.0/24            # interface y segmento de red que acepto, para vizualizar samba.
hosts allow = 127. 192.168.1.                    # segmentos de red que pueden vizualizar samba.
        veto files = /*.inf/*.bat/*.scr/*.lnk/*.cmd/  # vetar estos archivos por seguridad.
        delete veto files = yes
########## Printing ##########
load printers = yes                                    # Este segmento de Printing, incluye printers y print$ es para poder 
printing = cups                                         # compartir impresoras por medio de Samba y Cups, usándolo  como
printcap name = cups                               # servidor impresión.
usershare max shares = 100
encrypt passwords = true
guest account = nobody
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = yes
read only = yes
use client driver = Yes
# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = yes

##################
#Carpetas compartidas     # Carpeta Publica Compartida, para que pueda ingresar todo mundo.
##################
[impresiones]
path = /home/servidor/Documentos/impresiones
writeable = yes
browseable = yes
guest ok = yes


Ahora bien esta configuracion es para poder usar de forma publica las carpetas compartidas, eso quiere decir que nadie tiene que ingresar usuario y contraseña,  pero si deseas que nadie entre a tus archivos puedes agregar recursos compartidos con autenticavion de esta manera.

Primero debo crear el usuario y adjuntarlo con el grupo de Sambashare asi:
Código (bash) [Seleccionar]
useradd -g sambashare erick
passwd erick


Despues crear una contraseña para samba y no habrá problema ya que el usuario ya existe:
Código (bash) [Seleccionar]
smbpasswd -a erick

Despues debes crear la carpeta y dar permisos a dicha carpeta:
Código (bash) [Seleccionar]
mkdir /home/servidor/Documentos/erick
chmod 777 /home/servidor/Documentos/erick


Ahora solo falta la configuración en smb.conf, la cual debe de ir en la parte final:
[erick]
comment = Cosas de Erick
path = /home/servidor/Documentos/erick
writeable = yes
browseable = yes
read only = no
create mask = 0774
directory mask = 0777
valid users = erick
admin users = erick


Las ultimas dos lineas es para que únicamente solo yo pueda entrar, como parte de configurar el servicio y el archivo de configuración de Samba, existe una herramienta muy importante que es:
Código (bash) [Seleccionar]
testparm

Con esto puedes saber si tu archivo de configuración se encuentra sintacticamente correcto, esto es muy importante, aunque debes de saber que puede estar sintacticamente correcto, pero también puede estar errada la configuracion.

Por ultimo reiniciamos servicios:
Código (bash) [Seleccionar]
service smbd restart

Como parte de este post agregue muchas de las opciones que uso, con su significado, para no explicar parámetro por parámetro, como también para que tengan conocimiento de lo que hacen, ya que hay muchos post sobre samba, que son de copiar y pegar, pero sin entender nada, esto les da la oportunidad de saber lo que hacen si asi lo quieren.










Espero les sea de utilidad, Saludos

firecold

Hay comandos importantes que puedes utilizar para saber si los cambios que hicistes fueron exitosos, el primero:
smbclient -L localhost -U%

Nos mostrara todos los medios compartidos, workgroup y demas, pero si lo unico que deseas es conocer los recursos compartidos:
smbtree

Este nos permitira tambien poder saber la direccion a seguir para encontrar el recurso compartido, solo agregando smb://, ejemplo:
smb://proxy/impresiones/


Saludos