Você está na página 1de 64

Guia Foca GNU/Linux Captulo 18 - SAMBA

Este captulo descreve a configurao, utilizao, aplicao, integrao de redes Windows e Linux atravs do SAMBA. Entre as explicaes de cada opo, so passados detalhes importantes relacionados com seu funcionamento, performance e impactos de segurana sobre o servidor como um todo. Uma seo foi especialmente separada para os mais paranicos (como eu) conhecerem, combinar e aplicar as restries de forma mais adequada a configurao da mquina.

18.1 Introduo
O SAMBA um servidor e conjunto de ferramentas que permite que mquinas Linux e Windows se comuniquem entre si, compartilhando servios (arquivos, diretrio, impresso) atravs do protocolo SMB (Server Message Block)/CIFS (Common Internet File System), equivalentes a implementao NetBEUI no Windows. O SAMBA uma das solues em ambiente UNIX capaz de interligar redes heterognea. Na lgica da rede Windows o NetBEUI o protocolo e o NETBIOS define a forma com que os dados so transportados. No correto dizer que o NetBIOS o protocolo, como muitos fazem. Com o SAMBA, possvel construir domnios completos, fazer controle de acesso a nvel de usurio, compartilhamento, montar um servidor WINS, servidor de domnio, impresso, etc. Na maioria dos casos o controle de acesso e exibio de diretrios no samba mais minucioso e personalizvel que no prprio Windows. O guia Foca GNU/Linux documentar como instalar e ter as mquinas Windows de diferentes verses (Win3.11, Win95, Win95OSR/2, Win98, XP, WinNT, W2K) acessando e comunicando-se entre si em uma rede NetBEUI. Estas explicaes lhe podero ser indispensveis para solucionar problemas, at mesmo se voc for um tcnico especialista em redes Windows e no tem ainda planos de implementar um servidor SAMBA em sua rede.

18.1.1 Verso documentada


A verso do servidor samba documentada neste captulo do guia a 2.2.

18.1.2 Histria
Andrew Tridgell - Desenvolveu o samba porque precisava montar um volume Unix em sua mquina DOS. Inicialmente ele utilizava o NFS, mas um aplicativo precisava de suporte NetBIOS. Andrew ento utilizou um mtodo muito avanado usado por administradores para detectar problemas: escreveu um sniffer de pacotes que atendesse aos requerimentos para ter uma nica funo: analisar e auxilia-lo a interpretar todo o trfego NetBIOS da rede. Ele escreveu o primeiro cdigo que fez o servidor Unix aparecer como um servidor de arquivos Windows para sua mquina DOS que foi publicado mais ou menos em meados de 1992 quando tambm comeou a receber patches. Satisfeito com o funcionamento de seu trabalho, deixou seu trabalho de lado por quase 2 anos. Um dia, ele resolveu testar a mquina Windows de sua esposa com sua mquina Linux, e ficou maravilhado com o funcionamento do programa que criou e veio a descobrir que o protocolo era documentado e resolveu levar este trabalho a fundo melhorando e implementando novas funes. O SAMBA atualmente um servidor fundamental para a migrao de pequenos grupos de trabalho grandes domnios com clientes mixtos. Nenhum servidor de rede NetBEUI conhecido proporciona tanta flexibilidade de acesso a clientes como o SAMBA para compartilhamento de arquivos/impresso em rede. As funes de segurana que foram adicionadas ao SAMBA hoje garantem um controle mais rigoroso que a prpria implementao usada no Windows NT, incluindo o servios de diretrios, mapeamento entre IDs de usurios Windows com Linux, PDC,

perfis mveis e uma coisa que inclusive apresenta problemas no Windows: compatibilidade total entre as diferentes implementaes de verses do Windows. Sua configurao pode receber ajustes finos pelo administrador nos soquetes TCP de transmisso, recepo, cache por compartilhamento, configuraes fsicas que afetam a performance de rede. Seu cdigo vem sendo melhorado constantemente por hackers, obtendo excelente performance com hardwares mais obsoletos. O guia tem por objetivo abordar estes temas e permitir que voc configure seu sistema com uma performance batendo a mesma alcanada em um servidor NT dedicado.

18.1.3 Contribuindo
Para contribuir com o desenvolvimento do samba, veja os detalhes na pgina: http://us1.samba.org/samba/devel/ Caso encontre um bug no programa, ele poder ser relatado se inscrevendo na lista de discusso samba-technicalrequest@lists.samba.org. Aps responder a mensagem de confirmao, envie um relato detalhado do problema encontrado no programa.

18.1.4 Caractersticas
Segue abaixo algumas funcionalidades importantes de aplicaes do samba e seu conjunto de ferramentas: Compartilhamento de arquivos entre mquinas Windows e Linux ou de mquinas Linux (sendo o servidor SAMBA) com outro SO que tenha um cliente NetBEUI (Macintosh, OS/2, LanManager, etc). Montar um servidor de compartilhamento de impresso no Linux que receber a impresso de outras mquinas Windows da rede. Controle de acesso aos recursos compartilhados no servidor atravs de diversos mtodos (compartilhamento, usurio, domnio, servidor). Controle de acesso leitura/gravao por compartilhamento. Controle de acesso de leitura/gravao por usurio autenticado. Possibilidade de definir contas de "Convidados", que podem se conectar sem fornecer senha. Possibilidade de uso do banco de dados de senha do sistema (/etc/passwd), autenticao usando o arquivo de dados criptografados do samba, LDAP, PAM, etc. Controle de cache e opes de tunning por compartilhamento. Permite ocultar o contedo de determinados diretrios que no quer que sejam exibidos ao usurio de forma fcil. Possui configurao bastante flexvel com relao ao mapeamento de nomes DOS => UNIX e vice versa, pgina de cdigo, acentuao, etc. Permite o uso de aliases na rede para identificar uma mquina com outro nome e simular uma rede NetBIOS virtual. O samba possibilita ajuste fino nas configuraes de transmisso e recepo dos pacotes TCP/IP, como forma de garantir a melhor performance possvel de acordo com suas instalaes. Permite o uso do gerenciador de mensagem do Linux (Linpopup) para a troca de mensagens com estaes Windows via NetBios. Com a flexibilidade do samba possvel at redirecionar a mensagem recebida via e-mail ou pager. Possui suporte completo a servidor WINS (tambm chamado de NBNS - NetBios Name Service) de rede. A configurao bastante fcil. Faz auditoria tanto dos acessos a pesquisa de nomes na rede como acesso a compartilhamentos. Entre os detalhes salvos esto a data de acesso, IP de origem, etc.

Suporte completo a controlador de domnio Windows (PDC). Suporte quase completo a backup do controlador de domnio (BDC). At a verso 2.2 do samba, o suporte a BDC parcial. Este cdigo provavelmente estar estvel at a verso 3.0. Permite montar unidades mapeadas de sistemas Windows ou outros servidores Linux como um diretrio no Linux. Permite a configurao de recursos simples atravs de programas de configurao grficos, tanto via sistema, como via web. Permite executar comandos no acesso ao compartilhamento ou quando o acesso ao compartilhamento finalizado. Com um pouco de conhecimento e habilidade de administrao de sistemas Linux, possvel criar ambientes de auditoria e monitorao at monitorao de acesso a compartilhamento em tempo real. Entre outras possibilidades.

18.1.5 Ficha tcnica


Pacote samba Outros utilitrios importantes para a operao do clientes samba. smbclient - Ferramenta para navegao e gerenciamento de arquivos, diretrios e impressoras compartilhados por servidores Windows ou samba. smbfs - Pacote que possui ferramentas para o mapeamento de arquivos e diretrios compartilhados por servidores Windows ou samba em um diretrio local. winbind - Daemon que resolve nomes de usurios e grupo atravs de um servidor NT/SAMBA e mapeia os UIDs/GIDs deste servidor como usurios locais.

18.1.6 Requerimentos de Hardware


Processador 386 ou superior, 15 MB de espao em disco (no levando em conta os logs gerados e espao para arquivos de usurios, aplicativos, etc.), 8 MB de memria RAM.

18.1.7 Arquivos de log criados


O daemon nmbd salva seus logs em /var/log/daemon.log (dependendo da diretiva de configurao syslog do arquivo smb.conf) e em /var/log/samba/log.nmbd. Os detalhes de acesso a compartilhamento so gravados no arquivo /var/log/samba/log.smbd (que pode ser modificado de acordo com a diretiva log file no smb.conf, Log de acessos/servios, Seo 18.2.8.5).

18.1.8 Instalao
Digite apt-get install samba smbclient smbfs para instalar o conjunto de aplicativos samba. O pacote samba o servidor samba e os pacotes smbclient e smbfs fazem parte dos aplicativos cliente. Caso deseje apenas mapear compartilhamentos remotos na mquina Linux, instale somente os 2 ltimos pacotes.

18.1.9 Iniciando o servidor/reiniciando/recarregando a configurao


O servidor samba pode ser executado tanto via inetd como daemon: inetd No modo inetd, o servidor de nomes nmbd ser carregado assim que for feita a primeira requisio de pesquisa e ficar residente na memria. No caso de acesso a um compartilhamento, o smbd ser carregado e ler a configurao em smb.conf a cada acesso do cliente a um compartilhamento. Quando o samba opera via inetd, ele no usa o controle de acesso dos arquivos hosts.allow e hosts.deny. Veja Restringindo o acesso por IP/rede, Seo 18.12.2 e Restringindo o acesso por interface de rede, Seo 18.12.3 para detalhes de como fazer o controle de acesso. Para reiniciar o samba digite killall -HUP nmbd. No necessrio reiniciar o servio smbd, conforme foi explicado acima. daemon Quando opera no modo daemon, ambos os daemons nmbd e smbd so carregados. No caso de um acesso a compartilhamento, criado um processo filho do smbd que finalizado assim que o compartilhamento no for mais usado. Para iniciar o samba em modo daemon digite: /etc/init.d/samba start, para interromper o samba: /etc/init.d/samba stop e para reiniciar: /etc/init.d/samba restart. Se desejar mudar do modo daemon para inetd ou vice versa, edite o arquivo /etc/default/samba e modifique o valor da linha RUN_MODE= para daemons ou inetd. Uma forma de fazer isso automaticamente executando o dpkg-reconfigure samba. OBS: Como praticamente no existe diferena entre os modos de operao inetd e daemon para o SAMBA, aconselhvel que execute sempre que possvel via inetd, pois isto garantir uma disponibilidade maior do servio caso algo acontea com um dos processos.

18.1.10 Opes de linha de comando


Opes de linha de comando usadas pelo nmbd: -H [arquivo_lmhosts] Quando especificado, o servidor samba far a procura de nomes primeiro neste arquivo e depois usando a rede. -s [arquivo_cfg] Especifica uma nova localizao para o arquivo de configurao do samba. Por padro o /etc/samba/smb.conf usado. -d [num] Especifica o nvel de depurao do nmbd, que podem ir de 0 a 10. O valor padro 0. -l [diretrio] Especifica a localizao do diretrio onde o nmbd gravar o arquivo de log log.nmbd. O valor padro /var/log/samba -n [nomeNetBIOS]

Permite utilizar o nome NetBIOS especificado a invs do especificado no arquivo smb.conf para identificar o computador na rede.

18.2 Conceitos gerais para a configurao do SAMBA


Este captulo documenta como configurar o seu servidor SAMBA permitindo o acesso a compartilhamento de arquivos e impresso no sistema.

18.2.1 Nome de mquina (nome NetBios)


Toda a mquina em uma rede NetBEUI identificada por um nome, este nome deve ser nico na rede e permite que outras mquinas acessem os recursos disponibilizados ou que sejam enviadas mensagens para a mquina. Este nome composto de 16 caracteres, sendo 15 que identificam a mquina e o ltimo o tipo de servio que ela disponibiliza. O tipo de servio associado com o nome da mquina e registrado em servidores de nomes confirme a configurao da mquina (voc ver isto mais adiante). O nome de mquina especificado nas diretivas netbios name e netbios aliases (veja Nomes e grupos de trabalho, Seo 18.2.8.1) para detalhes.

18.2.2 Grupo de trabalho


O grupo de trabalho organiza a estrutura de mquinas da rede em forma de rvore, facilitando sua pesquisa e localizao. Tomemos como exemplo uma empresa grande com os departamentos comunicao, redes, web, rh, as mquinas que pertencem ao grupo de redes sero agrupadas no programa de navegao:
redes gleydson tecnico marcelo henrique michelle rh mrpaoduro web web1 web2 web3 comunicacao comunic1 comunic2 comunic3

A segurana no acesso a arquivos e diretrios na configurao de grupo de trabalho controlada pela prpria mquina, normalmente usando segurana a nvel de compartilhamento. Esta segurana funciona definindo um usurio/senha para acessar cada compartilhamento que a mquina possui. O Lan Manager, Windows for Workgroups, Windows 95, Windows 98, XP Home Edition usam este nvel de acesso por padro. Se deseja configurar uma rede usando o nvel de grupo de trabalho, veja Configurao em Grupo de Trabalho, Seo 18.4 para detalhes passo a passo e exemplos prticos. Os programas para navegao na rede NetBIOS so mostrados em smbclient, Seo 18.14.2.9.2, nmblookup, Seo 18.14.2.9.3 e Programas de navegao grficos, Seo 18.14.5.

18.2.3 Domnio
O funcionamento semelhante ao grupo de trabalho, com a diferena que a segurana controlada pela mquina central (PDC) usando diretivas de acesso e grupos. O PDC (Primary Domain Controller) dever ter todas as contas de acesso que sero utilizadas pelo usurio para acessar os recursos existentes em outras mquinas, script de logon que poder ser executado em cada mquina para fazer ajustes, sincronismo, manuteno ou qualquer outra tarefa programada pelo administrador do sistema. Estas caractersticas para configurao de mquinas em domnio so documentadas passo a passo em Uma breve introduo a um Domnio de rede, Seo 18.7.1.

18.2.4 Compartilhamento
Um compartilhamento um recurso da mquina local que disponibilizado para acesso via rede, que poder ser mapeada (veja Mapeamento, Seo 18.2.5) por outra mquina. O compartilhamento pode ser um diretrio, arquivo, impressora. Alm de permitir o acesso do usurio, o compartilhamento pode ser protegido por senha, e ter controle de acesso de leitura/gravao, monitorao de acessos, diretrios ocultos, autenticao via PDC (domnio) e outras formas para restringir e garantir segurana na disponibilizao dos dados (veja Controle de acesso ao servidor SAMBA, Seo 18.12 para aprender os mtodos de como fazer isto). Um compartilhamento no SAMBA pode ser acessvel publicamente (sem senha) ou estar rigidamente protegido tendo que passar por diversas barreiras para chegar ao seu contedo, como senhas, endereo de origem, interfaces, usurio autorizados, permisses de visualizao, etc. O guia Foca Linux abordar estes assuntos com detalhes e explicar didaticamente como tornar seguro seu servidor samba e garantir um minucioso controle de acesso a seus compartilhamentos.

18.2.5 Mapeamento
Mapear significa pegar um diretrio/arquivo/impressora compartilhado por alguma mquina da rede para ser acessada pela mquina local. Para mapear algum recurso de rede, necessrio que ele seja compartilhado na outra mquina (veja Compartilhamento, Seo 18.2.4). Por exemplo, o diretrio /usr compartilhado com o nome usr, pode ser mapeado por uma mquina Windows como a unidade F:, ou mapeado por uma mquina Linux no diretrio /mnt/samba. O programa responsvel por mapear unidades compartilhadas no Linux o smbmount e smbclient (veja Linux, Seo 18.14.2.9).

18.2.6 Navegao na Rede e controle de domnio


Esta funo controlada pelo nmbd que fica ativo o tempo todo disponibilizando os recursos da mquina na rede, participando de eleies NetBIOS (Nveis de sistema para eleio de rede, Seo 18.2.12), fazer logon de mquinas no domnio (Uma breve introduo a um Domnio de rede, Seo 18.7.1), etc. A funo de navegao na rede feita utilizando o compartilhamento IPC$. Este compartilhamento possui acesso pblico somente leitura e utiliza o usurio "guest" para disponibilizao de seus. Como deve ter percebido, necessrio especificar esta ID de usurio atravs do parmetro guest account (Descrio de parmetros usados em compartilhamento, Seo 18.3.1), ou a navegao de recursos no sistema (ou na rede, dependendo da configurao do SAMBA) no funcionar. OBS: A funo de navegao (browsing) poder no funcionar corretamente caso a mquina no consiga resolver nomes NetBIOS para endereos IP.

18.2.7 Arquivo de configurao do samba


Toda a configurao relacionada com nomes, grupo de trabalho, tipo de servidor, log, compartilhamento de arquivos e impresso do samba colocada no arquivo de configurao /etc/samba/smb.conf. Este arquivo dividido em sees e parmetros. Uma seo no arquivo de configurao do samba (smb.conf) definido por um nome entre "[ ]". As sees tem o objetivo de organizar os parmetros pra que tenham efeito somente em algumas configuraes de compartilhamento do servidor (exceto os da seo [global] que no especificam compartilhamentos, mas suas diretivas podem ser vlidas para todas os compartilhamentos do arquivo de configurao). Alguns nomes de sees foram reservados para configuraes especficas do samba, eles so os seguintes: [global] Define configuraes que afetam o servidor samba como um todo, fazendo efeito em todos os compartilhamentos existentes na mquina. Por exemplo, o grupo de trabalho, nome do servidor, pgina de cdigo, restries de acesso por nome, etc. Veja Seo [global], Seo 18.2.8. [homes] Especifica opes de acesso a diretrios homes de usurios. O diretrio home disponibilizado somente para seu dono, aps se autenticar no sistema. Veja Seo [homes], Seo 18.2.9. [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. Veja Seo [printers], Seo 18.2.10. [profile] Define um perfil quando o servidor samba usado como PDC de domnio. Veja Configurando perfis de usurios, Seo 18.7.8. Qualquer outro nome de [seo] no arquivo smb.conf que no sejam as acima, so tratadas como um compartilhamento ou impressora. Um parmetro definido no formato nome = valor. Para um exemplo prtico, veja um exemplo de arquivo smb.conf em Exemplos de configurao do servidor SAMBA, Seo 18.15. Na configurao de booleanos, a seguinte sintaxe pode ser usada: 0 ou 1 yes ou no true ou false Assim, as seguintes configuraes so equivalentes
master browse = 0 master browse = no master browse = false

Todos significam "NO ser o navegador principal de domnio". A escolha fica a gosto do administrador. Durante a configurao, voc notar o poder da flexibilidade oferecida pelo samba na configurao de um servidor SMB :-) Linhas iniciadas por # ou ; so tratadas como comentrio. Quebras de linha pode ser especificadas com uma \ no final da linha.

18.2.8 Seo [global]


Os parmetros especificados nesta seo tem efeito em todo o servidor samba incluindo os compartilhamentos. Caso o parmetro seja novamente especificado para o compartilhamento, o valor que valer o do compartilhamento. Por exemplo, se guest user = nobody for usado na seo [global] e o guest user = foca for usado no compartilhamento [focalinux], o usurio que far acesso pblico a todos os compartilhamentos do servidor ser o nobody, exceto para o compartilhamento [focalinux], que ser feito pelo usurio foca. Veja Compartilhamento de arquivos e diretrios, Seo 18.3 para obter uma lista e descrio dos principais parmetros de compartilhamentos existentes. Uma lista completa pode ser obtida na pgina de manual do smb.conf. Irei descrever alguns parmetros utilizados nesta seo, organizado de forma didtica e simplificada.

18.2.8.1 Nomes e grupos de trabalho netbios name = [nome do servidor] Especifica o nome NetBIOS primrio do servidor samba. Caso no seja ajustado, ele usar o hostname de sua mquina como valor padro. Ex.: netbios name = focasamba. workgroup = [grupo de trabalho/domnio] Diz qual o nome do grupo de trabalho/domnio que a mquina samba pertencer. Ex.: workgroup = focalinux. netbios aliases = [nomes alternativos ao sistema] Permite o uso de nomes alternativos ao servidor, separados por espaos. Ex.: teste1 teste2. server string = [identificao] Identificao enviada do servidor samba para o ambiente de rede. A string padro Samba %v (%v substituda pela verso do samba, para maiores detalhes, veja Variveis de substituio, Seo 18.2.13). Ex: server string = Servidor Samba verso %v. name resolve order = [ordem] Define a ordem de pesquisa para a resoluo de nomes no samba. A ordem padro : lmhosts host wins bcast, que a melhor para resoluo rpida e que tente gerar menos trfego broadcast possvel. Veja Resoluo de nomes de mquinas no samba, Seo 18.5 para uma explicao mais detalhada.

