Servidor Samba
Autor: Everton Santos | Publicado: 2011-06-27T14:34:00-07:00


    Introdução
O Samba é um "Software Servidor" para Linux (e outros sistemas baseados em Unix) que permite o gerenciamento e compartilhamento de recursos em redes formadas por computadores com o Windows. Assim, é possível usar o Linux como servidor de arquivos, servidor de impressão, entre outros, como se a rede utilizasse servidores Windows (NT, 2000, XP, Server 2003 e Server 2008). 

Este artigo faz uma abordagem introdutória ao Samba, mostrando suas principais características e um pouco de sua história.

Breve história do Samba
O Samba é uma criação de Andrew Tridgell. De acordo com informações dadas no site oficial do software, Tridgell precisava montar um espaço em disco em seu PC para um servidor Unix. Esse PC rodava o sistema operacional DOS e, inicialmente, foi utilizado o sistema de arquivos NFS (Network File System) para o acesso. Porém, um aplicativo precisava de suporte ao protocolo NetBIOS (não suportado pelo NFS). 

A solução encontrada por Tridgell não foi tão simples: ele escreveu um sniffer (pequeno programa para captura de tráfego de dados em rede) que permitisse analisar o tráfego de dados gerado pelo protocolo NetBIOS, fez engenharia reversa no protocolo SMB (Server Message Block) e o implementou no Unix. Isso fez com que o servidor Unix aparecesse como um servidor de arquivos Windows em seu PC com DOS.

Esse código foi disponibilizado publicamente por Tridgell em 1992. Porém, tempos depois, o projeto foi posto de lado até que um determinado dia Tridgell decidiu conectar o PC de sua esposa ao seu computador com Linux. Porém, não encontrou nenhum meio melhor que seu código para fazer isso e assim o utilizou.

Através de contatos feitos por e-mail, Tridgell descobriu que as documentações dos protocolos SMB e NetBIOS estavam atualizadas e assim voltou a dedicar-se ao projeto. Porém, uma empresa entrou em contato com ele reivindicando os direitos sobre o nome usado no software até então. Diante disso, Andrew Tridgell teve a idéia de procurar em um dicionário uma palavra que tivesse as letras s, m e b (de SMB) e acabou encontrando o termo "samba". 

A partir daí o projeto Samba cresceu e hoje Andrew Tridgell conta com uma excelente equipe de programadores e com milhares de usuários de sua solução espalhados pelo mundo.

O que o servidor Samba faz
Com o servidor Samba, é possível compartilhar arquivos, compartilhar impressoras e controlar o acesso a determinados recursos de rede com igual ou maior eficiência que servidores baseados em sistemas operacionais da Microsoft. Mas, neste caso, o sistema operacional utilizado é o Linux.

O Samba é compatível com praticamente qualquer versão do Windows, como NT 4.0, 9x, Me, 2000, XP e Server 2000, 2003 e 2008, além de máquinas com o Linux, é claro.

Todo trabalho feito pelo Samba é provido de grande segurança, uma vez que há grande rigor nos controles dos recursos oferecidos. Tanto é que existem empresas que usam o Samba como solução para conflitos existentes entre diferentes versões do Windows.

Como não poderia deixar de ser, o Samba também permite que sua configuração seja feita por meio de computadores remotos. 

Para os casos mais críticos, o administrador da rede pode até ser notificado de anormalidades por e-mail (para isso é necessário usar um script específico que busca informações nos arquivos de log e cria um arquivo que pode ser enviado via e-mail).

