Felipe Leveck Barreto
1 Samba como compartilhador de arquivos & impressora O Samba surgiu da necessidade de integrar redes mistas (Windows com Linux). No Linux, há duas maneiras de se fazer isso, que é pelo uso do NFS e Samba. O Samba é a solução mais completa, pois possui várias opções de configuração. E o melhor é que permite que os compartilhamentos sejam vistos tanto pelo Linux quanto pelo Windows. A função do Samba é compartilhar recursos, como arquivos, diretórios, impressoras, fazer autenticação de usuários etc. O nome Samba não tem nada a ver com o ritmo musical aqui do Brasil. Esse nome surgiu por causa do protocolo SMB Server Message Blocks. A evolução do SMB se chama hoje CIFS. O Samba é dividido em 2 módulos: O servidor propriamente dito e cliente, que permite acessar compartilhamentos em outras máquinas (Linux e Windows). OBS: Os 2 módulos são independentes, ou seja, você pode instalar só o servidor onde você pretenda compartilhar arquivos, e o cliente somente para desktop. Pacotes: Vamos focar no Debian (pacotes). Servidor: samba Cliente: smbclient Documentos: samba-doc Filesystem: smbfs Instalando: # aptitude install samba # aptitude install smbclient # aptitude install samba-doc # aptitude install smbfs 1
2 No CentOS/Fedora: # yum install samba # yum install samba-client # yum install samba-doc Para descobrir a versão do Samba que você instalou: # smbd -V Version O arquivo principal do Samba é o /etc/samba/smb.conf. Faça um backup do original e depois escreva um novo arquivo do zero. # cp /etc/samba/smb.conf /etc/samba/smb.conf.original O arquivo que iremos usar é o smb.conf. O ideal na primeira configuração é partir do zero. Isso força você a escrever as diretivas do arquivo e você vai familiarizando com a estrutura do arquivo. É importante lembrar que o comentário usado nas linhas responsáveis pelo funcionamento do Samba é representado por ponto e vírgula ; É importante manter esse padrão. Após esses ajustes iniciais, edite o arquivo smb.conf: # vi /etc/samba/smb.conf 2
3 /etc/samba/smb.conf é organizado por seções. A principal é: [global] Esta seção é responsável pelas diretivas gerais, como nome da máquina servidora Samba, grupo de trabalho ou domínio, se vai agir como PDC ou não etc. Outras seções que usaremos: [homes] É a mais importante quando falamos em compartilhamento, nela ficarão os homes dos usuários. Aqui definimos permissões de como será esse compartilhamento, o caminho de onde ficarão esses diretórios etc. [printers] Seção responsável por definir o compartilhamento da impressora. [netlogon] Essa seção será usada se o Samba atuar como PDC da rede. Conterá o arquivo de script de login que será executado pelas estações. [profiles] Essa seção será usada se o Samba atuar como PDC da rede. Ela é responsável por indicar onde ficará o caminho do diretório que conterá os perfis dos usuários. Além dessas seções, você pode criar outras a fim de fazer outros compartilhamentos. Nesse exemplo que vou mostrar agora, vou usar as seções [global], [homes], [printers] e vou criar uma seção extra chamada [publico]. Vai funcionar assim, primeiro é mostrada toda a seção e explicada linha por linha de cada uma. 3
4 [global] workgroup = 4Linux netbios name = spartacus server string = Servidor Samba printcap name = /etc/printcap load printers = yes printing = cups log file = /var/log/samba/log.%m max log size = 1000 encrypt passwords = true unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully*. smb passwd file = /etc/samba/smbpasswd security = user veto files = /*.mp3/ interfaces = eth0 bind interfaces only = yes preserve case = no default case = lower 4
5 Explicando linha por linha. [global] Define a seção em que os parâmetros vão ser definidos. workgroup Define o grupo de trabalho dentro da rede Microsoft netbios name Define o nome da máquina em que o servidor Samba está. server string Comentário sobre o computador. Fica a seu critério. printcap name Define o nome do arquivo que contém o nome da impressora. load printers Define se a lista de impressoras em /etc/printcap será compartilhada automagicamente. Obs: A impressora já deverá estar instalada! O Samba não instala, nem configura a impressora, apenas compartilha. printing Define o tipo do servidor de impressora. Pode ser cups, lprng, bsd, hpux etc. log file Define a localização de onde ficarão os logs; %m indica o log da máquina em questão. Se tenho uma máquina chamada leo e outra maria, terei o log para cada máquina Windows nesse diretório. 5
6 max log size Define o tamanho máximo do log em KB. encrypt passwords = true Faz com que as senhas sejam criptografadas. Deixe como true. unix password sync Para manter as senhas dos usuários sincronizadas em relação às senhas deles no sistema passwd program & passwd chat Diretivas necessárias para que o passwd funcione corretamente. smb passwd file = /etc/samba/smbpasswd smbpasswd é um tipo de backend. Backends permitem armazenar senhas encriptadas e outras informações referentes aos usuários. O smbpasswd é o backend mais simples. Nele, as senhas são salvas no arquivo /etc/samba/smbpasswd e são transmitidas de forma encriptada através da rede. A vantagem do smbpasswd é que ele é um sistema bastante simples, pois as senhas são armazenadas em um arquivo de texto. Se você quer apenas configurar um servidor Samba para compartilhar arquivos e impressoras, sem usá-lo como PDC, então o smbpasswd funciona bem. A outra opção é mostrada na apostila de Samba como PDC. 6
7 security Define se a segurança será baseada no login do usuário ou com base no compartilhamento. Opções: user Usa login e senha. É o mais recomendável, para que isso realmente funcione você terá que criar usuários no Linux e no Samba (veremos como fazer, logo adiante) share (modo obsoleto) Compartilhamento. É usada mais em pequenas redes que não é necessário preocupar-se tanto com segurança. ATENÇÃO! O Samba exige que você crie um usuário no sistema e depois no próprio Samba. Funciona assim: Usuários Samba: usados para autenticação; Usuários de sistema: usados para trabalharmos com permissões, home etc. Preciso primeiro ter o usuário no sistema, depois o crio no Samba. Para criar um usuário no Samba: # smbpasswd -a leo Onde -a é de add(adicionar) Mais detalhes sobre isso mais na frente. :-) 7
8 veto files = /*.mp3/ Dessa maneira eu veto a gravação de certos tipos de arquivos no compartilhamento. Vamos para a outra linha: interfaces = eth0 bind interfaces only = yes Caso o servidor tenha mais de uma placa de rede,você pode colocar para escutar apenas na interface eth0 por exemplo. É importante falar que o Samba escuta em todas as interfaces por padrão. Dica de segurança: Se não existir um firewall ativo, os compartilhamentos podem ficar expostos para a internet. O Linux é case sensitive, mas o que significa isso mesmo? Que ele diferencia maiúsculas de minúsculas, isto é: SAMBA é diferente de samba. Já o Windows é case insensitive. Para amenizar esse problema você pode fazer com que todos os nomes de arquivos salvos no compartilhamento sejam forçados a ser minúsculos. preserve case = no default case = lower 8
9 [homes] valid users = %S comment = Diretorio pessoal browseable = no writable = yes create mask = 0600 directory mask = 0700 Para deixar um Samba realmente funcional, você precisará usar seus conhecimentos sobre administração de usuários e permissões. [homes] Define o nome da seção. valid users = %S Indica que apenas o próprio usuário pode ter acesso ao seu diretório home. comment Define um comentário. Fica a seu critério. browseable no Define se o compartilhamento ficará visível no Windows Explorer (Ambiente de rede). Nesse caso está como no e com isso o usuário vê apenas seu diretório. writable Define se o compartilhamento poderá ser escrito. É muito importante deixar habilitado como yes! Afinal, o usuário vai querer usar gravar sem seu home. create mask Define permissão para criação de arquivos. 9
10 directory mask Define permissão para criação de diretórios. Agora, será criada uma seção por minha conta. É em diretórios assim, principalmente, que devemos aplicar nossos conhecimentos de administração de usuários e permissões! [publico] path = /mnt/publico available = yes writable = yes write list guest ok = yes [publico] Define o nome da seção. path Define o caminho do diretório que será compartilhado. Obs: O diretório deve ser criado antes de iniciar o servidor Samba. Definindo permissões: # mkdir -p /mnt/publico # groupadd amigos # adduser maria # adduser joao # gpasswd -a maria amigos # gpasswd -a joao amigos # chmod -R 3770 /mnt/publico # chown -R root.amigos /mnt/publico 10
11 available Define se o compartilhamento estará ativo ou não. writable Define se o compartilhamento poderá ser usado para escrita. Agora, quero deixar outras opções que vocês poderão usar no lugar das opções já apresentadas. Vejam: valid users = maria,joao Define que apenas os usuários maria e joao terão poder no diretório (leitura e escrita). Outra opção: write list = maria,joao Aqui você cria uma lista de escrita. Se quiser definir para um grupo, faça assim: write list Posso usar a diretiva: guest ok = yes Para permitir quem não faz parte da lista o poder de ao menos ler o compartilhamento. Outra opção: hosts allow = , Define que só os usuários com esses ips tenham permissões. 11
12 [printers] comment = HP692C path = /var/spool/samba browseable = yes writable = no printable = yes Já se sabe a maioria das diretivas, então um comentário a fazer muito importante: A opção writable deve ficar como no mesmo, pois a gravação será permitida por meio do spool de impressão, que é quem controla a impressão, somente. Para compartilhamento de diretórios e impressora é isso. Já pode salvar o arquivo. Adicione os usuários no Samba: # smbpasswd -a joao # smbpasswd -a maria E para remover como faríamos? # smbpasswd -x joao Antes de colocarmos o Samba para funcionar podemos ver se o arquivo está correto. Para isso, usamos: # testparm Ele indica erros no arquivo. 12
13 Se estiver tudo certo, podemos iniciar o servidor Samba! /etc/init.d/samba start Você já pode ir em um cliente Windows e testar para ver o compartilhamento. Para complementar! As portas usadas pelo Samba são: 137 que é usada pelo daemon nmbd, responsável pela navegação nos compartilhamentos de rede; 138 usada pelo nmbd para a resolução dos nomes das máquinas da rede; 139 usada pelo daemon smbd, o componente principal do Samba, responsável pelo compartilhamento de arquivos e impressoras. 445: usada pelos clientes Windows 2000, XP e Vista para navegação na rede. 13
FACULDADE CAMPO REAL ESTER DE ARRUDA CAMPOS LUCAS PAULO ZUKOVSKI
FACULDADE CAMPO REAL ESTER DE ARRUDA CAMPOS LUCAS PAULO ZUKOVSKI AUDITORIAS E LIXEIRAS USANDO O SAMBA: compartilhamento de arquivos com acesso total em redes mistas GUARAPUAVA 2008 ESTER DE ARRUDA CAMPOS
Introdução ------------------------------------------------------------
Manual de Configuração do SAMBA Por: Victor Zucarino / Atualização 7.0 - Agosto de 2002 Introdução Instalação Configuração Conhecendo os Parâmetros Seção [global] Seção [homes] Demais Seções Testando o
Manual de Configuração do SAMBA Manual de Configuração do SAMBA Por: Victor Zucarino / Atualização 7.0a - Agosto de 2002 Tel: 219765-5230 vffzbr@yahoo.com.br -------------------------------------------------------------------
FUNDAÇÃO DE ESTUDOS SOCIAIS DO PARANÁ INSTITUTO DE CIÊNCIAS SOCIAIS DO PARANÁ CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO SAMBA
FUNDAÇÃO DE ESTUDOS SOCIAIS DO PARANÁ INSTITUTO DE CIÊNCIAS SOCIAIS DO PARANÁ CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO SAMBA CURITIBA 2005 ALEXANDRE DIEGO SETNER JOSÉ ALTAIR RIBEIRO JUNIOR SAMBA
R: Insira a seguinte linha no arquivo /etc/hosts das estações:
Apendice I - DNS 1ª Etapa - Inicialmente, iremos compreender o conceito de resolução a partir do arquivo /etc/hosts de nomes e a utilização dos comandos de clientes para consulta em uma base DNS. 1- Vamos
Integração de Linux com Windows utilizando Samba
Introdução Através do Samba é possível a integração entre máquinas que possuam sistemas operacionais Linux e Windows. O Samba é um conjunto de aplicações baseadas no protocolo SMB (Server Message Block),
CENTRALIZAÇÃO DOS SERVIÇOS DE INTRANET EM UMA REDE COM SISTEMAS OPERACIONAIS HETEROGÊNEOS
UniCEUB Centro Universitário de Brasília FATECS Faculdade de Tecnologia e Ciências Sociais Aplicadas Curso de Engenharia da Computação Projeto Final CENTRALIZAÇÃO DOS SERVIÇOS DE INTRANET EM UMA REDE COM