Você está na página 1de 34

3 CENTRO DE TELEMTICA DE REA SERVIDOR DE ARQUIVOS UTILIZANDO O

'Samba'
ENSINO A DISTNCIA - 2012 APOSTILA 1

1 SGT ANCELMO

1/34

2/34

APRESENTAO O presente estgio ministrado pela Seo de Treinamento e o material foi elaborado pela Seo de Gerncia de Redes do 3 CTA, com a finalidade de auxiliar no Estgio de Servidor de Arquivos utilizando Samba.

OBJETIVO Apresentar as caractersticas de um Servidor de Arquivos baseado em SAMBA; Ensinar o modo de instalao e configurao bsica utilizando os comandos mais comuns; Demonstrar modos de ajustes mais complexos utilizando ACL's; Apresentar ferramentas adicionais que ajudam na administrao do sistema; Apresentar um Check List a ser verificado antes de colocar o sistema em produo; Apresentar as rotinas necessrias para a manuteno do sistema em produo.

SUMRIO

1. Introduo ..................................................................................................................4 2. Instalao e Arquivos....................................................................................................7 3. Diretivas de Configurao...........................................................................................13 4. Ferramentas..................................................................................................................27 5. Backends de Usurios.................................................................................................30 Concluso.........................................................................................................................33 Referncia Bibliogrfica ..............................................................................................34

3/34

SERVIDOR DE ARQUIVOS UTILIZANDO O SAMBA 1. INTRODUO O que este programa chamado Samba e qual sua origem Samba um conjunto de servios que fornecem outros servios como compartilhamento de arquivos e de impressoras utilizando um protocolo denominado CIFS (Common Internet File System), proporcionando acesso seguro, estvel e fcil de arquivos e servios de impresso para todos os clientes que usam o protocolo SMB / CIFS, como todas as verses do Windows e DOS, OS / 2, Linux e muitos outros. Samba um importante componente para integrar Linux / Unix servidores e desktops em ambientes do Active Directory usando o daemon winbind. Desenvolvido inicialmente por Andrew Tridgell, a poca estudante de doutorado na Austrlia. E no momento mantido por uma equipe de desenvolvedores de varias partes do mundo que se comunicam pela internet. Teve incio com uma parceria entre IBM e Sytec, que desenvolveram conjuntamente uma maneira simples de interconectar computadores em pequenas redes locais. A soluo era um software chamado NetBIOS (Network Basic Input/Output System), que era um programa que fornecia meios de programas se comunicarem com o hardware de rede. Trabalhando no programa da Microsoft criou uma maneira de redirecionar solicitaes de I/O (leitura e escrita) de disco para o NetBIOS, que permitiu compartilhar o contedo do disco atravs da rede. Isso foi disponibilizado por um protocolo chamado, na poca de SMB (Server Message Block), renomeado posteriormente como CIFS. Com a evoluo das redes o NetBIOS foi adaptado para trabalhar acima do protocolo TCP/IP, permitindo que endereos de rede IP fossem referenciados atravs de nomes. Andrew Tridgel, possua um servidor Unix e uma estao DOS, precisava montar um disco em seu servidor em sua estao, escreveu ento um programa para capturar pacotes de rede (sniffer) e efetuou a engenharia reversa do protocolo SMB, implementando-o assim em seu servidor Unix, fazendo com que as mquinas se enxergassem O cdigo foi disponibilizado para uso por Andrew em 1992.

4/34

Funcionamento

formado por 2 programas principais (SMBD e NMBD), que implementam 4 servios bsicos do protocolo CIFS: Compartilhamento e Impresso; Autenticao e Autorizao; Resoluo de Nomes; Anncio de Servios (Browsing)

Os servios de compartilhamento de arquivos e de impressoras so implementados pelo SMBD, o daemon responsvel pela implementao dos ervios SMB (smbd: SMB Daemon), tambm responsvel por lidar com a autenticao e autorizao dos usurios acessando os compartilhamentos. Os outros servios, resoluo de nomes e Browsing so implementados pelo NMBD, que gerencia e distribui nomes NetBIOS.

SMBD Daemon responsvel por fornecer servios de compartilhamento e impresso, autenticao e autorizao para clientes, pela implementao do protocolo SMB (ou (CIFS). Criao de uma seo para cada cliente acessando o servidor, com sua prpria copia do processo SMBD. Deste modo, havero vrios processos SMBD em execuo, um para cada cliente conectado, cujos donos so os usurios que esto acessando os compartilhamentos, ou seja, todo usurios do Samba dever tambm ser um usurio Unix e todas as permisses 5/34

do sistema de arquivos se aplicaro ao usurio, finalizando o processo no momento da finalizao da seo. O SMBD rel suas configuraes a cada minuto, aplicando as novas alteraes s sesses j existentes. Utiliza as portas 139 para NetBIOS sobre TCP e 445 sobre TCP, sem encapsulamento NetBIOS, sendo a 445 mais eficiente em verses superiores do Windows XP.

NMBD Daemon que monitora e responde solicitaes NetBIOS da rede, resolvendo nomes e participando do processo de browsing. Utiliza as portas UDP (para servios mais leves) 137 para browsing, replicao de informaes de diretrio, netlogon, relaes de confiana, canal de comunicao seguro (WinNT Secure Channel) e 138 para comunicao de datagramas NetBIOS (encapsulamento de comunicao).

Resoluo de Nomes Pode ser feita por envio de pacotes para toda a rede (broadcast) ou atravs de resoluo ponto-a-ponto com um servidor central que armazena os nomes e endereos IP das estaes. O Broadcast mais semelhante ao NetBIOS e basicamente uma estao que deseja acessar um compartilhamento dever enviar um pacote para todas as estaes. O trfego gerado pequeno e no interfere no fluxo de dados. Outro processo a utilizao de um NBNS (NetBIOS Name Service), atravs de um servidor central que armazena a lista de nomes e endereos IP das estaes disponveis o chamado WINS (Windows Internet Name Service) da Microsoft. Aps o registro dos nomes e endereos IP no servidor, pode ocorrer o acesso das estaes para essas verificaes, especialmente se estiverem em sub-redes para que se comuniquem. A resoluo de nomes NetBIOS feita utilizando o protocolo UDP, sendo configurada da seguinte forma: b-node (tipo 0x01*): apenas broadcast NetBIOS atravs de UDP; p-node (tipo 0x02): apenas Unicast NetBIOS (ponto-a-ponto) direcionando a um WINS; m-node (tipo 0x04): Broadcast + Wins; n-node (tipo 0x04): Wins Broadcast;

O padro de funcionamento pelo b-node (broadcast na rede). * informao no cabealho do pacote para captura na rede) O compartilhamento permite aos usurios trabalharem com documentos de outros usurios, ou armazenar em computadores de outros usurios ou ainda armazenar em um sistema servidor comum. 6/34

