Minicurso Samba
Upcoming SlideShare
Loading in...5
×
 

Minicurso Samba

on

  • 4,622 views

Minicurso Samba

Minicurso Samba
Visão geral do funcionamento do samba e do protocolo CIFS.
Exemplo de configuração do samba como servidor de arquivos e como controlador de domínio.

Statistics

Views

Total Views
4,622
Views on SlideShare
4,521
Embed Views
101

Actions

Likes
3
Downloads
361
Comments
1

1 Embed 101

http://ivanix.wordpress.com 101

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Minicurso Samba Minicurso Samba Presentation Transcript

  • Integrando ambientes Windows e Linux
  • Agenda – Fase 1● Motivação● Introdução● Compartilhamento de arquivos e impressoras● SMB – Server Message Block● CIFS – Common Internet File System ● Como o CIFS trabalha● Componentes do Samba● Funcionalidades do Samba
  • MotivaçãoIntegração de Redes Heterogêneas é importante porque... ● Uso crescente de máquinas Windows e Linux ● Os dois ambientes possuem recursos que podem ser compartilhados ● A integração aproveita o melhor dos dois mundos: ● Windows como plataforma desktop popular e com muitos recursos ● Linux como plataforma de infraestrutura escalável e flexível
  • Introdução● O Samba começou a ser desenvolvido por Andrew Tridgell em 1992 como ferramenta para compartilhamento de diretórios e arquivos entre máquinas *nix e máquinas com sistemas operacionais como Windows e OS/2 da IBM.● Utilizando engenharia reversa no protocolo SMB (Server Message Block), Andrew fez a implementação do protocolo em seu computador Unix.● Dessa forma, os sistemas de arquivos do servidor Unix podiam então ser montados e acessados por estações Windows.● O projeto é mantido por um grupo de voluntários sob a supervisão de Andrew Tridgell.● Ferramenta opensource, é solução viável para as necessidades de armazenamento centralizado de dados, autenticação e uso uso de recursos.
  • Compartilhamento de arquivos e impressoras● Recursos como compartilhamento de arquivos e impressoras ficam disponíveis na rede através do uso do protocolo CIFS (Common Internet File System), que permite a comunicação entre diversas máquinas operando em diferentes plataformas.● O Samba utiliza o lado servidor do CIFS que permite que máquinas Linux se comuniquem com outros sistemas operacionais disponibilizando e usando recursos.● Dessa forma, uma máquina Linux, por exemplo, é vista como outra máquina Windows na rede.● O Samba oferece escalabilidade, podendo inicialmente começar em uma infraestrutura de máquinas comuns baseadas em arquiteturas Intel e crescer até a implementação em Mainframes.
  • Exemplo de compartilhamento http://wiki.sintectus.com/pub/GrupoLinux/ArtigoServidorSAMBA/pag_207a.jpg
  • SMB – Server Message Block● “Coração” do CIFS● Foi uma extensão que a Microsoft acrescentou ao DOS para permitir que o I/O de disco fosse redirecionado ao NetBIOS (Network Basic Input/Output System).● NetBIOS serve como interface entre a rede e um aplicativo fornecendo: ● Serviço de Nomes (responsável por exibir os nomes vistos no Ambiente de Rede) ● Serviço de Sessão (utilizado pelo CIFS para enviar e receber mensagens SMB)
  • CIFS – Common Internet File System● Padrão aberto, criado pela IETF – Internet Engineering Task Force● Trabalha na arquitetura cliente-servidor● Provê os seguintes serviços: ● Compartilhamento de arquivos ● Impressão em rede ● Autenticação e autorização ● Resolução de nomes ● Anúncio de serviços (browsing ou navegação de recursos como impressoras e servidor de arquivos)
  • Como o CIFS trabalha?● Cliente e servidor trocam mensagens a fim de acessarem recursos● Isso é feito através do Server Message Block Protocol. Mensagens SMB: SMB Request ● Solicitações de início e término de conexão em compartilhamentos de SMB Response arquivo e impressão; ● Operações com arquivos:Cliente Servidor ● Open/Close ● Read/Write ● Pesquisa em diretórios ● Definição e checagem de permissões
  • Como o CIFS trabalha?● Cliente e servidor trocam mensagens a fim de acessarem recursos● Isso é feito através do Server Message Block Protocol. Mensagens SMB: SMB Request ● Solicitações de início e término de conexão em compartilhamentos de SMB Response arquivo e impressão; ● Operações com arquivos:Cliente Servidor ● Open/Close ● Read/Write ● Pesquisa em diretórios ● Definição e checagem de permissões
  • Componentes do Sambanmbd● Responsável pela resolução de nomes, faz parte do processo de navegação ● (browsing) e varredura de recursos disponíveis em uma máquinasmbd● Responsável ● por compartilhar recursos (arquivos, impressoras), autenticação, controle da autorização e acesso aos recursoswinbind● Responsável pelo mapeamento de bases de usuários em um domínio ● Windows.
  • Funcionalidades do Samba● Compartilhamento de um ou mais sistemas de arquivos;● Compartilhamento de impressoras em ambientes Windows, ou atuar como cliente;● Autenticação de clientes em um domínio Windows;● Manter registros das ações dos usuários no servidor;● Permitir e garantir ao administrador direitos de domínio como restrições de logins, inserção e retirada de máquinas e usuários da rede;● Melhor controle de acesso aos recursos compartilhados no sistema;● Facilidade na localização de arquivos e realização de backups.
  • Samba como servidor de arquivos
  • Agenda – Fase 2● Instalação de Pacotes – ambiente Debian● Análise do smb.conf● Definindo compartilhamentos personalizados● Teste do arquivo smb.conf● Criando usuários● Teste no ambiente Windows● Teste no ambiente Linux
  • Instalação de pacotes Para configurar o servidor samba, é necessário instalar os seguintespacotes: # apt­get install samba smbclient smbfs O comando acima irá instalar os seguintes pacotes: ● samba – servidor samba ● samba-common – arquivos de configuração do samba ● smbclient – cliente samba para Linux ● smbfs – utilitários para montagem de compartilhamentos através do Linux Dica! É uma boa prática, antes de instalar um pacote, verificar se o mesmo já está instalado no sistema: # dpkg -l | grep samba # dpkg -l | grep smbclient # dpkg -l | grep smbfs
  • Dica para o administrador Dica! Nos próximo slides, iremos analisar as principais diretivas do smb.conf. Porém, antes de fazer qualquer alteração, primeiro vamos salvar uma cópiado arquivo original, que pode ser utilizado para futuras consultas. # cp /etc/samba/smb.conf /etc/samba/smb.conf.original Feito o backup do arquivo original, podemos partir para análise do arquivo: # cd /etc/samba/ # vim smb.conf
  • Arquivo smb.conf A configuração do Samba é feita através no arquivo /etc/samba/smb.conf,que é composto por seções, parâmetros e variáveis. Seções são iniciadas por uma palavra colocada entre colchetes, como porexemplo [global], [homes], entre outras. Alguns nomes de seções tem o nomereservado para configurações específicas. No próximo slide vamos conhecer asseções reservadas. Parâmetros definem os atributos das seções onde se encontram. Variáveis são utilizadas para substituir textos fixos, como por exemplo“path=/tmp/%u” pode ser interpretada como “path=/tmp/aluno”, caso setenha acessado o sistema com o usuário aluno.
  • Seções reservadas no smb.conf[global] – Define configurações como nome do servidor, grupo de trabalho, eoutras que tem efeito em todos compartilhamentos.[homes] – Responsável por compartilhar o diretório home de cada usuário queirá acessar o Samba.[netlogon] – Utilizado para armazenar os scripts de logon quando o Samba estásendo utilizado como PDC (Primary Domain Controller).[profile] – Define um perfil quando o Samba é usado como PDC. Permite que osclientes utilizem o mesmo perfil em qualquer máquina em que se autentique narede.[printers] – Define opções gerais para controle das impressoras do sistema.
  • Análise do arquivo smb.conf Seção [global]workgroup = Laboratorio – Define em qual grupo de trabalho ou domínio darede Microsoft ele estará contido.server string = Servidor de Arquivos – Comentário sobre o servidor.wins support = yes – Define o Samba como servidor WINS, resolvendo nomepara máquinas Windows.client lanman auth = yes – Utilizado pelo comando smbclient.wins server = w.x.y.z – se já existir um servidor WINS na rede, aqui é informadoo endereço IP do servidor.log file = /var/log/samba/%m.log – arquivo de log gerado pelo samba (o valor%m indica que o nome do arquivo terá o nome NetBIOS do host de acesso).
  • Análise do arquivo smb.conf Seção [global]max log size = 1024 – tamanho do arquivo de log (em KB)security = share – configuração da política de acesso e autenticação para osserviços compartilhados.encrypt passwords = yes – Habilita ou não o uso de senhas criptografadas.passdb backend = tdbsam – Se estiver usando senhas criptografadas, essaopção permite criar uma base de senhas samba.unix password sync = yes – Habilita sincronização de senhas do Samba com assenhas do Linux.passwd program = /usr/bin/passwd %u – Programa que realiza a alteração desenhas e os parâmetros.
  • Análise do arquivo smb.conf Seção [global]smb passwd file = /etc/samba/smbpasswd – Arquivo que guarda as senhascriptografadas.load printers = yes – Disponibiliza as impressoras listadas no arquivo/etc/printcap.printcap name = /etc/printcap – Arquivo onde se localizam as impressorasconfiguradas no sistema.printing = cups – Define o tipo do servidor de impressão (CUPS – Common UnixPrinting System).
  • Análise do arquivo smb.conf Seção [homes]comment = Home Directories – Descrição do compartilhamento.browseable = no – Permite ou não a visualização do compartilhamento.ready only = yes – Por padrão, os diretórios são exportados somente compermissão de leitura.create mask = 0644 – Permissão padrão de criação de arquivos nocompartilhamento.directory mask = 0775 – Permissão padrão de criação de diretórios nocompartilhamento.valid users = %S – Define que a pasta home será acessível apenas pelo usuáriodono (a variável %S é substituída pelo nome do usuário).
  • Análise do arquivo smb.conf [printers]comment = All Printers – Descrição do compartilhamentopath = /var/spool/samba – Diretório do spool de impressão no servidorbrowseable = no – Permite ou não a visualização do compartilhamento.guest ok = no – Define se será solicitado senha ao acessar a impressoracompartilhada.writable = no – Permite ou não gravação no recurso compartilhado.printable = yes – Especifica se o compartilhamento é uma impressora (yes) ouum arquivo/diretório (no).
  • Aquecimento● Objetivo: configurar um compartilhamento personalizado: ● Compartilhar a pasta /srv/samba/publico ● Definir dono e grupo para a pasta ● Ajustar as permissões● O arquivo de configuração de um servidor Samba para o aquecimento segue no próximo slide. Servidor Samba Clientes
  • Ajuste do smb.conf[global] workgroup = Laboratorio server string = Servidor de Arquivos wins support = yes client lanman auth = yes security = share[Publico] comment = Diretorio Publico path = /srv/samba/publico force user = smbuser force group = users read only = no guest ok = yes
  • Testando a configuração O samba oferece um utilitário para checar se a sintaxe do arquivo smb.confestá correta: # testparm O comando acima irá checar se a sintaxe dos parâmetros está correta. Apósa checagem, é exibido um dump do arquivo de configuração. Lembrando que qualquer compartilhamento extra criado, mesmo que nãoapresente erro durante a verificação do testparm, exige algumas ações comocriar o diretório localmente, definir as permissões, entre outras.
  • Criando usuários Depois de configurar o arquivo smb.conf, é necessário criar os usuários queirão utilizá-lo. O Samba não usa a mesma base de dados de usuários do sistema(/etc/passwd) porque o Windows usa um tipo de autenticação diferente. Maspara que seja criado um usuário no Samba é obrigatório que este já exista nosistema. Nesse aquecimento, o usuário que irá utilizar o compartilhamento é osmbuser que faz parte do grupo users: # useradd smbuser -g users
  • Criando a pasta compartilhada Após criar o usuário que terá acesso ao compartilhamento, é hora de criar apasta que será compartilhada e definir as permissões. No smb.conf, foi definido que o diretório compartilhado é o/srv/samba/publico; assim temos que criá-lo no caminho indicado no arquivode configuração. ● Criando o diretório: # mkdir -p /srv/samba/publico ● Alterando as permissões: # chown smbuser:users /srv/samba/publico ● Checando se as permissões estão corretas: # ls -ld /srv/samba/publico
  • Antes de testar...● Reiniciar o servidor samba, para que as configurações adicionadas tenham efeito: # invoke-rc.d samba stop # invoke-rc.d samba start● Checar se os daemons smbd e nmbd estão atendendo requisições: # netstat -anutp Opção Descrição a Listar todos serviços n Listar de forma numérica (não resolver nomes) u Listar serviços UDP t Listar serviços TCP p Programa ou serviço
  • Portas que o Samba utiliza● NetBIOS ● Utiliza as portas 137/UDP, 138/UDP e 139/TCP para compartilhamento de arquivos e impressoras em redes Microsoft, sendo que cada uma possui uma função específica: ● 137/UDP – Usada para a navegação, incluindo a visualização dos compartilhamentos disponíveis. ● 138/UDP – Usada para a resolução dos nomes da rede. ● 139/TCP – Usada para a transferência de dados.● CIFS ● Utiliza a porta 445/TCP. O protocolo CIFS é uma versão atualizada do antigo protocolo NetBIOS. Por padrão é utilizado em clientes rodando o Windows 2000, XP e Vista, além de ser usado pelas versões recentes do Samba.
  • Teste no ambiente Linux ● Verificar o compartilhamento local:# smbclient -L localhostEnter roots password:Domain=[LABORATORIO] OS=[Unix] Server=[Samba 3.2.5] Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers Publico Disk Diretorio Publico IPC$ IPC IPC Service (Servidor de Arquivos)Domain=[LABORATORIO] OS=[Unix] Server=[Samba 3.2.5] Server Comment --------- ------- LAB-SAMBA Servidor de Arquivos Workgroup Master --------- ------- LABORATORIO
  • Teste no ambiente Linux● Verificar o compartilhamento na máquina do colega: # smbclient -L <IP do colega>● Montar o compartilhamento da máquina do colega na sua máquina: # smbmount //<IP do colega>/Publico /mnt # mount -t cifs //<IP do colega>/Publico /mnt● Confirmar se o compartilhamento foi montado: # mount● Criar um arquivo no compartilhamento: # touch /mnt/$HOSTNAME.txt● Checar as permissões do arquivo criado pelo colega: # ls -la /srv/samba/publico
  • Teste no ambiente Windows ● Iniciar ● Pesquisar ● Arquivos ou Pastas ● Computadores ou pessoas
  • Teste no ambiente Windows● Adicionar o compartilhamento criado na máquina Windows.● Fazer o backup das configurações do Windows no compartilhamento criado: ● Iniciar → Programas → Acessórios → Ferramentas de Sistema → Assistente para Transferência de Arquivos e Configuração.● Verificar no servidor Samba se o backup foi gravado.
  • Samba como controlador de domínio
  • Agenda – Fase 3● Introdução● Samba como Controlador de Domínio● Etapas da configuração do PDC● Análise das diretivas do PDC no smb.conf● Configurações adicionais
  • Introdução Além de servir como um servidor de compartilhamento de recursos emrede, o Samba também pode atuar como um controlador de domínio. Um domínio é um conjunto de computadores que residem na mesmasubrede e pertencem ao mesmo grupo de trabalho. O controlador de domínio (Domain Controller) é responsável por armazenaras informações sobre os usuários e suas respectivas senhas. Um PDC (Primary Domain Controller) é um servidor que autentica osusuários em um domínio.
  • Introdução Domain Controller WorkgroupNo modelo workgroup, cada máquina Nesse Domain Controller, aé responsável por suas configurações política de acesso aos recursos élocais. centralizada no Domain Controller.
  • Samba como PDC A configuração do Samba como controlador de domínio em uma redeWindows, requer mudanças em algumas diretivas da seção [global] no arquivode configuração smb.conf. Algumas configurações a serem checadas antes de editar o arquivo: ● Verificar o nome da máquina: # hostname ● Checar se o pacote do samba está instalado: # dpkg ­l | grep samba ● Verificar se a máquina está na rede: # ifconfig
  • Etapas da configuração do PDC Servidor PDC1) No servidor: ● Editar o arquivo smb.conf ● Criar um Domínio para a Rede ● Criar as contas de máquina switch ● Criar os usuários do domínio2) No cliente ● Ingressar o cliente no domínio ● Autenticar o cliente pelo domínio Cliente Windows
  • Análise do arquivo smb.conf● workgroup = Laboratorio ● Define o nome do domínio da rede.● netbios name =lab­samba ● Nome da máquina.● server string = PDC ● Comentário sobre o servidor.● security = user ● Tipo de acesso. Como o Samba está sendo configurado para autenticar a rede no domínio, é necessário alterar o tipo de acesso para user.
  • Análise do arquivo smb.conf● encrypt passwords = yes ● Habilita o uso de senhas criptografadas.● passdb backend = tdbsam ● Se estiver usando senhas criptografadas, essa opção permite criar uma base de senhas samba.● unix password sync = yes ● Habilita sincronização de senhas do Samba com as senhas do Linux.● passwd program = /usr/bin/passwd %u ● Programa que realiza a alteração de senhas e os parâmetros.
  • Análise do arquivo smb.conf● smb passwd file = /etc/samba/smbpasswd ● Caminho do arquivo que irá armazenar as senhas samba dos usuários.● domain logons = yes ● Transforma o Samba em um servidor de logon.● logon path = %Lprofiles%U ● Define o local onde ficará armazenado o perfil do usuário. A variável %L será substituída pelo nome do servidor e a variável %U pelo nome do usuário.● logon drive = H: ● Unidade que será mapeada para o home do usuário
  • Análise do arquivo smb.conf● os level = 80 ● Quando uma eleição é realizada na rede, para saber quem será o PDC da rede, cada computador faz um broadcast pela rede enviando informações sobre si mesmo. Essas informações incluem o sistema operacional da máquina, o tempo que o cliente está conectado na rede e seu nome. A cada sistema operacional é atribuído um valor numérico na eleição (OS level), e para que o Samba seja o Domain Controller da rede, é necessário colocar um valor alto nessa opção. Sistema Operacional OS Level Windows NT/2000 Server, rodando como PDC 32 Windows NT/2000/XP, não PDC 16 Windows 95/98/Me 1 Windows for Workgroups 1 Fonte: http://www.samba.org/samba/docs/using_samba/ch07.html#samba2-CHP-7-TABLE-2
  • Análise do arquivo smb.conf● logon home = %Lhomes%U ● Define o local onde ficará armazenado o diretório home do usuário. A variável %L será substituída pelo nome do servidor e a variável %U pelo nome do usuário.● logon script = logon.bat ● Arquivo que será executado no login do usuário. Esse script deverá ser gravado no servidor no diretório definido na seção [netlogon].● domain master = yes ● Define o Samba como o principal navegador do domínio.
  • Análise do arquivo smb.conf● preferred master = yes ● Dá prioridade ao Samba vencer a eleição.● local master = yes ● Define se o Samba irá participar ou não da eleição para navegador local do grupo de trabalho.● preserve case = yes ● Seleciona se arquivos com nomes extensos criados serão criados com os caracteres em maiúsculas/minúsculas.● short preserve case = yes ● Seleciona se os arquivos com nomes curtos (formato 8.3) serão criados com os caracteres mistos.
  • Análise do arquivo smb.conf● case sensitive = no ● Permite que os nomes dos arquivos/diretórios tenham as letras maiúsculas/minúsculas mantidas.● unix charset = iso8859­1 ● Seleciona o conjunto de caracteres dos arquivos exibidos pelo Samba.● display charset = cp850 ● Seleciona a página de código do Samba que irá tratar dos caracteres. As opções unix charset e display charset são usadas para que o samba respeite a acentuação dos arquivos na hora de realizar a gravação em disco.
  • Arquivo smb.conf[global]   workgroup = Laboratorio   netbios name = lab­samba   server string = PDC   security = user   encrypt passwords = true   passdb backend = tdbsam   unix password sync = yes   passwd program = /usr/bin/passwd %u   smb passwd file = /etc/samba/smbpasswd   admin users = root   domain logons = yes   os level = 80
  • Arquivo smb.conf   logon path = %Lprofiles%U   logon drive = H:   logon home = %Lhomes%U   logon script = logon.bat   domain master = yes   preferred master = yes   local master = yes   preserve case = yes   short preserve case = yes   case sensitive = no   unix charset = iso8859­1   display charset = cp850
  • Arquivo smb.conf[homes]   comment = Diretorio Pessoal   path = /srv/samba/homes/%U   browseable = no   read only = no   valid users = %S[netlogon]   comment = Network Logon Service   path = /srv/samba/netlogon   browseable = no   read only = yes   guest ok = yes   share modes = no
  • Arquivo smb.conf[profiles]   comment = Perfis Moveis   path = /srv/samba/profiles   guest ok = yes   browseable = no   read only = no
  • Configurações adicionais Para que os usuários Windows possam efetuar login no domínio énecessário que tanto o host quanto o usuário estejam cadastrados no Linux eno Samba. No arquivo, especificamos que o root irá realizar esse procedimento(diretiva admin users = root). Para adicionar a conta root no samba, executar ocomando abaixo: # smbpasswd ­a root Também é necessário criar os diretórios definidos no arquivo smb.conf: # mkdir /srv/samba/homes # mkdir /srv/samba/profiles # mkdir /srv/samba/netlogon
  • Configurações adicionais Para checar se os diretórios foram criados: # ls ­l /srv/samba Alterar as permissões dos diretórios criados: # chmod 775 /srv/samba/homes # chmod 775 /srv/samba/profiles # chmod 775 /srv/samba/netlogon # chown root:users /srv/samba/profiles Cada máquina cliente Windows deverá ter uma conta de máquina noservidor Linux, ou seja, no samba. Conta de máquina nada mais é do que um usuário no servidor que tenha omesmo nome da máquina Windows.
  • Configurações adicionais Criando a conta de máquina: #  useradd  ­c  “HOSTNAME”  ­d  /dev/null  ­g  users  ­s  /dev/null cliwin$ # smbpasswd ­m ­a cliwin OBS: cliwin é o nome da máquina cliente Windows. Criar o usuário que irá autenticar no samba: #  useradd  ­c  “Aluno  User”  ­m  ­d  /srv/samba/homes/aluno  ­g  users ­s /bin/false aluno Atribuir senha para o usuário criado: # smbpasswd ­a aluno
  • Configurações adicionais Agora já podemos começar a inserir as máquinas no domínio. Para isso, na máquina Windows, acesse na Área de Trabalho -> MeuComputador -> Propriedades, e adicione a máquina no domínio. Com isso, na máquina Windows poderemos realizar login com os usuárioscadastrados no domínio Unix do Samba, que nós criamos no exemplo.
  • Configurações adicionais Na janela “Alterações de nome do computador, clicar em “Domínio” e inserir o nome do domínio especificado no arquivo smb.confEm “Propriedades do sistema”, clicarem “Alterar”
  • Configurações adicionais Em seguida, a máquina tera ingresso no domínio. É necessário reiniciar o Windows para que as alterações entrem em vigor.Será solicitado o nome do usuárioque tem permissão para ingressarno domínio; no caso, o root.
  • Configurações adicionaisApós reiniciar, informar o usuário cadastrado no samba, a senha e na opção“Fazer logon em:”, selecionar o domínio:
  • Referências● OFFICIAL SAMBA-3 HOWTO AND REFERENCE GUIDE, THE (2ND EDITION) (BRUCE PERENS OPEN SOURCE SERIES); TERPSTRA, John H; VERNOOI, H.; JELMER, R. J; 2ª. Ed; Prentice Hall Professional Technical Reference; 2003● SAMBA 3 – GUIA RÁPIDO DO ADMINISTRADOR DE REDES; BOAS, Tiago V.; MENDONÇA, N.; 3ª. Ed; São Paulo; Brasport; 2006● Página oficial do projeto Samba. Disponível em: <http://samba.org/>. Acessado em Agosto/2011.