18.2.8.2 Caracteres e pgina de cdigo Uma das partes essenciais aps colocar o SAMBA em funcionamento, configurar a pgina de cdigo para que os caracteres sejam gravados e exibidos corretamente no cliente. A primeira coisa que precisa verificar se seu kernel possui o suporte a pgina de cdigo local. Caso no tenha, baixe o fonte do kernel e siga os seguintes passos na configurao:

Dentro da opo "File Systems", "Network File Systems" defina como "Default Remote NLS Option" a iso8859-1. Esta opo permite ao smbmount montar os volumes locais usando os caracteres corretos. Entre na opo "File Systems", "Native Language Support". Na opo "Default NLS Option" coloque "iso8859-1". Ative tambm o suporte as pginas de cdigo 437, 850 e 860 e tambm ao conjunto de caracteres iso8859-1 e UTF8. Note que esta ordem pode variar dependendo da verso do seu kernel, basta que as entenda para fazer as modificaes apropriadas. character set = [conjunto_caracteres] Seleciona o conjunto de caracteres dos arquivos exibidos pelo servidor samba. Para os idiomas de lngua latina, sempre utilize iso8859-1. Ex.: character set = iso8859-1. client code page = [pagina_de_codigo] Seleciona a pgina de cdigo do servidor samba para tratar os caracteres. Para os idiomas de lngua latina, sempre utilize 850. Ex.: client code page = 850. preserve case = Seleciona se arquivos com nomes extensos criados sero criados com os caracteres em maisculas/minsculas definidos pelo cliente (no) ou se ser usado o valor de default case (caso seja especificado yes). short preserve case = Seleciona se os arquivos com nomes curtos (formato 8.3) sero criados com os caracteres mixtos enviados pelo cliente (no) ou se ser usando o valor de default case (caso seja especificado yes). default case = [lower/upper] Define se os arquivos criados tero seus nomes todos em minsculas (lower) ou maisculas (upper). valid chars = [caracteres] Define caracteres vlidos nos nomes de arquivos: valid chars =: : : : : : : : : : : :. Este parmetro DEVER ser sempre especificado depois do client code page, pois caso contrrio, eles sero substitudos por estes.

18.2.8.3 Restries de acesso/mapeamento de usurios guest account = [conta] Define a conta local de usurio que ser mapeada quando um usurio se conectar sem senha (usurio guest). Veja mais detalhes em Descrio de parmetros usados em compartilhamento, Seo 18.3.1. invalid users Define uma lista de usurios que no tero acesso aos recursos do servidor ou compartilhamento. seguro restringir o acesso samba a usurios com grande poder no sistema (como o root). Veja mais detalhes em

Restringindo o acesso por usurios, Seo 18.12.4. valid users Semelhante a opo invalid users mas permite que somente os usurios especificados tenham acesso ao sistema. Veja mais detalhes em Restringindo o acesso por usurios, Seo 18.12.4. default service = nome Caso o servio que o usurio deseja se conectar no for encontrado no servidor, o SAMBA mapear o servio especificado nesta diretiva como alternativa. A varivel "%S" e o caracter "_" podem ser interessantes em algumas alternativas de configurao. A opo default um sinnimo para esta opo. Caso utilize esta opo, crie o compartilhamento em modo somente leitura e com acesso pblico, caso contrrio (dependendo do planejamento de parties e segurana do sistema de arquivos) a mquina poder ser derrubada sem dificuldades. username map = [arquivo] Especifica um arquivo que faz o mapeamento entre nomes fornecidos por clientes e nomes de contas Unix locais. Veja Mapeamento de nomes de usurios, Seo 18.12.16 para mais detalhes de como configurar este recurso. obey pam restrictions = yes Indica se as restries do usurio nos mdulos PAM tero efeito tambm no SAMBA.

18.2.8.4 Nveis de autenticao (esta seo contm algumas explicaes que dependem do resto do contedo do guia, caso no entenda de imediato a fundo as explicaes, recomendo que a leia novamente mais tarde). Define o nvel de segurana do servidor. Os seguintes valores so vlidos: share - Usada principalmente quando apenas a senha enviada por compartilhamento acessado para o servidor, caso muito tpico em sistemas Lan Manager e Windows for Workgroups. Mesmo assim o samba tenta mapear para um UID de usurio local do sistema usando os seguintes mtodos (retirado da pgina de manual do samba): Se o parmetro guest only usado no compartilhamento junto com o guest ok, o acesso imediatamente permitido, sem verificar inclusive a senha. Caso um nome de usurio seja enviado junto com a senha, ele utilizado para mapear o UID e aplicar as permisses deste usurio (como acontece no nvel de segurana user). Se ele usou um nome para fazer o logon no Windows este nome ser usado como usurio local do SAMBA. Caso ele seja diferente, voc dever usar o mapeamento de nomes para associar o nome remoto do nome local (veja Mapeamento de nomes de usurios, Seo 18.12.16) O nome do servio tentado como nome de usurio. O nome da mquina NetBios tentada como nome de usurio Os usurios especificados na opo user do compartilhamentos so utilizados (veja Descrio de

parmetros usados em compartilhamento, Seo 18.3.1). Caso nenhum destes mtodos acima for satisfeito, o acesso NEGADO. Hoje em dia, o uso do nvel de acesso share raramente usado, porque todos os sistemas a partir do Windows 95 e acima enviam o nome de usurio ao acessar um compartilhamento (caindo na segunda checagem do nvel share), sendo equivalente a usar o nvel user. Entretanto, o nvel de segurana share recomendado para servidores onde TODO o contedo deve ter acesso pblico (seja leitura ou gravao) e o parmetro guest shares tambm funciona nativamente. As senhas criptografadas (encrypt passwords = 1) NO funcionaro no nvel share, lembrese deste detalhe. user - Este o padro. O usurio precisa ter uma conta de usurio no Linux para acessar seus compartilhamentos. A mesma conta de usurio/senha dever ser usada no Windows para acessar seus recursos ou realizado um mapeamento de nomes de usurios (veja Mapeamento de nomes de usurios, Seo 18.12.16). Este o padro do SAMBA. No nvel de acesso user o usurio precisa ser autenticado de qualquer forma, inclusive se for usado o parmetro guest only ou user. Os seguintes passos so usados para autorizar uma conexo usando o nvel user (retirado da documentao do SAMBA): tentada a validao usando o nome/senha passados pelo cliente. Se tudo estiver OK, a conexo permitida. Caso j tenha se autenticado anteriormente para acessar o recurso e forneceu a senha correta, o acesso permitido. O nome NetBIOS da mquina do cliente e qualquer nome de usurio que foi usado novamente tentado junto com a senha para tentar permitir o acesso ao recurso compartilhado. Caso o cliente tenha validado o nome/senha com o servidor e o cliente enviou novamente o token de validao, este nome de usurio usado. tentada a checagem com o parmetro user no compartilhamento (veja Descrio de parmetros usados em compartilhamento, Seo 18.3.1. verificado se o servio pblico, ento a conexo feita usando o usurio guest account e ignorando a senha (veja Criando um compartilhamento para acesso sem senha, Seo 18.12.7). domain - Neste nvel, o acesso s ser permitido quando a mquina for adicionada ao domnio com o smbpasswd (Linux, Seo 18.14.3.9). Neste nvel de acesso, a conta de usurio ser validada em um servidor PDC (controlador de domnio) e o acesso aos recursos das mquinas que fazem parte do domnio ser feito a partir do PDC. Veja Linux, Seo 18.14.3.9 para detalhes. server - A mquina samba tentara autenticar o usurio em outro servidor NT (ou samba). No caso da autenticao falhar, ser usado o nvel de acesso user na base de usurios local (ser necessrio o arquivo de senhas criptografado do samba para que a autenticao local funcione, veja Ativando o suporte a senhas criptografadas, Seo 18.8). Este nvel bastante usado quando configuramos um servidor de perfis de usurios ou logon separado do PDC.

18.2.8.5 Log de acessos/servios log file= [arquivo]

Define a localizao e nome do arquivo de log gerado pelo samba. As variveis de expanso podem ser usadas caso o administrador queira ter um melhor controle dos logs gerados (veja Variveis de substituio, Seo 18.2.13). Ex.: /var/log/samba/samba-log-%m. OBS: Se possvel coloque uma extenso no arquivo de log gerado pelo SAMBA (como .log). O motivo disto porque se estes logs forem rotacionados pelo logrotate voc ter problemas de recompactao mltiplas caso utilize um coringa samba-log-*, gerando arquivos como .gz.gz.gz.., lotando a tabela de arquivos do diretrio e deixando sua mquina em um loop de compactao. max log size = [tamanho] Especifica o tamanho mximo em Kb do arquivo de log gerado pelo samba. O valor padro 5000Kb (5MB). debug pid = [valor] Este processo adiciona a pid aos logs gerados pelo processo smbd Isto til para depurao caso existam mltiplos processos rodando. O valor padro no e a opo debug timestamp deve ser yes para esta opo ter efeito. debug timestamp = [valor] Ativa ou desativa a gravao de data/hora nos arquivos de log gerados pelo samba. O valor padro yes. debug level = [valor] Aumenta o nvel de depurao dos daemons do SAMBA de 0 a 9. Um nvel de depurao interessante e que produz uma quantidade razovel de dados para configurao de um logrotate s para o SAMBA o 2, produzindo a lista de todos os compartilhamentos acessados, quem acessou, data/hora (dependendo das outras opes de depurao). Isto permite ao administrador saber exatamente o que est sendo acessado e por quem, quais as tentativas de acesso. Assim ter certeza que o contedo no est sendo acessado indevidamente. O nvel de depurao 0 o padro. debug uid = [valor] Este parmetro inclui o euid, egid, uid, gid nos arquivos de log. O valor padro no. lock directory = [diretrio] Define onde sero gravados os arquivos de lock gerados pelo samba.

18.2.8.6 Navegao no servidor/tipo de servidor os level=[num] Especifica o nvel do sistema operacional. Este nmero usado para as eleies netbios para definir o navegador de grupo local e controlador de domnio (veja Nveis de sistema para eleio de rede, Seo 18.2.12 para detalhes). O valor pode ser de 0 a 255, o padro 32. announce as = [sistema] Selecione o nome que o samba (nmbd) se anunciar na lista de pesquisa de rede. Os seguintes nomes podem ser usados:

NT Server (ou NT) - Anuncia como Windows NT Server. Este o padro. NT Workstation - Anuncia-se como um NT Workstation. Win95 ou WfW - Anuncia-se na rede como uma estao Windows 9x, Windows for Workgroups, Windows NT Server e Windows NT Workstation de uma s vez. domain master = [valor] Diz se o servidor tentar se tornar o navegador principal de domnio. Os valores que podem ser especificados so: yes, no e auto. O valor padro auto. Veja Domain Master Browser, Seo 18.7.3. local master = [valor] Diz se o servidor participar ou no das eleies para navegador local do grupo de trabalho (workgroup). Os valores que podem ser especificados so: yes, no. O valor padro yes. Para vencer a eleio, o samba precisa ter o valor de os level maior que os demais. Note tambm que o Windows NT no aceita perder as eleies e convoca uma nova eleio caso ele perca. Como esta eleio feita via broadcasting, isso gera um trfego grande na rede. Desta forma, se tiver um computador NT na rede configure este valor para "no". Veja Local Master Browser, Seo 18.7.2. preferred master = [valor] Diz se o servidor samba ter ou no vantagens de ganhar uma eleio local. Se estiver configurado para "yes", o servidor samba pedir uma eleio e ter vantagens para ganha-la. O servidor poder se tornar garantidamente o navegador principal do domnio se esta opo for usada em conjunto com domain master = 1. Os valores especificados podem ser yes, no e auto, o padro auto. Antes de ajustar este valor para yes, verifique se existem outros servidores NetBIOS em sua rede que tem preferncia para se tornar o master principal, pois poder ocorrer um trfego alto de broadcasting causado pelas eleies solicitadas pelas outras mquinas.

18.2.8.7 Outros parmetros de configurao include Inclui um outro arquivo de configurao na poro atual do arquivo de configurao. Voc pode utilizar variveis de substituio, exceto %u, %P e %S (veja Variveis de substituio, Seo 18.2.13).

18.2.9 Seo [homes]


Esta seo tem a funo especial de disponibilizar o diretrio home do usurio. Quando o usurio envia seu nome de login como compartilhamento feita uma busca no arquivo smb.conf procurando por um nome de compartilhamento que confira. Caso nenhum seja encontrado, feita uma busca por um nome de usurio correspondente no arquivo /etc/passwd, se um nome conferir e a senha enviada tambm, o diretrio de usurio disponibilizado como um compartilhamento com o mesmo nome do usurio local. O diretrio home do usurio poder ser modificado com o uso de mapeamento de nomes, veja Mapeamento de nomes de usurios, Seo 18.12.16. Quando o caminho do compartilhamento no for especificado, o SAMBA utilizar o diretrio home do usurio (no /etc/passwd). Para maior segurana da instalao, principalmente porque o diretrio home do usurio no um requerimento para a autenticao de usurio, recomendo usar a varivel de substituio %S apontando para um diretrio com as

permisses apropriadas configuradas em seu sistema, por exemplo:


[homes] comment = Diretrios de Usurios path=/pub/usuarios/%S

Voc apenas ter o trabalho extra de criar os diretrios de usurios que faro acesso ao sistema. Isto no ser nenhum problema aps voc programar um shell script simples que verifique os nomes de contas em /etc/passwd e crie os diretrios com as permisses/grupos adequados (isso no ser abordado por este captulo do guia, embora no seja complicado). Se deseja, existem exemplos em Exemplos de configurao do servidor SAMBA, Seo 18.15 sobre a seo [homes] no arquivo de configurao. Os parmetros aceitos em [homes] aqui so os mesmos usados para compartilhamentos normais (veja Descrio de parmetros usados em compartilhamento, Seo 18.3.1). Abaixo segue mais um exemplo de seo [homes]:
[homes] comment = Diretrio home de usurios writable = yes public = no invalid users = root nobody @adm follow symlinks = no create mode = 0640 directory mode = 0750

A explicao de cada um dos parmetros podem ser encontradas em Descrio de parmetros usados em compartilhamento, Seo 18.3.1. O guia est com os parmetros bem organizados em sees especficas, apenas de uma olhada para entender com o captulo do SAMBA foi organizado e no ter dificuldades de se localizar. OBS1:Caso nenhum caminho de compartilhamento seja utilizado, o diretrio home do usurio ser compartilhado. OBS2:No utilize o parmetro public yes na seo guest, caso contrrio todos os diretrios de usurios sero lidos por todos. Veja Consideraes de segurana com o uso do parmetro "public = yes", Seo 18.12.14 para maiores detalhes.

18.2.10 Seo [printers]


Esta seo tem a funo de disponibilizar as impressoras existentes no sistema (lp, lp1, lp2, etc) existentes no /etc/printcap como compartilhamento de sistemas Windows. O mtodo que os nomes de impressoras so pesquisados idntico a forma feita para a seo [homes]: Primeiro o nome do compartilhamento pesquisado como um nome de servio, depois se ele um nome de usurio (tentando mapear o servio disponibilizado em [homes]), depois ser verificado a seo [printers]. Ao invs de usar este recurso, se preferir voc poder compartilhar as impressoras individualmente. Para detalhes, veja Configurando o Linux como um servidor de impresso Windows, Seo 18.11.1. OBS: importante lembrar que a seo [printers] DEVE ser definida como printable usando o parmetro printable = yes para funcionar. O utilitrio testparm poder ser usado para verificar problemas no arquivo cd configurao do SAMBA (veja Buscando problemas na configurao, Seo 18.2.11).

18.2.11 Buscando problemas na configurao


Durante o processo de configurao do SAMBA, comum cometer erros de digitao, usar parmetros em lugares indevidos, etc. recomendvel o uso do testparm para checar a configurao do SAMBA sempre que houver modificaes para ter certeza nada comprometa o funcionamento que planejou para sua mquina. Para usar o testparm s digitar testparm. Logo aps executa-lo, analise se existem erros nas sees de configurao e te pedir para pressionar <ENTER> para ver um dump do arquivo:
Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]"

Processing section "[tmp]" Processing section "[cdrom]" Loaded services file OK. Press enter to see a dump of your service definitions

A sada acima indica que est tudo OK com todas as configuraes que foram realizadas no servidor. possvel especificar um outro arquivo de configurao do SAMBA usando testparm /etc/samba/smb2.conf. Tambm permitido simular o nome NetBIOS que far acesso a mquina usando o parmetro -L nome (que ser substitudo na varivel %L).

18.2.12 Nveis de sistema para eleio de rede


Para selecionar qual sistema NetBIOS ser o local master browse ou domain master browse, usado um mtodo bastante interessante: o de eleies. Quando uma nova mquina entra na rede NetBIOS, ela solicita quem o Local Master Browser, caso nenhuma responda, ela fora uma eleio na rede atravs de uma requisio Broadcasting especial. Vence a eleio quem tiver o ***maior nmero***, chamado de OS Level (nvel de sistema operacional). Caso duas mquinas empatem, o desempate feito usando outros critrios. Se voc for a nica mquina de um workgroup, automaticamente voc ser o Local Master Browser. De meia em meia hora uma nova eleio feita, forando mais trfego broadcasting na rede. Durante este novo processo de eleio, a lista de computadores atualizada; as novas mquinas so adicionadas e as desligadas saem da lista aps 36 minutos. Este o motivo porque as mquinas Windows continuam aparecendo no ambiente de rede por algum tempo mesmo depois que desligadas ou porque elas no aparecem de imediato. O OS Level um nmero que caracterstico de cada sistema operacional ficando entre 0 (mais baixo) e 255. Os nveis de acessos dos sistemas operacionais so os seguintes:
Windows Windows Windows Windows Windows Windows Windows Windows for Workgroups 95 98 98 Second Edition 2000 Server (standalone) 2000 Professional NT 4.0 Wks NT 3.51 Wks 1 1 2 2 16 16 17 16 32 33 32 32

Windows NT 3.51 Server Windows NT 4.0 Server Windows 2000 Server (Domain Controller) SAMBA

O valor padro do OS Level do SAMBA 32, entretanto ele bastante flexvel para permitir sua mudana atravs do parmetro "os level" (veja Navegao no servidor/tipo de servidor, Seo 18.2.8.6), isto garante que o SAMBA sempre vena as eleies da rede sobre qualquer outro sistema operacional. No caso de um servidor que estiver configurado para ser o navegador de rede, assim que for iniciado ele solicitar uma eleio de rede. As regras so as mesmas, vence o que tiver o *maior* nmero. Este nmero pode ser configurado facilmente no SAMBA para que ele sempre vena as eleies de rede, tomando conta da lista de mquinas. Isto especialmente interessante por causa da estabilidade do servidor Linux, quando migramos de servidor NT ou para fornecer mais servios de navegao, como servidor WINS. OBS: Nunca deixe um servidor NT configurado para ser o Local Browser ou Domain Master Browser competir com o SAMBA. Mesmo que o SAMBA ganhe, o NT um pssimo perdedor e convoca uma nova eleio para tentar novamente se eleger, gerando um *extremo* trfego broadcasting em redes grandes.

18.2.13 Variveis de substituio