Browsing Os computadores na LAN elegem qual estao ir manter uma lista de compartilhamento de arquivos e impressoras na rede. O eleito ser o LMB (Local Master Browser), que alm do nome NetBIOS recebe uma nova nomenclatura para ser identificado na rede (\\-__MSBROWSE__) com sufixo NetBIOS 01. Os critrios que levam a eleio desta estao so os seguintes: Maior OS Level Opo Preferred Master Uptime (tempo online) Nome NetBIOS (ordem alfabtica)

Alm dos LMBs podem haver tambm DMBs (Domain Master Browser) que tambm podem coordenar listas de servios entre sub-redes diferentes.

Formas de Funcionamento A diferenciao est na maneira como o Servidor autentica e autoriza os usurios, se Standalone (autenticao em base local) ou inserido em um Domnio (base centralizada). Standalone (usurio e senha para acesso na estao / cenrios pequenos): Servidores configurados em um grupo de trabalho, onde cada computador responsvel pela autenticao dos prprios usurios e gerenciamento de seus compartilhamentos Participante de Domnio (cenrio complexo): configurado para integrar um Domnio, os servidores e estaes possuem base centralizada na autenticao. Trabalho inicial mais volumoso porm administrao posterior facilitada.

2. INSTALAO E ARQUIVOS Instalao Pode-se instalar os arquivos por compilao ou via APT, onde a facilidade a aplicao automtica de pathes de correo de bugs e atualizaes de segurana j disponibilizadas de forma automtica, j a compilao do cdigo-fonte pode ser feita em servidores antigos com clientes Windows mais recentes.

Instalao a partir dos pacotes pr-compilados Feita pelos comandos apt-get e aptitude. # aptitude install samba smbclient Aps a instalao o servio do Samba iniciado automaticamente, onde pode-se verificar nos processos em execuo do sistema. Os daemons smbd e nmbd devem estar ativos. # ps -AF | grep -E '(smbd|nmbd)' 7/34

root 2311 19885 0 3731 4244 0 Sep28 ? 00:00:00 /usr/sbin/smbd -D root 2379 19885 0 3704 3736 0 Sep28 ? 00:00:03 /usr/sbin/smbd -D root 5212 19885 0 3802 6168 0 Sep28 ? 00:00:10 /usr/sbin/smbd -D root 10596 19885 0 3760 3660 3 07:36 ? 00:00:00 /usr/sbin/smbd -D O gerenciamento dos daemons feito no controle /etc/init.d/samba stop (parar) start (iniciar) restart (reiniciar)

Instalao a partir do cdigo-fonte Quando houver necessidade, obtm-se os arquivos no site do projeto: http://samba.org/samba/download/ Procure instalar a ultima verso estvel que se chama samba-latest.tar.gz, que contm o servidor Samba (nmbd e smbd) e servios extras (Winbind). Tambm h necessidade de instalao das dependncias para a compilao: # aptitude build-dep samba Descompactar o pacote: # tar -xvzf samba-latest.tar.gz Acessar o diretrio source3 dentro do diretrio samba criado, cujo nome deve ser da ltima verso disponvel: # cd samba-3.5.6/source3 Executar o script que ir ajustar o Makefile para compilao: # ./configure Compilar o cdigo: # make Instalar os arquivos gerados pela compilao: # make install /usr/local/bin o local padro de instalao dos arquivos. Visualizando Pacotes Para verificar o trfego dos pacotes e do servidor, capturamos pacotes para verificarmos as informaes que esto trafegando, utilizando ferramentas como tcpdump ou wireshark: # aptitude install tcpdump possvel capturar os dados de determinada interface em totalidade ou filtrado, como por exemplo nos pacotes NetBIOS UDP nas portas 137 e 138: # tcpdump -nvvi eth0 udp and ' ( port 137 or port 138 ) ' 8/34

Arquivos funcionais smb.conf Arquivo de configurao do Samba (smb.conf), onde esto localizados todos os parmetros de configurao do Samba e o funcionamento do smbd e nmbd. Trata-se de um arquivo de texto que pode ser modificado por qualquer editor, com estrutura atributo = valor. Est localizado em /etc/samba/smb.conf.

