Samba Introdução Fundamentos para criação de um domínio e serviços Windows em um servidor Linux. O convívio Unix x Windows • Uso crescente de máquinas Windows e Linux • Não vão ser parceiros • Mas podem compartilhar recursos • Este compartilhamento é possível através da suíte de protocolos CIFS CIFS • Common Internet File System – Nome criado pela Microsoft – “esconde” a rede e permite compartilhamento de discos e impressoras remotas como se fossem locais (com autenticação de usuários) – SMB: Server Message Block • O coração do CIFS – Versão melhorada do SMB CIFS • Para ter acesso aos serviços, um cliente na rede Windows precisa identificar o nome servidor e os nomes no domínio daquele servidor • Determinado o nome, é preciso “resolver” esse nome em um endereço de transporte (DNS ou NetBIOS) CIFS • Servidor e clientes trocam mensagens a fim de acessarem recursos neste servidor • Isso é feito através das Server Message Blocks (SMB). Historia • NetBIOS: sistema de redes simples para construção de LANs pequenas. – Grupo de programas armazenados em RAM que fornecia interface entre programas e hardware de rede. – Endereçamento de 16 bytes para identificar as estações e aplicativos de rede. NetBIOS - evolução • Microsoft incorpora ao DOS a capacidade de redirecionar I/O de disco para a interface NetBIOS – permite compartilhamento de disco na LAN ! • Este protocolo de compartilhamento de arquivos foi finalmente chamado de SMB, que mais tarde se tornou o CIFS. NetBIOS • Corresponde a camada de sessão do modelo ISO/OSI – atua como uma interface para aplicativo de rede – permite que o aplicativo estabeleça uma sessão com outro dispositivo e deixa que o protocolo de rede (transação e redirecionamento) passe a solicitação de um lado para outro. (NetBEUI) ! – Não manipula o dado. – Isso é feito através de comandos passados no NCB (Network Control Blocks) Estrutura de Camadas Importante • Cliente conectam-se a servidores com TCP/IP (NetBIOS sobre TCP/IP), NetBEUI ou IPX/SPX. • Estabelecida a conexão, cliente podem enviar comandos (SMBs) ao servidor que lhes permitem acessar “áreas compartilhadas” (shares), abrir arquivos, ler e escrever arquivos, e outras operações que se fazem no file system local NetBIOS e NetBEUI • NetBEUI: NetBios Enhanced User Interface – Formalizou o frame de transporte utilizado pelo NetBIOS. – Tornou-se o protocolo de transporte oficial da IBM/Microsoft. – Não é roteável – Mas há interconexão com TCP/IP (rfc 1001 e 1002), de forma a torná-lo roteável. • NBT NetBios sobre TCP/IP !!! Enquanto isso no Unix... • Pode-se usar um cliente NFS para DOS/ Windows par “ver” um file system do unix. • E como ficam os aplicativos que necessitam de NetBIOS? – Andrew Tridgell: criou uma implementação de SMB para Linux e para evitar conflitos de copyright, ao invés de smb procurou uma palavra próxima -> SAMBA Samba • É o código aberto da implementação do CIFS para Linux! • Além de Samba e Windows, a outras implementações de CIFS para OS/2, Macintosh e outros Unix´s • Samba foi portado para VMS, Netware, etc. Funcionalidade do SAMBA • • • • Serviços de Arquivos e Impressão Autenticação e Autorização. Resolução de Nomes Browsing (anúncio de serviços) – Lista de serviços (arquivos e impressoras compartilhadas) oferecidas pelos computadores • dois programas chaves compõem o Samba: – smbd e nmbd SMBD - Daemon • Responsável pelos: – Serviços de diretórios e impressão • quais (e como) arquivos e impressoras serão vistos pelas máquinas Windows. – autenticação de “share mode” e “user mode” • como proteger arquivos e impr. através de senhas. • Share mode: atribui uma senha para o diretório ou impressora • user mode: cada usuário tem senha para o serviço. Sistema de Domínio do Windows • Usuário “loga” uma única vez e tem acesso a todos os serviços autorizados naquela rede. – Tarefa feita por um servidor de autenticação conhecido como Controlador de Domínio (Domain Controller). Não confundir com DNS • Um domínio NT é um grupo de máquinas que compartilham um mesmo Domain Controller. NMBD Daemon • Responsável por: – resolução de nomes – Browsing • envolve tarefas como o gerenciamento e distribuição de listas de nomes NetBIOS. Resolução de Nomes • Broadcast – usado pelo NetBIOS original: um cliente que procura por uma máquina m1 anuncia na rede “onde você está?” e espera que a máquina de nome m1 responda. Isso gera tráfico de broadcast, mas é aceitável para uma LAN. Resolução de Nomes • NBNS (NetBIOS Name Service): WINS – As máquinas deixam seus nomes e números em um servidor (daí, servidor WINS) para que os outros vejam. – O servidor WINS mantém isso em um Banco. – Quando um cliente quer falar com outro, este manda o nome do destino para o servidor que retorna o seu número. – Permite que isso funcione não apenas em redes locais Browsing • Eleição para escolher quem será o Local Master Browser (LMB) – retém um nome NetBIOS especial (além do seu nome usual) – Mantém a lista de serviço que aparece na sua janela “Window Neighbourhood” na rede local • Domain Master Browser (DMB) – coordena as listas entre Domínios de várias redes. – troca e combina listas com o LMB. Assim as listas podem ser propagadas por todos os hosts. WorkGroup X Domains • WorkGroup – coleção de máquinas onde cada qual define sua própria segurança. Segurança descentralizada • Domain: – Coleção de computadores para a qual a segurança é centralizada pelos Controladores de Domínio (Domain Controllers) • senhas, usuários, horas de uso, etc... Clientes e Servidores SMB • Clientes – smbclient, Microsoft clients (3.11, 95, NT ...) – smbfs • Servidores – – – – Samba Windows for Workgroups 3.11 Windows 95, NT, etc... LAN Manager Estrutura de um nome NetBIOS Recursos “Unique” do NetBIOS Named Resource Hexidecimal Byte Value Standard Workstation Service 00 Messenger Service (WinPopup) 03 RAS Server Service 06 Domain Master Browser Service (associated with primary domain controller) 1B Master Browser name 1D NetDDE Service 1F Fileserver (including printer server) 20 RAS Client Service 21 Network Monitor Agent BE Network Monitor Utility BF Comando NBTSTAT D:\> NBTSTAT -a hydra NetBIOS Remote Machine Name Table Name Type Status --------------------------------------------HYDRA <00> UNIQUE Registered HYDRA <03> UNIQUE Registered HYDRA <20> UNIQUE Registered ... Recursos “group” do NetBIOS Named Resource Hexidecimal Byte Value Standard Workstation group 00 Logon Server 1C Master Browser name 1D Normal Group name (used in browser elections) 1E Internet Group name (administrative) 20 <01><02>__MSBROWSE__<02> 01 Comando NBTSTAT D:\> NBTSTAT -a hydra NetBIOS Remote Machine Name Table,(continued) Name Type Status --------------------------------------------SIMPLE <00> GROUP Registered SIMPLE <1E> GROUP Registered ..__MSBROWSE__. <01> GROUP Registered Configuração Samba • Smb.conf – (dividido em [seções] e parâmetros) – [global] nesta seção todo o parâmetro configurado serve para todas as seções, salvo configuração específica. – [home] conexões com diretórios de trabalho e pessoais. Arquivo smb.conf # Global parameters [global] # Nome do Servidor atribuído no NetBios netbios name = LINUX # Num. IP da Interface do Servidor interfaces = 192.168.1.100/255.255.255.0 # Nome do Servidor SAMBA server string = LINUX %v %h # Utiliza senha criptografadas encrypt passwords = yes ...arquivo smb.conf # Arquivo onde as senhas do SAMBA irão ser gravadas smb passwd file = /etc/smbpasswd # Informa que o update da senha será criptografado update encrypted = yes # Aceita senha vazia null passwords = yes # Arquivo de logs do SAMBA log file = /var/log/samba/log.%m # Tamanho máximo do arquivo de log em Kilobytes max log size = 50 ...arquivo smb.conf # Verifica o estado da conexão. keepalive = 20 # Esta opçao incrementa o velocidade de acesso socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # Arquivos onde se encontram as definições das impressoras printcap name = /etc/printcap # O nivel de eleição do servidor de dominio. Default e' 20 os level = 20 # Nao utiliza DNS com servidor proxy dns proxy = No # Suporte para utilizar servidores WINS wins support = no hosts allow = 192.168.1. 192.168.2. 127. ...arquivo smb.conf # Modo compartilhado de arquivos share modes = yes # Tipo de Autenticação security = user # Preserva o nome dos arquivos preserve case = yes # Sincroniza a senha com o LINUX unix password sync = no # Indica qual o programa que ira autenticar as senhas passwd program = /usr/bin/passwd # Nome do grupo do ambiente Windows workgroup = curso # Este parametro e' somente usado com security=share, o valor default e' never map to guest = never ...arquivo smb.conf #Faz a combinaçao entre maiusculas e minusculas da senha ate n caracteres. password level = 32 # Elege um servidor para nmbd, caso utilize servidor de senha NT coloque este item como yes preferred master = yes # Utilizado para configurar um expecifico dominio, somente utilizado para que o SAMBA autentique os usuarios no NT domain master = yes ...arquivo smb.conf # Dominio master esta localizado no Linux local master = yes # Auto-desconexao dead time = 0 # Sincroniza a data/hora do Servidor e dos clientes time server = True # Nivel de debug do sistema debug level = 0 # Carrega as Impressoras load printers = yes ...Exemplo arquivo smb.conf Smb.conf Mapeamentos • No diretório /home/netlogon, adicionar o arquivo %U.bat. – – – – – Net time \\linux /set /yes. Net use y: \\linux\projetos. . . . Variáveis de substituição • Variável Descrição – – – – – – – – %S Nome do serviço (compartilhamento) atual. %u Nome do usuário. %g Nome do grupo. %H Nome do diretório pessoal do usuário (HOME). %m Nome da máquina utilizada pelo usuário (ex. pc1001). %L Nome do servidor NetBIOS. %M Nome Internet da máquina cliente. %a Nome do sistema operacional da máquina do cliente (ex.wfw, win95,WinNT). – %I Número IP da máquina cliente. – %T Data e horário. Parâmetros • Admin users (S) – Usuários que terão privilégios de administração do compartilhamento, com poderes de superusuário no samba. Exemplo: • admin user = l.linux, d.linux • announce as (G) – Especifica Servidor de Nomes NetBIOS que será divulgado na rede. O padrão é igual a Windows NT. As opções válidas são "NT", "NT Server", "NT Workstation", "Win95". Exemplo: • Announce as = Win95 • browseable (S) – Controla se o compartilhamento será visualizado na lista de recursos disponíveis. • browseable = Yes ...Parâmetros • comment (S) – Contém o texto que será visualizado pelo usuário quando solicita uma lista de recursos disponíveis na rede. Exemplo: • comment = Servidor Linux • copy (S) – Permite que a seção atual seja uma cópia de qualquer seção anterior. Exemplo: • Copy = home • create mode (S) – Define as permissões que serão utilizadas na criação de arquivos no recurso compartilhado. Exemplo: • create mode = 0775 ...Parâmetros • guest account (S) – Define o nome do usuário usado para acessar os compartilhamentos definidos com o parâmetro guest ok'.Exemplo: • guest account = tatu • guest ok (S) – Caso yes', não solicita senha ao usuário. Os privilégios serão iguais aos determinados para a conta "guest account“. Exemplo: • guest ok = yes • hosts deny (S) – Hosts sem permissão de acesso. Exemplo: • hosts deny = 150.203.5. máquina.domínio.com.br ...Parâmetros • hosts allow (S) – Hosts com permissão de acesso. • hosts allow = 192.168.1. EXCEPT 192.168.1.60 • allow hosts = 192.168.1. • load printers (G) – Determina se as impressoras definidas no printcap serão disponibilizadas na lista padrão de recursos. Exemplo: • load printers = yes • max connections (S) – Número máximo de conexões simultâneas a um determinado serviço. Exemplo: • max connections = 10 ...Parâmetros • path (S) – Caminho do Diretório de acesso. Exemplo: • path = /home/arquivos • printer (S) – Nome da impressora para a qual os serviços de impressão serão enviados. Exemplo: • printer name = laserwriter • workgroup (G) – Grupo de trabalho do servidor ou domínio quando "security=domain". Exemplo: • workgroup = Linux ...Parâmetros • security (G) – Forma de Autenticação. opções: • • • • • "security=share": senhas por recurso compartilhado. "security=user": senha por usuário. "security=server": validação em um server SMB ex. NT. "security=domain": somente se num dominio NT. Exemplo: – security = USER ...Parâmetros • writeable (S) – Permitida a criação ou modificação de arquivos no diretório compartilhado. Exemplos: • read only = no • writeable = yes • write ok = yes Utilizando o Samba • Testparm. • Smbclient –L host. (ver compart.) – Smbclient //host/share passwd (usar share) Usuários e senhas • smbpasswd [opções] [nome do usuário] – Cadastrar usuários no SAMBA • smbpasswd –a [nomedousuario] – Deletar usuários no SAMBA • smbpasswd –x [nomedousuario] – Habilitar usuários no SAMBA • smbpasswd –e [nomedousuario] – Desabilitar usuários no SAMBA • smbpasswd –e [nomedousuario] Configuração estação win ... Configuração estação win Adm via Web • Swat. (instalar) – Inetd.conf liberar swat. – Verificar se a porta 901 está configurada no arquivo services. – http://host:901/. Samba – Pré-requisitos • Rede deve estar corretamente instalada e configurada. • As estações Windows® devem utilizar o protocolo TCP/IP. • • • • samba linuxconf-samba samba-clients (opcional) samba-swat (opcional) Samba - Configuração • Smb.conf Este arquivo determina os recursos compartilhados e restrições do sistema. • Este arquivo é constituído de sessões com cabeçalhos. [global][homes][printers]... • A seção [global] define variáveis que Samba usará para definir o compartilhamento de todos os recursos. • A seção [homes] permite aos usuários remotos acessar seus diretórios home na máquina Linux. O que pode ser feito com SAMBA • 1. Compartilhar uma unidade de Linux com máquinas Windows. • 2. Compartilhar uma unidade de Windows com máquinas Linux. • 3. Compartilhar uma impressora de Linux com máquinas Windows. • 4. Compartilhar uma impressora de Windows com máquinas Linux. Opções de serviço • Configuração Base. – – – – – Gerenciador de contas do SMB. Descrição do Servidor. Grupo de trabalho. Nome do NetBios(opc). Apelidos do NetBios(opc). ...Opções do serviço • Senhas. – – – – – Modo de Autenticação. Mapear para guest. Servidor de Senha. Nivel de senha. Programa Password. • Acesso – Permite/proíbe máquinas. ...Opções do acesso • Colocando em rede. – – – – – – Nível de OS. Anúncio remoto. Navegadores remotos síncronos. Servidor Wins. Interfaces. Ordem de resolução de nomes. ...Opções do serviço • Contas automáticas. – Adiciona script do usuário. – Apaga script do usuário. • Características. – – – – – Conta convidado. Tempo limite de inatividade. Nível de depuração. Serviço padrão. Comando WinPopup