Esta seo foi baseada nos dados da pgina de manual do samba, com adies que no estavam presentes na verso original e exemplos. Existem variveis especiais que podem ser usadas no arquivo de configurao do samba e so substitudas por parmetros especiais no momento da conexo do usurio. Um exemplo de utilizao de variveis de substituio seria mudar a localizao do diretrio home do usurio:
[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 raz 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 torna-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 --with-automount ento este valor ser o mesmo de %L. %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.

18.3 Compartilhamento de arquivos e diretrios


Esta seo documenta como disponibilizar arquivos e impressoras com o SAMBA e os parmetros usados para realizar restries de compartilhamento, modo que os dados sero disponibilizados e tens de performance. A maior parte destes parmetros so empregados em servios do SAMBA, mas nada impede que tambm sejam colocado na seo [global] do arquivo de configurao, principalmente quando isto vlido para diversos servios compartilhados (veja Seo [global], Seo 18.2.8).

18.3.1 Descrio de parmetros usados em compartilhamento


Abaixo o guia traz algumas das opes que podem ser usadas para controlar o comportamento do compartilhamento de arquivos por servios no servidor SAMBA: path Indica o diretrio que ser compartilhado. Lembre-se que o usurio ter as permisses de acesso que ele teria caso estivesse logado no sistema como um usurio UNIX normal, exceto se estiver fazendo mapeamento para outros nomes de usurios (veja Mapeamento de nomes de usurios, Seo 18.12.16). Ex: path=/pub - Compartilha o diretrio local /pub. OBS: Quando no definido um path, o diretrio /tmp usado como padro. comment Descrio do compartilhamento que ser mostrada na janela de procura de rede ou no smbclient -L maquina. Ex: comment=Pasta de contedo pblico do sistema. browseable Define se o compartilhamento ser ou no exibido na janela de procura de rede. Mesmo no sendo exibido, o compartilhamento poder ser acessado. Veja Criando um compartilhamento invisvel, Seo 18.12.12 para uma explicao mais detalhada. Ex: browseable=yes - Lista o compartilhamento na janela de pesquisa de servidores. guest account Conta que ser usada para fazer acesso sem senha (convidado) quando o parmetro guest ok ou public forem usados em um compartilhamento. Por padro ela mapeada para o usurio nobody. importante especificar uma nome de usurio guest (convidado), principalmente porque seu UID ser usado para fazer vrias operaes no SAMBA, como exibir os recursos disponveis na mquina para a rede. Por motivos claros, recomendvel que este usurio no tenha acesso login ao sistema. Caso no tenha a inteno de ocultar o SAMBA na lista de mquinas da rede (fazendo apenas acesso direto aos recursos), especifique um valor para esta opo. Ex: guest account = sambausr - Mapeia os usurio se conectando sem senha para o usurio sambausr, desde que o acesso guest seja permitido pela opo public. public Permitem aos usurios usurios se conectarem ao compartilhamento sem fornecer uma senha usando o usurio guest. O UID que o usurio guest ser mapeado especificado pelo parmetro guest account). Veja Criando um compartilhamento para acesso sem senha, Seo 18.12.7. O parmetro guest ok equivalente a public. Ex: public = no - No permite guest only Permite somente conexes guest ao recurso. O UID do usurio mapeado para guest, mesmo que fornea uma senha correta. O valor padro no.

Ex: guest only = no. write list Lista de usurios separados por espao ou vrgula que podero ler e gravar no compartilhamento. Caso o nome for iniciado por "@", o nome especificado ser tratado como um grupo UNIX (/etc/group) e todos os usurios daquele grupo tero acesso de gravao. O uso deste parmetro ignora o read only = yes. Veja Excesso de acesso na permisso padro de compartilhamento, Seo 18.12.10 para mais detalhes. Ex: write list = gleydson, @usuarios - Permite acesso gravao somente do usurio gleydson e todos os usurios pertencentes ao grupo @usuarios. OBS: - O significado de "@" nos parmetros "invalid users"/"valid users" diferente das opes write list e read list. read list Lista de usurios separados por espao ou vrgula que podero apenas ler o compartilhamento. O caracter "@" pode ser especificado para fazer referncia a grupos, como no write list. O uso deste parmetro ignora o read only = no. Veja Excesso de acesso na permisso padro de compartilhamento, Seo 18.12.10 para mais detalhes. Ex: read list = nobody, system, operador, @usuarios - Permite acesso de leitura somente do usurio nobody, system, operador e todos os usurios pertencentes ao grupo @usuarios. user Especifica um ou mais nomes de usurios ou grupos (caso o nome seja seguido de "@") para checagem de senha. Quando o cliente somente fornece uma senha (especialmente na rede Lan Manager, Windows for Workgroups e primeira verso do Windows 95) ela ser validada no banco de dados de senhas usando o usurio especificado nesta opo. Ex: user = john @usuariosrede only user Especifica se somente sero permitidas conexes vindas de usurios da diretiva user. O padro no. Caso deseje restringir o acesso a determinados usurios, o certo faze-lo usando valid users e invalid users (veja Restringindo o acesso por usurios, Seo 18.12.4). O uso de only user apropriado quando necessrio um controle especfico de acesso sobre a diretiva user. Ex: only user = no. locking Permite ao SAMBA fazer um lock real de arquivo ou apenas simular. Caso seja especificado como "0", o arquivo no bloqueado para acesso exclusivo no servidor mas uma resposta positiva de lock retornada ao cliente. Se definido como "1", um lock real feito. O padro yes. Ex: locking = yes available Faz o SAMBA ignorar o compartilhamento (como se tivesse retirado do servidor). O valor padro "no".

follow symlinks Permite o uso de links simblicos no compartilhamento (veja tambm a opo wide links). A desativao desta opo diminui um pouco a performance de acesso aos arquivos. Como restrita a compartilhamento, o impacto de segurana depende dos dados sendo compartilhados. O valor padro desta opo "YES". Ex: follow symlinks = yes wide links Permite apontar para links simblicos para fora do compartilhamento exportada pelo SAMBA. O valor padro esta opo "YES". Ex: wide links = yes. OBS: - A desativao desta opo causa um aumento na performance do servidor SAMBA, evitando a chamada de funes do sistema para resolver os links. Entretanto, diminui a segurana do seu servidor, pois facilita a ocorrncia de ataques usando links simblicos. Lembre-se mais uma vez que a segurana do seu sistema comea pela poltica e uma instalao bem configurada, isso j implica desde a escolha de sua distribuio at o conhecimento de permisses e planejamento na implantao do servidor de arquivos. dont descend No mostra o contedo de diretrios especificados. Ex: dont descend = /root, /proc, /win/windows, "/win/Arquivos de Programas", "/win/program files". printable Especifica se o compartilhamento uma impressora (yes) ou um compartilhamento de arquivo/diretrio (no). O padro "no". read only Especifica se o compartilhamento somente para leitura (yes) ou no (no) para todos os usurios. O parmetro writable um antnimo equivalente a este parmetro, s que utiliza as opes invertidas. Por segurana, o valor padro somente leitura. Veja uma explicao mais detalhada em Criando um compartilhamento com acesso somente leitura, Seo 18.12.8. Ex: read only = yes. create mask Modo padro para criao de arquivos no compartilhamento. O parmetro "create mode" um sinnimo para este. O modo de arquivos deve ser especificado em formato octal. Ex: create mask = 0600. directory mask Modo padro para a criao de diretrios no compartilhamento. O parmetro "directory mode" um sinnimo para este. O modo de diretrio deve ser especificado em formato octal.

Ex: directory mask = 0700. getwd cache Permite utilizar um cache para acesso as requisies getwd, diminuindo o nmero de ciclos de processamento para acesso a arquivos/diretrios. O valor padro "Yes". write cache size Tamanho do cache de leitura/gravao do compartilhamento. Este valor especificado em bytes e o padro "0". Veja Melhorando a performance do compartilhamento/servidor, Seo 18.13 para detalhes sobre seu uso. Ex: write cache size = 384000. inherit permissions Permite herdar permisses de arquivos/diretrios do diretrio pai quando novos arquivos/diretrios so criados, isto inclui bits SGID (set group ID). O padro NO herdar permisses. O uso desta opo substitui as opes fornecidas por create mask, directory mask, force create mask e force directory mask. Ex: inherit permissions. preexec Executa um comando antes a abertura de um compartilhamento. O parmetro exec um sinnimo para este. Veja Executando comandos antes e aps o acesso ao compartilhamento, Seo 18.12.13. postexec Executa um comando depois da utilizao do compartilhamento. Veja Executando comandos antes e aps o acesso ao compartilhamento, Seo 18.12.13. preexec close Fecha imediatamente o compartilhamento caso o valor do comando executado pela opo preexec seja diferente de 0. O uso desta opo s faz sentido em conjunto com preexec. O valor padro "no". Veja Executando comandos antes e aps o acesso ao compartilhamento, Seo 18.12.13. Exemplo: preexec close = yes. volume = nome Retorna o nome de volume especificado quando feito o acesso ao compartilhamento. Isto muito til para instalaes onde o serial do CD, disquete ou HD verificado durante o acesso. Isto acontece com freqncia em produtos de fabricantes proprietrios como forma de evitar a execuo ilegal do programa.

18.4 Configurao em Grupo de Trabalho


A configurao grupo de trabalho o mtodo mais simples para compartilhar recursos em uma rede e tambm indicado quando se possui uma rede pequena (at 30 mquinas) pois o gerenciamento no to complicado. Acima deste nmero, recomendada a utilizao da configurao de domnio para definio de polticas de acesso mais precisas pelo administrador e para manter o controle sobre os recursos da rede (veja Configurando um servidor PDC no SAMBA, Seo 18.7.4).

A configurao do nvel de acesso por grupo de trabalho tem como caractersticas principais essa simplicidade na configurao e o controle de acesso aos recursos sendo feito pela mquina local atravs de senhas e controle de IP. Quanto ao mtodo de senhas, voc pode optar tanto por usar senhas criptografadas (Ativando o suporte a senhas criptografadas, Seo 18.8) ou senhas em texto limpo (Ativando o suporte a senhas em texto plano, Seo 18.9). Veja abaixo um exemplo explicado de configurao do SAMBA para grupo de trabalho:
[global] netbios name = servidor workgroup = focalinux security = user obey pam restrictions = yes encrypt passwords = no os level = 30 guest account = nobody server string = servidor da rede local master = true domain master = false [homes] comment = Diretrios de usurios create mask= 0700 directory mask = 0700 browseable = no [tmp] path = /tmp comment = Diretrio temporrio do sistema read only = yes valid users = gleydson public = no

Agora, verifique se existem erros na configurao com o comando testparm (Buscando problemas na configurao, Seo 18.2.11) e reinicie o SAMBA (Iniciando o servidor/reiniciando/recarregando a configurao, Seo 18.1.9). O nome do grupo de trabalho que a mquina pertencer focalinux (workgroup = focalinux). O nvel de acesso usado neste exemplo de usurio (security = user), para mais detalhes sobre este mtodo, veja Nveis de autenticao, Seo 18.2.8.4. O parmetro local master foi definido para yes para o SAMBA tentar ser o navegador local do grupo de trabalho (veja Local Master Browser, Seo 18.7.2). Para testar se o servidor est funcionando, digite o seguinte comando:
smbclient -L servidor -U usuario

Digite a senha de usurio quando solicitado. O comando dever listar os recuros da mquina, indicando que a configurao est funcionando corretamente. Se voc paranico e est preocupado com a segurana da mquina, recomendo ler a Controle de acesso ao servidor SAMBA, Seo 18.12.

18.5 Resoluo de nomes de mquinas no samba


O Samba pode utiliza os seguintes mtodos para resoluo de nomes de mquinas na rede (Nome de mquina (nome NetBios), Seo 18.2.1). Eles esto listados em ordem de prioridade do mais para o menos recomendvel: lmhosts - Pesquisa primeiro o arquivo /etc/samba/lmhosts (veja Arquivo /etc/samba/lmhosts, Seo 18.5.1 para detalhes sobre este arquivo). host - Faz a pesquisa no arquivo /etc/hosts e no DNS em busca do nome da mquina. wins - Pesquisa no servidor WINS especificado pelo parmetro wins server do smb.conf (veja WINS, Seo 18.5.2). bcast - Envia um pacote para o endereo de broadcast de sua configurao de rede. Este geralmente deve ser o ltimo mtodo por gerar trfego excessivo em uma rede com um considervel nmero de

computadores. A ordem que a resoluo de nomes feita pelo samba, pode ser modificada usando o parmetro "name resolve order = [ordem]" no arquivo de configurao do samba (ex. name resolve order = lmhosts host wins bcast).

18.5.1 Arquivo /etc/samba/lmhosts


Este arquivo um banco de dados que mapeia o endereo IP com o nome NetBIOS de uma mquina, semelhante ao formato do /etc/hosts. Este arquivo til quando temos servidores que so acessados com freqncia, quando servidores de rede esto em segmentos separados e no temos um servidor WINS entre os dois pontos para resoluo de nomes, para definir mquinas WINS que sero acessados pela internet, etc. Para ter certeza da localizao do arquivo lmhosts em sua mquina, digite smbclient -d 3 -L localhost e veja o diretrio de pesquisa deste arquivo. Veja um exemplo de arquivo lmhosts em Exemplo de lmhosts do UNIX, Seo 18.5.1.1. O uso do arquivo lmhosts evita o excesso de broadcasting na rede, pois a ordem padro usada para a resoluo de nomes do samba, procura primeiro resolver o nome procurando em arquivos lmhosts, depois usando dns, wins e broadcast. Dependendo do projeto de sua rede e como as mquinas resolvem os nomes, ele pode ser uma camada a mais de segurana contra um simples hijacking de servidor atravs de NetBEUI ou WINS (isso evitado com o uso de domnios, veja Configurando um servidor PDC no SAMBA, Seo 18.7.4). OBS: Note que em clientes Windows que estejam em outra subrede, necessrio o arquivo \windows\lmhosts apontando para um servidor PDC mesmo que ele esteja apontando para o servidor WINS, caso contrrio, a mquina no efetuar o logon. O formato do arquivo lmhosts do Windows mais complexo do que o do Linux pois o sistema precisa de mais detalhes para resolver os nomes e tipos de mquinas no domnio. Veja o modelo lmhosts.sam em seu sistema Windows para compreender seu funcionamento.

18.5.1.1 Exemplo de lmhosts do UNIX O exemplo abaixo mapeia o endereo IP das mquinas (primeira coluna) com o respectivo nome de mquina (segunda coluna):
172.16.0.34 servarq 172.16.0.30 serverdom 192.168.5.2 servwins 172.16.0.3 servpdc 172.16.0.1 gateway

18.5.1.2 Exemplo de lmhosts do Windows O arquivo possui uma sintaxe idntica a do lmhosts do UNIX, mas alguns parmetros especiais so especificados para ajudar o Windows resolver algumas coisas que no consegue fazer sozinho (principalmente com relao a identificao de funo de mquinas em redes segmentadas):
192.168.0.5 servarq 192.168.0.1 serverpdc #PRE #DOM:dominio 192.168.0.2 "serverwins \0x1e" #PRE #INCLUDE \\serverpdc\lmhosts

A primeira entrada do arquivo a tradicional, onde o nome da mquina NetBIOS associada ao IP. A segunda utiliza dois parmetros adicionais: #PRE - Faz a entrada ser carregada logo na inicializao e se tornando uma entrada permanente no cache NetBIOS.

#DOM - Especifica que a mquina um controlador de domnio. A mquina dever ter sido configurada para a funo de domnio, pois caso contrrio isso simplesmente no funcionar. Note que ambos #PRE e #DOM devem ser especificados em maisculas. O terceiro exemplo faz uma referncia permanente (#PRE) a mquina servidora WINS serverwins. Neste exemplo usada uma caracterstica especial para especificar a ID hexadecimal da mquina na rede 1e. O quarto utiliza um include para associar outro arquivo ao atual, til quando temos um compartilhamento que distribui um arquivo lmhosts para diversas mquinas na rede. De preferncia, utilize sempre uma diretiva #PRE para todas as mquinas especificadas na diretiva #INCLUDE em seu arquivo de configurao. Para a especificao de ID de servio manual, necessrio manter os 15 caracteres no nome da mquina (preenchendo os restantes com espaos, caso seja preciso). O ltimo caracter o cdigo hexadecimal que identifica o servio de rede (veja nmblookup, Seo 18.14.2.9.3 para ver a lista de servios e sua respectiva funo). OBS: Caso crie este arquivo em um editor de textos do Linux, no se esquea de converter o arquivo para que contenha o CR+LF no final das linhas.

18.5.2 WINS
Este um servio de resoluo de nomes que funciona de forma semelhante ao DNS, s que voltado para o NetBIOS. Quando uma mquina cliente NetBIOS entra na rede, o servidor WINS pega seu nome e IP e inclui em uma tabela para futura consulta pelos clientes da rede. Esta tabela consultada toda vez que um cliente NetBIOS solicita um nome de mquina, componentes do grupo de trabalho ou domnio na rede. Uma outra aplicao importante de um servidor WINS permitir a resoluo de nomes em pontos de redes que requerem roteamento, a simplicidade de um protocolo no rotevel como o NetBIOS fica limitada a simplicidade das instalaes de rede. Um servidor WINS pode ser instalado em cada ponta da rede e eles trocarem dados entre si e atualizar suas tabelas de nomes/grupos de trabalhos/IPs. A resoluo de nomes de mquinas ser feita consultando diretamente a mquina WINS ao invs de broadcasting (que geram um trfego alto na rede).

18.5.2.1 Configurando o servidor WINS Para ativar o servidor WINS no samba, inclua as seguinte linha na seo [global] do seu arquivo /etc/samba/smb.conf:
[global] wins support = yes wins proxy = no dns proxy = no max wins ttl = 518400

O parmetro wins proxy pode ser necessrio para alguns clientes antigos que tenham problemas no envio de suas requisies WINS. O dns proxy permite que o servidor WINS faa a pesquisa no DNS para localizao de nomes de mquinas caso no exista no cache. Ambas as opes wins support, wins proxy e dns proxy tem como valor padro no. Pronto, seu servidor samba agora suporta WINS. Fcil, prtico e rpido :-) Se estiver configurando uma subrede com masquerade para acesso a um PDC ou um servidor WINS, voc ter que mexer no gateway central para apontar uma rota para o gateway masquerade. O motivo disto porque o masquerade do Linux atua somente nos cabealhos, mas o IP da estao enviada e processada pelo PDC para retornar uma resposta. Da mesma forma, este IP registrado no servidor WINS para uso das estaes de trabalho. Isto s vai ser resolvido quando for escrito um mdulo de conntrack para conexes SAMBA (at o lanamento do kernel 2.4.22, isso ainda no ocorreu). OBS1: NUNCA configure mais de um servidor WINS em uma mesma rede. OBS2: NO especifique o parmetro wins server caso esteja usando o suporte a WINS.

18.5.2.2 Configurando o Cliente WINS Para os clientes da rede (Linux, Windows, OS/2, etc.) fazer uso das vantagens da resoluo de nomes usando o WINS, necessrio configurar para que eles o utilizem para resolver os nomes de mquinas. Isto feito da seguinte forma em cada um dos sistemas operacionais: Linux Adicione a linha wins server = ip_do_servidor_WINS na seo global do arquivo /etc/samba/smb.conf:
[global] wins server = 192.168.1.1

Aps isto, reinicie o servidor samba. Caso esteja executando o servidor via inetd, digite: killall -HUP nmbd. Se estiver rodando atravs de daemons: /etc/init.d/samba restart. No necessrio reiniciar o computador! Windows 9x Clique com o boto direito sobre o cone Ambiente de Rede e selecione propriedades. Na janela de configurao de rede clique na aba Configurao. Na lista que aparece selecione o protocolo TCP/IP equivalente a sua placa de rede local e clique em Propriedades. Na tela de Propriedades TCP/IP clique em Configuraes WINS e marque a opo Ativar resoluo WINS. Digite o endereo do servidor WINS e clique em Adicionar. OBS: Se utilizar um servidor DHCP em sua rede local e o endereo do servidor WINS tambm oferecido atravs dele, voc poder marcar a opo Usar DHCP para resoluo WINS. Note que esta opo somente estar disponvel se escolher a opo Obter um endereo IP automaticamente na tab Endereos IP. Clique em OK at fechar todas as telas e reinicie quando o computador perguntar :-)

18.6 Servidor de data/hora


O samba pode atuar como um servidor de data/hora ajustando o horrio de suas estaes de trabalho com o servidor da rede. As estaes clientes podero executar o comando net para sincronizar seu relgio durante a inicializao do Windows, ou durante o logon da rede atravs do script de logon, caso tenha configurado o servidor samba para logon em domnios NT.

18.6.1 Configurao do servio de data/hora no SAMBA


Para configurar o samba para atuar como servidor de data/hora de sua rede, adicione o seguinte parmetro na seo global do arquivo de configurao /etc/samba/smb.conf:
[global] time server = yes

Para sincronizar a data/hora das estaes de trabalho usando o servidor samba, veja Sincronizando a data/hora no Cliente, Seo 18.6.2. Caso o seu servidor SAMBA tambm seja o servidor de autenticao PDC da rede, a melhor forma de se fazer isto colocar o comando net time \\servidor_SAMBA /set /yes em um script que ser executado pela estao. OBS recomendvel instalar um cliente ntp para manter o relgio do servidor sempre atualizado, conseqentemente mantendo a data/hora das estaes tambm em sincronismo . .

18.6.2 Sincronizando a data/hora no Cliente


Na estao cliente Windows, use o seguinte comando:
NET TIME \\SERVIDOR /WORKGROUP:GRUPO /SET /YES

Um local interessante para colocao deste comando na pasta Iniciar da estao Windows, pois todos os comandos que estejam nesta pasta so executados quando o sistema iniciado. Exemplos: net time \\linux /set /yes - Sincroniza a hora com o servidor "\\linux" e no pede confirmao (/yes). net time \\linux /WORKGROUP:pinguim /set /yes - Sincroniza a hora com o servidor "\\linux" do grupo de trabalho pinguim (/WORKGROUP:pinguim) e no pede confirmao (/yes).

18.7 Configurao em Domnio


