Guia do Linux/Avançado/SAMBA/Introdução
Introdução
editarO 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
editarA versão do servidor samba documentada neste capítulo do guia é a 2.2.
História
editarAndrew 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
editarPara 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
editarSegue abaixo algumas funcionalidades importantes de aplicações do samba e seu conjunto de ferramentas:
- Compartilhamento de arquivos entre máquinas
Windows
eLinux
ou de máquinasLinux
(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áquinasWindows
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çõesWindows
via NetBios. Com a flexibilidade dosamba
é 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 servidoresLinux
como um diretório noLinux
. - 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.
- Compartilhamento de arquivos entre máquinas
Ficha técnica
editarPacote samba
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
ousamba
. - smbfs - Pacote que possui ferramentas para o mapeamento de arquivos e diretórios compartilhados por servidores
Windows
ousamba
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.
- smbclient - Ferramenta para navegação e gerenciamento de arquivos, diretórios e impressoras compartilhados por servidores
Requerimentos de Hardware
editarProcessador 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
editarO 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
, [#s-s-samba-s-global-log Log de acessos/serviços, Seção 18.2.8.5]).
Instalação
editarDigite 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 máquina Linux, instale somente os 2 últimos pacotes.
Iniciando o servidor/reiniciando/recarregando a configuração
editarO 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 osamba
opera via inetd, ele não usa o controle de acesso dos arquivoshosts.allow
ehosts.deny
. Veja [#s-s-samba-a-restrip Restringindo o acesso por IP/rede, Seção 18.12.2] e [#s-s-samba-a-restrif Restringindo o acesso por interface de rede, Seção 18.12.3] 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
esmbd
são carregados. No caso de um acesso a compartilhamento, é criado um processo filho dosmbd
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
editarOpçõ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.