Está en la página 1de 13

TEMA: Instalacion y configuracion de Samba OBJETIVO: Instalar y configurar samba para poder compartir archivos entre Linux y Windows

s Ver y entender el comportamiento de los archivos de configuracion, para lograr el comporatamiento deseado, y aplicar permisos de lectura y escritura. Introduccin. Acerca del protocolo SMB. SMB (acrnimo de Server Message Block) es un protocolo, del Nivel de Presentacin del modelo OSI de TCP/IP, creado en 1985 por IBM. Algunas veces es referido tambin como CIFS (Acrnimo de Common Internet File System, http://samba.org/cifs/) tras ser renombrado por Microsoft en 1998. Entre otras cosas, Microsoft aadi al protocolo soporte para enlaces simblicos y duros as como tambin soporte para ficheros de gran tamao. Por mera coincidencia esto ocurri por la misma poca en que Sun Microsystems hizo el lanzamiento de WebNFS (una versin extendida de NFS, http://www.sun.com/software/webnfs/overview.xml). SMB fue originalmente diseado para trabajar a travs del protocolo NetBIOS, el cual a su vez trabaja sobre NetBEUI (acrnimo de NetBIOS Extended User Interface, que se traduce como Interfaz de Usuario Extendida de NetBIOS), IPX/SPX (acrnimo de Internet Packet Exchange/Sequenced Packet Exchange, que se traduce como Intercambio de paquetes inter-red/Intercambio de paquetes secuenciales) o NBT, aunque tambin puede trabajar directamente sobre TCP/IP. Acerca de Samba. SAMBA es un conjunto de programas, originalmente creados por Andrew Tridgell y actualmente mantenidos por The SAMBA Team, bajo la Licencia Publica General GNU, y que implementan en sistemas basados sobre UNIX el protocolo SMB. Sirve como reemplazo total para Windows NT, Warp, NFS o servidores Netware.

PROCEDIMIENTO: Los procedimientos descritos en este manual han sido probados para poder aplicarse en sistemas con CentOS 5 o Red Hat Enterprise Linux 5, o equivalentes o versiones posteriores, y al menos Samba 3.0.33 o versiones posteriores. Necesitar tener instalados los siguientes paquetes: samba: samba-client: Servidor SMB. Diversos clientes para el protoclo SMB.

samba-common: Ficheros necesarios para cliente y servidor.

Para saber si los paquetes mencionados anteriormente se encuentran instalados colocar el siguiente comando:
[root@redhat64 ~]# rpm -qa | grep samba system-config-samba-1.2.41-5.el5 samba-common-3.0.33-3.14.el5 samba-3.0.33-3.14.el5 samba-client-3.0.33-3.14.el5

Si utiliza CentOS 5 y 6 o Red Hat Enterprise Linux 5 o 6, y versiones posteriores, solo se necesita ejecutar lo siguiente para instalar o actualizar el equipamiento lgico necesario:
yum -y install samba samba-client samba-common

En el caso de CentOS 6 y Red Hat Enterprise Linux 6, se instalar Samba 3.5.4. En el caso de CentOS 5 y Red Hat Enterprise Linux 5, se instalar Samba 3.0.33, sin embargo hay opcin a utilizar en su lugar Samba 3.5.4 instalando los paquetes samba3x, samba3x-client y samba3x-common.
yum remove samba samba-client samba-common yum -y install samba3x samba-client3x samba-common3x

SELinux y el servicio smb. En caso de que SELinux este desactivado, habra que colocarlo en modo enforcing o permissive Se puede configurar el archivo directamente en /etc/sysconfig/selinux. Este archivo es un symlink a /etc/selinux/config. El archivo de configuracine se explca por si mismo. El cambiar el valor de SELINUX o SELINUXTYPE cambia el estado de SELinux y el nombre de la poltica que se utiliza la proxima vez que el sistema arranca.
[root@host2a ~]# cat /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=permissive # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted # SETLOCALDEFS= Check local definition changes SETLOCALDEFS=0

Para activar SELinux se lo puede hacer tambien desde la interfaz grafica de Red Hat: 1. En el men Sistema vaya a Administracin y luego haga click en Nivel de Seguridad y Cortafuegos para visualizar el dilogo de Configuracin del Nivel de Seguridad.

2. Haga click en la pestaa SELinux 3. En Configuracin SELinux puede selecionar Deshabilitado, Reforzar o Permisivo y luego haga click en OK. 4. Si lo cambi de Habilitado a Deshabilitado o viceversa neceita reiniciar las mquina para que tenga efecto el cambio. Los cambios realizados utilizando este dilogo se reflejan de inmediato en /etc/sysconfig/selinux.

A fin de que SELinux permita al servicio smb funcionar como Controlador Primario de Dominio (PDC, Primary Domain Controler), utilice el siguiente mandato:
setsebool -P samba_domain_controller 1

A fin de que SELinux permita al servicio smb compartir los directorios de inicio de los usuarios locales del sistema, utilice el siguiente mandato:
setsebool -P samba_enable_home_dirs 1

Para definir que un directorio ser compartido a travs del servicio smb, como por ejemplo /var/samba/publico, y que se debe considerar como contenido tipo Samba, se utiliza el siguiente mandato:
chcon -t samba_share_t /var/samba/publico

Cada nuevo directorio que vaya a ser compartido a travs de Samba, debe ser configurado como acaba de describirse antes de ser configurado en el fichero /etc/samba/smb.conf. A fin de que SELinux permita al servicio smb compartir todos los recursos en modo de solo lectura, utilice el siguiente mandato:
setsebool -P samba_export_all_ro 1

A fin de que SELinux permita al servicio smb compartir todos los recursos en modo de lectura y escritura, utilice el siguiente mandato:
setsebool -P samba_export_all_rw 1

Para el alta de cuentas de usuario: Es importante sincronizar las cuentas entre el servidor Samba y las estaciones Windows. Es decir, si en una mquina con Windows ingresamos como el usuario fulano con clave de acceso 123qwe, en el servidor Samba deber existir tambin dicha cuenta con ese mismo nombre y la misma clave de acceso. Como la mayora de las cuentas de usuario que se utilizarn para acceder hacia Samba no requieren acceso al intrprete de mandatos del sistema, no es necesario asignar clave de acceso con el mandato passwd y se deber definir /sbin/nologin o bien /bin/false como intrprete de mandatos para la cuenta de usuario involucrada.
useradd -s /sbin/nologin usuario-windows

smbpasswd -a usuario-windows

No hace falta se asigne una clave de acceso en el sistema con el mandato passwd puesto que la cuenta no tendr acceso al intrprete de mandatos.

Si se necesita que las cuentas se puedan utilizar para acceder hacia otros servicios como seran Telnet, SSH, etc, es decir, que se permita acceso al intrprete de mandatos, ser necesario especificar /bin/bash como intrprete de mandatos y adems se deber asignar una clave de acceso en el sistema con el mandato passwd:
useradd -s /bin/bash usuario-windows passwd usuario-windows smbpasswd -a usuario-windows

El fichero lmhosts: Es necesario empezar resolviendo localmente los nombres NetBIOS asocindolos con direcciones IP correspondientes en el fichero lmhosts (LAN Manager hosts). Para fines prcticos el nombre NetBIOS debe tener un mximo de 11 caracteres. Normalmente se utiliza como referencia el nombre corto del servidor o el nombre corto que se asigno como alias a la interfaz de red. Si se edita el fichero /etc/samba/lmhosts, se encontrar un contenido similar al siguiente:
127.0.0.1 localhost

Se pueden aadir los nombres y direcciones IP de cada uno de los anfitriones de la red local. Como mnimo debe encontrarse el nombre del anfitrin Samba y su direccin IP correspondiente, y de manera opcional el resto de los anfitriones de la red local. La separacin de espacios se hace con un tabulador. Ejemplo:
127.0.0.1 192.168.70.1 192.168.70.2 192.168.70.3 192.168.70.4 192.168.70.5 192.168.70.6 192.168.70.7 192.168.70.8 localhost servidor joel blanca alejandro sergio isaac finanzas direccion

Parmetros principales del fichero smb.conf.: Se modifica el fichero /etc/samba/smb.conf con cualquier editor de texto. Este informacin que ser de utilidad y que est comentada con un smbolo # y varios ejemplos comentados con ; (punto y coma), siendo estos ltimos los que se pueden tomar como referencia.

Parmetro workgroup. Se establece el grupo de trabajo definiendo el valor del parmetro workgroup asignando un grupo de trabajo deseado:
workgroup = MIGRUPO

Parmetro netbios name. De manera opcional, se puede establecer con el parmetro netbios name otro nombre distinto para el servidor, si acaso sto fuese necesario, pero siempre tomando en cuenta que dicho nombre deber corresponder con el establecido en el fichero /etc/samba/lmhosts:
netbios name = maquinalinux

Parmetro server string. El parmetro server string es de carcter descriptivo. Puede utilizarse un comentario breve que de una descripcin del servidor.
server string = Servidor Samba %v en %L

Parmetro hosts allow. La seguridad es importante y esta se puede establecer primeramente estableciendo la lista de control de acceso que definir que mquinas o redes podrn acceder hacia el servidor. El parmetro hosts allow sirve para determinar esto. Si la red consiste en las mquinas con direccin IP 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 solo se permitir el acceso dichas mquinas. En el siguiente ejemplo se definen las redes 192.168.70.0/24 y 192.168.37.0/24, definiendo los tres primeros octetos de la direccin IP de red, as como cualquier direccin IP de la red 127.0.0.0/8 (retorno del sistema o loopback), siendo necesario definir solo el primer octeto de dicho segmento:
hosts allow = 192.168.70., 192.168.37., 127.

Parmetro interfaces. El parmetro interfaces permite establecer desde que interfaces de red del sistema se escucharn peticiones. Samba no responder a peticiones provenientes desde cualquier interfaz no especificada. Esto es til cuando Samba se ejecuta en un servidor que sirve tambin de puerta de enlace para la red local, impidiendo se establezcan conexiones desde fuera de la red local.
interfaces = lo, eth1, 192.168.70.254/24

Parmetro remote announce. La opcin remote announce se encarga de que el servicio nmbd se anuncie a si mismo de forma peridica hacia una red en particular y un grupo de trabajo especfico. Esto es particularmente til si se necesita que el servidor Samba aparezca no solo en el grupo de trabajo al que pertenece sino tambin

otros grupos de trabajo. El grupo de trabajo de destino puede estar en donde sea mientras exista una ruta y sea posible la difusin exitosa de paquetes. Los valores que pueden ser utilizados son direcciones IP de difusin (broadcast) de la red utilizada (es decir la ltima direccin IP del segmento de red) y/o nombres de grupos de trabajo. En el siguiente ejemplo se define que el servidor Samba se anuncie a travs de las direcciones IP de difusin 192.168.70.255 (red 192.168.70.0/24) y 192.168.2.255 (red 192.168.2.0/24) y hacia los grupos de trabajo DOMINIO1 y DOMINIO2.
remote announce = 192.168.70.255/DOMINIO1, 192.168.2.255/DOMINIO2

Impresoras en Samba.: Las impresoras se comparten de modo predeterminado, as que solo hay que realizar algunos ajustes. Si se desea que se pueda acceder hacia la impresora como usuario invitado sin clave de acceso, basta con aadir public = Yes (que es lo mismo que guet ok = No) en la seccin de impresoras del siguiente modo:
[printers] comment = El comentario que guste. path = /var/spool/samba printable = Yes browseable = No writable = no printable = yes public = Yes

Se pude definir tambin a un usuario o bien un grupo (@grupo_que_sea) para la administracin de las colas de las impresoras, anteriormente se haca con el parmetro printer admin. Actualmente se hace ejecutando lo siguiente desde terminal:
net -S servidor -U root rpc rights grant fulano SePrintOperatorPrivilege

Compartiendo directorios a travs de Samba: Para los directorios o volmenes que se irn a compartir, en el mismo fichero de configuracin encontrar distintos ejemplos para distintas situaciones particulares. En general, puede utilizar el siguiente ejemplo que funcionar para la mayora:
[Lo_que_sea] comment = Comentario que se le ocurra path = /cualquier/ruta/que/desee/compartir

El volumen puede utilizar cualquiera de las siguientes opciones: Opcin


guest ok

Descripcin Define si ser permitir el acceso como usuario invitado. El valor puede ser

Yes

o
No

.
public

Es un equivalente del parmetro guest ok, es decir define si ser permitir el acceso como usuario invitado. El valor puede ser
Yes

o
No

.
browseable

Define si se permitir mostrar este recurso en las listas de recursos compartidos. El valor puede ser
Yes

o
No

.
writable

Define si ser permitir la escritura. Es el parmetro contrario de


read only

. El valor puede ser


Yes

o
No

. Ejemplos:
writable = Yes

es lo mismo que

read only = No

. Obviamente
writable = No

es lo mismo que
read only = Yes valid users

Define que usuarios o grupos pueden acceder al recurso compartido. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo:
fulano, mengano, @administradores

write list

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

admin users

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

directory mask

Es lo mismo que
directory mode

. Define que permiso en el sistema tendrn los subdirectorios creados dentro del recurso. Ejemplos:
1777 create mask

Define que permiso en el sistema tendrn los nuevos ficheros creados dentro del recurso. Ejemplo:
0644

En el siguiente ejemplo se compartir a travs de Samba el recurso denominado datos, el cual est localizado en el directorio /var/samba/datos del disco duro. Se permitir el acceso a cualquiera pero ser un recurso de solo lectura salvo para los usuarios administrador y fulano. Todo directorio nuevo que sea creado en su interior tendr permiso 755 (drwxr-xr-x) y todo fichero que sea puesto en su interior tendr permisos 644 (-rw-r--r--. Primero se crea el nuevo directorio /var/samba/datos, utilizando el siguiente mandato:
mkdir -p /var/samba/datos

Luego se define en SELinux que dicho directorio debe ser considerado como contenido Samba.
chcon -t samba_share_t /var/samba/datos

Se edita el fichero /etc/samba/smb.conf y se aade hasta el final de ste el siguiente contenido:


[datos] comment = Directorio de de Datos path = /var/samba/datos guest ok = Yes read only = Yes write list = fulano, administrador directory mask = 0755 create mask = 0644

Ocultando ficheros que inician con punto.: Es poco conveniente que los usuarios puedan acceder o bien puedan ver la presencia de ficheros ocultos en el sistema, es decir ficheros cuyo nombre comienza con un punto, particularmente si acceden a su directorio personal en el servidor Samba (.bashrc, .bash_profile, .bash_history, etc.). Puede utilizarse el parmetro hide dot files para mantenerlos ocultos.
hide dot files = Yes

Este parmetro es particularmente til para complementar la configuracin de los directorios personales de los usuarios.
[homes] comment = Home Directories browseable = no writable = yes hide dot files = Yes

Iniciar el servicio y aadirlo al arranque del sistema.: Para iniciar los servicios nmb y smb por primera vez realice lo siguiente:
service nmb start service smb start

Si realiza algn cambio en la configuracin del parmetro netbios name, es necesario reiniciar el

servicio nmb, el cual es el encargado de proveer el servidor de nombres para los clientes a travs de NetBIOS sobre IP.
service nmb restart

Si va a aplicar algn cambio en cualquier otro parmetro de la configuracin, como son los recursos compartidos, solo es necesario reiniciar el servicio smb:
service smb restart

Para que los servicios nmb y smb inicien automticamente junto con el sistema, solo utilice los dos siguientes mandato:
chkconfig nmb on chkconfig smb on

Por experiencia propia intente iniciar los servicios nmb y smb, pero parace que las ultimas versiones de Red Hat viene embebido el nmb en el smb, por lo que solo sera necesario hacer un service smb restart y para hacer que el servicio este levantado solo es necesario chkconfig smb on. Ejemplo: [root@redhat64 ~]# setsebool -P samba_domain_controller 1 [root@redhat64 ~]# setsebool -P samba_enable_home_dirs 1 [root@redhat64 ~]# setsebool -P samba_export_all_ro 0 [root@redhat64 ~]# setsebool -P samba_export_all_rw 1 [root@redhat64 ~]# useradd -s /sbin/nologin daflores [root@redhat64 ~]# smbpasswd -a daflores New SMB password: Retype new SMB password: Added user daflores. [root@redhat64 ~]# gedit /etc/samba/lmhosts 127.0.0.1 localhost 10.10.1.119 servidor 10.10.1.131 daflores [root@redhat64 ~]# cd /var/ [root@redhat64 var]# mkdir samba [root@redhat64 var]# cd samba/ [root@redhat64 samba]# mkdir -p /var/samba/testing [root@redhat64 samba]# chcon -t samba_share_t /var/samba/testing [root@redhat64 samba]# gedit /etc/samba/smb.conf workgroup = REDPARTNER server string = Samba Server Version %v guest account = rp netbios name = servidor interfaces = lo, eth0 hosts allow = 127. 10.10.1. 10.10.2.

remote announce = 10.10.1.255/REDPARTNER #============================ Share Definitions ============================== [testing] comment = Para que modifiquen path = /var/samba/testing read only = no public = yes guest ok = yes writable = yes write list = daflores directory mask = 0775 create mask = 0644

[root@redhat64 ~]# service smb restart Shutting down SMB services: Shutting down NMB services: Starting SMB services: Starting NMB services:

[ OK ] [ OK ] [ OK ] [ OK ]

Eso es todo ahora desde windows podremos acceder al servidor de recursos compartidos, ingresando como cualquier unidad de red en este caso \\10.10.1.119

Desde el servidor en Linux procedemos de la misma manera a diferencia que colocamos como si fuera un servicio ftp, pero lo hacemos con smb, ejemplo: smb://10.10.1.131/

ENLACES FUENTE: http://www.alcancelibre.org/staticpages/index.php/como-samba-basico http://docs.redhat.com/docs/es-ES/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/sec-selenable-disable.html REALIZADO POR: Diego Flores

También podría gustarte