10 de mai de 2012

Introdução ao samba e swat - parte 1


Dentro dos estudos e das necessidades de interligação de redes heterogêneas, o administrador de sistemas pode lançar mão de um recurso computacional de alta performance, customizável, seguro e de fácil configuração: uma tecnologia de rede, que implementa o protocolo SMB, equivalente ao NetBios do Windows. SMB, portanto é o protocolo e marca registrada de outro produto. Assim, de forma inteligente e elegante, "samba" foi o nome natural para o software desenvolvido por Andrew Tridgell

Este artigo tem como objetivo fazer uma introdução sobre o samba e mostrar algumas configurações via swat, sem o objetivo de esgotar o assunto. Se você pretende aprender a configurar o samba, utilize além do swat, as configurações via linha de comando, principalmente utilizando o vim (vi); O artigo não tem um roteiro, é como se fosse uma conversa (ou talk show) sobre um assunto para pessoas que gostam de conhecer produtos para redes de computadores, focado em solução de arquivos, impressão, autenticação, controle, etc. Comentários são sempre bem vindos.

Feito a introdução do samba, cabe conhecer algumas características do software:
  • É Software Livre;
  • Permite a criação de lixeira virtual;
  • Suporte ao servidor WINS (NBNS);
  • A configuração é limpa e muito bem documentada;
  • Suporte a controlador de domínios Windows (PDC);
  • Suporte a backup do controlador de domínio (BDC);
  • Compartilhamento de arquivos para máquinas Linux ou Windows;
  • O servidor samba pode atuar como um servidor de tempo para uma rede;
  • Permite o uso de alias na rede, podendo simular um servidor netbios virtual; 
  • Permite o uso do swat, agilizando alguns processos do administrador da rede;
  • Permite a criação de auditoria aos acessos dos compartilhamentos, até em tempo real;
  • Controle de acesso à arquivos tanto por grupo de usuários, como máquina (ip ou mac), por compartilhamento, domínio, servidor;
  • Uso de senhas do sistema Linux (/etc/passwd) ou arquivos do próprio samba, além de LDAP com possibilidades de autenticar no AD;
  • Possibilita a criação de impressora PDF, facilitando ao usuários o envio de impressão para PDF em diretórios específicos do servidor;
  • Permite ocultar, por exemplo, arquivos executáveis dentro de um compartilhamento ou bloquear determinadas extensões de serem salvas no servidor;
  • Um compartilhamento pode ser montato ou desmontato após sua execução, útil por exemplo para montar cdrom/dvdrom na rede;
  • Compartilhamento de impressoras para Linux ou Windows. As impressoras podem estar no servidor ou remotamente tanto em máquinas Linux ou Windows (ou print servers);

Como instalar o samba:
Você precisa saber que o samba é Software Livre, recomendo que conheça a filosofia, lendo o manifesto disponível aqui. Algumas pessoas ligadas à informática e tecnologia ainda fazem confusão com o termo "Software Livre" e "software gratuito";

A instalação sob um sistema Linux rodando o Debian, ao meu entendimento, é a mais simplificada, considerando aqui, uma instalação simples. Voce precisa saber como esta sua configuração do sources.list em /etc/apt/souces.list e conferir seus repositórios, usando por exemplo o vim para abrir o arquivo. Deverá ter algo como a saida abaixo:
deb http://debian.pop-sc.rnp.br/debian/ squeeze main contrib non-free
deb-src http://debian.pop-sc.rnp.br/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
deb http://debian.pop-sc.rnp.br/debian/ squeeze-updates main contrib non-free
deb-src http://debian.pop-sc.rnp.br/debian/ squeeze-updates main contrib non-free


A instalação dos pacotes podem ser feitas utilizando o aptitude, como o exemplo abaixo (lembre-se, manipulação do sistema operacional precisa de poderes de root ou sudo):

#aptitude install samba

Siga os processos de instalação até o final, confirmando a instalação:

Os NOVOS pacotes a seguir serão instalados:  
  samba samba-common{a} samba-common-bin{a} 
Os pacotes a seguir serão atualizados:
  libwbclient0 
