Capítulo 18. SAMBA

Índice

Introdução
Versão documentada
História
Contribuindo
Características
Ficha técnica
Requerimentos de Hardware
Arquivos de log criados
Instalação
Iniciando o servidor/reiniciando/recarregando a configuração
Opções de linha de comando
Conceitos gerais para a configuração do SAMBA
Nome de máquina (nome NetBios)
Grupo de trabalho
Domínio
Compartilhamento
Mapeamento
Navegação na Rede e controle de domínio
Arquivo de configuração do samba
Seção [global]
Seção [homes]
Seção [printers]
Buscando problemas na configuração
Níveis de sistema para eleição de rede
Variáveis de substituição
Compartilhamento de arquivos e diretórios
Descrição de parâmetros usados em compartilhamento
Configuração em Grupo de Trabalho
Resolução de nomes de máquinas no samba
Arquivo /etc/samba/lmhosts
WINS
Servidor de data/hora
Configuração do serviço de data/hora no SAMBA
Sincronizando a data/hora no Cliente
Configuração em Domínio
Uma breve introdução a um Domínio de rede
Local Master Browser
Domain Master Browser
Configurando um servidor PDC no SAMBA
Contas de máquinas de domínio
Criando uma conta de administrador de domínio
Criando Scripts de logon
Configurando perfis de usuários
Modificações de permissões de acesso pelos clientes do domínio
Gerenciamento de senhas
Ativando o suporte a senhas criptografadas
Ativando o suporte a senhas em texto plano
Mapeamento de usuários/grupos em clientes
Mapeamento de usuários/grupos domínio em Windows
Mapeamento de usuários/grupos domínio em Linux
Compartilhamento de impressão no servidor SAMBA
Configurando o Linux como um servidor de impressão Windows
Controle de acesso ao servidor SAMBA
Nível de acesso de usuários conectados ao SAMBA
Restringindo o acesso por IP/rede
Restringindo o acesso por interface de rede
Restringindo o acesso por usuários
Evite o uso do parâmetro hosts equiv!
Evite o uso de senhas em branco!
Criando um compartilhamento para acesso sem senha
Criando um compartilhamento com acesso somente leitura
Criando um compartilhamento com acesso leitura/gravação
Excessão de acesso na permissão padrão de compartilhamento
Restringindo o IPC$ e ADMIN$
Criando um compartilhamento invisível
Executando comandos antes e após o acesso ao compartilhamento
Considerações de segurança com o uso do parâmetro "public = yes"
Senhas criptografadas ou em texto puro?
Mapeamento de nomes de usuários
Melhorando a performance do compartilhamento/servidor
Configuração de Clientes NetBEUI
Considerações sobre o Windows for Workgroups e LanManager
Configurando clientes em Grupo de Trabalho
Configurando clientes em Domínio
Erros conhecidos durante o logon do cliente
Programas de navegação gráficos
Cliente de configuração gráficos
Exemplos de configuração do servidor SAMBA
Grupo de Trabalho com acesso público
Grupo de Trabalho com acesso por usuário
Domínio

Este capítulo descreve a configuração, utilização, aplicação, integração de redes Windows e Linux através do SAMBA. Entre as explicações de cada opção, são passados detalhes importantes relacionados com seu funcionamento, performance e impactos de segurança sobre o servidor como um todo.

Uma seção foi especialmente separada para os mais paranóicos (como eu) conhecerem, combinar e aplicar as restrições de forma mais adequada a configuração da máquina.

Introdução

O SAMBA é um servidor e conjunto de ferramentas que permite que máquinas Linux e Windows se comuniquem entre si, compartilhando serviços (arquivos, diretório, impressão) através do protocolo SMB (Server Message Block)/CIFS (Common Internet File System), equivalentes a implementação NetBEUI no Windows. O SAMBA é uma das soluções em ambiente UNIX capaz de interligar redes heterogênea.

Na lógica da rede Windows o NetBEUI é o protocolo e o NETBIOS define a forma com que os dados são transportados. Não é correto dizer que o NetBIOS é o protocolo, como muitos fazem.