Esta seo descreve todos os passos necessrios para configurar um servidor de domnio PDC (Primary Domain Control) com perfis mveis e outros recursos que tornam teis e seguras a administrao de uma rede NetBEUI.

18.7.1 Uma breve introduo a um Domnio de rede


Um domnio de rede consiste em uma mquina central chamada de PDC, que mantm o controle de todas as contas de usurios/grupos e permisses para acesso a rede NetBEUI. O acesso desta forma centralizado, como vantagem disto voc pode usar o nvel de acesso por usurios nas mquinas, definindo quais usurios ou grupos tero acesso de leitura/gravao. permitido criar scripts de logon, assim comandos programados pelo administrador sero executados nas mquinas clientes durante o logon no domnio (veja Criando Scripts de logon, Seo 18.7.7). O nome da mquina protegido contra hijacking atravs de contas de mquinas que fazem parte do domnio (veja Contas de mquinas de domnio, Seo 18.7.5). Isto s possvel em clientes Linux, Windows NT, Windows 2000 e Windows XP. Voc poder usar perfis mveis, copiando todas as personalizaes do seu desktop para qualquer mquina na rede que voc faa o logon. Para o administrador, ele poder definir polticas com o Poledit e outros programas que sero salvas junto com o perfil do usurio, valendo para qualquer mquina que ele se autentique na rede (veja Criando Scripts de logon, Seo 18.7.7). Se voc deseja iniciar logo a configurao do seu domnio, siga at Configurando um servidor PDC no SAMBA, Seo 18.7.4.

18.7.2 Local Master Browser


a mquina que ganhou a eleio no segmento local de rede (veja Nveis de sistema para eleio de rede, Seo 18.2.12). Logo que declarada o local master browser, ela comea a receber via broadcasting a lista de recursos compartilhados por cada mquina para montar a lista principal que ser retornada para outras mquinas do grupo de trabalho ou outras subredes que solicite os recursos compartilhados por aquele grupo. Uma nova eleio feita a cada 36 minutos ou quando a mquina escolhida desligada.

18.7.3 Domain Master Browser


Quando o local master browse eleito no segmento de rede, uma consulta feita ao servidor WINS para saber quem o Domain Master Browse da rede para enviar a lista de compartilhamentos. A mquina escolhida como Local Master Browse envia pacotes para a porta UDP 138 do Domain Master e este responde pedindo a lista de todos os nomes de mquinas que o local master conhece, e tambm o registra como local master para aquele segmento de rede. Caso tenha configurado sua mquina para ser o domain master browser da rede (tambm chamado de controlador principal de domnio ou PDC), ela tentar se tornar a mquina que ter a lista completa de recursos enviados pelos locais master browsers de cada segmento de rede. Um PDC tambm o local master browse de seu prprio segmento de rede. possvel ter mais de um domain master browse, desde que cada um controle seu prprio domnio, mas no possvel ter 2 domain master browsers em um mesmo domnio. Caso utilize um servidor WINS em sua rede, o PDC far consultas constantes em sua base de dados para obter a lista de domnios registrados. O domnio identificado pelo caracter 1b na rede (veja nmblookup, Seo 18.14.2.9.3). OBS: O Windows NT configurado como PDC sempre tenta se tornar o domain master browser em seu grupo de trabalho. No sendo possvel retirar o Windows NT configurado como PDC do domnio (por alguma outra razo), a nica forma ser deixar ele ser o domain master browser. Se este for o caso, voc poder continuar lendo este documento para aprender mais sobre NetBIOS e talvez ainda mudar de idia sobre manter o NT na rede aps ver as caractersticas do SAMBA ;-)

18.7.4 Configurando um servidor PDC no SAMBA


Esta a parte interessante do guia, a prtica. Para os administradores que conhecem atravs da experincia prpria os problemas e definies do SAMBA, grande parte do guia foi apenas uma reviso (por favor, se faltou algo que acha interessante, me notifiquem que incluirei na prxima verso e colocarei uma nota no lanamento e na pgina com os devidos crditos :-)) Para configurar uma mquina para ser o PDC (Controladora Principal de Domnio ou Primary Domain Control), siga esta seqncia: Habilite o suporte a senhas criptografadas. Caso ainda no tenha feito isso, leia a seo Ativando o suporte a senhas criptografadas, Seo 18.8. Na seo [global], insira/modifique os seguintes parmetros:
; Identificao da mquina e domnio netbios name = gleydson workgroup = focalinux ;nveis de acesso e funes do servidor security = user domain master = yes prefered master = yes local master = yes ; senhas criptografadas encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd.db

Onde os parmetros significam: netbios name = gleydson - Nome do computador. Este tambm ser o nome usado pelas outras mquinas clientes quando for configurar o PDC (controlador de domnio). workgroup = focalinux - Nome do domnio que est criando. Todas as mquinas que pertencerem a este domnio, tero o nvel de acesso definido pelo PDC. Note que o parmetro workgroup tambm usado ao especificar o nome do grupo de trabalho quando se usado a configurao grupo de trabalho (Configurao em Grupo de Trabalho, Seo 18.4).

security = user - Requerido para controle de acesso por domnio, j que utilizado o controle de acesso local usando usurios e grupos locais. domain master = yes - Especifica se est mquina est sendo configurada para ser o PDC da rede. OBS: Por favor, certifique-se que no existe outro PDC no domnio. Veja Domain Master Browser, Seo 18.7.3. prefered master = yes - Fora uma eleio com algumas vantagens para seu servidor ser eleito sempre como o controlador de domnio. Isto garante que a mquina SAMBA sempre seja o PDC. Veja Navegao no servidor/tipo de servidor, Seo 18.2.8.6. local master = yes - Define se a mquina ser o controlador principal do grupo de trabalho local que ela pertence. Pronto, agora teste se existem erros em sua configurao executando o comando testparm (Buscando problemas na configurao, Seo 18.2.11) e corrija-os se existir. Resta agora reiniciar o servidor nmbd para que todas as suas alteraes tenham efeito. Para adicionar seus clientes a um domnio, veja Contas de mquinas de domnio, Seo 18.7.5 e Configurando clientes em Domnio, Seo 18.14.3.

18.7.5 Contas de mquinas de domnio


Uma conta de mquina de domnio garante que nenhum outro computador possa utilizar o mesmo nome de uma mquina confivel e assim utilizar os compartilhamentos que ela tem permisso. Os clientes Windows NT, Windows XP e Windows 2000 precisam de uma conta de mquina para ter acesso ao domnio e seus recursos. A criao de uma conta de mquina bastante semelhante a criao da conta de um usurio normal no domnio. Existe uma coisa que precisa sempre ter em mente quando estiver configurando uma conta de mquina de domnio: Quando voc cria uma conta para a mquina, ela entra e altera sua senha no prximo logon usando um "segredo" entre ela e o PDC, este segredo a identifica sempre como dona daquele nome NetBIOS, ou seja, at o primeiro logon no NT, outra mquina com o mesmo nome NetBIOS poder ser a dona do netbios naquele domnio caso faa o logon no domnio. A nica forma de se evitar isto logar imediatamente no domnio NT assim que criar as contas de mquinas. Existem duas formas para criao de contas de mquinas: manual e automtica.

18.7.5.1 Criando contas de mquinas manualmente Para criar uma conta de domnio para a mquina master, siga estes 2 passos: Crie uma conta de mquina no arquivo /etc/passwd:
useradd -g domainmac -c "Maquina de Dominio" -s /bin/false -d /dev/null master$

O comando acima cria uma conta para a mquina master$ e torna ela parte do grupo domainmac. necessrio especificar o caracter $ aps o nome da mquina para criar uma conta de mquina no domnio, caso contrrio o prximo passo ir falhar. Acredito que nas prximas verses do SAMBA seja desnecessrio o uso do arquivo /etc/passwd para a criao de contas de mquina. Crie uma conta de mquina no arquivo /etc/samba/smbpasswd:
smbpasswd -m -a master

Isto cria uma conta de mquina para o computador master no arquivo /etc/samba/smbpasswd. Note que a criao de uma conta de mquina muito semelhante a criao de um usurio apenas precisa adicionar a opo -m. Quando for criar uma conta com o smbpasswd No necessrio especificar $ no final do nome da mquina. O mais importante: Entre IMEDIATAMENTE no domnio aps criar a conta de mquina usando a conta de administrador de domnio criada no SAMBA (veja Criando uma conta de administrador de domnio, Seo 18.7.6)! como a mquina ainda no se autenticou pela primeira vez, qualquer mquina que tenha o mesmo nome e entre no domnio, poder alocar o nome recm criado. A nica forma de resolver este problema, apagando a conta de

mquina e criando-a novamente no domnio. Siga os passos de acordo com o sistema operacional em Configurando clientes em Domnio, Seo 18.14.3 para colocar seus clientes em domnio. OBS1: Como segurana, recomendo desativar a conta de mquina no /etc/passwd usando o comando passwd -l conta. Esta conta NUNCA dever ser usada para login, isto deixa nossa configurao um pouco mais restrita. OBS2: A localizao do arquivo de senhas criptografadas do SAMBA pode ser modificado atravs da opo smb passwd file na seo [global] do arquivo smb.conf. OBS3: Os que tem experincia com NT e Windows 2000 devem ter notado que este mtodo semelhante ao do Server Manager das ferramentas de gerenciamentos de servidores existentes no Windows.

18.7.5.2 Criando contas de mquinas automaticamente Atravs deste mtodo, as mquinas clientes tero sua conta criada automaticamente assim que seja feita a entrada no domnio usando a conta do administrador de domnio no SAMBA. Este o mtodo recomendvel de colocao de mquinas no domnio por ser mais prtica ao invs do mtodo manual. Note que normalmente isto funciona para o WinXP e Win2000 mas no funciona em redes com o NT4, devendo ser criadas contas de mquinas usando o mtodo manual. Para fazer a configurao automtica, coloque a seguinte linha no arquivo smb.conf na seo [global]:
add user script = useradd -g domainmac -c "Maquina de Dominio" -s /bin/false -d /dev/null %u

Assim, a conta de mquina ser automaticamente criada quando o administrador fizer sua configurao no domnio (veja Criando uma conta de administrador de domnio, Seo 18.7.6). No SAMBA 3.0, a opo add machine script dever ser usada no lugar de add user script para adicionar uma mquina no domnio.

18.7.6 Criando uma conta de administrador de domnio


A conta de administrador do domnio a conta que tem permisses para realizar operaes de manuteno e administrao de mquinas que compem o domnio de rede. Com ela possvel, entre outras coisas, adicionar e remover mquina que compem o domnio. Para especificar que contas de usurios do arquivo /etc/samba/smbpasswd que tero poderes administrativos, utilize a opo domain admin group ou admin users na seo [global] do arquivo /etc/samba/smb.conf. O parmetro admin users permite que todas as operaes realizadas pelo usurio sejam feitas com poderes de usurio root. Isto necessrio porque o arquivo smbpasswd (usado para ajustar as contas de mquinas) normalmente tem permisses de leitura/gravao somente para root. O domain admin group permite que usurios especficos ou usurios do grupo especificado sejam parte do grupo de administradores do domnio para adicionar mquinas, etc. Por exemplo, para tornar o usurio gleydson com privilgios para adicionar/remover mquinas no domnio:
[global] ... admin users = gleydson ou domain admin group = @admins gleydson

Isto permite que o usurio gleydson possa adicionar/remover mquinas do domnio NT (veja Configurando clientes em Domnio, Seo 18.14.3) entre outras tarefas. Por segurana, recomendo que coloque esta conta no invalid users de cada compartilhamento para que seja utilizada somente para fins de gerenciamento de mquinas no domnio, a menos que deseje ter acesso total aos compartilhamentos do servidor (nesse caso, tenha conscincia do nvel de acesso que esta conta possui e dos problemas que pode causar caso caia em mos erradas). OBS1: Tenha SEMPRE bastante cuidado com quem dar poderes de administrador de domnio, pois toda sua rede poder ficar vulnervel caso os cuidados de administrao no estejam em boas mos. OBS2: Em verses antigas do SAMBA, somente o usurio root tem poderes para adicionar mquinas no domnio

usando o parmetro domain admins group, devendo ser tambm adicionado no arquivo smbpasswd para que possa fazer isto e obviamente no dever estar listado em invalid users. Mesmo assim, existem outras formas explicadas no guia de se contornar o risco causado pela liberao de acesso do usurio root.

18.7.7 Criando Scripts de logon


Uma dos recursos mais teis em um domnio a possibilidade de se executar comandos nas mquinas cliente quando fazem o logon no domnio. Desta forma, possvel instalar programas, executar anti-vrus, mapear compartilhamentos automaticamente no clientes, etc. A programao de scripts de logon feita usando a linguagem em lote do DOS, com possibilidades de usar variveis de ambiente, cpia de arquivos entre servidores, etc. O guia no ir abordar a programao em linguagem de lote, mas isto simples de se encontrar na internet e mesmo a documentao que acompanha o prprio Windows til. Para habilitar o recurso de scripts de logon na mquina, adicione os seguintes parmetros no arquivo smb.conf:
[global] domain logons = yes logon script = logon.cmd [netlogon] path = /pub/samba/netlogon read only = yes write list = ntadmin

Segue a descrio de cada parmetro com detalhes importantes para a configurao e funcionamento do recurso de logon: domain logons - Deve ser definido para yes para ativar o recurso de logon scripts do SAMBA. logon drive a unidade de disco que ter o homedir do usurio mapeado. Isto somente usado por mquinas NT/2000/XP. logon script - Define qual o script que ser executado na mquina cliente quando fizer o logon. Ele deve ser gravado no diretrio especificado pela opo path do compartilhamento [netlogon] (/pub/samba/netlogon no exemplo). Os scripts de logon podem ser tanto em formato .bat ou .cmd. Se for programar um script universal, recomendvel o uso do formato .bat por ser compatvel tanto com Win9X e WinNT. Um detalhe que deve ser lembrado durante a programao do script de logon que ele DEVE seguir o formato DOS, ou seja, ter os caracteres CR+LF como finalizador de linhas. Para utilizar editores do UNIX para escrever este script, ser necessrio executar o programa flip (flip -m -b arquivo) ou unix2dos no arquivo para converte-lo em formato compatvel com o DOS. Segue abaixo um exemplo de script de logon que detecta quando o cliente Windows 95/NT, ajusta a hora com o servidor e mapeia 2 unidades de disco:
@echo off cls rem Logon Script desenvolvido por Gleydson Mazioli rem da Silva como modelo para o guia Foca GNU/Linux rem rem Este script pode ser utilizado para fins didticos rem e distribudo livremente de acordo com os termos rem da GPL rem echo "Aguarde enquanto sua mquina efetua" echo "o logon na rede do domnio focalinux." rem if %OS%==Windows_NT goto NT-2000 rem echo "--------------------------------" echo "SO: %OS%" echo "Usurio: %USERNAME%"

echo "Grupo de Trabalho: %LANGROUP%" echo "Servidor: %DOMINIO%" echo "--------------------------------" echo "Recuperando compartilhamentos" rem mapeia o compartilhamento publico definido no servidor net use e: \\gleydson\publico echo "Sincronizando data/hora" rem sincroniza a data/hora com o servidor net time \\gleydson /set /yes goto fim rem rem :NT-2000 echo "--------------------------------" echo "SO: %OS%" echo "Usurio: %USERNAME%" echo "Windows: %windir%" echo "Logon de domnio: %LOGONSERVER%" echo "--------------------------------" echo "Recuperando compartilhamentos" net use e: \\gleydson\publico /persistent:yes echo "Sincronizando data/hora" net time \\gleydson /set /yes rem rem goto fim rem :fim

Note no exemplo acima que no podem haver linhas em branco, voc dever utilizar a palavra rem (comentrio em arquivos em lote) em seu lugar. Note que existem diferenas entre o comando net do Windows 9x/ME e do NT, as variveis tambm possuem um significado diferente entre estes 2 sistemas, isto explica a necessidade de se incluir um bloco separado detectando a existncia de qual sistema est sendo efetuado o logon. A lista completa de variveis disponveis para cada sistema operacional pode ser obtida colocando-se set >c:\vars.txt que gravar uma lista de variveis disponveis durante o logon no arquivo c:\vars.txt da mquina cliente. OBS: Caso especifique um computador que contm o script de login, lembre-se de faze-lo sempre com \ ao invs de / para no ter incompatibilidade com o Windows 95/3.11. ATENO: Lembre-se que copiar e colar pode no funcionar para este script. Leia novamente esta seo do guia se estiver em dvidas.

18.7.8 Configurando perfis de usurios


Os profiles permitem que os clientes utilizem o mesmo perfil em qualquer mquina que ele se autentique na rede. Isto feito aps a autenticao copiando os arquivos que contm os dados de personalizao de usurios (user.dat, NTuser.dat) para a mquina local. Este processo tambm inclui a cpia de papis de parede, links da rea de trabalho, cache do IE, etc. Para configurar o recurso de perfis mveis no domnio, necessrio adicionar os seguintes parmetros no seu arquivo smb.conf:
[global] security = user encrypt passwords = yes domain logons = yes logon drive = H: logon path = \\%N\profilesNT\%u logon home = \\%N\profiles\%u preserve case = yes short preserve case = yes case sensitive = no [profiles]

path = /pub/profiles read only = no create mask = 0600 directory mask = 0700 [profilesNT] path = /pub/profilesNT read only = no create mask = 0600 directory mask = 0700

Segue a descrio dos parmetros de detalhes para seu funcionamento: O parmetro domain logons = yes especifica que o servidor ser usado para fazer logons no domnio. Quando este parmetro definido para yes, a mquina automaticamente tentar ser o PDC. logon path e logon home definem (respectivamente) o diretrio de logon do /pub/profilesNT/usuario (NT) e /pub/profiles/usuario (Win95) respectivamente. Durante o logon, a varivel %N ser substituda pelo nome do servidor (ou servidor de diretrios, se for o caso) e a varivel %u pelo nome do usurio. O sistema operacional de origem detectado no momento da conexo. Isto significa que o usurio poder ter 2 profiles diferentes, de acordo com o tipo de sistema operacional cliente que estiver conectando. O diretrio home do usurio ser mapeado para a unidade H: (logon drive = h:). O parmetro logon drive somente usado pelo NT/2000/XP. As opes preserve case, short preserve case e case sensitive permite que os nomes dos arquivos/diretrios tenham as letras maisculas/minsculas mantidas, isto requerido para os profiles. O compartilhamento dos 2 profiles pode ser feito sem tantos traumas, mas isto no ser explicado profundamente no guia pois o procedimento segue o mesmo padro do NT sendo bastante documentado na internet. Note que possvel definir um servidor separado para servir os profiles para um domnio modificando a varivel %N para apontar direto para a mquina. Na mquina que armazenar os profiles, basta definir o nvel de segurana por servidor (security = server) e o endereo IP do servidor de senhas (password server = IP). OBS1: Os perfis s funcionam caso o servidor de profiles contenha a opo security = user e encrypt passwords = yes ou security = server e password server = endereo_IP. Caso tenha problemas, verifique se uma destas alternativas est correta. OBS2: Quando utiliza o SAMBA com o Windows 2000 SP2, necessrio adicionar a opo nt acl support = no no compartilhamento [profiles], caso contrrio, ele retornar um erro de acesso ao compartilhamento.

18.7.9 Modificaes de permisses de acesso pelos clientes do domnio


Um usurio do Windows NT (ou verses baseadas neste) pode modificar as permisses dos arquivos/diretrios que tem acesso atravs da caixa de dilogo de listas de acesso do NT, lembrando que estas permisses nunca substituiro as definidas pelo administrador local. A opo "nt acl support" dever estar definida para "yes" na seo [global] do arquivo de configurao, caso contrrio voc no ter acesso para mudar as permisses atravs de caixas de dilogo do NT. \

18.8 Ativando o suporte a senhas criptografadas


O uso de senhas criptografadas um requisito quando voc deseja configurar o SAMBA para ser um servidor PDC ou um cliente de um domnio. Quando utiliza senhas criptografadas, elas trafegam em formato seguro atravs da rede, dificultando a captura por outras pessoas. Em verses mais recentes do Windows (a partir da OSR/2 e NT 4 service pack3) o suporte a senhas criptografadas vem habilitado como padro para login e utilizao de servios da rede. No recomendvel desativar o uso de senhas criptografadas, mas se mesmo assim for necessrio veja Senhas criptografadas ou em texto puro?, Seo 18.12.15. Quando usamos senhas criptografadas, elas so armazenadas no arquivo /etc/samba/smbpasswd ao invs do /etc/passwd, isto permite que possamos controlar as permisses de usurios separadamente das do sistema e diferenciar os logins do domnio dos logins do sistema (usurios que possuem shell). Caso tenha um servidor que j possua muitas contas de usurios acessando em texto plano, recomendo ler Migrando de senhas texto plano para criptografadas, Seo 18.8.1 para facilitar o processo de migrao de contas. O utilitrio smbpasswd o programa utilizado para gerenciar este arquivo de senhas e tambm o status de contas de usurios/mquinas do domnio. Siga estes passos para ativar o uso de senhas criptografadas no SAMBA: Edite o arquivo /etc/samba/smb.conf e altere as seguintes linhas na seo [global] para adicionar o suporte a senhas criptografadas:
[global] encrypt passwords = true smb passwd file =/etc/samba/smbpasswd

