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;

24 comentários:

  1. Gostei bastante da instalação em aula do programa swat, fiz uma instalação em uma máquina virtual e rodou legal, agora é testar o mesmo em um servidor produção, estamos modificando o servidor lá na empresa e será de grande ajuda este programa.

    ResponderExcluir
  2. Legal Cristiano. Tome cuidado em sistemas em produção. Lembre-se sempre de fazer um backup.

    ResponderExcluir
  3. Muito boa essa introdução sobre Samba e Swat.
    estou pegando alguma dicas no Blog para implementação aqui na empresa.

    Pena que as aulas já estão acabando, para tirar mais algumas duvida.

    Valeu!

    ResponderExcluir
  4. ótimo Alan, você pode continuar a tirar suas dúvidas. Quero manter um artigo por semana, assim sempre assunto novo bem comentado. grato.

    ResponderExcluir
  5. Gostei muito do artigo. Deu pra conhecer melhor do samba.
    Gostaria de saber se é possível fazer a integração dele com Active Directory do Windows Server 2008.

    Obrigado.

    ResponderExcluir
  6. Parabens pelo topico prof...tirou tds minhas duvidas Avner trc2

    ResponderExcluir
  7. Muito legal esse tutorial sobre Samba. Já ouvi fala varias vezes sobre ele, mais não sabia como realmente funcionava. Aprendi muitas coisas nas aulas que tivemos, principalmente a gosta do Linux.

    Obrigado pelas aulas !!!

    ResponderExcluir
  8. Achei muito boa a introdução o sobre Samba ficou facíl de entender até para quem é iniciante em linux como eu.
    Vou tentar intalar em uma maquina virtual e com certeza voltarei para pedir mais dicas.

    ResponderExcluir
  9. Boa noite professor, excelente tópico! Me ajudou bastante a configurar o samba num micro-museu aqui de casa, porém estou tendo problemas na hora de baixar arquivos do servidor usando sistema Mac OS X, a transmissão é muito lenta (taxa de upload do servidor), e tem horas que meu notebook enxerga o servidor na rede mas da um erro estranho dizendo que a conexão falhou.

    ResponderExcluir
  10. Bom dia Prof.

    Otimo post este sobre Samba...
    O Sr. poderia explicar como funcionaria a conexão (Samba) com S.O Android e Mac OS

    ResponderExcluir
  11. Ola André, no caso do Android existem vários clients para acesso ao compartilhamento samba e no MAC OS, também, inclusive bem similar às configurações do Linux.

    ResponderExcluir
  12. Boa tarde, esse blog com o assunto de samba para quem esta começando com Linux é muito bacana, pois esta bem completo e compacto o texto. Vou instala na minha maquina virtual e fazer alguns testes e ver se consigo coloca na pratica.

    ResponderExcluir
  13. muito bom o topico, professor esclareu bem minhas duvidas sobre o linux

    ResponderExcluir
  14. Parabéns pelo Blog !
    Gostei muito do tópico, atende as nossas necessidades e mostra como o samba é uma ferramenta muito eficiente. Gosto de trabalhar com Linux e agora intendo mais, depois de ter lido esse blog ! Vou pesquisar mais sobre o samba e instalar no meu computador.

    ResponderExcluir
  15. Obrigado professor, por ter criado este tópico, abordando este tema, o Samba, que deu pra esclarecer algumas dúvidas, e está bem explicado o processo de instalação.

    ResponderExcluir
  16. Deu pra entender bem como funciona essa ferramentae seus recursos.

    ResponderExcluir
  17. Professor, tive a oportunidade de ler com mas calma seu blog, em questão de linux sabia pouca coisa, mas agora aprendi varias coisa as duvidas que tinha sobre o Samba, muito bom, conhecimento nunca é demais para uma pessoa, e alem de tudo o Linux é um software livre é utilizado em base de testes, muito bom mesmo parabéns professor.

    ResponderExcluir
  18. Muito bom esse tópico, nunca tinha ouvindo falar do samba agora entendi tudo

    ResponderExcluir
  19. Ótimo artigo sobre Samba.Estou pesquisando mais sobre o assunto para projetos futuros.

    ResponderExcluir
  20. Lucas Costa dos Santos28 de maio de 2012 19:31

    Boa Noite, o Post contém muitas informações, e foi muito bem explicado, esclarecedor. Obrigado. Abraços.

    ResponderExcluir
  21. O SAMBA traz a possibilidade de integração de redes microsoft ao linux, assim facilita a conversaçao com esse dois sistemas distintos. A proposta do SAMBA como gerenciamento de arquivos em rede aumenta em muito a confiabilidade dos arquivos, velocidade e tambem na area de segurança temos um ganho notavel, sem essa incrivel ferramenta seria mais dificil difundir o linux em redes microsoft e talvez não desse a chance a muitos ADM de REDES de conhecer o linux.

    Creditos: George Ayres

    ResponderExcluir
  22. Boa Noite
    O Assunto foi muito bem explicado, assim o usuário, conseguirá utilizar o Software sem problema nenhum.
    João Carlos - TRC 2SA

    ResponderExcluir
  23. Confesso que administração de servidores não é a realidade do meu dia-a-dia, por isso nunca utilizei essa aplicação no meu trabalho e fica mais difícil visualizar o funcionamento. Mas o post deu uma boa introdução ao conhecimento do sistema, para aperfeiçoamento posterior.

    ResponderExcluir

Obrigado pelos comentários!