andre_asn
(usa Slackware)
Enviado em 01/06/2011 - 14:28h
Como Prometido no topico anterior:
O que é Samba?
SMB
Server Message Block. Este é um sistema de troca de mensagens desenvolvido pela IBM para uso no seu protocolo NetBIOS e depois aperfeiçoado pela Microsoft para uso no sistema de compartilhamento de arquivos do Windows. O SMB permite que os clientes entrem em contato com o servidor, ver quais compartilhamentos estão disponíveis, solicitar listas de diretório ou arquivos e assim por diante.
Apesar disso disso, a sigla é mais comumente usada em relação ao Samba, uma implementação do protocolo SMB, permite que máquinas Linux compartilhem e acessem arquivos em redes Microsoft, como se fossem máquinas Windows.
O nome Samba utilizado como servidor de arquivos não tem nenhuma relação com o Samba musica brasileira, é mera coincidência. Quem descobriu como usar o SMB (Server Message Block) pra comunicação entre Linux e Windows foi o Australiano Andrew Tridgell, dizem que para ele dar nome a esta descoberta, procurou no dicionario por palavras com as letras SMB, ele encontrou e adotou a palavra SaMBa sem saber o significado dela no Brasil. Não vou alongar nesta explicação, na net tem muitos sites explicando.
O samba é um pacote Linux e portanto roda em maquinas Linux, serve para compartilhamento de arquivos e impressora, em redes Linux x Windows (não importa a direção). Funciona como servidor ou cliente, pode configurar o Linux para utilizar uma impressora Windows ou compartilhar uma impressora Linux para estações Windows (servidor de impressão).
O mesmo vale para arquivos (servidor de arquivos) compartilhar um diretório (pasta) para clientes Windows, também como cliente acessar compartilhamentos do Windows usando Samba (smbmount).
O pacote Samba instalado e configurado em um micro com Linux serve para emular um servidor NT para clientes windows, para compartilhar arquivos e impressoras, lembre que o samba só atenderá pedidos de clientes windows. (para uso exclusivo entre um server linux com clientes Windows).
O uso mais comun do SAMBA é de servidor de arquivos para clientes windows, gerenciando os bancos de dados, arquivos e controlando os acessos a estes dados.
Para outros serviços em rede ou uso do linux com outros sistemas operacionais pesquise qual pacote deve ser usado, para compartilhar diretórios ou arquivos entre maquinas linux use outro serviço de rede mais apropriado para a tarefa, tais como NFS , TELNET, FTP, WWW, SSH e etc..
O SAMBA é a simulação de um Windows NT Server para clientes Windows, o MARS (pesquise mars-nwe) é uma simulação de um servidor Netware da NOVELL que aceita clientes com boot remoto usando MS-DOS ou DOSEMU e etc...
Em uma rede, servidor é o software rodando em uma maquina que atende um pedido de outra maquina rodando software cliente, como tudo é questão de software então uma maquina pode rodar vários softwares, pode rodar o software servidor e cliente e ser ao mesmo tempo servidor e cliente, ou servidores e clientes, o que importa é a capacidade da maquina processar toda a informação e compatibilidades dos sofwares, pode rodar perfeitamente o server e cliente Samba na mesma maquina.
Em sistemas Linux existem várias maneiras de controlar o acesso, cada pacote tem suas particularidades para autenticar e disponibilizar arquivos ou diretórios.
Em uma única maquina pode disponibilizar vários servidores como de: WEB, E-MAIL NFS, FTP, SAMBA e etc..
O SAMBA é somente mais um, podemos ter simultaneamente na mesma maquina ou na mesma rede outros serviços de rede ou até mesmo servidores SAMBA.
Controlar todos os usuários de todas as maquinas da rede, desde a criação até administrar senhas e permissões individualmente em vários pacotes pode se tornar uma tarefa complicada, pode eleger um servidor da rede para centralizar a administração e controle de todos os usuarios e suas senhas, existem diversas opções, NIS, LDAP, PAM como o pam_smb e outros, sobre autenticação centralizada fica para um capitulo a parte, a melhor opção para iniciantes é utilizar o próprio recurso do Samba para autenticar os clientes windows, criar usuarios para Linux com adduser e para Samba com smbadduser, definir senhas no Linux com passwd e Samba com smbpasswd, implemente os recursos por parte, facilita no entendimento e solução de problemas.
Para que serve?
Serve como um servidor de arquivos, seja como um simples deposito de arquivos com um compartilhamento windows ou para rodar banco de dados como Firebird, MySQL, Oracle e outros.
Considere o Samba um emulador de Windows NT para estações windows da sua rede, no samba serão criados compartilhamentos, na configuração do SAMBA será especificado quais os diretorios as estações windows vão acessar como um compartilhamento NTFS, embora o sistema de arquivos do Linux seja ext2, ext3 ou outro qualquer diferente de NTFS e também o do Windows 95/98/ME seja o FAT estas maquinas vão trabalhar normalmente como se o sistema de arquivos fosse NTFS sem software adicional para acessar mas estes diretorios que também são acessiveis simultaneamente por outros sistemas de arquivos de diferentes sistemas operacionais do cliente.
Exemplificando: Um mesmo arquivo ou diretorio no server Linux pode ser usando por mais de um cliente; através de um cliente Windows que efetuou login no server samba onde pode mapear unidade de rede ou acessar pelo ambiente de rede, este mesmo arquivo ou diretório também poderá ser acessado por um cliente Windows que não efetuou login via samba mas efetuará login no linux e acessará os arquivos e diretórios por outro aplicativo tipo TELNET, FTP, Putty (SSH) e etc. Ou através de outro Linux (cliente Linux) usando NFS, SSH, também TELNET, FTP e muitas outras possibilidades.
Unidades de rede representadas por letras como F: H:, isto não existe no Linux, isto é coisa do windows que utiliza letras para dar apelido a outros locais de rede, na estação windows pode mapear pelo explorer ou pelo aplicativo "net.exe" que é executado localmente, o samba disponibiliza o script para cada estação executar no momento de login e mapear unidade de rede exatamente como fazem com servidores NT, estas unidades de rede representadas por F: nada mais são do que um apelido que windows deu para um diretório no servidor Linux sendo compartilhado pelo Samba, faça um teste na estação Widonws, clique com botão auxiliar do mouse sobre um diretório acessado no servidor samba e veja o sistema de arquivos, vai notar que é NTFS, o engraçado nisto tudo é que o win98 não sabe lidar com NTFS e nem o Linux lida muito bem, mas o samba utiliza o protocolo SMB pra trocar informações com estações windows, na verdade o sistema de arquivo em uso é o do Linux, somente o dialogo na rede está sob SMB, mas isto é outra questão, aqui está sendo emulado, tudo do tipo faz de conta, observe as mensagens no momento do login de uma estação windows, aparece a janela "efetuando logon sob dominio do NT", na estação windows não foi instalado nenhum pacote adicional para reconhecer o samba, nada de Linux, somente configurada para fazer login sob dominio do NT.
O incrível nisto tudo é a facilidade de configurar e trabalhar com Samba, manutenção, agregar outros serviços como lixeira no servidor, anti-virus, auditoria e muito mais, e ainda com estabilidade, robustez e segurança do Linux, neste caso acho o emulador (samba) muito melhor que o original (windows).
Considere também que podemos instalar no server linux programas Linux e também para outros sistemas como DOS, Windows.
Neste mesmo server ter clientes Linux, DOS e Windows.
Clientes usando o server para guardar e compartilhar seus arquivos.
Clientes que usam o server para executar os programas usando recursos de processador, memoria e disco do server isto é a execução de programas remotamente através de TELNET, SSH e etc..,
Considere SAMBA e DOSEMU serviços incompativeis, embora um programa ".exe" possa rodar nos dois os serviços são diferente um do outro.
DOSEMU emula um ambiente DOS, cria um ambiente virtual DOS rodando sob um sistema Linux para executar na própria maquina Linux um programa DOS, gerencia o lock (travamento) de registro e o arquivo é gerenciado pelo LINUX. Como o executavel DOS não roda de modo nativo no Linux precisamos do emulador para executar um programa DOS no sistema operacional Linux.
SAMBA emula um servidor NT para compartilhar arquivos e diretórios para outras maquinas da rede que rode Windows, cria uma estação netbeui no linux, mas os programas serão executados na maquina cliente usando os recursos do processador e sistema operacional deste cliente (windows), onde também serão mapeados os diretórios e gerenciado o lock (travamento) para o server.
O Samba não executa programas do windows, somente faz com que o Linux converse pelo protocolo SMB utilizado pelo Windows, guarda ou entrega os arquivos solicitados dentro das permissões do usuário, pode armazenar os executáveis no servidor como se faz em um compartilhando windows, acessar documentos e banco de dados, acessar pelo prompt do DOS como acessa um compartilhamento mapeado de outra maquina windows.
Um servidor Linux roda vários servidores tais como: servidor samba, servidor Telnet, servidor SSH, servidor apache, servidor FTP, DOSEMU, FREEDOS e muitos outros. Conisidere na sua aplicação qual o melhor server/cliente.
Como usar?
Muito simples, no lado servidor, basta instalar o pacote do Samba, definir no smb.conf quais os diretórios serão compartilhados, criar usuários, definir senhas, ajustar as permissões, criar o script para mapear unidades de rede no login. No lado cliente, estações windows, basta configurar para fazer login sob dominio do NT e prontinho, não precisa instalar pacotes adicionais, basta reiniciar e fazer login para acessarem o servidor, acesso pelo ambiente de rede ou pelas unidades de rede mapeadas.
Quanto custa?
Na internet tem quem diz que custa mais que windows, até agora não entendi este argumento, o pouco que entendi não dá pra comentar aqui, simplesmente ignore estes argumentos.
Praticamente todas as distribuições Linux tem o pacote do Samba no CD de instalação, basta uma linha de comando para instalar e mais alguns comandos para configurar, siga meus tutoriais, não demora 5 minutos pra fazer uma configuração, não tem limite de licenças, não tem restrições legais, fique à vontade para instalar e testar, somente assim poderá tirar suas conclusões.
Algumas vantagens
A lista é longa, não dá para enumerar todas, segue algumas que acho relevantes.
Virus - as pragas que atacam windows não atacam Linux, mesmo que uma estação seja contaminada e salve os arquivos no servidor, no máximo, vai contaminar os arquivos que o usuário tem acesso para gravação, não vai contaminar o sistema operacional do servidor, nenhum arquivo do sistema Linux, não vai propagar para arquivos de outros usuários, fica restrito aos arquivos que o contaminado tenha permissão de escrita e nada mais, para remoção pode usar anti-virus que roda no Linux ou até mesmo de uma estação windows, pode até remover o arquivo pelo Linux.
Lixeira - Configure a lixeira no servidor, arquivos deletados pelos usuários serão movidos para outro diretório, fica a impressão que foram apagados mas o comando remover é substituido por mover para outro local, qualquer acidente, basta copiar de volta, mesmo que remova arquivos com mesmo nome, estes recebem um numero para diferenciar e mantém a copia de cada um, permitindo escolher qual deseja recuperar.
Acesso - Tanto pelo Linux ou windows, facilidade de automatizar processos de backup pelo Linux, mesmo que o compartilhamento se destina ao windows, estes mesmos diretórios são Linux e acessados pelo Linux como um diretório qualquer, dentro das regras de segurança Linux, o Samba disponibiliza para as estações se fazendo passar por um servidor NT, esta diferença no acesso e permissões acontece somente para as estações windows.
Administração remota - até mesmo a partir de estações windows com aplicativos via brownser, entre eles webmin, ou linha de comando com ssh, tanto a partir da rede local ou via web, tem diversas ferramentas e maneiras, tudo muito fácil e intuitivo.
Log e auditoria - Registros com informações valiosas para auditar o servidor ou auxliar na procura de solução de problemas.
Controle do tipo de arquivo que podem ou não salvar no servidor, exemplo, bloquer, impedir que usuários salve arquivos .zip, .mp3. avi e outros formatos.
Substituir o NT ou rodar na mesma rede com servidores NT, definir cota de disco ao usuario, centralizar a autenticação de varios servidores em um só e muitos outros serviços. recomendo implementar um serviço de cada vez.
Integração entre os dois sistemas operacionais.
Existem pacotes que torna possivel a integração entre Linux e Windows, pode eleger qualquer um deles como o principal da rede, somente ou um ou outro e nunca os dois simultaneamente.
Windows como cliente Samba é simples de configurar e não requer programas extras, como Servidor principal tem que usar "AD".
Linux também pode substituir o "AD", como servidor ou trabalhar como cliente de "AD", envolve o uso de outros pacotes além do Samba; como LDAP, Kerberos, AD, Winbind e outros.
Qualquer um deles trabalham muito bem como cliente do outro, por enquanto é possível mas é meio trabalhoso a configuração do Linux para centralizar login, senha, permissões e outros serviços de rede do windows, mas vai ficar muito fácil no Samba 4, já estão prometendo uma melhor interação no Samba 4.0 com LDAP, Kerberros e outros serviços, estão melhorando a interoperabilidade entre os servidores dos dois SO.