A linha encrypt passwords = true diz para usar senhas criptografadas e que o arquivo /etc/samba/smbpasswd contm as senhas (smb passwd file =/etc/samba/smbpasswd). Caso sua mquina seja apenas um cliente de rede (e no um PDC), voc pode pular para o passo onde o SAMBA reiniciado (no final dessa lista), no necessria a criao do arquivo de senhas para autenticao pois os usurios sero validados no servidor. Execute o comando mksmbpasswd </etc/passwd >/etc/samba/smbpasswd. Ele pega toda a base de usurios do /etc/passwd e gera um arquivo /etc/samba/smbpasswd contendo as contas destes usurios. Por padro, todas as contas so DESATIVADAS por segurana quando este novo arquivo criado. O novo arquivo ter o seguinte formato:
gleydson:1020:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000:Gleydson Mazioli da Silva,,, geovani:1004:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000:Geovani Mazioli da Silva,,,

Os campos so separados por ":" e cada campo possui o seguinte significado: O primeiro o nome de usurio UID do usurio no sistema UNIX que a conta ser mapeada. Senha Lan Manager codificada em hex 32 criado usando criptografia DES usada pelo Windows 95/98/ME. Senha hash criada em formato do NT codificada em hex 32. Esta senha criada pegando a senha do usurio, convertendo-a para maisculas, adicionados 5 bytes de caracteres nulos e aplicando o algoritmo md4. Opes da conta criada no smbpasswd: U - Especifica que a conta uma conta de usurio normal (veja Adicionando usurios no smbpasswd, Seo 18.8.2) D - Significa que a conta foi desativada com a opo -d (veja Desabilitando uma conta no smbpasswd, Seo 18.8.4). W - Especifica que a conta uma conta de mquina criada com a opo -m (veja Contas de mquinas de domnio, Seo 18.7.5). N - A conta no possui senha (veja Definindo acesso sem senha para o usurio, Seo 18.8.7).

Os caracteres "XXXXXXXXXXXXXXX" no campo da senha, indica que a conta foi recm criada, e portanto est desativada. O prximo passo ativar a conta para ser usada pelo SAMBA. ATENO: O mtodo de criptografia usado neste arquivo no totalmente seguro. Recomendo manter o arquivo de senhas smbpasswd em um diretrio com a permisso de leitura somente pelo root. Para ativar a conta do usurio gleydson, usamos o comando:
smbpasswd -U gleydson

Digite a senha do usurio e repita para confirmar. Assim que a senha for definida, a conta do usurio ativada. Voc tambm pode especificar a opo "-s" para entrar com a senha pela entrada padro (muito til em scripts). Apenas tenha cuidado para que esta senha no seja divulgada em seus arquivos/processos. Reinicie o processo do SAMBA (veja Iniciando o servidor/reiniciando/recarregando a configurao, Seo 18.1.9). Verifique se o suporte a senhas criptografadas est funcionando com o comando:
smbclient -L localhost -U gleydson

Substitua localhost pelo IP do servidor e gleydson pelo usurio. Caso obtenha a mensagem session setup failed: NT_STATUS_LOGON_FAILURE significa que a senha informada est incorreta.

18.8.1 Migrando de senhas texto plano para criptografadas


No SAMBA, possvel fazer um processo de migrao de senhas em texto plano de usurios para criptografadas sem que eles deixem de acessar o servidor durante esta mudana. Caso este seja seu caso, insira o parmetro
update encrypted = yes

na seo [global] do seu arquivo de configurao smb.conf. A senha criptografada definida assim que o usurio se logar usando sua senha em texto plano. No se esquea de desativar esta opo ou remove-la aps o prazo necessrio para que todas as senhas sejam trocadas.

18.8.2 Adicionando usurios no smbpasswd


A adio de um usurio no smbpasswd segue duas etapas: primeiro necessrio adiciona-lo no sistema com o adduser e depois no samba com o smbpasswd. Voc deve estar se perguntando qual a vantagem de se ter um arquivo separado de usurios se ainda preciso criar o login nos dois arquivos; O SAMBA para fazer o controle de acesso aos arquivos utiliza alm dos mecanismos tradicionais do NT, o controle de permisses a nvel UNIX para manter os arquivos ainda mais restritos. Alm disso, ser necessrio usurios e grupos para criao e acesso ao sistema. Adicione um usurio no sistema com o comando:
useradd -g grupo-dominio -c "Usurio de Domnio" -s /bin/false -d /dev/null joao

Este comando adiciona o usurio "joao" no grupo grupo-dominio e no define hem uma shell, diretrio home nem senha para este usurio. Isto mantm o sistema mais seguro e no interfere no funcionamento do SAMBA, pois somente necessrio para fazer o mapeamento de UID/GID de usurios com as permisses do sistema UNIX. interessante padronizar os usurios criados no domnio para um mesmo grupo para pesquisa e outras coisas. Crie o usurio "joao" no SAMBA:
smbpasswd -a joao

Ser solicitada a senha do usurio.

18.8.3 Removendo usurios do smbpasswd


Utilize o comando smbpasswd -x usuario para remover um usurio do arquivo smbpasswd. Se desejar, voc pode manter o usurio no /etc/passwd ou remove-lo com o userdel. OBS: Removendo um usurio deste arquivo far que ele no tenha mais acesso ao SAMBA. Utilize o comando smbpasswd -a teste

18.8.4 Desabilitando uma conta no smbpasswd


Como administrador, pode ser necessrio que precise desativar temporariamente uma conta de usurio por alguma situao qualquer (m utilizao de recursos, dvida se a conta est sendo usada, para que ele ligue reclamando de autenticao para ter aquela desejada conversa (hehe), etc.). Remover uma conta e novamente adiciona-la ento no uma situao muito prtica. Utilize ento o seguinte comando para desativar uma conta de usurio:
smbpasswd -d usuario

Quando a conta de usurio desativada, uma flag "D" adicionada s opes do usurio (junto com as opes "UX"). Veja Habilitando uma conta no smbpasswd, Seo 18.8.5 para reativar a conta.

18.8.5 Habilitando uma conta no smbpasswd


Uma conta desativada com o uso do comando smbpasswd -d pode ser novamente ativada usando:
smbpasswd -e usuario

18.8.6 Alterando a senha de um usurio


O utilitrio smbpasswd pode ser usado tanto para alterar a senha de usurios locais do SAMBA ou de uma conta em um servidor remoto (seja SAMBA, NT, W2K). Para alterar a senha de um usurio local, digite:
smbpasswd -U usuario

Lhe ser pedida a antiga senha, a nova senha e a confirmao. Caso seja o usurio root, somente a nova senha e a confirmao. Isto mecanismo de proteo para usurios que esquecem a senha ;-) Para alterar a senha de um usurio remoto, utilize:
smbpasswd -r servidor -U usuario

Note que apenas foi adicionada a opo -r servidor comparado com a opo anterior. A diferena que a senha antiga do usurio sempre ser solicitada para troca (pois o root das 2 mquinas pode no ser o mesmo).

18.8.7 Definindo acesso sem senha para o usurio


Para fazer um usurio acessar sem senha, use o comando:
smbpasswd -n usuario

Isto completamente desencorajado e necessita que a opo null passwords da seo [global] no arquivo smb.conf esteja ajustada para yes (que NO o padro).

18.9 Ativando o suporte a senhas em texto plano


Esta forma de autenticao enviada por implementaes NetBIOS antigas, como a encontrada no Lan Manager, Windows for Workgroups e Windows 95 OSR1. As verses mais novas destas implementaes enviam a senha em formato criptografado, sendo necessrio tambm usar o formato criptografado no SAMBA para que possa se autenticar (veja Ativando o suporte a senhas criptografadas, Seo 18.8). Em Senhas criptografadas ou em texto puro?, Seo 18.12.15 feita uma comparao entre o uso de autenticao usando senhas em texto plano e senhas criptografadas. Em geral, o administrador prefere a utilizao da autenticao usando texto plano quando deseja usar o /etc/passwd para autenticao e est usando grupos de trabalho necessrio usar senhas criptografadas para autenticao). Para configurar o SAMBA para utilizar senhas em texto, modifique o parmetro encrypt passwords para no:
[global] encrypt passwords = no

Reinicie o SAMBA (Iniciando o servidor/reiniciando/recarregando a configurao, Seo 18.1.9) e a partir de agora, ele usar o /etc/passwd para autenticao. OBS: Tenha certeza de no estar participando de um domnio ou que sua mquina seja o PDC antes de fazer esta modificao.

18.9.1 Configurando o acesso de clientes para uso de senhas em texto plano


Esta seo descreve como configurar clientes para acessar o servidor SAMBA usando autenticao em texto plano. Atualmente o guia cobre os seguintes clientes: Lan Manager, Seo 18.9.1.1 Windows for Workgroups, Seo 18.9.1.2 Windows 95 / Windows 95A, Seo 18.9.1.3 Windows 95B, Seo 18.9.1.4 Windows 98/98SE, Seo 18.9.1.5 Windows ME, Seo 18.9.1.6 Windows NT Server/WorkStation, Seo 18.9.1.7 Windows 2000, Seo 18.9.1.8 Linux, Seo 18.9.1.9 Em cada seo, tambm explicado como habilitar novamente a autenticao usando senhas criptografadas (se suportado pelo cliente).

18.9.1.1 Lan Manager Cliente NetBIOS para DOS. Ele trabalha somente com senhas em texto plano.

18.9.1.2 Windows for Workgroups Este o padro de autenticao do Windows for Workgroups caso no tenha feito nenhuma alterao especfica (mas desconheo algo que faa-o trabalhar com senhas criptografadas).

18.9.1.3 Windows 95 / Windows 95A O Windows 95 at a release "A", utiliza texto plano como padro para autenticao (veja qual a release clicando com o boto direito em Meu Computador e Propriedades.

18.9.1.4 Windows 95B Copie o seguinte contedo para um arquivo chamado win95-textoplano.reg:
REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP] "EnablePlainTextPassword"=dword:00000001

Aps isto, execute no Windows 95 o seguinte comando: regedit win95-textoplano.reg e reinicie o computador para fazer efeito. Para voltar a utilizar criptografia, apenas altere o valor dword para 00000000 no arquivo e executa novamente o regedit.

18.9.1.5 Windows 98/98SE O procedimento idntico ao Windows 95B, Seo 18.9.1.4.

18.9.1.6 Windows ME O procedimento idntico ao Windows 95B, Seo 18.9.1.4.

18.9.1.7 Windows NT Server/WorkStation Copie o seguinte contedo para um arquivo chamado winNT-textoplano.reg:
REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters] "EnablePlainTextPassword"=dword:00000001

Aps isto, execute no Windows NT o seguinte comando: regedit winNT-textoplano.reg e reinicie o computador para fazer efeito. Para voltar a utilizar criptografia, apenas altere o valor dword para 00000000 no arquivo e execute novamente o regedit.

18.9.1.8 Windows 2000 Copie o seguinte contedo para um arquivo chamado win2000-textoplano.reg:
REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters] "EnablePlainTextPassword"=dword:00000001

Aps isto, execute no Windows 2000 o seguinte comando: regedit win2000-textoplano.reg e reinicie o computador para fazer efeito. Para voltar a utilizar criptografia, apenas altere o valor dword para 00000000 no arquivo e execute novamente o

regedit.

18.9.1.9 Linux Inclua/modifique a linha encrypt passwords = no no arquivo smb.conf e reinicie o SAMBA. Para voltar a utilizar criptografia, veja Ativando o suporte a senhas criptografadas, Seo 18.8.

18.10 Mapeamento de usurios/grupos em clientes


O mapeamento de usurios do servidor remoto com a mquina local usado quando voc deseja controlar o acesso aos arquivos/diretrios a nvel de usurio. No Windows isto permite que cada arquivo/diretrio tenha o acesso leitura/gravao somente para os usurios definidos e autenticados no controlador de domnio. No Linux as permisses de arquivos e diretrios podem ser definidas para o usurio do PDC, garantindo o mesmo nvel de controle de acesso. Esta seo explica como configurar o mapeamento de UID/GID entre o servidor PDC SAMBA e seus clientes NetBIOS Windows e Linux.

18.10.1 Mapeamento de usurios/grupos domnio em Windows


Para o Windows utilizar os usurios remotos do servidor para fazer seu controle de acesso por nvel de usurio, siga os seguintes passos: Windows 9X Entre no Painel de Controle/Propriedades de Rede e clique na tab Controle de Acesso. Marque a opo Controle de acesso a nvel de usurio e coloque o nome da mquina PDC na caixa de dilogo de onde os usurios/grupos sero obtidos. Voc tambm pode colocar o nome do grupo de trabalho, neste caso a mquina far uma busca pelo PDC ou outra mquina de onde pode obter os nomes de usurios/grupos. OBS: Para fazer isto, voc dever estar autenticado no domnio.

18.10.2 Mapeamento de usurios/grupos domnio em Linux


A associao de UIDs de usurios de um domnio com usurios locais no Linux feita pelo programa winbind. Ele utiliza o mecanismo nsswitch para obter outras fontes de dados de usurios e os associa nas ferramentas de gerenciamento de contas existentes no sistema. Siga estes passos para fazer sua instalao e configurao do Winbind em um servidor Linux: Instale o programa winbind: apt-get install winbind. Modifique o arquivo smb.conf adicionando as seguintes linhas na seo [global]:
winbind separator = + winbind cache time = 30 winbind uid = 10000-15000 winbind gid = 10000-12000 winbind enum users = yes winbind enum groups = yes template homedir = /home/winbind/%D/%U template shell = /bin/false

Onde

winbind separator Separador usado para separar o nome dos grupos do nome de domnio. Este parmetro somente tem sentido quando usado em conjunto com um PDC Windows ou quando os mdulos pam_winbind.so e nss_winbind.so esto sendo utilizados. winbind cache time Define a quantidade de tempo em segundos que um nome/grupo permanecer no cache local para no ser feita uma nova consulta no servidor PDC. winbind uid Especifica o intervalo que ser usado para mapear os nomes de usurios remotos como UIDs locais. Voc precisar ter certeza que nenhum UID nesse intervalo usado no sistema, como pelo LDAP, NIS ou usurios normais. Por padro, os IDS de usurios normais na maioria dos sistemas Linux, comeam por 1000. No exemplo sero usados os UIDs de 10000 a 15000 para mapeamento e UIDs dos usurios do domnio para usurios locais. winbind gid Especifica o intervalo de GIDs que ser usado para mapear os nomes de grupos remotos do domnio como GIDs locais. Como no parmetro winbind uid, voc dever ter certeza que esta faixa de GIDs no est sendo usada em seu sistema. OBS: Atualmente SAMBA no possui suporte a grupos globais, apenas para usurios globais, desta forma os grupos da mquina remota no sero trazidos para o sistema. Uma forma de contornar isto, utilizando o LDAP ou o NIS no PDC e nos clientes Linux. winbind enum users Permite enumerar usurios do winbind para retornarem dados quando solicitados. A no ser que possua uma instalao parecida em todas as mquinas (como com o uso de LDAP e NIS) responda "yes" para no ter problemas. winbind enum groups Permite enumerar grupos do winbind para retornarem dados quando solicitados. A no ser que possua uma instalao parecida em todas as mquinas (como com o uso de LDAP e NIS) responda "yes" para no ter problemas. template homedir Quando o sistema cliente for um Windows NT ou baseado, este diretrio ser retornado como diretrio de usurio para o sistema. O parmetro %D ser substitudo pelo nome do domnio e %U pelo nome de usurio durante a conexo. template shell Este ser o shell enviado para mquinas NT ou baseadas nele como shell usado para login. O valor usado foi /bin/false pois desabilita os logons, mas voc poder usar /bin/sh (ou algum outro shell) para efetuar conexes do comando net ou outras ferramentas NetBEUI ao servidor. Reinicie o servidor SAMBA Edite o arquivo /etc/nsswitch.conf alterando a ordem de pesquisa de nomes de usurios e grupos do sistema local para a seguinte:

passwd: group: shadow:

files winbind files winbind compat

Agora, inicie o daemon winbind local com o comando: /etc/init.d/winbind restart. Entre no domnio com o comando: smbpasswd -j domnio -r nome_do_PDC -U usuario (veja Linux, Seo 18.14.3.9 para aprender como entrar no domnio em caso de dvidas). Agora faa o teste para obter a listagem dos grupos e usurios do domnio do PDC digitando:
wbinfo wbinfo getent getent -u -g passwd group

Caso isto no acontea, revise suas configuraes e veja os logs procurando por erros quando o winbind tenta obter a lista de usurios/grupos do domnio. Agora voc deve ser capaz de criar diretrios/arquivos locais usando os nomes de usurios/grupos do domnio. Lembre-se de reiniciar sempre o winbind quando reiniciar o SAMBA por alguma modificao for feita (ao mesmo que saiba que no afeta o winbind), assim como entrar novamente no domnio, caso contrrio o mapeamento deixar de funcionar. OBS: Atualmente, o winbind no oferece suporte a restries por data/hora de logon para estaes de trabalho. Isto dever ser implementado em uma futura verso

18.11 Compartilhamento de impresso no servidor SAMBA


Este captulo documenta como configurar o seu servidor samba para permitir o acesso a compartilhamento de arquivos e impresso no sistema.

18.11.1 Configurando o Linux como um servidor de impresso Windows


Ser necessrio ter o pacote samba instalado e adicionar as seguintes linhas no seu arquivo /etc/samba/smb.conf:
[hp-printer] path = /tmp printer name=HP DeskJet 690C printable = yes print command = lpr -r -h -P %p %s valid users = winuser winuser2 create mode = 0700

O compartilhamento acima tornar disponvel a impressora local "lp" as mquinas Windows com o nome "HP DeskJet 690C". Uma impressora alternativa pode ser especificada modificando a opo -P da linha de comando do lpr. Note que somente os usurios "winuser" e "winuser2" podero usar esta impressora. Os arquivos de spool (para gerenciar a fila de impresso) sero gravador em /tmp (path = /tmp) e o compartilhamento [hpprinter] ser mostrado como uma impressora (printable = yes). Agora ser necessrio instalar o driver desta impressora no Windows (HP 690C) e escolher impressora instalada via rede e seguir os demais passos de configurao.

18.12 Controle de acesso ao servidor SAMBA


Este captulo documenta o controle de acesso ao servidor samba e restries.

18.12.1 Nvel de acesso de usurios conectados ao SAMBA


Quando acessa um compartilhamento, o usurio do samba mapeado com o UID respectivo de usurio do sistema ou o usurio guest (especificado pela opo "guest account") no caso de um acesso pblico. Quando isto ocorre, um processo filho do smbd executado sobre o UID e GID deste usurio. Isto significa que em nenhuma ocasio o SAMBA dar mais permisses que as necessrias para o usurio (com excesso de quando usado o parmetro admin users, veja Criando uma conta de administrador de domnio, Seo 18.7.6).

18.12.2 Restringindo o acesso por IP/rede