Arquivos .tdb (Realize backup dos arquivos .tdb) Em complementao aos arquivos de configurao, o Samba utiliza os arquivos .tdb (Trivial Database), como banco de dados para armazenamento de informaes, divididos em persistentes e temporrios. Esto localizados em /var/lib/samba. Os persistentes armazenam informaes que devem ser salvas em backups e copiados juntamente com as configuraes em caso de migrao do servidor: account_policy: polticas de de contas group_mapping: mapeamentos entre SID->grupos UNIX ntdrivers: informaes de drivers de impressoras instalados ntforms: informaes de forms de impressoras instalados ntprinters: configuraes de impressoras instaladas passdb: armazena informaes de contas SambaSAMAccount registry: esqueleto somente leitura de registro Windows secrets: armazena SIDs (identificadores), senha do LDAP e dados sensveis e crticos para o funcionamento do Samba. share_info: Armazena ACLs de compartilhamentos winbindd_idmap: base de mapeamentos de endereo do Winbind Os temporrios no so essenciais ao funcionamento do sistema: brlock: Informaes de byte-range locking de arquivos connections: Cache de informaes de conexes em uso para gerenciamento de nmero de conexes eventlog/*tdb: Cache de logs de sistema gencache: Cache de servidores WINS no-funcionais e dados de domnio login_cache: Cache de informaes de login e tentativas incorretas de senha messages: Armazena temporariamente mensagens sendo processadas pelo smdb netsamlogon_cache: Cache de estruturas de dados de logon perfmon/*.tdb: Informaes do contador de performance printing/*.tdb: Cache das filas de impresso 9/34

schannel_store: Informaes criptogrficas de credenciais de sesses ativas sessionid: Dados genricos de sesso unexpected: Armazena pacotes recebidos que no so para os daemons do Samba) winbindd_cache: Cache de informaes de identidade recebidas pelo Winbind

Gerenciamento de Arquivos .tdb Feito pela ferramenta tcb-tools, que visualiza, edita e faz backup das bases, mas deve-se tomar cuidado para no copiar um arquivo .tdb em uso pois pode estar gravando dados no momento da cpia e portanto inconsistente: # aptitude install tdb-tools

tdbbackup Ferramenta que realiza backup dos arquivos .tdb, garantindo integridade na base de dados. Gera um arquivo do mesmo nome que o .tdb acrescido de .bak. # tdbbackup nome_do_arquivo.tdb Voc pode utiliz-lo para verificar se arquivos esto corrompidos, e caso estejam, restaure o ultimo backup com parmetro -v no comando e no exemplo abaixo, constata-se a sada de um arquivo .tdb ntegro, informando quantos registros existem: # cd /var/lib/samba # tdbbackup -v passdb.tdb passdb.tdb : 8 records Caso hajam arquivos corrompidos a sada ser semelhante ao exemplo abaixo, onde h a possibilidade de restaurao automtica de backup se o arquivo passdb.tdb.bak estiver no mesmo diretrio: # tdbbackup -v passdb.tdb restoring passdb.tdb Se no houve a restaurao imediata ocorre a informao de necessidade de restaurao do arquivo .bak com o parmetro -v: # tdbbackup -v passdb.tdb restoring passdb.tdb passdb.tdb.bak: No such file or directory

tdbdump Visualizao rpida do contedo dos arquivos .tdb auxiliando na resoluo de problemas: # tdbdump nome_do_arquivo.tdb 10/34

tdbtool Ferramenta que visualiza, edita registros, verifica integridade e efetua teste de performance nos arquivos .tdb. Abre um prompt especfico: # tdbtool tdb > No prompt, o comando open abre determinado arquivo: tdb > open /var/lib/samba/passdb.tdb tdb > 1 key 13 bytes RID_000001f5 data 7 bytes [000] 6E 6F 62 6F 64 79 00 nobody

11/34

EXERCCIO PRTICO 1 1) Verificao da utilizao dos valores HEX (sufixos NetBIOS) vistos anteriormente utilizando o tcpdump: Para os daemons do Samba: # /etc/init.d/samba stop Fazer backup do nosso /etc/samba/smb.conf existente # mv /etc/samba/smb.conf /etc/samba/smb.conf/ori Criar um novo /etc/samba/smb.conf com o seguinte contedo [global] workgroup = 3CTA netbios name = DEBIANXX (nome fictcio da estao de trabalho) Abrir outro terminal e executar o tcpdump (visualizao do trafego de rede) # tcpdump -nvvi eth0 udp and '( port 137 or port 138 )' Como facilitador de visualizao, podemos apenas mostrar a linha com o nome e tipo da estao, filtrando os resultados do tcpdump como comando grep (pelo nome da estao) # tcpdump -nvvi eth0 udp and '( port 137 or port 138 )' | grep Name Com o tcpdump rodando, iniciar novamente o servidor Samba e visualizar linhas como esto (utilizar a filtragem com o comando grep) Name=MAQUINA Name=MAQUINA Name=MAQUINA Name=MAQUINA Name=\\__MSBROWSE__\ NameType=0x00 (workstation) NameType=0x20 (server) NameType=0x1E (Browser Server) NameType=0x1D (Master Browser) NameType=0x01 (Unknown)

2) verificar o processo de recuperao de uma base de dados do Samba. Fazer o backup de um dos arquivos persistentes, corromp-lo propositalmente e depois utilizar a ferramenta tdbbackup para restaurar o backup. Ento: Entrar no diretrio /var/lib/samba # cd /var/lib/samba fazer o backup do arquivo passdb.tdb # tdbbackup passdb.tdb verificar se foi criado o arquivo passdb.tdb.bak # ls passdb.tdb* passdb.tdb passdb.tdb.bak adicionar um caractere qualquer no inicio do arquivo passdb.tdb utilizando um editor de texto 12/34

atravs do comando sed # sed -i 'li teste' passdb.tdb 3) tentar efetuar um novo backup do arquivo usando o tdbbackup # tdbbackup passdb.tdb Failed to open passdb.tdb executar o tdbbackup em modo de verificao e restaurao # tdbbackup -v pssdb.tdb restoring passdb.tdb

3. DIRETIVAS DE CONFIGURAO smb.conf Pode ser editado por editor de texto ou ferramenta de gerenciamento do Samba (SWAT, Webmin). Linhas com # ou ; por estarem comentadas sero ignoradas pelo servidor e no final de linha se colocarmos \ dar continuidade linha seguinte. divido em sees chamadas Stanzas que assumem a forma [home] (nome da seo entre colchetes) e pode definir compartilhamentos ou meta-servios como abaixo no diretrio compartilhado: [compartilhamento] => acesso pelo endereo \\servidor\compartilhamento Fora as sees especiais, cada Stanza equivale a um compartilhamento e as diretivas presentes dentro delas vo afetar apenas aquele recurso especfico, terminando onde se inicia a prxima.

Sees Especiais [global] Diretivas que afetam todo o servidor Samba ou valores padro, exceto se um compartilhamento especifique um valor diferente

[homes] Especifica opes de acesso a diretrios homes de usurios. O diretrio home disponibilizado somente para seu dono, aps se autenticar no sistema;

[printers] Define opes gerais para controle das impressoras do sistema. Este compartilhamento mapeia os nomes de todas as impressoras encontradas no /etc/printcap. Configuraes especiais podem ser feitas separadamente; 13/34

[IPC$] Compartilhamento especfico que no necessita ser definido no smb.conf que implementa diretivas de segurana no servidor, permitindo acesso apenas a partir de hosts confiveis.

[ADMIN$] Compartilhamento IPC especial utilizado para ingressar servidores ASU no domnio e necessrios para algumas tarefas administrativas (Print Migrator da Microsoft).

Configurando o Servidor Exemplificao de mquina singela, com duas Stanzas: [global] e [compartilhamento], parmetro workgroup (grupo de trabalho) e netbios name (nome para identificao do servidor na rede) aplicadas a todos o servidor:

[global] workgroup = GRUPO netbios name = MAQUINA

[compartilhamento] path = /tmp

Modos de Funcionamento Atente para a configurao na opo security que determina como ser feita a autenticao e autorizao de usurios, bem como define se o servidor Standalone ou pertencente a um domnio. Tipos de Servidor (roles) na condio de SMB/CFIS de acordo com a configurao: Controlador de Domnio Primary Domain Controller (PDC) Backup Domain Controller (BDC) Active Directory Server Domain Controller

Membro de Domnio AD Domain Server NT4 Domain Server

Servidor Standalone Existem dois tipos possveis de Segurana, share ou user: 14/34

share: nica senha para acesso, independente de usurio user: compartilhamento com acesso controlado a nvel usurio

No modo user o servidor pode autenticar o usurio em uma base local ou centralizada que representa um Domnio e ao participar de um Domnio, o servidor pode agir como controlador (base de usurios disponibilizada para ser utilizada por outros servidores e clientes) ou Membro (recebe credenciais e verifica nos controladores do domnio). Pode ser do tipo NT4 ou Active Directory.

security = share (verifica recurso, no usurio) Autenticao do cliente para cada compartilhamento acessado. Ocorre o envio de senha a cada solicitao de conexo. Na implementao SMB/CIFS da Microsoft o servidor associa diretamente um compartilhamento com uma senha, mas o Samba utiliza o esquema de autenticao Unix (usurio/senha) e no (compartilhamento/senha). O cliente envia um nome de usurio na solicitao no inicio de sesso sem senha, cujo nome armazenado pelo Samba em uma lista de usurios possveis para comparao. Sem gerao da lista de usurios possveis o Samba efetua uma chamada de sistema para verificar a senha valida para algum usurio existente, utilizando mtodo NSS (/etc/nsswitch.conf). Desaconselhado para autenticao com usurios mas muito pratico para acesso de compartilhamentos pblicos onde no h autenticao.

security = user O cliente envia uma solicitao com usurio e senha no inicio de sesso que sero verificados pelo Samba e com sucesso na autenticao solicita a montagem dos compartilhamentos na sesso j estabelecida.

security = domain (variao do user) Informaes de usurios armazenadas em um repositrio central entre os controladores do domnio que podem efetuar a autenticao para todas as maquinas que participam do domnio Neste sistema esto classificados os PDC Primary Domain Controller (mantem a base de dados com informaes de usurios) e os controladores backup BDC (fornecem apenas servios de autenticao e logon no netlogon). A configurao do Samba possui ento 3 formas: PDC, BDC, DMS.

security = ASD (variao do user) Faz com que o Samba ingresse em um domnio Active Directory em modo nativo ao invs de usar protocolos de segurana no estilo Windows NT. Assume a role de DMS no podendo ser controlador deste domnio

security = server (expe a segurana) O servidor Samba informa para o cliente que utiliza segurana a nvel de usurio (security 15/34

= user) e recebe o par de usurio/senha do cliente e utilizando essas credenciais, tenta efetuar login em um terceiro servidor (normalmente controlador de domnio). Mtodo para compatibilidade de servidores antigos.

Diretivas Globais Alm da security outras diretivas existem para configurar o servidor e so utilizadas dentro da Stanza [global] afetando o funcionamento de todo servidor: Exemplo de seo global: [global] # Alterado por # Parmetros Globais [global]

# Domnio, Nome e Descrio workgroup = 3cta.eb.mil.br netbios name = server string = 3cta.eb.mil.br

# No mostrar no servidor o Wizard "Adicionar Impressora" show add printer wizard = No

# Quais interfaces de rede utilizar # interfaces = lo, eth0 - alterado em 16-08-2007 interfaces = 127.0.0.1/8 eth0 bind interfaces only = Yes

# Nvel de Mensagens log level = 1 log file = /var/log/samba/%m.log #max log size = 0 - alterado em 16-08-2007 max log size = 1000 debug level = 1 syslog = 0 16/34

# Atuar como um PDC security = user domain logons = yes preferred master = yes domain master = yes os level = 65

# Tratamento das senhas encrypt passwords = true

# Equivalncia de usurios Windows X Linux username map = /etc/samba/smbusers

# Evitar o perfil ambulante do Windows NT/XP logon path = logon drive = logon home =

# Script de logon em rede (deve ficar no compartilhamento netlogon - em formato DOS) logon script = xxxx.BAT

# Configuraes para o LDAP passdb backend = ldapsam:ldap://xxxx.3cta.eb.mil.br ldap passwd sync = yes ldap delete dn = Yes ldap admin dn = cn=administrador,dc=3cta,dc=eb,dc=mil,dc=br ldap suffix = dc=3cta,dc=eb,dc=mil,dc=br ldap machine suffix = ou=Computadores ldap user suffix = ou=Usurios ldap group suffix = ou=Grupos ldap idmap suffix = sambaDomainName=3cta.eb.mil.br idmap backend = ldap:ldap://xxxx.3cta.eb.mil.br 17/34

idmap uid = 10000-20000 idmap gid = 10000-20000 # Permitir que usurios do grupo "Administradores do Domnio" possam ingressar maquinas # WinXP/Win2000 ao domnio samba # to the domain enable privileges = yes

# Scrips utilizados para Gerenciar Usurios da M$, como aplicativos(API) M$ se comunicam com o Samba-Server # adicionar/remover Usurios add user script = /usr/sbin/smbldap-useradd -m "%u" # add user script = /usr/sbin/smbldap-useradd -m -a "%u" delete user script = /usr/sbin/smbldap-userdel "%u" # adicionar/remover Grupos add group script = /usr/sbin/smbldap-groupadd -p "%g" delete group script = /usr/sbin/smbldap-groupdel "%g" # Scripts para adiconar/remover Usurios nos Grupos add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" # Script para definir o grupo primrio do usurio set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u" # Script par adicionar maquina Win NT/XP ingressar no Domnio # add machine script = /usr/sbin/smbldap-useradd -w "%u" add machine script = /usr/sbin/smbldap-useradd -g "Computadores" -w "%u"

# Otimizaes recomendadas smb ports = 445 139 name resolve order = wins bcast host lmhosts utmp = Yes time server = Yes template shell = /bin/false winbind use default domain = no 18/34

map acl inherit = Yes strict locking = Yes

# Usurio invalido - adicionado em 16-08-2007 invalid users = root

# Como o cliente ira se comunicar com o servidor socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

# Ao em caso de pane panic action = /usr/share/samba/panic-action %d

# Servidor Wins da Rede # Quando j tiver um servidor Wins na rede # descomente a linha abaixo e acerte o IP do Wins # wins server = 10.12.x.xxx

# Quando ainda no tiver um servidor Wins na rede # descomente a linha abaixo wins support = Yes max wins ttl = 518400 min wins ttl = 21600

# Para os clientes no localizarem netbios atravs do dns dns proxy = no

# Ativar a internacionalizao: permitir caracteres acentuados pelo Windows unix charset = ISO8859-1 display charset = CP850 dos charset = CP850

# No tentar fazer um lock nestes arquivos 19/34

veto files = /*.eml/*.nws/*.{*}/ veto oplock files = /*.doc/*.xls/*.mdb/

# Tratar os arquivos que comeam com "." como ocultos para maquinas Windows hidedotfiles = yes

# Simular a Lixeira do Windows recycle:repository = .lixeira recycle:keeptree = True recycle:touch = True recycle:versions = True recycle:exclude = *.tmp|*.temp|*.o|*.obj|~$*|*.$$$ recycle:excludedir = /tmp|/temp|/trash recycle:noversions = .doc|.xls|.ppt|.dbf|.nsx|.idx|.dbt recycle:maxsize = 0

Diretiva Security

Funo Por padro, o SAMBA utiliza a segurana a nvel de usurio (security = user), mas existem outras opes: security = share -> Senhas de acesso sero solicitadas por cada recurso compartilhado e no por usurio, ou seja, cada diretrio ou impressora poder ter uma senha nica conhecida pelos usurios autorizados. security = user -> As permisses so dadas de acordo com o login do usurio, ou atravs dos grupos (grupo). security = server -> O Samba tentar validar a senha do usurio enviando dados para outro servidor SMB, como outro servidor SAMBA ou um servidor Windows. Deve-se incluir o parmetro .password server -x.x.x.x na seo [global] do smb.conf. security = domain -> Usado se o Host for adicionado a um domnio Windows atravs do comando smbpasswd. Neste caso as informaes de usurio e senha sero enviadas para o PDC da rede, exatamente como o servidor NT faria. Note que necessrio que a conta do usurio exista tanto no Linux quanto no servidor primrio.

os level

Este parmetro no obrigatrio se voc no possui um servidor Windows na rede, mas deve ser usado caso tenha um ou mais. A varivel um nmero de 1 a 255, onde 65 a mesma varivel utilizada 20/34

pelo servidor Windows. Especifique um nmero maior que este (como 100 por exemplo) para garantir que o servidor SAMBA seja eleito na escolha de validao do login das estaes. announce Permite especificar o tipo de servidor NetBios (nmbd) que ser divulgado na rede. As opes aceitas pelo SAMBA: "NT Server", "NT Workstation", "Win95"ou "WfW". Usado para validar o login na rede, apenas para estaes Windows. Indica qual arquivo de logon script ser executado para os usurios. A varivel %u corresponde ao usurio na rede. Deve tambm ser criado um compartilhamento de nome [netlogon] apontando para o diretrio dos scripts. Este campo, assim como muitos outros abaixo, sero melhor explicados quando formos estudar o Samba como PDC de rede. Indica o caminho do perfil remoto do usurio. A varivel %L corresponde ao nome do servidor NetBios (que pode ser o prprio SAMBA). O logon path til quando usurios costumam efetuar logon em mais de um Host na rede, pois seu perfil trazido com o logon. No caso do exemplo, o diretrio "Profiles"deve conter os scripts (em formato Microsoft usando NET USE e etc) e os scripts devem ser criados com o notepad do Windows por exemplo, a fim de conservar o formato do arquivo. domain master local master preferred master Indica se o Host ser o Domain Master Browser da rede inteira (WAN). Indica se o Host ser o Master Browser da rede local. Este parmetro fora a eleio do SAMBA como Master Browser para o workgroup. recomendvel utilizar este parmetro em conjunto com o .domain master = yes. para garantir a eleio. Mas tome cuidado: se voc possui uma rede com servidores Windows e SAMBA e j possui um servidor como Domain Master, no use esta opo e deixe o parmetro .os level = 65. para haver equilbrio. O SAMBA trabalha melhor em redes Microsoft com a existncia de uma conta guest (visitante em ingls). Por padro, a conta usada .nobody. Indica qual o servidor de Wins da rede. Se o prprio Host for o servidor de Wins ento no utilize este parmetro, pois haver um loop e o sistema travar. Parmetro usado para dar flexibilidade configurao do sistema. Permite ao SAMBA trabalhar corretamente com algumas situaes de erro, por exemplo. Diretivas de Compartilhamentos Configuram os compartilhamentos. 21/34

domain logons logon scripts

logon path

guest account wins server

debug level

#============================= #====== Compartilhamentos ======== #============================= [netlogon] comment = Servio de Logon em Rede [ xxxx.BAT ] path = /home/samba/netlogon browseable = No read only = Yes

[usuarios] comment = Diretrio Pessoal de Cada Usurio [ U:\ ] path = /home/usr/%u browseable = Yes writeable = Yes create mask = 0600 directory mask = 0700

[dados] comment = Sistemas e Dados de Usurios [ S:\ ] path = /dados writeable = Yes force create mode = 0660 force directory mode = 02770

[temp] comment = Dados Temporrios [ T:\ ] path = /temp writeable = Yes force create mode = 0666 force directory mode = 02777

22/34

Diretiva path browseable

Funo Especifica o diretrio que ser compartilhado Define se o compartilhamento ser ou no visvel para o Ambiente de Rede. Estaes Windows95 verso 4.00.950-C no aceitam esta opo, onde uma possvel soluo seria utilizar o nome do compartilhamento seguido de $ (teste$ por exemplo), como feito no Windows. Indica se o usurio poder ou no escrever em sua pasta pessoal (home dir). Se for yes nenhuma senha necessria para acessar o compartilhamento Lista de nomes de usurios, separados por vrgulas que a senha do compartilhamento ser testada contra, quando usando security = share Lista nominal separada por virgula ou espao, dos usuarios que podem acessar o compartilhamento. Em grupos adiciona-se o prefixo @ antes do nome. Ex: valid users = usurio1, usurio2 @servios Especifica lista de usuarios que so proibidos de acessar o compartilhamento. Determina mquinas que podem acessar o compartilhamento, identificadas por endereos IP, nomes NetBIOS, mascara de rede. Probe as mquinas que tero acesso ao compartilhamento

writeable Public User

Valid Users

Invalid Users Hosts allow Hosts deny [printers]

comment = Impressoras Linux public = no browseable = yes printable = yes path = /var/spool/samba admin users = admin, usuario1

Diretiva Comment Public

Funo Comentrio para o compartilhamento. Indica se ser ou no permitido o acesso de outros usurios. 23/34

Browseable Printable

Define se o compartilhamento ser ou no visvel para o Ambiente de Rede. Este parmetro permite aos clientes conectados abrir, escrever e submeter arquivos no diretrio especificado pelo "path". utilizado pelo SAMBA para diferenciar compartilhamento de impressora de compartilhamento de arquivo. Caminho do diretrio compartilhado.

Path

Substituio de Variveis (Macros) Possibilidade de substituio de strings por variveis, chamadas macros, que so processadas no momento que a diretiva entrar em operao. [homes] comment = Diretrio home do usurio path = /home/usuarios/%u Cada uma das variveis so descritas em detalhes abaixo: %S = O nome do servio atual, se existir. Seu uso interessante, principalmente no uso de diretrios homes. %P = O diretrio raiz do servio atual, se existir. %u = O nome de usurio do servio atual, se aplicvel. Esta varivel bastante til para programao de scripts e tambm para criar arquivos de log personalizados, etc. %g = O grupo primrio do usurio %u. %U = O nome de usurio da seo (o nome de usurio solicitado pelo cliente, no uma regra que ele ser sempre o mesmo que ele recebeu). %G = O nome do grupo primrio de %U. %H = O diretrio home do usurio, de acordo com %u. %v = A verso do Samba. %h = O nome DNS da mquina que est executando o Samba. %m = O nome NetBIOS da mquina do cliente. Isto muito til para log de conexes personalizados e outras coisas teis. %L = O nome NetBIOS do servidor. Como o servidor pode usar mais de um nome no samba (aliases), voc poder saber com qual nome o seu servidor est sendo acessado e possivelmente torn-lo o nome primrio de sua mquina. %M = O nome DNS da mquina cliente. %N = O nome do seu servidor de diretrios home NIS. Este parmetro obtido de uma entrada no seu arquivo auto.map. Se no tiver compilado o SAMBA com a opo --withautomount ento este valor ser o mesmo de %L. 24/34

%p = O caminho do diretrio home do servio, obtido de uma entrada mapeada no arquivo auto.map do NIS. A entrada NIS do arquivo auto.map dividida na forma "%N:%p". %R = O nvel de protocolo selecionado aps a negociao. O valor retornado pode ser CORE, COREPLUS, LANMAN1, LANMAN2 ou NT1. %d = A identificao de processo do processo atual do servidor. %a = A arquitetura da mquina remota. Somente algumas so reconhecidas e a resposta pode no ser totalmente confivel. O samba atualmente reconhece Samba, Windows for Workgroups, Windows 95, Windows NT e Windows 2000. Qualquer outra coisa ser mostrado como "UNKNOWN" (desconhecido). %I = O endereo IP da mquina do cliente. %T = A data e hora atual. %$(var_ambiente) = Retorna o valor da varivel de ambiente especificada.

25/34

EXERCCIO PRTICO 2 Vamos modificar nosso smb.conf e criar um compartilhamento acessvel por usurios no autenticados (pblico), que dever direcionar o usurio para /samba/nome/_netbios_do_servidor. Iremos tambm criar um arquivo de texto para verificar que o acesso funciona corretamente. O primeiro passo criar o diretrio que ser acessado, no caso, /samba/debianxx. Altere debianxx para o nome NetBIOS do seu servidor. O Samba sempre tratar o nome NetBIOS como se fosse escrito em caracteres minsculos quando for buscar este diretrio: # mkdir -p /samba/debianxx Vamos agora criar um arquivo dentro deste diretrio: # echo Arquivo Teste > /samba/debianxx/teste.txt Agora devemos editar nosso smb.conf e adicionar uma Stanza compartilhando este diretrio. O arquivo /etc/samba/smb.conf dever ficar assim (substitua DEBIANXX pelo nome de sua estao): 1 [global] 2 3 4 5 [compartilhamento] 6 7 path = /samba/%L public = yes workgroup = 3CTA netbios name = DEBIANXX

Descrio das linhas 1) 2) 3) 4) Incio da Stanza [global] Nome do grupo de trabalho Nome NetBIOS do servidores ............

5) Incio do compartilhamento chamado compartilhamento. Este o incio de sua Stanza e tambm o final da Stanza [global] 6) Diretrio que est sendo compartilhado. A varivel %L ser substituda pelo nome NetBIOS do servidor quando o compartilhamento for acessado. 7) Este parmetro indica que o diretrio acessvel por usurios no autenticados.

prximo passo, reiniciar os daemons do Samba para que as alteraes sejam aplicadas: # /etc/init . d/samba restart
Agora deve ser possvel acessar o compartilhamento a partir de uma mquina windows utilizando o endereo

26/34

\\DEBIANXX\compartilhamento

Para testar o funcionamento da macro %L, altere o nome NetBIOS do servidor, crie um diretrio /samba/novo_nome e reinicie o daemons do Samba.

4. FERRAMENTAS Os pacotes samba, smbclient e samba-tools disponibilizam diversas ferramentas de linha de comando.

testparm -v (antes do restart) Ferramenta primordial para o administrador, l um arquivo de configurao do Samba e verifica se h erros de sintaxe que impedem a inicializao do servidor. A opo -v mostra todos os valores usados pelo servidor.

smbpasswd Gerencia usuarios e senhas do Samba Modificando a senha de um usurio: # smbpasswd usurio Adicionando um usurio: # smbpasswd -a usurio Excluindo um usurio: # smbpasswd -x usurio

findsmb Script em perl que faz parte do pacote smblcient e descobre informaes sobre maquinas utilizando o protocolo SMB/CIFS informando maquinas, grupos de trabalho, domnios existentes na rede.

smbclient um cliente para o protocolo SMB/CIFS de linha de comando que permite lista e acessar compartilhamentos de forma rpida Listando compartilhamentos # smbclient -L localhost Enter root's password: - enter Anonymous login successful Domain=[3CTA.EB.MIL.BR] OS=[Unix] Server=[Samba 3.5.6]

Sharename

Type

Comment 27/34

--------IPC$ temp dados usuarios

---IPC Disk Disk Disk

------IPC Service (3cta.eb.mil.br) Dados Temporrios [ T:\ ] Sistemas e Dados de Usurios [ S:\ ] Diretrio Pessoal de Cada Usurio [ U:\ ]

Anonymous login successful Domain=[3CTA.EB.MIL.BR] OS=[Unix] Server=[Samba 3.5.6]

Server --------ARIEL

Comment ------3cta.eb.mil.br

Workgroup ---------

Master ------XXXXXX

3CTA.EB.MIL.BR

Exemplo de acesso em um servidor do 3CTA. * Acionando a tecla enter no campo password a listagem feita com usurio anonimo. Acessando um compartilhamento para efetuar operaes. $ smbclient '\\ubunbox\tmp' Enter root's password: Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.5.6] smb: \>

A partir deste momento voc estar no prompt interativo do smbclient. Listando o contedo do compartilhamento smb: \> ls . .. teste.txt D D 0 Fri Nov 19 13:30:30 2010 0 Mon Oct 18 21:05:05 2010 20 Fri Nov 19 09:07:19 2010

46103 blocks of size 262144. 24552 blocks available Fazendo download de um arquivo 28/34

smb: \> get arquivo

Pode-se salvar o arquivo com outro nome na estao smb: \> get arquivo /tmp/nome_do_arquivo.xxx

Enviando um arquivo smb: \> put /tmp/novoarquivo.txt novorquivo.txt * caso sua configurao de sistema no permita gravao na pasta destino, ser exibido o seguinte resultado: smb: \> put /tmp/novoarquivo.txt novoarquivo.txt NT_STATUS_ACCESS_DENIED opening remote file \novoarquivo.txt

smbcacls Leitura e definio de ACLs

smbquotas Leitura e definio de quotas em compartilhamentos de diretrios

5. Backends de Usurios Autenticao e Permisses no Samba Devido ao seu modo de funcionamento, em que cada daemon smbd executado como se fosse o usurio que se autenticou, o Samba exige que uma conta local existia no servidor em que executado. Alm disso ele ser limitado por permisses do sistema de arquivo. Mesmo que sua prpria configurao permitida alguma operao Um usurio com permisso de escrita em um compartilhamento do Samba no ir conseguir gravar um arquivo caso seu usurio no possua permisso de escrita no diretrio em nvel de sistema de arquivos. Porm o Samba no pode utilizar a conta do sistema diretamente para autenticar usurios pois existem vrio atributos utilizados no SMB/CIFS que no existem no Unix, alm das senhas serem armazenadas em um formato diferente. Uma conta de usurio do Samba ir conter diversos dados extras: Senhas no formato LanMan e MD4 Flags de controle, utilizadas para determinar se a conta um usurio ou uma mquina, se foi bloqueada, se uma relao de confiana, etc. Veja nos anexos, uma lista completa das flags de contas do Samba. SID Security Identifier ou identificador de segurana do usurio e grupo. 29/34

Estes so atributos essenciais no funcionamento do Samba. As senhas utilizadas atualmente no protocolo SMB/CIFS so derivadas da criptografia MD4 e no caso de verses mais antigas do cliente so utilizadas senhas LanMan. Devido essas duas caractersticas sempre que um usurio ou mquina for ser utilizado pelo samba ele dever existir como dois objetos: um usurio e sistema e tambm um usurio do damba. Na configurao padro isso feito criando-se, literalmente, dois usurios em bases distintas: os usurios de sistema so armazenados no arquivo /etc/passwd e os usurios do Samba so armazenados no arquivo /etc/samba/smbpasswd ou. No caso do Samba verso 3 ou superior tambm podem ser gravados em um arquivo tdb localizado em Samba verso 3 ou superior tambm podem ser gravados em um arquivo . Tdb localizado em /var/lib/samba/passdb.tdb. Por padro, no Debian, o arquivo/etc/samba/smbpasswd ser utilizado. Outras distribuies, como o Ubuntu, j adotam o arquivo passdb.tdb como padro e esse ser o comportamento caso o Samba seja complicado a partir do cdigo-fonte sem alteraes. O formato do smbpasswd o seguinte: [nome do usurio]:[UID Unix]:[hash NT]:[flags]:[horrio de modificao]:

Backends Como mencionar o Samba pode utilizar um arquivo chamado smbpasswd para armazenar os usurios e tambm pode utilizar um arquivo .tdb. Estes so dois backends possveis: maneiras de armazenar os dados de autenticao que o servidor Damba utilizar. Atualmente o Samba permite a utilizao dos seguintes backends:

Plaintext Backend original Samba, recuperava informaes diretamente da base Unix e toda autenticao era feita utilizando o PAM. Nenhuma informao especfica do protocolo SMB armazenada e senhas criptografadas no so suportadas.

Smbpasswd Tradicionalmente usado quando senhas criptografadas so utilizadas, um arquivo de texto simples que armazena dados especficos do protocolo SMB como os hashes se senha NT/LM e flags indicando a situao e tipo de contas> Entretanto este mtodo apresenta vrios problemas: Pesquisas de usurios so feitas de maneira sequencial, tornando a consulta lenta em servidores com muitos usurios. Esse problema se torna ainda mais crtico levando-se em considerao que o Samba faz aproximadamente duas consultas a cada solicitao de login. No existe uma maneira robusta de replicao deste arquivo. Vrios atributos suportados no so armazenados, como o diretrio pessoal de usurios especficos ou mesmo os RIDs dos usurios, sendo necessrio que o servidor os calcule a cada consulta. Por estes motivos foi adicionado suporte a outros backends. 30/34

Tdbsam Este backend armazena as contas em um arquivo trivial database. Foi desenvolvido para utilizao em servidores que no necessitam de um LDAP e atenua os problemas que o backend smbpasswd apresenta em relao a performace, sendo recomendado para servidores com at 250 usurios, e tambm pode conter atributos adicionais.

LDAPsam Utilizar este backend permitir a utilizao de um servidor LDAP para armazenar as contas do Samba, e apresenta diversas vantagens em relao aos outros mtodos, ao custo de uma complexidade maior do ambiente. Quando utilizando o LDAP podemos unificar as contas de sistema e contas do Samba, simplificando a administrao. Alm disso possvel compartilhar o backend de usurios entre servidores diferentes, o que particularmente til quando estamos trabalhando com servidores Samba como PDC e BDC.

Escolhendo o Backend A seleo entre os diferentes backends disponveis feita utilizando-se a diretiva passdb backend em nosso arquivo /etc/samba/smb.conf. Assim, poderamos ter as seguintes situaes: smbpasswd: passdbbackend=smbpasswd tdbsam: passdbbackend=tdbsam Idapsam: passdbbackend=1dapsam Nenhuma configurao extra necessria no caso dos backends smbpasswd e tdbsam, que iro utilizar os arquivos na localizao padro. No caso da utilizao do Idapsam outras configuraes ainda so necessrias, que sero abordadas posteriormente em um captulo especfico sobre a utilizao do LDAP com o Samba. Caso se deseje utilizar um arquivo em uma localizao no padro, pode-se especificar onde esse se encontra da seguinte forma:
passdbbackend=tdbsam:/srv/samba/passdb.tdb

Esta configurao faria com que o Samba procurasse pelo arquivo passdb.tdb no diretrios/srv/samba. Gerenciando Usurios no Samba Para criar um usurio no Samba devemos primeiro adicionar um usurio local no sistema e ento criar a conta do Samba utilizando o comando smbpasswd. Portanto, para adicionarmos um usurio chamado usurio1 no sistema, devemos fazer o seguinte: # useradd usurio1 # smbpasswd a usurio1 New SMB password: 31/34

Retype new SMB password: Added user usurio1 Uma vez adicionado /etc/samba/smbpasswd: #cat/etc/samba/smbpasswd usurio1: 1005: xxxxxxxxxxxxxx: 31E0C089C0: [U ] : LCT- 4DO8DB3C o usurio, devemos conseguir visualiz-lo no arquivo

O contedo do arquivo passdb.tdb semelhante (podendo conter mais dados) e , quando utilizamos este backend, pode ser visualizado atravs do seguinte comando: # tdbdump/var/lib/samba/passdb.tdb Para remover usurios do Samba devemos primeiro remov-los do backend Samba para somente ento remov-los do sistema: # smbpasswd -x usurio1 # userdel usurio1

LABORATORIO 1 Fazer um script para realizar o backup do arquivo de configurao e das bases de dados.tdb do Samba. Para isso, o script dever fazer o seguinte: copiar o arquivo de configurao para um diretrio de backup executar o tdbdump, gerado os arquivos .bak das bases do Samba copiar os arquivos .bak para o diretrio de backup verificar se o .bak foi gerado com sucesso; se no foi feito, restaure o ultimo Backup valido

* voc ter acesso soluo da questo no final da primeira semana do curso *

32/34

CONCLUSO O SAMBA permite ainda muitas outras configuraes que podem ser consultadas atravs do man do smb.conf. Uma documentao importante est em /usr/doc/samba-2.0.x/ com dicas e referencias a segurana, navegao, compatibilidades, etc. aconselhvel reiniciar o SAMBA a cada modificao no smb.conf (embora no seja realmente necessrio), principalmente em se tratando de parmetros como "path", "logon master", e outros que definem acesso ou segurana. Sua compreenso no difcil, mas requer um certo tempo de aprendizado, pois sua configurao bastante abrangente para atender os mais diversos tipos de necessidade. Lembre-se que a documentao do SAMBA (do protocolo SMB em geral) extensa. Consulte os docs criados aps a sua instalao.

33/34

REFERNCIA BIBLIOGRFICA
VILLAS BOAS, Tiago; MENDONA, Nelson. Samba, totalmente reformulado para Samba 3. 3 Ed.,Brasport, 2006. FERRARI, Sandro Roberto; Sambando com Linux. 2 Ed., Rio de Janeiro: Alta Books, 2009. http://www.samba.org/ Acesso em 2 Mai 2012. http://www.cdtc.org.br/ Acesso em 3 Mai 2012. http://www.diegolima.org/wordpress/ Acesso em 3 Mai 2012. http://www.jsbusiness.com.br/foca/avancado/ch-s-samba.htm#s-s-samba-s-varsubst Acesso em 4 Mai 2012. http://debian.org Acessado em 4 Mai 2012.

34/34