Instalando o Samba
O Samba é um software livre que está disponível sob a licença GNU (GNU's not Unix). Muitas distribuições Linux já o incluem, mas caso queira instalá-lo, é possível baixá-lo de seu site oficial - www.samba.org. Neste, é possível notar que há pacotes específicos para as distribuições mais famosas, como Fedora, Mandriva, SuSE, Debian, entre outros. 

Isso significa que a instalação depende do tipo de pacote utilizado (tar.gz, RPM, deb, entre outros). Assim, como exemplo, os usuários do Debian devem usar o seguinte comando:

apt-get install samba smbclient smbfs

O arquivo smb.conf
Um fato que agrada muitos usuários do Samba é que sua configuração é feita em um único arquivo: o smb.conf. Esse arquivo geralmente fica localizado no diretório de instalação do Samba.

O arquivo smb.conf é estruturado da seguinte maneira: os parâmetros de configuração são agrupados em  seções. Cada seção é identificada por um nome entre colchetes, por exemplo, [global]. A seguir, segue a descrição de três exemplos de seções pré-definidas no Samba:

{global] - como o nome indica, contém configurações que afetam todo o Samba. Por exemplo, nome do servidor;
[homes] - contém as configurações do diretório home para cada usuário;
[printers] - contém as configurações que controlam impressoras compartilhadas.

Abaixo segue um exemplo de um arquivo smb.conf com uma configuração bastante simples, pois serve apenas para explicar a estrutura do arquivo. Seus parâmetros são explicados em  seguida. 

A numeração no início das linhas não é usada no arquivo e foi inserida por mim apenas para facilitar a localização dos parâmetros:

1 [global]
2 # nome do servidor de arquivos
3 netbios name = NomedoServerFile
4 # nome do grupo de trabalho ou do domínio
5 workgroup = NomedoDomínio
6 server string = Servidor Samba
7 security = user

8 [rede]
9 # diretório compartilhado
10 path = /iw/artigos
11 public = yes
12 browseable = yes
13 writable = no

Explicando:
- As linhas 1 e 8 contêm os nomes das seções;
- As linhas 2, 4 e 9 são comentários. Você pode inserir o texto que quiser nelas e o Samba irá ignorá-las. Os comentários são usados para documentar funcionalidades ou fazer observações. Esse recurso também pode ser inserido no final de qualquer outra linha, bastando inserir o símbolo # antes do comentário;
- A linha 3 - netbios name - contém o nome NetBIOS do servidor Samba;
- A linha 5 - workgroup - recebe o nome do grupo de trabalho ou do domínio no qual o servidor Samba faz parte;
- A linha 6 - server string - é uma identificação que o servidor Samba envia aos demais computadores da rede;
- A linha 7 - security - contém o nível de acesso e pode receber vários "sub-parâmetros". Neste caso, user indica que para acessar o servidor é necessário que usuário faça uso de uma conta no Linux que, por sua vez, também deve ser usada no Windows;
- A linha 10 - path - indica qual o diretório compartilhado, se for esse o caso;
- A linha 11 - public - permite o acesso ao diretório sem a necessidade de senha (se preenchido com "yes");
- A linha 12 - browseable - informa se o diretório é visível ou não. Se não for, mesmo assim é possível acessá-lo;
- A linha 13 - writable - se tiver o termo "no", indica que o usuário apenas pode ler o conteúdo do diretório compartilhado, mas não pode alterá-lo.

Swat
O Samba pode ser configurado através de interfaces gráficas. Muitos administradores de rede consideram esse meio mais eficiente do que editar o arquivo smb.conf através de um editor de textos. O Swat é o meio mais usado para isso. 

Trata-se de uma ferramenta que permite a configuração do Samba através de navegadores de internet, facilitando, inclusive, o acesso remoto ao arquivo de configuração.

Para instalá-lo, você pode verificar se seu pacote de instalação está no CD de sua distribuição. Se tiver um sistema (baseado no) Debian, pode-se usar o seguinte comando para procurá-lo:

apt-cache search swat

Concluída a instalação, o acesso ao Samba pelo Swat é feito através do nome ou do IP do servidor seguido da porta 901, como mostra o exemplo abaixo:

http://192.168.10.10:901

Finalizando
O servidor Samba é um software poderoso e bastante eficiente. Alguns especialistas no assunto até o consideram mais seguro e confiável que as soluções baseadas no Windows. Sua compreensão não é difícil, mas requer um certo tempo de aprendizado, pois sua configuração é bastante abrangente para atender os mais diversos tipos de necessidade.

Como as possibilidades de configuração do arquivo smb.conf é muito extensa para esse artigo de introdução, pode-se obter mais detalhes nos seguintes endereços:

focalinux.cipsga.org.br/guia/avancado/ch-s-samba.htm *
us1.samba.org/samba/docs/man/Samba-HOWTO-Collection * (material oficial e em inglês)
Web Site Oficial do Samba * (material oficial e em inglês)