Esta restrio pode ser feita pelos parmetros allow hosts e deny hosts tanto em servios individuais ou em todo o servidor. Os parmetros hosts allow e hosts deny so equivalentes a estes acima. O allow hosts permite o acesso a mquina especificadas como argumento. So permitidos os seguintes mtodos para permitir o acesso a uma mquina/rede: 192.168.1.1 - IP da mquina servidor - Nome da mquina 192.168.1.0/255.255.255.0 - IP com mscara de rede 192.168.1.0/24 - IP com mscara de rede octal 192.168.1. - Poro de rede sem o host (como no hosts.allow e hosts.deny. @nome - Pesquisa por mquinas no grupo NIS. permitido usar mais de um endereo IP separando-os por vrgulas ou espaos. A palavra chave EXCEPT pode ser usada para fazer excesso de um ou mais endereos IPs, por exemplo:
hosts allow = 192.168.1. EXCEPT 192.168.1.20

Que permite o acesso a toda as mquinas da faixa de rede 192.168.1.0/24 exceto para a 192.168.1.20. O deny hosts possui a mesma sintaxe do allow hosts mas bloqueia o acesso das mquinas especificadas como argumento. Quando o allow hosts e deny hosts so usados juntos, as mquinas em allow hosts tero prioridade (processa primeiro as diretivas em allow hosts e depois em deny hosts). OBS: O endereo de loopback (127.0.0.1) nunca bloqueado pelas diretivas de acesso. Provavelmente deve ter notado porque o endereo de loopback no pode ser bloqueado e as conseqncias disto para o SAMBA. Se voc est executando o SAMBA via inetd, os arquivos hosts.allow e hosts.deny so verificados antes do controle e acesso allow hosts e deny hosts para controle de acesso ao smbd. Caso estiver usando o SAMBA viainetd e deseja restringir o acesso usando TCP Wrappers, veja O mecanismo de controle de acessos tcpd, Seo 4.8.3. OBS: Lembre-se de usar o testparm para verificar a sintaxe do arquivo smb.conf sempre que desconfiar de problemas (veja Buscando problemas na configurao, Seo 18.2.11).

18.12.2.1 Testando a restrio de Acesso por IP/Redes Um mtodo interessante e til para testar se a nossa configurao vai bloquear o acesso a servios usando o testparm da seguinte forma:
testparm /etc/samba/smb.conf IP/host

Voc precisar dizer para o testparm qual o arquivo de configurao que est usando e o endereo IP/nome de host que far a simulao de acesso. Este mtodo no falsifica o endereo IP para testes, apenas usa os valores em allow hosts e deny hosts para checagem. Por exemplo, para verificar o acesso vindo do IP 192.168.1.50:

testparm /etc/samba/smb.conf 192.168.1.50 Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]" Processing section "[tmp]" Processing section "[cdrom]" Loaded services file OK. Allow connection from /etc/samba/smb.conf (focalinux) Allow connection from /etc/samba/smb.conf (focalinux) Allow connection from /etc/samba/smb.conf (focalinux) Allow connection from /etc/samba/smb.conf (focalinux)

to to to to

homes printers tmp cdrom

18.12.3 Restringindo o acesso por interface de rede


Esta restrio de acesso permite que faamos o SAMBA responder requisies somente para a interfaces indicadas. O mtodo de segurana descrito em Restringindo o acesso por IP/rede, Seo 18.12.2 sero analisadas logo aps esta checagem. Para restringir o servio SAMBA a interfaces, primeiro ser necessrio ativar o parmetro bind interfaces only usando 1, yes ou true (o padro desativado). Depois, definir que interfaces sero servidas pelo samba com o parmetro interfaces. Os seguintes formatos de interfaces so permitidos: eth0, sl0, plip0, etc - Um nome de interface local. permitido o uso de * para fazer o SAMBA monitorar todas as interfaces que iniciam com aquele nome (por exemplo, eth*). 192.168.1.1, 192.168.1.2, etc - Um endereo IP de interface local. 192.168.1.2/24, 192.168.1.2/255.255.255.0 - Um par de endereo/mscara de rede. Mais de uma interface pode ser usada separando-as com vrgula ou espaos. A escolha do uso de nome da interface ou do IP feita de acordo com a configurao da mquina. Em uma mquina DHCP por exemplo, recomendado o uso do nome da interface. Quando bind interfaces only estiver ativado, o padro esperar conexes em todas as interfaces que permitem broadcast exceto a loopback. Exemplo:
bind interfaces only = 1 interfaces = loopback eth0

Permite o recebimento de requisies de acesso ao SAMBA somente da interface loopback (desnecessrio, pois como notou durante a leitura, sempre permitida a conexo) e eth0.

18.12.4 Restringindo o acesso por usurios


Permite que voc controle quem poder ou no acessar o compartilhamento da mquina. Este controle feito pelos parmetros valid users e invalid users. O invalid users lista de usurio que NO tero acesso ao compartilhamento. Se o nome for iniciado por "+" o parmetro ser tratado como um nome de grupo UNIX (/etc/group). O caracter "&" faz ele pesquisar o nome de grupo no banco de dados NIS. O caracter "@" permite fazer a busca do grupo primeiro no banco de dados NIS e caso ele no seja encontrado, no arquivo de grupos do sistema (/etc/group). possvel usar a combinao de caracteres "+&" e "&+" para alternar a ordem de busca enter o /etc/group e o NIS. Exemplos: invalid users = junior, marcio, +badusers No permite que os usurios especificados e os usurios do grupo +badusers tenham acesso ao compartilhamento.

invalid users = &;semacesso Bloqueia o acesso de todos os usurios NIS que pertenam ao grupo semacesso. invalid users = bruno, henrique, +@users, Bloqueia o acesso dos usurios bruno, henrique e de todos os usurios que pertenam ao grupo users. A pesquisa de grupo feita primeiro no /etc/group e em seguida no NIS. invalid users = @semacesso Bloqueia o acesso dos usurios que pertencem ao grupo "semacesso". A pesquisa feita primeiro no NIS e depois no /etc/group (equivalente ao uso de "&+"). O valid users possui a mesma sintaxe de funcionamento do invalid users, mas permite somente o acesso para os usurios/grupos listados. Caso a opo valid users no seja especificada ou a lista esteja vazia, o acesso permitido. Se um mesmo nome de usurio estiver na lista valid users e invalid users, o padro ser mais restritivo, negando o acesso.
valid users = gleydson, michelle, geo

A segurana deste mtodo de acesso depende muito da forma de autenticao dos nomes antes de passar o controle para o SAMBA, pois uma autenticao fraca pe em risco a segurana da sua mquina.

18.12.5 Evite o uso do parmetro hosts equiv!


Este parmetro permite que mquinas tenham acesso sem senha a um servidor. Isto pode se tornar um *ENORME* buraco na segurana do seu sistema, pois mesmo usando uma senha invlida, a mquina poder ter acesso a todos os recursos do compartilhamento e no complicado fazer um ataque usando DNS spoofing. Se realmente deseja fazer isto, tenha em mente os dados que podero ser acessados daquela mquina, se realmente no existe nenhuma outra forma de disponibilizar o acesso de forma que mantenha o controle de restries (usando todos os outros mtodos), restrinja o acesso usando MAC Address com o iptables ou o arp (veja Restries por MAC Address/IP, Seo 19.7). O padro no usar nenhum arquivo hosts.equiv.

18.12.6 Evite o uso de senhas em branco!


O parmetro null passwords usado na seo [global] permitindo que contas de usurios sem senha tenham acesso permitido ao servidor. ISTO TOTALMENTE INSEGURO e deve ser sempre evitado. Caso voc tenha feito uma bela restrio em sua mquina e deseja que o seu shell script de cpia de arquivos funcione usando este mtodo, voc est jogando toda a segurana do seu sistema por ralo abaixo. No existe motivo para usar senhas em branco em um controle de acesso por usurio, a no ser que precise testar algo realmente temporrio e que depurando algo no SAMBA.

18.12.7 Criando um compartilhamento para acesso sem senha


Em algumas situaes (mesmo em instalaes seguras) preciso tornar um compartilhamento acessvel publicamente, exemplos disto incluem um diretrio que contm drivers de impressoras, arquivos comuns, um diretrio temporrio, etc. Para configurar um acesso pblico utilizamos a opo public = yes ou guest ok = yes (que um sinnimo para o ltimo comando). O UID utilizado no acesso pblico especificado pelo parmetro guest account, portanto ele dever ser um usurio vlido do sistema. Caso voc queira somente definir acesso guest a

um compartilhamento, especifique a opo guest only para o servio, desta forma, mesmo que o usurio tenha acesso, ele ser mapeado para o usurio guest. Uma boa medida de segurana usar o usurio nobody pois a maioria das distribuies de Linux seguras adotam-o como padro como usurio que no dono de quaisquer arquivos/diretrios no sistema, no possui login, senha ou sequer um diretrio home. Veja um exemplo disponibilizando o compartilhamento [download] para acesso pblico com acesso a gravao:
[global] guest account = nobody .. .. [download] path = /downloads comment = Espao pblico para abrigar downloads de Usurios guest ok = yes (aqui poder ser tambm "public = yes"). writable = yes follow symlinks = false

O parmetro guest account tambm poder ser especificado no compartilhamento, isto til quando no quiser que o usurio que acesse o compartilhamento no seja o mesmo usado na diretiva [global]. Caso seu servidor somente disponibiliza compartilhamentos para acesso pblico, mais recomendado utilizar o nvel security = share pra diminuir a carga mquina, pois o usurio guest ser o primeiro a ser checado pelas regras de acesso (ao contrrio do nvel user, onde o acesso guest o ltimo checado). OBS: Lembre-se que o compartilhamento funciona de modo recursivo, ou seja, todos os arquivos e subdiretrios dentro do diretrio que compartilhou sero disponibilizados, portanto tenha certeza da importncia dos dados que existem no diretrio, verifique se existem links simblicos que apontam para ele, etc. Recomendo dar uma olhada rpida em Consideraes de segurana com o uso do parmetro "public = yes", Seo 18.12.14.

18.12.8 Criando um compartilhamento com acesso somente leitura


Esta proteo til quando no desejamos que pessoas alterem o contedo de um compartilhamento. Isto pode ser feito de duas formas: negando o acesso de gravao para todo o compartilhamento ou permitindo leitura somente para algumas pessoas. O parmetro usado para fazer a restrio de acesso somente leitura o read only = yes ou seu antnimo writable = no. Abaixo seguem os dois exemplos comentados:
[teste] comment = Acesso a leitura para todos path = /tmp read only = yes public = yes

No exemplo acima, o diretrio /tmp (path = /tmp) foi compartilhado com o nome teste ([teste]), de forma pblica (acesso sem senha - public = yes), e todos podem apenas ler seu contedo read only = yes).
[teste] comment = Acesso a gravao para todos com excesses path = /tmp read only = no read list = @users, gleydson invalid users = root

Neste, o mesmo compartilhamento teste ([teste]) foi definido como acesso leitura/gravao para todos (read only = no), mas os usurios do grupo @users e o usurio gleydson tero sempre acesso leitura (read list = @users, gleydson). Adicionalmente foi colocada uma proteo para que o superusurio no tenha acesso a ele (invalid users = root). Esta forma de restrio explicada melhor em Excesso de acesso na permisso padro de compartilhamento, Seo 18.12.10).

18.12.9 Criando um compartilhamento com acesso leitura/gravao


Esta forma de compartilhamento permite a alterao do contedo do compartilhamento dos usurios que possuem as permisses de acesso apropriadas. Este controle pode ser feito de duas formas: Acesso total de gravao para os usurios e acesso de gravao apenas para determinados usurios. Este controle feito pela opo read only = no e seu antnimo equivalente writable = yes. Abaixo dois exemplos:
[teste] comment = Acesso de gravao para todos. path = /tmp writable = yes public = yes

No exemplo acima, o diretrio /tmp (path = /tmp) foi compartilhado com o nome teste ([teste]), de forma pblica (acesso sem senha - public = yes) e todos podem ler/gravar dentro dele (writable = yes).
[teste] comment = Acesso a leitura para todos com excesses path = /tmp writable = no write list = @users, gleydson

Neste, o mesmo compartilhamento teste ([teste]) foi definido como acesso de leitura para todos (writable = no), mas os usurios do grupo @users e o usurio gleydson sero os nicos que tero tambm acesso a gravao (write list = @users, gleydson). Esta forma de restrio explicada melhor em Excesso de acesso na permisso padro de compartilhamento, Seo 18.12.10).

18.12.10 Excesso de acesso na permisso padro de compartilhamento


possvel alterar o nvel de acesso para determinados usurios/grupos em um compartilhamento, para entender melhor: Caso tenha criado um compartilhamento somente leitura e queira permitir que apenas alguns usurios ou grupos tenham acesso a gravao, isto possvel e ser explicado nesta seo. Este comportamento controlado por duas opes: read list e write list. Veja alguns exemplos:
[temporario] comment = Diretrio temporrio path = /tmp writable = yes read list = gleydson, root browseable = no available = yes

Neste exemplo, disponibilizamos o diretrio /tmp (path = /tmp) como compartilhamento de nome temporario ([temporario]), seu acesso padro leitura/gravao para todos (writable = yes), exceto para os usurios root e gleydson (read list = root, gleydson). Em adio, tornamos o compartilhamento invisvel (veja Criando um compartilhamento invisvel, Seo 18.12.12) no "Ambiente de Rede" do Windows (browseable = no) e ele ser lido e disponibilizado pelo SAMBA (available = yes).
[temporario] comment = Diretrio temporrio path = /tmp writable = no write list = gleydson, @operadores browseable = yes

Neste exemplo, disponibilizamos o diretrio /tmp (path = /tmp) como compartilhamento de nome temporario ([temporario]), seu acesso padro apenas leitura para todos (writable = no), exceto para o usurio gleydson e usurios do grupo Unix operadores, que tem acesso a leitura/gravao (write list = gleydson, @operadores). Tornamos o compartilhamento visvel no "Ambiente de Rede" do Windows (browseable = yes - que o padro).

18.12.11 Restringindo o IPC$ e ADMIN$


seguro restringir os servios IPC$ e ADMIN$ para acesso somente pelas faixas de rede de confiana. Isto pode ser feito atravs da mesma forma que a restrio em outros compartilhamentos. Os efeitos desta restrio sero que somente as redes autorizadas possam obter a lista de mquinas, se autenticar no domnio e realizar tarefas administrativas gerais:
[IPC$] read only = yes allow from 192.168.1.0/24 [ADMIN$] read only = yes allow from 192.168.1.0/24

O exemplo acima permite que os servios IPC$ e ADMIN$ sejam acessados de qualquer mquina na faixa de rede 192.168.1.0/24. Para forar a autenticao para acesso a estes servios:
[IPC$] invalid users = nobody valid users = gleydson michelle read only = yes allow from 192.168.1.0/24 [ADMIN$] invalid users = nobody valid users = gleydson michelle read only = yes allow from 192.168.1.0/24

Os exemplos acima so similares ao de antes, mas o acesso a listagem dos compartilhamentos restringida (invalid users = nobody), pois o usurio nobody (usado para mostrar o compartilhamento) tem o acesso negado. Somente os usurios gleydson e michelle (valid users = gleydson michelle) podem listar seu contedo. OBS: Mesmo que estejam restritos, os servios IPC$ e ADMIN$ sempre podero ser acessados de 127.0.0.1, ou teramos problemas com o funcionamento do SAMBA. Assim no necessrio colocar 127.0.0.1 na lista de IPs autorizados.

18.12.12 Criando um compartilhamento invisvel


Para no exibir um compartilhamento da lista de compartilhamentos das mquinas, utilize o parmetro browseable = no. Por exemplo:
[teste] path = /tmp comment = Diretrio temporrio read only = yes browseable = no

Neste exemplo, o diretrio /tmp (path = /tmp) foi compartilhado atravs de teste ([teste]) com acesso somente leitura (read only = yes) e ele no ser mostrado na listagem de compartilhamentos do ambiente de rede do Windows (browseable = no). Note que o compartilhamento continua disponvel, porm ele poder ser acessado da estao Windows, especificando a \\maquina\compartilhamento. Para acessar o compartilhamento do exemplo acima:
# Clique em Iniciar/Executar e digite: \\nome_do_servidor_samba\teste

Ao contrrio das mquinas Windows onde necessrio adicionar um "$" do nome de compartilhamento para criar um compartilhamento oculto (como teste$) o SAMBA cria um compartilhamento realmente oculto, no aparecendo mesmo na listagem do smbclient.

18.12.13 Executando comandos antes e aps o acesso ao compartilhamento


Este recurso oferece uma infinidade de solues que podem resolver desde problemas de praticidade at segurana usando as opes preexec e postexec. Por exemplo, imagine que esteja compartilhando 4 unidades de CDRom de um servidor na rede, e deseje que estes CDs estejam sempre disponveis mesmo que algum operador engraadinho tenha ejetado as gavetas de propsito, podemos fazer a seguinte configurao:
[cdrom] path = /cdrom comment = Unidade de CD-ROM 1 read only = yes preexec = /bin/mount /cdrom preexec close = yes postexec = /bin/umount /cdrom

Na configurao acima, o CD-ROM ser compartilhado como cdrom ([cdrom]), somente leitura (red only = yes), quando o usurio acessar o compartilhamento ele "fechar" a gaveta do CD (preexec = /bin/mount /cdrom) e desmontar o drive de CD assim que o compartilhamento for fechado (postexec = /bin/umount /cdrom). Adicionalmente, caso o comando mount da opo preexec tenha retornado um valor diferente de 0, a conexo do compartilhamento fechada (preexec close = yes). A UID do processo do preexec e postexec ser o mesmo do usurio que est acessando o compartilhamento, por este motivo ele dever ter permisses para montar/desmontar o CD-ROM no sistema. Caso precise executar comandos como usurio root, utilize a variante root preexec e root postexec. Apenas tenha conscincia que os programas sendo executados so seguros o bastante para no comprometer o seu sistema. Usando a mesma tcnica, possvel que o sistema lhe envie e-mails alertando sobre acesso a compartilhamentos que em conjunto com um debug level 2 e logs configurados independentes por mquina, voc possa ver o que a mquina tentou acessar (e foi negado) e o que ela conseguiu acesso. Como bom administrador, voc poder criar scripts que faam uma checagem de segurana no compartilhamento e encerre automaticamente a conexo caso seja necessrio, montar um "honney pot" para trojans, etc. Como deve estar notando, as possibilidades do SAMBA se extendem alm do simples compartilhamento de arquivos, se integrando com o potencial dos recursos do sistema UNIX.

18.12.14 Consideraes de segurana com o uso do parmetro "public = yes"


Este parmetro permite que voc acesso um compartilhamento sem fornecer uma senha, ou seja, que o usurio no esteja autenticado. NO utilize o parmetro "public = yes" (ou um de seus sinnimos) no compartilhamento [homes], pois abrir brechas para que possa acessar o diretrio home de qualquer usurio e com acesso a gravao (que o padro adotado pelos administradores para permitir o acesso ao seu diretrio home remoto). Recomendo utilizar o parmetro public = yes somente em compartilhamentos onde realmente necessrio, como o [netlogon] ou outras reas de acesso pblico onde as permisses do sistema de arquivos local estejam devidamente restritas. Outra medida no utilizar a opo follow symlinks, que poder lhe causar problemas com usurios mal intencionados que tenham acesso shell. OBS: Tenha em mente todas as consideraes de segurana abordadas neste captulo, bem como as permisses de acesso ao sistema Unix e como elas funcionam. A disponibilidade de arquivos em uma rede simples, simples tambm pode ser o acesso indevido a eles caso no saiba o que est fazendo.

18.12.15 Senhas criptografadas ou em texto puro?


Como regra geral, prefira sempre utilizar senhas criptografadas. Aqui alguns motivos: A senha enviada de uma forma que dificulta sua captura por pessoas maliciosas. O NT no permite que voc navegue no ambiente de rede em um sistema SAMBA com nvel de acesso por usurio autenticando usando senhas em texto plano.

Ser solicitada sempre a senha para reconexo em cada compartilhamento da mquina. Todas as verses de Windows NT 4 a partir SP3 e Windows 95 OSR/2 utilizam senhas criptografadas como padro. possvel faze-lo utilizar senhas em texto plano modificando chaves no registro das mquinas clientes (veja Ativando o suporte a senhas em texto plano, Seo 18.9 para detalhes). As vantagens da utilizao da autenticao usando texto plano: A senha utilizada ser a mesma do /etc/passwd (servindo para ftp, login, etc) O servidor PDC pode ser usado para logon desde que os clientes estejam usando senhas em texto plano. Elas no so armazenadas no disco da estao cliente. Voc no ser perguntado por uma senha durante cada reconexo de recurso. Antes de optar por utilizar um sistema de senhas em texto plano, leve em considerao estes pontos. Se voc j utiliza telnet ou ftp, provavelmente a utilizao de autenticao usando texto plano no SAMBA no trar problemas mais graves para voc. OBS: Caso seu NT ou verso derivada no navegue no ambiente de rede (s aceitando conexes especificando diretamente o "\\servidor\compartilhamento") modifique sua configurao do SAMBA para autenticar usando senhas criptografadas (veja Ativando o suporte a senhas criptografadas, Seo 18.8) para detalhes de como fazer isto.

18.12.16 Mapeamento de nomes de usurios


