Integração Windows e Linux com Samba
Session Message Block - SMB Software livre, que permite que máquinas Unix/Linux e Windows convivam harmoniosamente em uma mesma rede Sistemas Windows em geral e OS/2 utilizam o protocolo SMB nativamente para realizar compartilhamento de arquivos e impressão em rede. Foi desenvolvido originalmente pelas empresas 3Com e Microsoft. O SMB é utilizado pelo NetBIOS, um conjunto de serviços sobre o protocolo SMB que foi padronizada por ocasião das primeiras experiências de ligas PC s em rede NetBIOS é um protocolo da camada de aplicação, e define que cada nó da rede possui um nome de até 15 caracteres. Serviço de datagrama e serviço de nomes Padronizados no RFC 1001 e RFC 1002 respectivamente
Session Message Block - SMB O SMB é o protocolo que transporta os serviços de compartilhamento de arquivos e impressoras NetBIOS pode operar sobre os seguintes protocolos de transporte: TCP/IP,NetBEUI e IPX/SPX (novell) NetBEUI é uma implementação de NetBIOS sobre a subcamada LLC (padrão IEEE) TCP/IP e IPX/SPX são realmente protocolos de transporte/rede (arquitetura RM-OSI) Desvantagem (NetBEUI) Protocolo que exige que todas as máquinas estejam na mesma rede física (barramento)! É preciso traduzir os nomes NetBIOS (UNIQUE e GROUP) para os endereços IP ou IPX, conforme protocolo utilizado
Resolução de Nomes NetBIOS NetBIOS utiliza nomes para identificar as máquinas, e os protocolos inferiores utilizam endereços numéricos. Uma forma de resolução de nomes é necessária! NetBEUI, a tradução de nomes será diretamente para endereços físicos 802.3 (Ethernet) IP, a tradução será de nomes para endereços IP (semelhante ao DNS) IPX, a tradução será de nomes para endereços IPX (são constituídos do endereço 802.3 mais um prefixo que identifica a rede a que pertence a máquina) Resolução de nomes NetBIOS pode ser feita de duas formas: por difusão (broadcast) por requisição direta a um servidor de nomes (point-to-point)
Resolução de Nomes NetBIOS - Broadcast Uma máquina simplesmente envia por difusão na rede um anúncio do nome que deseja utilizar. Se não houver objeção por parte de outra máquina que já esteja utilizando o nome, ela então o adota como sendo o seu. Na transmissão, ela também envia por difusão uma pergunta pelo nome destino. A máquina destino, escutando a requisição, responde com seu endereço (semelhante ao protocolo ARP utilizado na camada de acesso à rede - arquitetura TCP/IP)
Resolução de Nomes NetBIOS - Servidor de Nomes É apenas possível quando se utiliza NetBIOS sobre TCP/IP Implementação denominada WINS (Windows Internet Name Services) Resolve o problema de excesso de broadcast na rede em decorrência da resolução de nomes Registro de nome: Contacta o servidor WINS Máquinas que não registrarem ao servidor WINS, ficarão invisíveis Processo de registro: É realizado assim que o protocolo entra no ar Retirada de nome do servidor (quando a máquina for desligada)
Samba - Origens Integrar sistemas Windows e Unix, implementar o protocolo SMB no lado UNIX (SMB - nativo S.O.Windows) Não é necessário a instalação de software adicional no lado Windows! Desenvolvido originalmente por Andrew Tridgell (1992), na época estudante de PhD da Universidade Nacional Australiana em Camberra Algumas Plataformas: UNIX Distribuições Linux FreeBSD Informações adicionais, downloads, FAQs, outros http://www.samba.org
CIFS O protocolo SMB foi recentemente rebatizado com o nome CIFS (Common Internet File System) 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 Servidor e clientes trocam mensagens a fim de acessarem recursos neste servidor Isso é feito através das Server Message Blocks (SMB).
O protocolo SMB /CIFS O Samba é o código aberto da implementação do CIFS para Linux! O protocolo SMB é bastante complexo e foi extensivamente modificado pela Microsoft nos últimos anos para atender às suas necessidades O Samba implementa o protocolo SMB sobre TCP para compartilhamento de arquivos e UDP para browsing. SMB pode também ser executado sobre outros protocolos de transporte como por exemplo IPX e NetBEUI. A estratégia da Microsoft é abandonar estes protocolos de transporte e concentrar-se no TCP/IP
Terminologia (1) CIFS - Common Internet File System (SMB) NBT - NetBIOS over TCP WINS - versão não broadcast do protocolo UDP/137 NBT Local Browse Master (LBM) - computador em cada subrede que coleta anúncios de hosts e os combina Domain Master Browser (DBM) - máquina do domínio que combina as listas de computadores enviadas pelos LBMs
Terminologia (2) Workgroup - conjunto de máquinas que compartilham uma lista comum Domain - um grupo de trabalho (workgroup) que inclui um servidor central de autenticação Domain Controller - a máquina no domínio que sedia o banco de dados de autenticação
Terminologia (3) Domain Logon - processo através do qual as máquinas clientes autenticam seus usuários por meio de acesso a um servidor remoto Logon Server - máquina que aceita pedidos de logon no domínio
Samba - Segurança O Samba foi escrito com atenção especial para a segurança. Oferece muito mais opções de segurança que outros pacotes para compartilhamento de arquivos As versões anteriores a 1.9.17p2 são inseguras. Não as utilize Provê suporte a senhas SMB criptografadas ou senhas UNIX. Pode utilizar os serviços de um servidor NT para verificação de usuários Todas as operações em arquivos são realizadas apenas para usuários autenticados. Por default não é definido o usuário guest NUNCA se sobrepõe aos mecanismos de segurança do UNIX
Portabilidade O Samba foi escrito para ser portável e não requer alterações a nível kernel Já foi portado para plataformas não UNIX como OS/2, Novell Netware, VMS e AmigaOS Em algumas empresas roda em supercomputadores Cray e Convex
Escalabilidade O Samba cria um processo UNIX para cada usuário conectado Cada usuário requer por volta de 600 a 800 k de memória dependendo do tipo de utilização feito Empresas comerciais têm utilizado Samba em larga escala com mais de 500 usuários concorrentes O Samba pode ser executado como um processo residente (stand-alone daemon) ou acionado através do servidor inetd Recomenda-se o uso do Samba como processo residente (daemon) para obter-se um melhor desempenho
Iniciando o Samba O samba é composto por dois processos: smbd e nmbd O smbd é o servidor propriamente dito O nmbd é responsável pela resolução de nomes (via broadcast ou via protocolo WINS) Preferencialmente iniciar durante o boot do sistema Dois processos rodam como daemons Comandos./etc/rc.d/initd/smb stop./etc/rc.d/initd/smb restart./etc/rc.d/initd/smbstatus./etc/rc.d/initd/smb start
Configurando o samba - arquivo smb.conf Toda a configuração do Samba é feita a partir do arquivo smb.conf Formato similar ao arquivo WINDOWS.INI Uma enorme quantidade de opções muito bem documentadas. A documentação do arquivo smb.conf pode possuir 75 páginas. A maioria das opções não precisam ser alteradas visto que as definições padrão funcionam perfeitamente. A configuração do arquivo smb.conf requer a alteração de pouquíssimos parâmetros Localização padrão (distribuições Linux) /etc/smb.conf
Considerações - arquivo smb.conf Consiste de seções e parâmetros Cada seção é identificada por um nome de serviço entre colchetes Seções contêm parâmetros na forma nome = valor Cada linha no arquivo corresponde a um comando, podendo continuar na linha seguinte adicionando \ Não há distinção entre maísculas e minúsculas Espaços extras são descartados Um ponto-e-vírgula (;) inicia um comentário
Opções - Samba (smb.conf) Os valores nos parâmetros podem ser strings, valores numéricos ou valores booleanos, podendo ser yes/no, true/false, ou 0/1 Existem três seções especiais: [global]: parâmetros nesta seção aplicam-se ao servidor em si, ou definem valores default para os outros serviços [homes]: esta seção permite que usuários conectemse diretamente a seus diretórios homes. O samba mapeia o serviço homes para o nome de login correspondente [printers]: a seção printers é um serviço automático, que lê o arquivo /etc/printcap, e apresenta todas as impressoras encontradas automaticamente
Opções - Samba (smb.conf) Principais opções para a seção [global] workgroup = string (grupo de trabalho do servidor) server string = string (será mostrada como comentário ao lado do nome do servidor em um cliente smb) status = yes/no (mantém ou não os estados das conexões - programa smbstatus) wins support = yes/no (permite que o nmbd atue como um servidor WINS) security = user (autenticação local - arquivo passwd), server (servidor Windows NT/2000), share (windows workgroups) password server = string (nome do autenticador - NT/2000)
Opções - Samba (smb.conf) Principais opções para a seção [global] share modes = yes/no (habilita ou desabilita Iocking para arquivos) lock directory = string (diretório onde os arquivos criados para Iocking serão criados) log file = string (nome do arquivo de log) Principais opções para a seções comuns comment = string (comentário sobre o serviço para os clientes) path = string (caminho do diretório compartilhado) browseable = yes/no (define se o serviço é visível para os clientes)
Opções - Samba (smb.conf) Principais opções para a seções comuns public = yes/no (requisita ou não uma senha para o serviço) writable = yes/no (se é permitida escrita ou não no diretório) read only = yes/no (sinônimo de writable, apenas com significado diferente) create mode = num (modo numérico de permissões de novos arquivos) valid users = string (lista de usuários separados por vírgula que tem acesso aos serviços). Grupos @ invalid users = string (lista de usuários separados por vírgula que não tem acesso aos serviços). Grupos @
Opções - Samba (smb.conf) Principais opções para a seções comuns write list = string (lista de usuários separados por vírgula que possuem direito de escrita no compartilhamento). Grupos @ em frente ao nome do grupo Obs: a variável %u sempre pode ser usada em substituição ao nome do usuário, e %m para o nome da máquina cliente.
smb.conf - Exemplo (1) [global] security=user workgroup = ccuec encrypt passwords = yes hosts allow = 143.106. 127. EXCEPT 143.106.10.2 include = /usr/local/samba/lib/smb.conf.%m [homes] browseable = no guest ok = no read only = no create mask = 0755
smb.conf - Exemplo (2) [printers] guest ok = no path = /var/spool/smbprint print ok = yes [cdrom] comment = CDROM Compartilhado path = /mnt/cdrom read only = yes locking = no
Observações Vários Sos para desktop possuem um cliente SMB Mais populares (família Windows da Microsoft) Microsoft utilizava uma implementação de SMB (NetBIOS) diretamente sobre Ethernet, chamada NetBEUI Como sistemas Unix utilizam como base o TCP/IP, o NetBIOS é encapsulado sobre o TCP/IP, o que é conhecido como NetBIOS over TCP/IP, que a microsoft chama de NBT Windows9x e Workgroups, deve-se instalar o TCP/IP Windows NT/2000, normalmente usam NBT
Outros componentes smbclient - Cliente smb para sistema UNIX smbmount - Monta o compartilhamento do Windows no Linux smbpasswd - Altera senhas (encriptadas) de usuários smb smbstatus - Apresenta a situação atual das conexões no Host testparm - Verifica o arquivo smb.conf (configuração do samba) testprns - Verifica a comunicação via rede com as impressoras
Utilizando o samba Testparm Smbclient L host (ver compart.) Smbclient //host/share passwd
Usuários e Senhas smbpasswd [opções] [nome do usuário] Cadastrar usuários no SAMBA smbadduser a [usuario]:descrição Trocar senha de usuários no SAMBA smbpasswd [usuario] Deletar usuários no SAMBA smbpasswd x [usuario]
Configurando estações win
Configurando estações win