Com o SAMBA, é possível construir domínios completos, fazer controle de acesso a nível de usuário, compartilhamento, montar um servidor WINS, servidor de domínio, impressão, etc. Na maioria dos casos o controle de acesso e exibição de diretórios no samba é mais minucioso e personalizável que no próprio Windows.

O guia Foca GNU/Linux documentará como instalar e ter as máquinas Windows de diferentes versões (Win3.11, Win95, Win95OSR/2, Win98, XP, WinNT, W2K) acessando e comunicando-se entre si em uma rede NetBEUI. Estas explicações lhe poderão ser indispensáveis para solucionar problemas, até mesmo se você for um técnico especialista em redes Windows e não tem ainda planos de implementar um servidor SAMBA em sua rede.

Versão documentada

A versão do servidor samba documentada neste capítulo do guia é a 2.2.

História

Andrew Tridgell - Desenvolveu o samba porque precisava montar um volume Unix em sua máquina DOS. Inicialmente ele utilizava o NFS, mas um aplicativo precisava de suporte NetBIOS. Andrew então utilizou um método muito avançado usado por administradores para detectar problemas: escreveu um sniffer de pacotes que atendesse aos requerimentos para ter uma única função: analisar e auxilia-lo a interpretar todo o tráfego NetBIOS da rede.

Ele escreveu o primeiro código que fez o servidor Unix aparecer como um servidor de arquivos Windows para sua máquina DOS que foi publicado mais ou menos em meados de 1992 quando também começou 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 máquina Windows de sua esposa com sua máquina 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 funções.

O SAMBA atualmente é um servidor fundamental para a migração de pequenos grupos de trabalho à grandes domínios com clientes mixtos. Nenhum servidor de rede NetBEUI conhecido proporciona tanta flexibilidade de acesso a clientes como o SAMBA para compartilhamento de arquivos/impressão em rede. As funções de segurança que foram adicionadas ao SAMBA hoje garantem um controle mais rigoroso que a própria implementação usada no Windows NT, incluindo o serviços de diretórios, mapeamento entre IDs de usuários Windows com Linux, PDC, perfis móveis e uma coisa que inclusive apresenta problemas no Windows: compatibilidade total entre as diferentes implementações de versões do Windows.

Sua configuração pode receber ajustes finos pelo administrador nos soquetes TCP de transmissão, recepção, cache por compartilhamento, configurações físicas que afetam a performance de rede. Seu código 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 alcançada em um servidor NT dedicado.

Contribuindo

Para contribuir com o desenvolvimento do samba, veja os detalhes na página: http://us1.samba.org/samba/devel/

Caso encontre um bug no programa, ele poderá ser relatado se inscrevendo na lista de discussão samba-technical-request@lists.samba.org. Após responder a mensagem de confirmação, envie um relato detalhado do problema encontrado no programa.

Características