Este recurso faz a mapeamento (traduo) de nomes de usurios usados no momento do acesso para contas de acesso locais, bastante til quando o nome de usurio enviado pela mquina no confere com NENHUMA conta local do sistema (um exemplo quando o login do usurio no Windows diferente de seu Login no Linux). Outro vantagem de seu uso permitir que uma categoria de usurios utilizem um mesmo nvel de acesso no sistema. Seu formato o seguinte: username map = arquivo. As seguintes regras so usadas para construir o arquivo de mapeamento de nomes: Um arquivo de mltiplas linhas onde o sinal de "=" separa os dois parmetros principais. O arquivo processado linha por linha da forma tradicional, a diferena o que o processamento do arquivo continua mesmo que uma condio confira. Para que o processamento do resto do arquivo seja interrompido quando um mapeamento confira, coloque o sinal "!" na frente do nome local. O parmetro da esquerda a conta Unix local que ser usada para fazer acesso ao compartilhamento. Somente uma conta Unix poder ser utilizada. O parmetro da direita do sinal de "=" pode conter um ou mais nomes de usurios separados por espaos que sero mapeados para a conta Unix local. O parmetro "@grupo" permite que usurios pertencentes ao grupo Unix local sejam mapeados para a conta de usurio do lado esquerdo. Outro caracter especial o "*" e indica que qualquer usurio ser mapeado. Voc pode utilizar comentrios na mesma forma que no arquivo de configurao smb.conf. Alguns exemplos:
# Mapeia o usurio "gleydson mazioli" com o usurio local gleydson gleydson = gleydson mazioli # Mapeia o usurio root e adm para o usurio nobody nobody = root adm # Mapeia qualquer nome de usurio que pertena ao grupo smb-users para o usurio # samba. samba = @smb-users # Utiliza todos os exemplos anteriores, se nenhum usurio conferir, ele ser # mapeado para o usurio nobody (como o usurio root e adm j so mapeados # para "nobody", este exemplo ter o mesmo efeito).

!gleydson = gleydson mazioli !samba = @smb-users nobody = *

18.13 Melhorando a performance do compartilhamento/servidor


Esta seo trar algumas formas de otimizao do servidor SAMBA que fazem diferena quando os valores adequados so utilizados: A primeira a ativao de um cache de gravao/leitura de arquivos. Este cache feito pela opo write cache size e funciona fazendo o cache dos arquivos que sero lidos/gravados. Ele esvaziado assim que o arquivo for fechado ou quando estiver cheio. O valor especificado nesta opo em bytes e o padro "0" para no causar impacto em sistemas com pouca memria (ou centenas de compartilhamentos). Exemplo:
[publico] path = /pub comment = Diretrio de acesso pblico read only = yes public = yes write cache size = 384000

Compartilha o diretrio /pub (path = /pub) como compartilhamento de nome publico ([publico]), seu acesso ser feito como somente leitura (read only = yes) e o tamanho do cache de leitura/gravao reservado de 384Kb (write cache size = 384000). Deixar a opo para seguir links simblicos ativada (follow symlinks) garante mais performance de acesso a arquivos no compartilhamento. A desativao da opo wide links em conjunto com o uso de cache nas chamadas getwd (getwd cache) permite aumentar a segurana e tem um impacto perceptvel na performance dos dados. A desativao da opo global nt smb support tambm melhora a performance de acesso dos compartilhamentos. Esta uma opo til para detectar problemas de negociao de protocolo e por padro, ela ativada. Caso utiliza um valor de depurao de log muito alto (debug level), o sistema ficar mais lento pois o servidor sincroniza o arquivo aps cada operao. Em uso excessivo do servidor de arquivos, isso apresenta uma degradao perceptvel de performance. A opo prediction permite que o SAMBA faa uma leitura adiante no arquivo abertos como somente-leitura enquanto aguarda por prximos comandos. Esta opo associada com bons valores de write cache size pode fazer alguma diferena. Note que o valor de leitura nunca ultrapassa o valor de "read size". A opo read size permite obter um sincronismo fino entre a leitura e gravao do disco com o envio/recebimento de dados da rede. O valor dependente da instalao local, levando em considerao a velocidade de disco rgido, rede, etc. O valor padro 16384. Em casos onde um NFS montado ou at mesmo leitura em discos locais compartilhada, o parmetro strict locking definido para yes pode fazer alguma diferena de performance. Note que nem todos os sistemas ganham performance com o uso desta opo e no deve ser usada em aplicativos que no requisitam o estado do lock de arquivo ao servidor. Caso voc possua aplicativos que fazem o lock corretamente de arquivos, voc poder usar o share modes = no, isto significa que futuras aberturas de arquivo podem ser feitas em em modo leitura/gravao. Caso utiliza um aplicativo muito bem programado que implementa de forma eficiente de lock, voc poder desativar esta opo. O uso de oplocks yes em compartilhamentos aumenta a performance de acesso a arquivos em at 30%, pois utiliza um cdigo de cache no cliente. Tenha certeza do que est fazendo antes de sair usando oplocks em tudo que lugar. A desativao de kernel oplocks necessria para que isto funcione. A opo read raw e write raw devem ter seus valores experimentados para ver se faz diferena na performance da sua rede, pois diretamente dependente do tipo de cliente que sua rede possui. Alguns clientes podem ficar mais lentos em modo de leitura raw. O tipo de sistema de arquivos adotado na mquina e suas opes de montagem tem um impacto direto na

performance do servidor, principalmente com relao a atualizao de status dos arquivos no sistema de arquivos (hora de acesso, data, etc). O cache de leitura adiante de abertura de arquivos em modo somente leitura aumenta a performance com o uso do oplocks nvel 2. Para isto, ajuste a opo level2 oplocks para yes. A recomendao deste tipo de oplock o mesmo do nvel 1. Como o SAMBA faz o transporte NetBEUI via TCP/IP, ajustes no socket fazem diferena nos dados que trafegam na rede. Como isso dependente de rede voc precisar usar tcnicas de leitura/gravao para determinar quais so as melhores que se encaixam em seu caso. A opo socket options usada para fazer tais ajustes, por exemplo:
socket options = SO_SNDBUF=2048 IPTOS_THROUGHPUT=1

Em especial, a opo TCP_NODELAY apresenta uma perceptvel melhoria de performance no acesso a arquivos locais. OBS:: No use espaos entre o sinal de "=" quando especificar as opes do parmetro socket options.

18.14 Configurao de Clientes NetBEUI


Este captulo documenta a configurao de mquinas clientes NetBEUI, requerimentos de cada configurao e documenta os passos necessrios para ter o cliente se comunicando perfeitamente com o seu servidor. Sero explicadas tanto a configurao de grupo de trabalho como de domnio e como a configurao compatvel entre Linux e Windows, estas explicaes so perfeitamente vlidas para configurar clientes que acessem servidores Windows.

18.14.1 Consideraes sobre o Windows for Workgroups e LanManager


Sistemas com implementaes NetBIOS mais antigos, como o Windows for Workgroups (Windows 3.11) e o Lan Manager (DOS), enviam somente a senha para acesso ao compartilhamento, desta forma, para o acesso ser autorizado pelo samba, voc dever especificar a diretiva user = usuario para que a senha confira com o usurio local do sistema. A senha enviada tambm em formato texto plano. Este problema no ocorre no Windows 95 e superiores, que enviam o nome de usurio que efetuou o logon junto com a respectiva senha. Se a segurana do seu samba depende de senhas criptografadas, ser necessrio utilizar a diretiva "include = outro_arquivo_de_configurao.%m para definir configuraes especficas de acesso para estas mquinas. Outro detalhe que deve ser lembrado que o Windows for Workgroups envia sempre a senha em MAISCULAS, ento preciso configurar o SAMBA para tentar combinaes de maisculas/minsculas usando o parmetro mangle case e default case na seo global do smb.conf.

18.14.2 Configurando clientes em Grupo de Trabalho


Para configurar o cliente para fazer parte de um grupo de trabalho, necessrio apenas que tenha em mos o nome do grupo de trabalho (workgroup) que os clientes faro parte e o nome de uma outra mquina que faz parte do mesmo grupo (para testes iniciais). Com estes dados em mos, selecione na lista abaixo o nome do cliente que deseja configurar para incluir no grupo de trabalho: Windows 9X, Seo 18.14.2.1 Windows XP Home Edition, Seo 18.14.2.2 Windows XP Professional Edition, Seo 18.14.2.3 Windows XP Server Edition, Seo 18.14.2.4 Windows NT WorkStation, Seo 18.14.2.5

Windows NT Server, Seo 18.14.2.6 Windows 2000 Professional, Seo 18.14.2.7 Windows 2000 Server, Seo 18.14.2.8 Linux, Seo 18.14.2.9

18.14.2.1 Windows 9X Estas configuraes so vlidas para clientes Windows 95, Windows 95OSR/2, Windows 98. Caso utilize o Windows 95 (qualquer uma das sries) aconselhvel atualizar a stack TCP/IP e NetBEUI para corrigir alguns problemas que podem deixar sua mquina vulnervel na verso que acompanha o WinSock do Windows 95. Para tornar uma mquina parte do grupo de trabalho, siga os seguintes passos: Entre nas propriedades de rede no Painel de Controle Instale o Cliente para redes Microsoft (caso no esteja instalado). Instale o Protocolo TCP/IP. Voc tambm pode instalar o protocolo NetBIOS, mas utilizaremos o suporte NetBIOS sobre TCP/IP que o usado pelo SAMBA alm de ter um melhor desempenho, permitir integrao com servidores WINS, etc. Clique em "Protocolo TCP/IP" e em Propriedades. Clique na tab "NetBIOS" e marque a opo "Desejo ativar o NetBIOS atravs do TCP/IP". Caso esta caixa esteja em cinza, ento est tudo certo tambm. Clique na tab "Identificao" e coloque l o nome que identificar o computador (at 15 caracteres) e o nome do grupo de trabalho que ele far parte(por exemplo "workgroup", "suporte", etc) . No campo "Descrio do Computador", coloque algo que identifique a mquina na rede (por exemplo, "Computador da rea de suporte"). Clique na tab "Controle de Acesso" e marque o "Controle de acesso a nvel de compartilhamento" (a no ser que tenha configurado um servidor que mantenha um controle de nvel de usurio na rede para as mquinas fora do domnio). Clique em OK at reiniciar o computador. A mquina cliente agora faz parte do grupo de trabalho! Tente acessar um outro computador da rede e navegar atravs do ambiente de rede. Caso a lista de mquinas demore em aparecer, tente acessar diretamente pelo nome do computador, usando o seguinte formato: "\\computador"

18.14.2.2 Windows XP Home Edition Siga as instrues de Windows XP Professional Edition, Seo 18.14.2.3.

18.14.2.3 Windows XP Professional Edition Logue como administrador do sistemas local. Entre no item Sistema dentro do painel de controle. A tela propriedades de sistema ser aberta. No campo Descrio do Computador, coloque algo que descreva a mquina (opcional). Clique na TAB Nome do Computador e no boto Alterar na parte de baixo da janela. No campo nome do computador, coloque um nome de no mximo 15 caracteres para identificar a mquina na rede. Clique em grupo de trabalho e digite o nome do grupo de trabalho na caixa de dilogo.

Clique em OK e aguarde a mensagem confirmando sua entrada no grupo de trabalho. Ser necessrio reiniciar a mquina.

18.14.2.4 Windows XP Server Edition Siga as instrues de Windows XP Professional Edition, Seo 18.14.2.3.

18.14.2.5 Windows NT WorkStation Veja Windows NT Server, Seo 18.14.3.6.

18.14.2.6 Windows NT Server Clique no item Rede do painel de controle. Na tab Servios, confira se os servios Estao de trabalho, Interface de NetBIOS e Servios TCP/IP simples esto instalados. Caso no estejam, faa sua instalao usando o boto Adicionar nesta mesma janela. Na tab Protocolos, verifique se os protocolos NetBEUI e TCP/IP esto instalados. Caso no estejam, faa sua instalao clicando no boto Adicionar nesta mesma janela. Na tab identificao, clique no boto Alterar Na janela que se abrir, coloque o nome do computador no campo Nome do Computador Clique em Grupo de trabalho e escreva o nome do grupo de trabalho em frente. Clique em OK at voltar. Pronto, seu computador agora faz parte do grupo de trabalho.

18.14.2.7 Windows 2000 Professional Logue como administrador do sistemas local. Entre no item Sistema dentro do painel de controle. A tela propriedades de sistema ser aberta. Clique em "Computador" e ento no boto "Propriedades". No campo nome do computador, coloque um nome de no mximo 15 caracteres para identificar a mquina na rede. Clique em grupo de trabalho e digite o nome do grupo de trabalho na caixa de dilogo. Clique em OK e aguarde a mensagem confirmando sua entrada no grupo de trabalho. Ser necessrio reiniciar a mquina.

18.14.2.8 Windows 2000 Server Logue como administrador do sistemas local. Entre no item Sistema dentro do painel de controle. A tela propriedades de sistema ser aberta. Clique em "Descrio de rede" e ento no boto "Propriedades". No campo nome do computador, coloque um nome de no mximo 15 caracteres para identificar a mquina na rede.

Clique em grupo de trabalho e digite o nome do grupo de trabalho na caixa de dilogo. Clique em OK e aguarde a mensagem confirmando sua entrada no grupo de trabalho. Ser necessrio reiniciar a mquina.

18.14.2.9 Linux Os aplicativos smbclient e smbmount so usados para navegao e montagem dos discos e impressoras compartilhadas em mquinas Linux. Se voc procura programas de navegao grficos, como o Ambiente de Rede do Windows ou mais poderosos, veja Programas de navegao grficos, Seo 18.14.5. Como complemento, tambm explicado o programa nmblookup para resoluo de endereos NetBIOS em IP e vice-versa e a forma que as funes de mquinas so definidas em uma rede NetBEUI.

18.14.2.9.1 smbmount

O smbmount uma ferramenta que permite a montagem de um disco compartilhado por uma mquina NetBEUI remota como uma partio. Veja alguns exemplos: smbmount //servidor/discoc /mnt/discoc Monta o compartilhamento de //servidor/discoc em /mnt/discoc usando o nome de usurio atual. Ser pedido uma senha para acessar o contedo do compartilhamento, caso ele seja pblico, voc pode digitar qualquer senha ou simplesmente pressionar enter. smbmount //servidor/discoc /mnt/discoc -N Semelhante ao comando cima, com a diferena que o parmetro -N no pergunta por uma senha. Isto ideal para acessar compartilhamentos annimos. smbmount //servidor/discoc /mnt/discoc -o username=gleydson,workgroup=teste Semelhante aos anteriores, mas acessa o compartilhamento usando gleydson como nome de usurio e teste como grupo de trabalho. Este mtodo ideal para redes que tem o nvel de acesso por usurio ou para acessar recursos compartilhados em um domnio.

18.14.2.9.2 smbclient

O smbclient uma ferramenta de navegao em servidores SAMBA. Ao invs dela montar o compartilhamento como um disco local, voc poder navegar na estrutura do servidor de forma semelhante a um cliente FTP e executar comandos como ls, get, put para fazer a transferncia de arquivos entre a mquina remota e a mquina local. Tambm atravs dele que feita a interface com impressoras compartilhadas remotamente. Veja exemplos do uso do smbclient: smbclient -L samba1 Lista todos os compartilhamentos existentes (-L) no servidor samba1. smbclient //samba1/discoc Acessa o contedo do compartilhamento discoc no servidor samba1. smbclient //samba1/discoc -N Idntico ao acima, mas no utiliza senha (ideal para compartilhamentos com acesso annimo).

smbclient //samba1/discoc -I 192.168.1.2 Se conecta ao compartilhamento usando o endereo IP 192.168.1.2 ao invs da resoluo de nomes. smbclient //samba1/discoc -U gleydson -W teste Se conecta ao compartilhamento como usurio gleydson usando o grupo de trabalho teste. smbclient //samba1/discoc -U gleydson%teste1 -W teste Idntico ao acima, mas tambm envia a senha teste1 para fazer a conexo diretamente. Caso receba a mensagem NT Status Access Denied, isto quer dizer que no possui direitos de acesso adequados para listas ou acessar os compartilhamentos da mquina. Nesse caso, utilize as opes -U usurio e -W grupo/domnio para fazer acesso com uma conta vlida de usurio existente na mquina. OBS:Note que a ordem das opes faz diferena no smbmount.

18.14.2.9.3 nmblookup

Esta uma ferramenta usada para procurar nomes de cliente usando o endereo IP, procurar um IP usando o nome e listar as caractersticas de cada cliente. Veja alguns exemplos: nmblookup -A 127.0.0.1 Lista o nome e as opes usadas pelo servidor 127.0.0.1 nmblookup servidor Resolve o endereo IP da mquina servidor. A listagem exibida pela procura de IP do nmblookup possui cdigos hexadecimais e cada um deles possui um significado especial no protocolo NetBEUI. Segue a explicao de cada um: Identificao da mquina COMPUTADOR<00>= O servio NetBEUI est sendo executado na mquina. COMPUTADOR<03> = Nome genrico da mquina (nome NetBIOS). COMPUTADOR<20> = Servio LanManager est sendo executado na mquina. Identificao de grupos/domnio GRUPO_TRABALHO<1d> - <GRUPO> = Navegador Local de Domnio/Grupo. GRUPO_TRABALHO<1b> = Navegador Principal de Domnio. GRUPO_TRABALHO<03> - <GRUPO> = Nome Genrico registrado por todos os membros do grupo de trabalho. GRUPO_TRABALHO<1c> - <GRUPO> = Controladores de Domnio / Servidores de logon na rede. GRUPO_TRABALHO<1e> - <GRUPO> = Resolvedores de Nomes Internet (WINS). Estes cdigos podem lhe ser teis para localizar problemas mais complicados que possam ocorrer durante a configurao de um servidor.

18.14.3 Configurando clientes em Domnio


Para configurar qualquer um dos cliente abaixo para fazer parte de um domnio de rede, necessrio apenas que tenha em mos os seguintes dados: Nome do controlador de domnio PDC Nome do domnio Nome de usurio e senha que foram cadastrados no servidor. Acesso administrador no SERVIDOR PDC (SAMBA, NT, etc). Cria uma conta de mquina no domnio (no caso da mquina ser um Windows NT, Windows XP, Windows 2k ou Linux). Veja Contas de mquinas de domnio, Seo 18.7.5 para maiores detalhes. Como o Windows 3.11, Windows 95, Windows 98, Windows ME no possuem uma conta de mquina, eles nunca sero um membro real de um domnio, podendo sofrer um name spoofing e terem a identidade roubada. Mesmo assim, eles tero pleno acesso aos recursos do domnio e uma configurao mais fcil que os demais clientes. Com estes dados em mos, selecione na lista abaixo o nome do cliente que deseja integrar no grupo de trabalho: Windows 9X, Seo 18.14.2.1 Windows XP Home Edition, Seo 18.14.2.2 Windows XP Professional Edition, Seo 18.14.2.3 Windows XP Server Edition, Seo 18.14.2.4 Windows NT WorkStation, Seo 18.14.2.5 Windows NT Server, Seo 18.14.2.6 Windows 2000 Professional, Seo 18.14.2.7 Windows 2000 Server, Seo 18.14.2.8 Linux, Seo 18.14.2.9 OBS: O Windows 2000 apresenta algumas dificuldades em entrar na rede do SAMBA 2.2, sendo necessrio o uso do SAMBA TNG 2.2.x para aceitar o logon de estaes Windows 2000.

18.14.3.1 Windows 9X Estas configuraes so vlidas para clientes Windows 95, Windows 95OSR/2, Windows 98. Caso utilize o Windows 95 (qualquer uma das sries) aconselhvel atualizar a stack TCP/IP e NetBEUI para corrigir alguns problemas que podem deixar sua mquina vulnervel na verso que acompanha o WinSock do Windows 95. Para tornar uma mquina parte do domnio, siga os seguintes passos: Entre nas propriedades de rede no Painel de Controle Instale o Cliente para redes Microsoft (caso no esteja instalado). Instale o Protocolo TCP/IP. Voc tambm pode instalar o protocolo NetBIOS, mas utilizaremos o suporte NetBIOS sobre TCP/IP que o usado pelo SAMBA alm de ter um melhor desempenho, permitir integrao com servidores WINS, etc. Clique em "Cliente para redes Microsoft", marque a opo "Efetuar logon no domnio do Windows NT". Coloque o nome do domnio que ir configurar o cliente para fazer parte na caixa "Domnio do Windows NT" (por exemplo, "suporte"). Na parte de baixo da caixa de dilogo, voc poder escolher como ser o mtodo para restaurar as conexes de rede. Inicialmente, recomendo que utilize a "Efetuar logon e restaurar as conexes de rede" que mais til para depurar problemas (possveis erros sero mostrados logo que fizer o logon no domnio). Adeque esta configurao as suas necessidades quando estiver funcionando :)