1 pacotes atualizados, 3 novos instalados, 0 a serem removidos e 82 não atualizados.
É preciso obter 14,0 MB de arquivos. Depois do desempacotamento, 39,4 MB serão usados.
Você deseja continuar? [Y/n/?] 
Perceba que o instalador vai solicitar o nome para o grupo de trabalho. Este é o nome que vai aparecer na pesquisa de rede, escolha com cuidado e de acordo com sua rede local.

Finalizado a instalação, você já pode checar se seu samba esta ativo usando vários métodos. Costumo usar o netstat, pois possibilita mitigar várias funcionalidades de rede, mas você poderia utilizar por exemplo o ps -aux, por exemplo.
Então, rode o comando netstat -nat e observe as portas 445 e 139. Estas devem aparecer como listen na saida deste comando.

O samba pode ser parado ou inicializado pelo comando /etc/init.d/samba stop ou /etc/init.d/samba start. Experimente estes comandos jutamente com o netstat e perceba que quando ao comando start, as portas aparecem como listen e que quando ao comando stop, as portas não aparecem como listen.
/etc/init.d/samba stop
/etc/init.d/samba start
Um comando útil para testar o arquivo de configuração do samba é o testparm. Este comando identifica problemas na configuração por exemplo e mostra a saída da configuração atual do samba. Você pode usar o testparm e criar um arquivo de configuração do seu samba, sem os comentários por exemplo, usando testparm >> samba.conf. O testparm também mostra o tipo de server role, isto é, que modo de execuçao, se pdc ou standalone. Note que o testparm é exclusivo para testar os parâmetros do samba e pode ser executado com o samba inicializado ou parado, sendo que a execução padrão, vai sempre ler o arquivo de configuração em /etc/samba/smb.conf. Se tiver dúvida aqui, use man testparm.

Nosso foco aqui é a introdução ao samba e o uso do swat. Você pode fazer uma pesquisa do pacote swat no Debian com o comando aptitude search swat, como minha saida apresentada abaixo:
# aptitude search swat
p   swat                                                                             - Samba Web Administration Tool

Dentre todos os sofwares mostrados para instalação, o que nos interessa é este, Samba Web Administration Tool. Então proceda com a instalação, com o aptitude:
aptitude install swat

Confirme sua instalação:
Os NOVOS pacotes a seguir serão instalados:  
  openbsd-inetd{a} samba-doc{a} swat 
0 pacotes atualizados, 3 novos instalados, 0 a serem removidos e 82 não atualizados.
É preciso obter 4025 kB de arquivos. Depois do desempacotamento, 15,0 MB serão usados.
Você deseja continuar? [Y/n/?]

Note, que o instalador de forma inteligente (e elegante ao modo Debian) já traz as dependências e as instala, neste caso, como o samba-doc e o openbsd-inetd, para o controle do swat que veremos em seguida.

Usando o swat:
O swat (Samba Web Administration Tool) é muito bem documentado em sua página man (man swat) e somente do wat aqui fica fora do propósito, então, vamos salientar que o swat é uma ferramenta para configurar o samba. O swat cria um serviço web na porta 901 para a qual o seu navegador deve apontar para acessar o serviço. Este serviço, esta identificado dentro de seu arquivo /etc/inetd.conf, conforme o exemplo abaixo:

grep swat /etc/inetd.conf 
swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat

Além disso, pelo netstat podemos checar se o swat esta sendo executado, mostrando seu estado listen (ouça) no servidor, como abaixo:
netstat -nat | grep 901
tcp        0      0 0.0.0.0:901             0.0.0.0:*               OUÇA

Com esta informação, você já tem condições de iniciar uma configuração via swat do seu servidor samba. Observe todos os passos de instalação, tire suas dúvidas e mãos na massa. Perceba, que mesmo que seu servidor não tenha um ambiente gráfico rodando (não é recomendado ambiente gráfico em servidores por motivos óbvios de segurança), você pode apontar uma outra máquina da sua rede para o ip do servidor e assim aprender a configurar o seu samba. 
Este artigo tinha como nome "Configuração de servidor samba com swat", mas acabei mudando para "Introdução ao samba e swat - parte 1", já que ficou muito longo (e cansativo). Por esta razão, a próxima postagem será então a "Configuração de servidor samba com swat", onde poderemos ver algumas dicas de tunning e permissões;