Samba
son un conjunto de aplicaciones libres para Linux que implementan el
protocolo de comunicación SMB utilizado por los sistemas operativos
Microsoft Windows para compartir carpetas e impresoras.
Básicamente
samba permite a PCs que utilizan Linux conectarse a carpetas
compartidas en PCs con Windows, gracias a samba, en una red podemos
tener PCs con Windows y PCs con Linux que puedan intercambiar
información en carpetas compartidas.
Cuando
en una misma red conviven sistemas Linux con equipos Windows, se
utiliza samba para integrarlos y poder intercambiar información.
Como alternativa, sería posible utilizar protocolos estándar como
el FTP que es utilizado tanto equipos Windows como equipos Linux.
Red
con sistemas Windows y Linux
Samba
permite a un PC con Linux comportarse como un controlador de dominio
de Windows para redes Microsoft con prestaciones superiores a las que
nos ofrecería un servidor con Windows NT Server 4.0.
Instalación
de samba
Samba
se compone de varios paquetes. Destacamos los más importantes:
samba:
Servidor de archivos e impresoras tipo LanManager para maquinas
Linux.
samba-common:
Archivos de samba utilizados para clientes y servidores.
smbclient:
Cliente simple tipo LanManager para maquinas Linux.
swat:
Herramienta de administración de Samba vía Web.
samba-doc:
Documentación de Samba.
smbfs:
Comandos para montar y desmontar unidades de red samba
winbind:
Servicio para resolver información de usuarios y grupos de
servidores Windows NT
Para
instalar los paquetes necesarios ejecutaremos en el terminal:
aceitunero@Pc15:~$
sudo apt-get install samba samba-common smbclient samba-doc smbfs
De
esta forma instalamos los paquetes básicos para iniciar el servicio
de SAMBA.
Configuración
de samba
Samba
dispone de un archivo de texto para su configuración. Se trata del
archivo: /etc/samba/smb.conf
El
archivo de configuración de samba es bastante extenso, pero para
empezar tenemos que hacer muy pocos cambios. El archivo de
configuración se divide en secciones identificadas porque su un
nombre va escrito entre corchetes. Hay tres secciones especiales que
son [global], [homes] y [printers].
Para
compartir una carpeta, debemos crear una sección nueva. El nombre de
la sección, será el nombre del recurso compartido. Ejemplo, si
queremos compartir la carpeta /home/ archivos_compartidos y llamar al
recurso compartido archivos_compartidos, debemos crear una sección
llamada [archivos_compartidos].
Para
facilitar la configuración de samba existe una herramienta llamada
swat
que permite, vía Web, configurar la aplicación.
En
el archivo smb.conf se pueden configurar más de 300 parámetros y
miles de configuraciones, pero analizaremos los parámetros más
importantes, para compartir archivos e impresoras.
Vamos
a ver un sencillo ejemplo de archivo de configuración de samba
(smb.conf):
#Sección
global, parámetros generales
[global]
#
Seguridad por usuarios
security
= user
#
Grupo de trabajo "Oficina"
workgroup
= Oficina
#
Las contraseñas se deberán enviar encriptadas
encrypt
passwords = yes
#
Samba será servidor wins
wins
support = yes
#
Nivel y longitud máxima del archivo de registro
log
level = 1
max
log size = 1000
#
Por defecto, lectura y escritura
read
only = no
#
Se comparten también las impresoras
load
printers = yes
#
Sección homes, carpetas home de usuarios
[homes]
#
Comentario
comment
= Carpetas home
#
No explorables
browsable
= no
#
Máscara de creación de archivos (rxw------)
create
mask = 0700
#
Máscara de creación de carpetas
directory
mask = 0700
#
Sección printers, impresoras
[printers]
path
= /var/tmp
printable
= yes
min
print space = 2000
#
Carpeta común archivos_compartidos
[archivos_compartidos]
#
Ruta de la carpeta compartida
path
= /home/archivos_compartidos
#
Explorable
browsable
= yes
#
Lectura y escritura
read
only = no
#
Máscara de creación de archivos (rxwrxw---)
create
mask = 0770
#
Máscara de creación de carpetas
directory
mask = 0770
#
Carpeta común administracion
[administracion]
browsable
= yes
read
only = no
path
= /home/archivos_compartidos/administracion
#
Carpeta común de la empresa (solo lectura)
[programas]
browsable
= yes
read
only = yes
#
Se admiten invitados
guest
ok = yes
path
= /home/invitados
#
Parámetros impresora
[HP_1010]
path
= /tmp
#
Se permite imprimir
printable
= yes
Las
líneas que comienzan por almohadilla (#) o punto y coma (;) son
líneas de comentarios y son ignoradas por samba.
El
archivo smb.conf está dividido en secciones. Ninguna de las
secciones son obligatorias aunque normalmente suelen tener las
siguientes secciones:
Sección
[global]
En
la sección [global] se configuran los parámetros globales que
determinarán el modo de comportamiento general del servidor samba.
Los parámetros que se omitan tomarán el valor por defecto. Existen
unos 300 parámetros que se pueden configurar en ésta sección.
Vamos
a exponer los parámetros más importantes y el valor:
hosts
allow = 192.168.
Permite
especificar desde qué direcciones IP se podrá acceder al servicio.
Ej.: Si ponemos 192.168. significa todas las que empiecen por
192.168. accederán al servicio. Se pueden poner IP concretas.
hosts
deny = 10.
Igual
que hosts allow pero para especificar los rangos de IP que no sean
permitidos
security
= share
Permite
determinar el modo de compartir los recursos y podemos elegir entre
cinco opciones: share, user, domain, server y ads.
Share:
para compartir los recursos con contraseña.
User:
los permisos se gestionan por usuario.
Domain:
los permisos se gestionan los permisos por dominio.
Server:
los permisos son gestionados por otro servidor.
Ads:
hace que samba se comporte como un miembro de un dominio de Active
Directory y se requiere un servidor Windows Server.
Samba
no puede actuar como controlador de dominio de Active Directory, es
decir, no puede sustituir a un Windows Server, pero sí puede actuar
como controlador de dominio de Windows NT.
domain
logons = yes
Para
que samba sea autentificador del dominio. En este caso, habrá que
poner "security =user".
domain
master = yes
Para
que samba sea controlador de dominio. En este caso, habrá que poner
"domain logons=yes.
encrypt
passwords = yes
Hace
que samba solo reconozca passwords encriptados, para impedir que
otros usuarios puedan descubrirlas capturando paquetes de datos
(sniffing). Los password encriptados de samba se guardan en
/etc/smbpasswd.
Para
que un usuario pueda acceder a samba debe existir en el sistema pero
no tiene por qué coincidir la contraseña de un usuario en el
sistema Linux con la de samba aunque es aconsejable.
logon
script = INICIO.BAT
Indica
el script que ejecutarán los clientes Windows al loguearse.
password
server = 192.168.0.10
Indica
qué servidor autentificará a los usuarios.
wins
server = 192.168.0.10
Indica
quién es el servidor de nombres wins
wins
support = yes
Hace
que nuestro samba sea servidor wins
load
printers = yes
Para
que se compartan las impresoras.
Sección
[homes]
En
ésta sección se configuran los parámetros para compartir la
carpeta home (carpeta donde se almacena el perfil y todos los
documentos) de cada usuario. Esta sección es opcional pero sino
existe, no se compartirán las carpetas home de cada usuario.
Se
debe utilizar cuando se desean crear perfiles móviles de forma que
cuando se identifique el usuario en cualquiera de los PCs de la red,
se cargue de forma automática su perfil.
Sección
[printers]
En
ésta sección se configuran los parámetros para compartir las
impresoras o colas de impresión disponibles en el servidor.
Sección
por cada carpeta compartida
Cada
vez que se comparte una carpeta, hay que crear una sección
denominada como se desee ya que dicho nombre será el nombre del
recurso compartido.
Ejemplo,
si deseamos compartir la carpeta /home/samba/compartida crearemos una
sección [compartida] donde se configurará dicho recurso compartido
con los parámetros específicos para dicho recurso. Los parámetros
más destacados:
browseable
= yes
Indica
si el recurso compartido será visible cuando se escanea la red, por
ejemplo haciendo clic en "Mis sitios de red" en Windows.
create
mask = 0770
Establece
la máscara de los permisos que tendrás los archivos cuando se creen
y con directory mask
para la creación de carpetas.
guest
ok = yes
Indica
que cualquier usuario sin contraseña tiene permiso de acceso
valid
users = antonio, juan, pedro, tomas
Indica
qué usuarios pueden acceder al recurso.
Consejos
Es
conveniente crear en /home
una carpeta llamada samba
y que cuelguen de ella todas las carpetas compartidas, para tener
todos los datos de usuario dentro de /home y sea sencillo hacer las
copias de seguridad.
Si
somos servidores de dominio y vamos a tener en nuestra red clientes
Windows, es conveniente crear un recurso compartido llamado netlogon
para poder almacenar scripts de inicio y archivos de políticas ya
que los clientes Windows están preconfigurados para acceder a dicho
recurso compartido, por ejemplo, si samba es controladores de dominio
creamos la sección y con parámetros siguientes:
[netlogon]
path
= /home/samba/netlogon
public
= no
writeable
= no
browsable
= no
Si
deseamos almacenar los drivers de impresora para los clientes Windows
crearemos una sección [print$].
Es
conveniente crear una copia de seguridad del archivo smb.conf antes
de hacer ningún cambio
para poder retornar al estado anterior en caso de que hagamos una
modificación incorrecta del archivo que impida que arranque el
servicio.
Para
comprobar que nuestro archivo smb.conf está correcto, podemos
utilizar el comando testparm
que analiza cada línea en busca de errores.
Para
tener una descripción detallada de todos los parámetros se puede
hacer una consultar con el comando man:
aceitunero@Pc15:~$
man smb.conf
Arranque
y parada de samba
Samba,
al igual que todos los servicios en Debian, dispone de un script de
arranque y parada en la carpeta /etc/init.d.
Si
deseamos reiniciar el servidor samba, debemos ejecutar:
aceitunero@Pc15:~$
sudo /etc/init.d/samba
restart
Este
comando reiniciará los dos demonios (procesos residentes) que
necesita samba para su funcionamiento: nmbd y smbd.
Y si
deseamos detener el servidor samba, debemos ejecutar:
aceitunero@Pc15:~$
sudo /etc/init.d/samba stop
Espero
que os sea de ayuda a todos un saludo:
Antonio
Comentarios
Publicar un comentario
Dejanos tu opinión o comentario, entre todos podemos aprender más sobre los temas que se tratan en este Blog. No te olvides seguidme en Twitter, YouTube o Facebook. Muchas gracias por tu tiempo. 👋😎