Clique em "Protocolo TCP/IP" e em Propriedades. Clique na tab "NetBIOS" e marque a opo "Desejo ativar o NetBIOS atravs do TCP/IP". Caso esta caixa esteja em cinza, ento est tudo certo tambm. Clique na tab "Identificao" e coloque l o nome que identificar o computador (at 15 caracteres). Digite o nome de um grupo de trabalho que a mquina far parte no campo "Grupo de Trabalho" (por exemplo "workgroup", "suporte", etc). Este campo somente ser usado caso o logon no domnio NT no seja feito com sucesso. No campo "Descrio do Computador", coloque algo que identifique a mquina na rede (por exemplo, "Computador da rea de suporte"). Clique na tab "Controle de Acesso" e marque o "Controle de acesso a nvel de usurio e especifique o nome da mquina que serve a lista de usurios, que normalmente a mesma do PDC. Clique em OK at reiniciar o computador. Quando for mostrada a tela pedindo o nome/senha, preencha com os dados da conta de usurio que criou no servidor. No campo domnio, coloque o domnio que esta conta de usurio pertence e tecle <Enter>. Voc ver o script de logon em ao (caso esteja configurado) e a mquina cliente agora faz parte do domnio! Tente acessar um outro computador da rede e navegar atravs do ambiente de rede. Caso a lista de mquinas demore em aparecer, tente acessar diretamente pelo nome do computador, usando o seguinte formato: "\\computador"

18.14.3.2 Windows XP Home Edition No possvel fazer o Windows XP Home Edition ser parte de um domnio, por causa de limitaes desta verso.

18.14.3.3 Windows XP Professional Edition Primeiro, siga todos os passos para ingressar a mquina em um grupo de trabalho como documentado em Windows XP Professional Edition, Seo 18.14.2.3. Atualize o registro para permitir a entrada no domnio: Copie o seguinte contedo para o arquivo WinXP-Dom.reg:
REGEDIT4 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\netlogon\parameters "RequireSignOrSeal"=dword:00000000 "SignSecureChannel"=dword:00000000

Execute o comando regedit WinXP-Dom.reg no cliente XP. Entre nos tens (em seqencia) Painel de controle/Ferramentas Administrativas/ Poltica de segurana local/polticas locais e depois em "opes de segurana". Na janela de opes de segurana, desative as opes "Encriptar digitalmente ou assinar um canal seguro (sempre)", "Desativar modificaes de senha na conta de mquina" e "Requer chave de seo forte (Windows 2000 ou superior)." Reinicie a mquina. Aps reiniciar a mquina, volte na tela de alterao de identificao de mquina na rede. Clique com o mouse em "Domnio" e digite o nome do domnio na caixa de dilogo. Na tela seguinte, ser lhe pedido o nome de usurio e senha com poderes administrativos que podem inserir/remover mquinas do domnio. Clique em OK e aguarde a mensagem confirmando sua entrada no domnio. Ser necessrio reiniciar a mquina aps concluir este passo.

18.14.3.4 Windows XP Server Edition Siga os procedimentos documentados em Windows XP Professional Edition, Seo 18.14.3.3

18.14.3.5 Windows NT WorkStation Veja os passos em Windows NT Server, Seo 18.14.3.6.

18.14.3.6 Windows NT Server Clique no item Rede do painel de controle. Na tab Servios, confira se os servios Estao de trabalho, Interface de NetBIOS e Servios TCP/IP simples esto instalados. Caso no estejam, faa sua instalao usando o boto Adicionar nesta mesma janela. Na tab Protocolos, verifique se os protocolos NetBEUI e TCP/IP esto instalados. Caso no estejam, faa sua instalao clicando no boto Adicionar nesta mesma janela. Na tab identificao, clique no boto Alterar Na janela que se abrir, coloque o nome do computador no campo Nome do Computador Clique em Dominio e escreva o nome do domnio que deseja entrar. Para criar uma conta de mquina no domnio, clique em criar uma conta de computador no domnio e coloque na parte de baixo o nome do usurio sua senha. O usurio dever ter poderes para adicionar mquinas no domnio. Caso a conta de mquina no seja criada, o Windows NT ser como um Windows 95/98 na rede, sem a segurana que seu nome NetBIOS no seja usado por outros (veja Contas de mquinas de domnio, Seo 18.7.5). Clique em OK at voltar. Pronto, seu computador agora faz parte do domnio.

18.14.3.7 Windows 2000 Professional Siga os passos descritos em Windows 2000 Server, Seo 18.14.3.8.

18.14.3.8 Windows 2000 Server Primeiro, siga todos os passos para ingressar a mquina em um grupo de trabalho como documentado em Windows 2000 Server, Seo 18.14.2.8. Aps reiniciar a mquina, volte na tela de alterao de identificao de mquina na rede. Clique com o mouse em "Domnio" e digite o nome do domnio na caixa de dilogo. Na tela seguinte, ser lhe pedido o nome de usurio e senha com poderes administrativos que podem inserir/remover mquinas do domnio. Clique em OK e aguarde a mensagem confirmando sua entrada no domnio. Ser necessrio reiniciar a mquina aps concluir este passo. Caso no consiga trocar a senha do Windows 2000 no servidor PDC, desative a opo unix password sync.

18.14.3.9 Linux Entre no sistema como usurio root. Instale o SAMBA caso no esteja ainda instalado. Edite o arquivo de configurao do samba /etc/samba/smb.conf, ser necessrio modificar as seguintes linhas na seo [global]:
[global] workgroup = nome_domnio security = domain password server = nome_pdc nome_bdc encrypt passwords = true

Onde: workgroup - Nome do domnio que deseja fazer parte. security - Nvel de segurana. Nesta configurao, utilize "domain". password server - Nome da mquina PDC, BDC. Tambm poder ser usado *, assim o SAMBA tentar descobrir o servidor PDC e BDC automaticamente, da mesma forma usada pelo Windows. encrypt passwords - Diz se as senhas sero encriptadas ou no. Sempre utilize senhas criptografadas para colocar uma mquina em um domnio. Reinicie o servidor SAMBA aps estas modificaes. Execute o comando: smbpasswd -j domnio -r PDC/BDC -U usuario_admin. Onde: domnio - Domnio que deseja fazer o logon PDC/BDC - Nome da mquina PDC/BDC do domnio. Em alguns casos, pode ser omitido. usuario_admin - Usurio com poderes administrativos para ingressara a mquina no domnio. Se tudo der certo, aps executar este comando, voc ver a mensagem:
Joined domain "domnio".

Se sua configurao no funcionou, revise com ateno todos os tens acima. Verifique se a conta de mquina foi criada no servidor e se o SAMBA na mquina cliente foi reiniciado. De tambm uma olhada em Erros conhecidos durante o logon do cliente, Seo 18.14.4. OBS:O SAMBA envia primeiramente um usurio/senha falso para verificar se o servidor rejeita o acesso antes de enviar o par de nome/senha corretos. Por este motivo, seu usurio pode ser bloqueado aps um determinado nmero de tentativas em alguns servidores mais restritivos. Para acessar os recursos compartilhados, veja Linux, Seo 18.14.2.9. Note que no obrigatrio realizar as configuraes acima para acessar os recursos de uma mquina em domnio, basta apenas que autentique com seu nome de usurio/senha no domnio e que ela seja autorizada pelo PDC.

18.14.4 Erros conhecidos durante o logon do cliente


Esta seo contm os erros mais comuns e a forma de correo da maioria dos problemas que ocorrem quando um cliente SAMBA tenta entrar em domnio. error creating domain user: NT_STATUS_ACCESS_DENIED - A conta de mquina no domnio no foi criada. Veja Contas de mquinas de domnio, Seo 18.7.5 para mais detalhes. NT_STATUS_NO_TRUST_SAM_ACCOUNT - No existe conta de mquina no Windows NT para autenticar uma mquina no domnio. Esta mensagem mostrada quando a mquina SAMBA cliente de um domnio NT.

error setting trust account password: NT_STATUS_ACCESS_DENIED - A senha para criao de conta na mquina est incorreta ou a conta utilizada no tem permisses para ingressar uma mquina no domnio (veja Criando uma conta de administrador de domnio, Seo 18.7.6). Caso esteja usando um cliente SAMBA, verifique se o parmetro encrypt passwords est ativado. A senha informada no est correta ou o acesso ao seu servidor de logon foi negado - Verifique primeiro os logs de acessos do sistema. Caso o SAMBA esteja sendo executado via inetd, verifique se a configurao padro restritiva e se o acesso est sendo negado pelos arquivos do tcp wrappers hosts.allow e hosts.deny. no existem servidores de logon no domnio - Verifique se o parmetro domain logons = yes foi usado para permitir o logon em domnio.

18.14.5 Programas de navegao grficos


O smbclient, nmblookup e smbmount so ferramentas extremamente poderosas auxiliando bastante o administrador na tarefa de configurao de sua rede e resolver problemas. Para o uso no dia a dia ou quando no necessria a operao via console, voc pode utilizar uma das alternativas abaixo que so front-ends a estas ferramentas e facilitam o trabalho de navegao na rede.

18.14.5.1 linneighborhood Cliente SAMBA baseado em GTK, muito leve e possibilita a navegao entre os grupos mquinas em forma de rvore. Ele tambm permite a montagem de compartilhamentos remotos. Caso precise de recursos mais complexos e autenticao, recomendo o TkSmb, Seo 18.14.5.2.

18.14.5.2 TkSmb Cliente SAMBA baseado em TCL/TK. Seu ponto forte a navegao nos recursos da mquina ao invs da rede completa, possibilitando autenticao em domnio/grupo de trabalho, montagem de recursos, etc.

18.14.6 Cliente de configurao grficos


So ferramentas que permitem a configurao do samba usando a interface grfica. Isto facilita bastante o processo, principalmente se estiver em dvidas em algumas configuraes, mas como todo bom administrador UNIX sabe, isto no substitui o conhecimento sobre o funcionamento de cada opo e ajustes e organizao feita diretamente no arquivo de configurao.

18.14.6.1 gnosamba Ferramenta de configurao grfica usando o GNOME. Com ele possvel definir configuraes localmente. Ele ocupa pouco espao em disco, e se voc gosta de GTK, este o recomendado. As opes do SAMBA so divididas em categorias facilitando sua localizao e uso.

18.14.6.2 swat Ferramenta de administrao via web do samba. Este um daemon que opera na porta 901 da mquina onde o servidor samba foi instalado. A configurao feita atravs de qualquer navegador acessando http://ip_do_servidor:901 e logando-se como usurio root (o nico com poderes para escrever no

arquivo de configurao). Esta ferramenta vem evoluindo bastante ao decorrer dos meses e a recomendada para a configurao do servidor SAMBA remotamente. Seu modo de operao divide-se em bsico e avanado. No modo bsico, voc ter disponvel as opes mais comuns e necessrias para compartilhar recursos na rede. O modo avanado apresenta praticamente todos os parmetros aceitos pelo servidor samba (restries, controle de acesso, otimizaes, etc.).

18.15 Exemplos de configurao do servidor SAMBA


Os exemplos existentes nesta seo cobrem diferentes tipos de configurao do servidor, tanto em modo de compartilhamento com acesso pblico ou um domnio restrito de rede. Todos os exemplos esto bem comentados e explicativos, apenas pegue o que se enquadre mais em sua situao para uso prprio e adaptaes.

18.15.1 Grupo de Trabalho com acesso pblico


Este exemplo pode ser usado de modelo para construir uma configurao baseada no controle de acesso usando o nvel de segurana share e quando possui compartilhamentos de acesso pblico. Esta configurao indicada quando necessita de compatibilidade com softwares NetBIOS antigos.
# # # # # # # # Arquivo de configurao do SAMBA criado por Gleydson Mazioli da Silva <gleydson@debian.org> para o guia Foca GNU/Linux Avanado - Captulo SAMBA Este script pode ser copiado e distribudo livremente de acordo com os termos da GPL. Ele no tem a inteno de atender uma determinada finalidade, sendo usado apenas para fins didticos, portanto fica a inteira responsabilidade do usurio sua utilizao.

[global] # nome da mquina na rede netbios name = teste # nome do grupo de trabalho que a mquina pertencer workgroup = focalinux # nvel de segurana share permite que clientes antigos mantenham a compatibilidade # enviando somente a senha para acesso ao recurso, determinando o nome de usurio # de outras formas security = share # O recurso de senhas criptografadas no funciona quando usamos o nvel share # de segurana. O motivo disto porque automaticamente assumido que voc # est selecionando este nvel por manter compatibilidade com sistemas antigos # ou para disponibilizar compartilhamentos pblicos, onde encrypt passwords = false # Conta que ser mapeada para o usurio guest guest account = nobody # Como todos os compartilhamentos desta configurao so de acesso pblico # coloquei este parmetro na seo [global], assim esta opo afetar todos # os compartilhamentos. guest ok = 1 # Conjunto de caracteres utilizados para acessar os compartilhamentos. O padro # para o Brasil e pases de lngua latina o ISO 8859-1 character set = ISO8859-1 # Compartilha o diretrio /tmp (path = /tmp) com o nome "temporario" ([temporario]), # adicionada a descrio "Diretrio temporrio" com acesso leitura/gravao # (read only = no) e exibido na janela de navegao da rede (browseable = yes). [temporario] path = /tmp comment = Diretrio temporrio read only = no browseable = yes

# Compartilha o diretrio /pub (path = /pub) com o nome "publico" ([publico]). # A descrio "Diretrio de acesso pblico" associada ao compartilhamento # com acesso somente leitura (read only = yes) e exibido na janela de navegao # da rede (browseable = yes). [publico] path =/pub comment = Diretrio de acesso pblico read only = yes browseable = yes # Compartilha todas as impressoras encontradas no /etc/printcap do sistema # Uma descrio melhor do tipo especial de compartilhamento "[printers]" # explicado no inicio do guia Foca Linux [printers] comment = All Printers path = /tmp create mask = 0700 printable = Yes browseable = No

18.15.2 Grupo de Trabalho com acesso por usurio


O exemplo abaixo descreve uma configurao a nvel de segurana por usurio onde existem compartilhamentos que requerem login e usurios especficos, e restries de IPs e interface onde o servidor opera. Esta configurao utiliza senhas em texto claro para acesso dos usurios, mas pode ser facilmente modificada para suportar senhas criptografadas.
# # # # # # # # Arquivo de configurao do SAMBA criado por Gleydson Mazioli da Silva >gleydson@debian.org> para o guia Foca GNU/Linux Avanado - Captulo SAMBA Este script pode ser copiado e distribudo livremente de acordo com os termos da GPL. Ele no tem a inteno de atender uma determinada finalidade, sendo usado apenas para fins didticos, portanto fica a inteira responsabilidade do usurio sua utilizao.

[global] # nome da mquina na rede netbios name = teste # nome do grupo de trabalho que a mquina pertencer workgroup = focalinux # nvel de segurana user somente aceita usurios autenticados aps o envio # de login/senha security = user # utilizada senhas em texto claro nesta configurao encrypt passwords = false # Conta que ser mapeada para o usurio guest guest account = nobody # Permite restringir quais interfaces o SAMBA responder bind interfaces only = yes # Faz o samba s responder requisies vindo de eth0 interfaces = eth0 # Supondo que nossa interface eth0 receba conexes roteadas de diversas # outras redes, permite somente as conexes vindas da rede 192.168.1.0/24 hosts allow = 192.168.1.0/24 # A mquina 192.168.1.57 possui gateway para acesso interno, como medida # de segurana, bloqueamos o acesso desta mquina. hosts deny = 192.168.1.57/32 # Conjunto de caracteres utilizados para acessar os compartilhamentos. O padro # para o Brasil e pases de lngua latina o ISO 8859-1 character set = ISO8859-1

# As restries do PAM tero efeito sobre os usurios e recursos usados do SAMBA obey pam restriction = yes # Mapeia o diretrio home do usurio autenticado. Este compartilhamento especial # descrito em mais detalhes no inicio do captulo sobre o SAMBA no Foca Linux. [homes] comment = Diretrio do Usurio create mask = 0700 directory mask = 0700 browseable = No # Compartilha o diretrio win (path = /win) com o nome "win" ([win]). # A descrio associada ao compartilhamento ser "Disco do Windows", # o nome de volume precisa ser especificado pois usamos programas # que a proteo anti cpia o serial. Ainda fazemos uma proteo # onde qualquer usurio existente no grupo @adm automaticamente # rejeitado e o usurio "baduser" somente possui permisso de leitura # (read list = baduser). # [win] path = /win comment = Disco do Windows volume = 3CF434C invalid users = @adm browseable = yes read list = baduser # Compartilha o diretrio /pub (path = /pub) com o nome "publico" ([publico]). # A descrio "Diretrio de acesso pblico" associada ao compartilhamento # com acesso somente leitura (read only = yes) e exibido na janela de navegao # da rede (browseable = yes). O parmetro public = yes permite que este # compartilhamento seja acessado usando o usurio "nobody" sem o fornecimento # de senha. [publico] path =/pub comment = Diretrio de acesso pblico read only = yes browseable = yes public = yes

18.15.3 Domnio
# # # # # # # # Arquivo de configurao do SAMBA criado por Gleydson Mazioli da Silva <gleydson@debian.org> para o guia Foca GNU/Linux Avanado - Captulo SAMBA Este script pode ser copiado e distribudo livremente de acordo com os termos da GPL. Ele no tem a inteno de atender uma determinada finalidade, sendo usado apenas para fins didticos, portanto fica a inteira responsabilidade do usurio sua utilizao.

[global] # nome da mquina na rede netbios name = teste # nome do grupo de trabalho que a mquina pertencer workgroup = focalinux # String que ser mostrada junto com a descrio do servidor server string = servidor PDC principal de testes # nvel de segurana user somente aceita usurios autenticados aps o envio # de login/senha security = user # Utilizamos senhas criptografadas nesta configurao encrypt passwords = true smb passwd file = /etc/samba/smbpasswd

# Conta que ser mapeada para o usurio guest guest account = nobody # Permite restringir quais interfaces o SAMBA responder bind interfaces only = yes # Faz o samba s responder requisies vindo de eth0 interfaces = eth0 # como estamos planejando ter um grande nmero de usurios na rede, dividimos # os arquivos de log do servidor por mquina. log file = /var/log/samba/samba-%m-%I.log # O tamanho de CADA arquivo de log criado dever ser 1MB (1024Kb). max log size = 1000 # Escolhemos um nvel de OS com uma boa folga para vencer as eleies de # controlador de domnio local os level = 80 # Dizemos que queremos ser o Domain Master Browse (o padro auto) domain master = yes # Damos algumas vantagens para o servidor ganhar a eleio caso # acontea desempate por critrios preferred master = yes # Tambm queremos ser o local master browser para nosso segmento de rede local master = yes # Este servidor suportar logon de usurios domain logons = yes # Usurios que possuem poderes para adicionar/remover mquinas no domnio # (tero seu nvel de acesso igual a root) admin users = gleydson # Unidade que ser mapeada para o usurio local durante o logon (apenas # sistemas baseados no NT). logon drive = m: # Nome do script que ser executado pelas mquinas clientes logon script = logon.bat # Ao que ser tomada durante o recebimento de mensagens do # Winpopup. message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' & # Conjunto de caracteres utilizados para acessar os compartilhamentos. O padro # para o Brasil e pases de lngua latina o ISO 8859-1 character set = ISO8859-1 # As restries do PAM tero efeito sobre os usurios e recursos usados do SAMBA obey pam restriction = yes # Mapeia o diretrio home do usurio autenticado. Este compartilhamento especial # descrito em mais detalhes no inicio do captulo sobre o SAMBA no Foca Linux. [homes] comment = Diretrio do Usurio create mask = 0700 directory mask = 0700 browseable = No # Compartilha o diretrio win (path = /win) com o nome "win" ([win]). # A descrio associada ao compartilhamento ser "Disco do Windows", # o nome de volume precisa ser especificado pois usamos programas # que a proteo anti cpia o serial. Ainda fazemos uma proteo # onde qualquer usurio existente no grupo @adm automaticamente # rejeitado e o usurio "baduser" somente possui permisso de leitura # (read list = baduser). # [win] path = /win comment = Disco do Windows volume = 3CF434C invalid users = @adm browseable = yes read list = baduser

# Compartilha o diretrio /pub (path = /pub) com o nome "publico" ([publico]). # A descrio "Diretrio de acesso pblico" associada ao compartilhamento # com acesso somente leitura (read only = yes) e exibido na janela de navegao # da rede (browseable = yes). O parmetro public = yes permite que este # compartilhamento seja acessado usando o usurio "nobody" sem o fornecimento # de senha. [publico] path =/pub comment = Diretrio de acesso pblico read only = yes browseable = yes public = yes # Compartilhamento especial utilizado para o logon de mquinas na rede [netlogon] path=/pub/samba/netlogon/logon.bat read only = yes