Segue abaixo algumas funcionalidades importantes de aplicações do samba e seu conjunto de ferramentas:

  • Compartilhamento de arquivos entre máquinas Windows e Linux ou de máquinas Linux (sendo o servidor SAMBA) com outro SO que tenha um cliente NetBEUI (Macintosh, OS/2, LanManager, etc).

  • Montar um servidor de compartilhamento de impressão no Linux que receberá a impressão de outras máquinas Windows da rede.

  • Controle de acesso aos recursos compartilhados no servidor através de diversos métodos (compartilhamento, usuário, domínio, servidor).

  • Controle de acesso leitura/gravação por compartilhamento.

  • Controle de acesso de leitura/gravação por usuário 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), autenticação usando o arquivo de dados criptografados do samba, LDAP, PAM, etc.

  • Controle de cache e opções de tunning por compartilhamento.

  • Permite ocultar o conteúdo de determinados diretórios que não quer que sejam exibidos ao usuário de forma fácil.

  • Possui configuração bastante flexível com relação ao mapeamento de nomes DOS => UNIX e vice versa, página de código, acentuação, etc.

  • Permite o uso de aliases na rede para identificar uma máquina com outro nome e simular uma rede NetBIOS virtual.

  • O samba possibilita ajuste fino nas configurações de transmissão e recepção dos pacotes TCP/IP, como forma de garantir a melhor performance possível de acordo com suas instalações.

  • Permite o uso do gerenciador de mensagem do Linux (Linpopup) para a troca de mensagens com estações Windows via NetBios. Com a flexibilidade do samba é possível até redirecionar a mensagem recebida via e-mail ou pager.

  • Possui suporte completo a servidor WINS (também chamado de NBNS - NetBios Name Service) de rede. A configuração é bastante fácil.

  • Faz auditoria tanto dos acessos a pesquisa de nomes na rede como acesso a compartilhamentos. Entre os detalhes salvos estão a data de acesso, IP de origem, etc.

  • Suporte completo a controlador de domínio Windows (PDC).

  • Suporte quase completo a backup do controlador de domínio (BDC). Até a versão 2.2 do samba, o suporte a BDC é parcial. Este código provavelmente estará estável até a versão 3.0.

  • Permite montar unidades mapeadas de sistemas Windows ou outros servidores Linux como um diretório no Linux.

  • Permite a configuração de recursos simples através de programas de configuração gráficos, 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 administração de sistemas Linux, é possível criar ambientes de auditoria e monitoração até monitoração de acesso a compartilhamento em tempo real.

  • Entre outras possibilidades.

Ficha técnica

Pacote

Outros utilitários importantes para a operação do clientes samba.

  • smbclient - Ferramenta para navegação e gerenciamento de arquivos, diretórios e impressoras compartilhados por servidores Windows ou samba.

  • smbfs - Pacote que possui ferramentas para o mapeamento de arquivos e diretórios compartilhados por servidores Windows ou samba em um diretório local.

  • winbind - Daemon que resolve nomes de usuários e grupo através de um servidor NT/SAMBA e mapeia os UIDs/GIDs deste servidor como usuários locais.

Requerimentos de Hardware

Processador 386 ou superior, 15 MB de espaço em disco (não levando em conta os logs gerados e espaço para arquivos de usuários, aplicativos, etc.), 8 MB de memória RAM.

Arquivos de log criados

O daemon nmbd salva seus logs em /var/log/daemon.log (dependendo da diretiva de configuração syslog do arquivo smb.conf) e em /var/log/samba/log.nmbd. Os detalhes de acesso a compartilhamento são 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/serviços”).

Instalação

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

Iniciando o servidor/reiniciando/recarregando a configuração

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 requisição de pesquisa e ficará residente na memória. No caso de acesso a um compartilhamento, o smbd será carregado e lerá a configuração em smb.conf a cada acesso do cliente a um compartilhamento. Quando o samba opera via inetd, ele não usa o controle de acesso dos arquivos hosts.allow e hosts.deny. Veja “Restringindo o acesso por IP/rede” e “Restringindo o acesso por interface de rede” para detalhes de como fazer o controle de acesso.

Para reiniciar o samba digite killall -HUP nmbd. Não é necessário reiniciar o serviço smbd, conforme foi explicado acima.

daemon

Quando opera no modo daemon, ambos os daemons nmbd e smbd são carregados. No caso de um acesso a compartilhamento, é criado um processo filho do smbd que é finalizado assim que o compartilhamento não 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 não existe diferença entre os modos de operação inetd e daemon para o SAMBA, é aconselhável que execute sempre que possível via inetd, pois isto garantirá uma disponibilidade maior do serviço caso algo aconteça com um dos processos.

Opções de linha de comando

Opções 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 localização para o arquivo de configuração do samba. Por padrão o /etc/samba/smb.conf é usado.

-d [num]

Especifica o nível de depuração do nmbd, que podem ir de 0 a 10. O valor padrão é 0.

-l [diretório]

Especifica a localização do diretório onde o nmbd gravará o arquivo de log log.nmbd. O valor padrão é /var/log/samba

-n [nomeNetBIOS]

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