Samba: servidor autônomo no Debian

Olá amigos!. Se quisermos ter um Servidor Independente (Standalone) para compartilhar recursos seja de nossa estação de trabalho; ou para um pequeno grupo de máquinas; ou para uma LAN sem um controlador de domínio no estilo Microsoft, é mais fácil fazer isso usando o Samba.

Existem algumas ferramentas gráficas para este fim, bem como a ferramenta para administrar o Samba via web "SWAT". Porém, recomendamos para iniciantes que começam manualmente neste mundo maravilhoso. Não é tão difícil ou diabólico como muitos pensam. E no processo você aprende muito sobre redes SMB / CIFS e sobre permissões e direitos em sistemas de arquivos Linux.

Antes de continuar, recomendamos a leitura:

Não vamos ver como compartilhar impressoras usando Samba. Para aqueles que desejam usar este pacote para esses fins, recomendamos a leitura da documentação que o acompanha, conforme indicado em Samba: introdução necessária. Você também pode ler o artigo CUPS: como usar e configurar impressoras de maneira fácil.

Pontos fundamentais a considerar

  • Apesar de toda a aura que cerca Active Directories e seus Domain Controllers, que em várias ocasiões não são necessários ou mal explorados, instalar e configurar um Servidor Samba Independente É uma opção válida e confiável.
  • Um Servidor Independente pode ser tão seguro ou inseguro de acordo com nossas necessidades, e podemos configurá-lo de forma simples ou complexa.
  • A autenticação do usuário é feita no próprio servidor onde residem os recursos.
  • Para que um usuário possa acessar recursos de um computador remoto, ele também deve estar registrado na base de usuários do Samba.
  • Só podemos adicionar ao banco de dados de usuários do Samba aqueles usuários que já existem em nosso servidor ou máquina desktop.
  • Um servidor Samba independente NÃO fornece login de rede, como um controlador de domínio faz. Também não fornece login para um domínio.
  • Quanto menos alterarmos e / ou adicionarmos parâmetros ao arquivo /etc/smb.conf Sem antes saber em detalhes o que queremos alcançar, será Muito Melhor.
  • O serviço de compartilhamento de recursos no Samba funciona no sistema de arquivos Linux, incluindo sua segurança inerente. Muitos problemas são resolvidos prestando-se a devida atenção às permissões de arquivo e diretório.
  • É essencial entender como lidar com o comportamento do sistema de arquivos a partir do arquivo smb.conf, bem como compreender como funciona a segurança do sistema de arquivos UNIX / Linux.
  • Recomendamos não usar acentos, eñes ou espaços nos nomes de pastas e recursos compartilhados. De preferência, use letras minúsculas para nomes.
  • Os nomes de compartilhamento não podem ser repetidos em uma LAN. Cada nome é único.
  • Se NÃO houver servidor WINS em nossa LAN, podemos fazer com que nosso Samba aja como tal adicionando o «global»Do arquivo smb.conf o parâmetro ganha suporte = Sim., o que é altamente recomendado.

Servidor de amostra

Nome: ofegante. Domínio: friends.cu. IP: 10.10.10.20. Usuários: xeon, zeus e triton. Grupos adicionais: contadores

instalação

Por meio do Synaptic ou do console, instalamos o pacote samba.

sudo aptitude instalar samba

É muito útil instalar também o pacote smbclient. Vamos usá-lo para verificações.

No processo, os pacotes serão instalados - mas já instalamos alguns outros relacionados ao Suite- samba samba-comum, samba-common-bin y ferramentas tdb. Além disso, o arquivo é criado /etc/samba/smb.conf. Este arquivo será criado enquanto os pacotes estiverem instalados samba-comum y samba-common-bin, e não será excluído do sistema até que sejam desinstalados.

O arquivo smb.conf é o mais importante no Samba Suite

O Samba tem um grande número de opções de configuração, a maioria das quais não são mostradas no exemplo de smb.conf que é instalado por padrão. As opções comentadas com «;»São considerados importantes o suficiente para serem exibidos e seus valores padrão diferem dos padrões de comportamento do Samba. As opções de configuração comentadas com «#«, Têm padrões do Samba, e também são considerados importantes para exibir.

Se quisermos ver o conteúdo do arquivo sem considerar as opções comentadas com «;" ou com "#«, Devemos executar:

 egrep -v '# |; | ^ * $' /etc/samba/smb.conf

Se quisermos ver o conteúdo do arquivo sem considerar as opções comentadas com «#«, Devemos executar:

egrep -v '# | ^ * $' /etc/samba/smb.conf

A primeira coisa que devemos fazer é uma cópia do arquivo /etc/samba/smb.conf. No próprio arquivo encontramos a maneira pela qual o Samba recomenda fazer uma cópia de trabalho, que detalhamos abaixo. Como raiz nós executamos:

cd /etc/samba mv smb.conf smb.conf.master testparm -s smb.conf.master> smb.conf
root @ miwheezy: / etc / samba # ls -l
total 32 -rw-r - r-- 1 root 8 Nov 10 2002 gdbcommands -rw-r - r-- 1 root 805 Ago 4 12:05 smb.conf -rw-r - r-- 1 root root 12173 4 de agosto 12:05 smb.conf.master

Observe a diferença de tamanho entre o smb.conf gerado desta forma e o original. Como o tamanho é menor, o desempenho do servidor aumenta de acordo com o indicado pela Equipe Samba.

O conteúdo inicial do arquivo /etc/samba/smb.conf Será (lembre-se de que não desenvolveremos o compartilhamento de impressoras):

[global]
        grupo de trabalho = FRIENDS nome do netbios = MIWHEEZY segurança = usuário
        server string =% h server map to guest = Mau usuário obedece às restrições do pam = Sim mudança de senha do pam = Sim passwd program = / usr / bin / passwd% u passwd chat = * Digite \ snew \ s * \ spassword: *% n \ n * Digite novamente \ snew \ s * \ spassword $ unix password sync = Sim syslog = 0 arquivo de log = /var/log/samba/log.%m tamanho máximo do log = 1000 dns proxy = Não usershare permitir convidados = Sim ação de pânico = / usr / share / samba / panic-action% d idmap config *: backend = tdb [homes] comment = Diretórios iniciais usuários válidos =% S criar máscara = 0700 máscara de diretório = 0700 navegável = Não

Os valores destacados em negrito são os únicos que devemos modificar inicialmente. Observe que, apesar de ser o comportamento padrão do Samba, declaramos explicitamente a opção segurança = usuário dada a sua grande importância.

Se NÃO houver servidor WINS em nossa LAN, podemos fazer com que nosso Samba aja como tal adicionando o «global»Do arquivo smb.conf o parâmetro ganha suporte = Sim., o que é altamente recomendado.

regra de ouro: Quanto menos alterarmos e / ou adicionarmos parâmetros ao arquivo smb.conf sem primeiro saber em detalhes o que queremos alcançar, muito melhor será.

Aqui está um breve resumo de algumas das opções mostradas. Para obter mais informações, execute homem smb.conf.

  • grupo de trabalho: Controla em qual Grupo de Trabalho o equipamento aparecerá ao fazer um navegador web. Este parâmetro também controla o nome do domínio ao trabalhar com a opção segurança = domínio e em que a equipe se junta a um Domínio. Veremos em artigos posteriores. o valor padrão é GRUPO DE TRABALHO.
  • nome netbios: Define o nome NetBIOS pelo qual o servidor Samba será conhecido na rede. Por padrão, é o mesmo que o primeiro componente do FQDN do host. Em nosso exemplo, o FQDN da equipe é miwheezy.amigos.cu. Podemos usar um nome diferente do host do nosso servidor Samba. Nesse caso, é aconselhável incluir um registro CNAME em nosso DNS.
  • segurança: Parâmetro que afeta como os clientes respondem ao Samba e é um dos mais importantes no arquivo smb.conf. o valor padrão é usuário.
  • string de servidor: Controla qual nome é mostrado nos comentários que aparecem em um navegador da web ao lado do nome da equipe.
  • mapa para convidado: Parâmetro que só é útil quando definido segurança = usuário o segurança = domínio. O valor "Bad User" diz ao Samba para rejeitar uma senha inválida, a menos que o usuário NÃO exista, caso em que ele será tratado como Guest ou "convidado«. Se não quisermos permitir sessões de visitantes, devemos alterar seu valor para Nunca, que é precisamente o valor padrão, e também altera o parâmetro userhare permitir convidado a não, que também é o valor padrão.
  • obedecer às restrições do pam: Controla se o Samba deve obedecer ou não às próprias restrições do PAM «Módulo de autenticação plugável«, Quanto às Diretrizes de Administração de Contas e Sessões de Usuários. o valor padrão é não.
  • mudança de senha pam: Diz ao Samba para usar o PAM para alterações de senha solicitadas por um cliente SMB. o valor padrão é não.
  • programa passwd: Programa usado para definir senhas UNIX para usuários.
  • bate-papo passwd: Cadeia que controla a conversa que ocorre entre o demônio pequeno e o programa local para a alteração da senha definida no parâmetro anterior.
  • sincronização de senha unix: Diz ao Samba para sincronizar a senha SMB com a senha UNIX, desde que a anterior seja alterada. o valor padrão é não.
  • usuários válidos: Lista de usuários que têm permissão para fazer login em um compartilhamento.

Reinicie ou recarregue o serviço Samba

Sempre que fazemos mudanças significativas, especialmente na seção «[global]" do smb.conf, devemos reiniciar o serviço. Se já temos usuários conectados ao nosso servidor, toda vez que reiniciarmos o Samba, iremos desconectá-los. Por isso, e praticamente a partir de agora, só recarregaremos o serviço quando adicionarmos ou modificarmos recursos compartilhados. Para reiniciar o serviço, executamos como raiz:

reiniciar serviço samba

Para recarregar o serviço:

recarregar serviço samba

Nós adicionamos os usuários ao sistema e ao banco de dados de usuários do Samba

Só podemos adicionar ao banco de dados de usuários do Samba aqueles usuários que já existem em nosso servidor local.

Em nosso exemplo, o usuário xeon ele foi adicionado durante a instalação do Wheezy. Portanto, não o adicionaremos aos usuários da equipe. O grupo de usuários existe no sistema e foi criado durante a instalação.

Algumas opções de comando smbpasswd são:

  • -a: Adiciona o usuário especificado ao arquivo local smbpasswd.
  • -x: O usuário indicado deve ser removido do arquivo local smbpasswd. Só disponível quando smbpasswd corre como raiz.
  • -d: A conta de usuário indicada deve ser desabilitada. Só disponível quando smbpasswd corre como raiz.
  • -e: Oposto da opção -d contanto que a conta do usuário esteja desativada.

Para criar os usuários em nossa equipe, fazemos isso com o conhecido comando adicionar usuário.

adduser zeus adduser triton

Para criar o grupo contadores:

contadores addgroup

Para adicionar usuários ao banco de dados Samba:

smbpasswd -a raiz
smbpasswd -a xeon smbpasswd -a zeus smbpasswd -a triton

Nós nos juntamos ao grupo contadores para os usuários que queremos:

adduser xeon contadores adduser zeus contadores adduser triton contadores

Recomenda-se juntar cada usuário criado ao grupo usuários, caso desejemos conceder permissões a todos os usuários que criamos, em um recurso específico. Uma maneira mais fácil de juntar vários usuários a um grupo é editando diretamente o arquivo / etc / groupe adicionando a lista de usuários separados por uma vírgula. Eles podem ser guiados pelo grupo contadores. Presumimos que juntamos usuários ao grupo usuários.

Em uma estação de trabalho, para remover a exibição de usuários criados usando adicionar usuário, devemos editar o arquivo /etc/gdm3/greeter.gsettings e descomente a opção disable-user-list = true, de modo que NENHUMA lista de usuários seja exibida ao fazer login. Este é o comportamento padrão de qualquer computador cliente Windows associado a um Domínio.

Da mesma forma, se quisermos que os usuários criados não iniciem uma sessão remota através ssh, nós editamos o arquivo / etc / ssh / sshd_config e adicione ao final do arquivo a instrução Permitir usuários. Exemplo:

[....] # e ChallengeResponseAuthentication como 'não'. UsePAM sim AllowUsers xeon

Nós adicionamos recursos compartilhados

1 exemplo: Queremos compartilhar a pasta / home / xeon / music para todos os usuários registrados. A permissão será somente leitura. Em primeiro lugar, criamos a pasta / home / xeon / music e configuramos seu proprietário e permissões, se necessário. Como o usuário Xeon nós executamos:

mkdir / home / xeon / música ls -l / home / xeon | música grep

Então, no final do arquivo smb.conf adicionamos o seguinte:

[music-xeon] comment = Caminho da pasta de músicas pessoais = / home / xeon / música somente leitura = Sim usuários válidos = @users ler lista = @usuários

Após as modificações no arquivo, executamos parâmetro de teste como o usuário xeon e recarregamos o serviço como raiz. Também podemos executar os dois comandos como raiz:

recarregar samba de serviço testparm

Para verificar o serviço recém-configurado, podemos fazê-lo executando o seguinte comando no próprio computador:

smbclient -L localhost -U%

2 exemplo: Queremos compartilhar a pasta / home / xeon / music para todos os usuários registrados. As permissões serão de leitura / gravação para xeon e somente leitura para o restante dos usuários pertencentes ao grupo usuários. Não precisamos modificar o proprietário ou as permissões da pasta. Nós apenas mudamos um pouco as configurações de compartilhamento no arquivo smb.conf.

[music-xeon] comment = Caminho da pasta de músicas pessoais = / home / xeon / música somente leitura = Nenhum usuário válido = @usuários lista de gravação = lista de leitura xeon = @usuários

3 exemplo: Queremos compartilhar a pasta / home / xeon / contabilidade para grupo de usuários contadores. Todos os membros do grupo terão permissão de leitura. Os usuários tritão y Zeus eles poderão gravar na pasta compartilhada.

Agora, se tivermos que modificar o proprietário e as permissões da pasta contabilidade depois de criado, para que possam escrever tritão y Zeus quem é membro do grupo contadores. Devemos também cuidar para que o último usuário que cria ou modifica um arquivo não se torne seu dono absoluto, para que possa ser modificado por outros usuários com permissão de escrita.

É essencial entender como lidar com o comportamento do sistema de arquivos do smb.conf, bem como compreender como funciona a segurança do sistema de arquivos UNIX / Linux.

Nestes casos, devemos:

  • Declare na conveniência quem será o Usuário Proprietário e quem será o Grupo Proprietário do Diretório Compartilhado.
  • Permitir gravação no diretório compartilhado pelo grupo proprietário.
  • Declare o bit SGID (Definir ID do Grupo) do diretório durante sua criação.
  • Declarar corretamente no arquivo smb.conf as maneiras de criar arquivos e diretórios dentro de nosso recurso compartilhado.

Uma solução simples e possível na prática teremos se nós executamos como raiz:

mkdir / home / xeon / accounting chown -R root: counters / home / xeon / accounting chmod -R g + ws / home / xeon / accounting ls -l / home / xeon

E adicionamos o seguinte ao final do arquivo smb.conf:

[contabilidade] comentário = Pasta para o caminho dos contadores = / home / xeon / contabilidade somente leitura = Nenhum usuário válido = @ contadores lista de gravação = triton, zeus lista de leitura = @ contadores forçar modo de criação = 0660 forçar modo de diretório = 0770

Nós imediatamente verificamos a sintaxe básica do smb.conf através parâmetro de teste e recarregamos o serviço através recarregar serviço samba. Nós também podemos correr smbclient -L localhost -U%. no servidor local, e smbclient -L mywheezy -U% o smbclient -L mywheezy.friends.cu -U% do computador remoto.

O tempo é que de um computador remoto nos conectamos ao recurso compartilhado e fazemos todos os testes necessários. Recomenda-se verificar como o usuário que possui as pastas e arquivos muda à medida que são criados no recurso.

Importante: O usuário raiz ou o usuário xeon e em geral qualquer membro do grupo contadores, você pode escrever de uma sessão local iniciada no mesmo computador ou por ssh, ou seja, sem usar o protocolo SMB / CIFS. Se você criar uma pasta ou arquivo localmente, lembre-se de reatribuir as permissões apropriadas. Conferido por ls -l. Não fazer o que foi descrito acima é fonte de muita confusão.

Amigos, perdoem-me a extensão do artigo e espero que seja de alguma utilidade para vocês. Até a próxima aventura!


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   elav. dito

    Excelente como sempre. Esses tipos de artigos são apreciados quando trabalhamos com servidores. 😉

  2.   Júlio César dito

    Muito bom freeke, mas para mim é melhor usar FreeNAS para esse tipo de coisa
    😉

  3.   Frederico Antonio Valdés Toujague dito

    Obrigado por seus comentários!!!. Freeke, o FreeNAS do FreeBSD é outra história selvagem e posso dedicar um artigo a ela. No final das contas é Samba sobre FreeBSD.

  4.   Erick dito

    Muito bom post devo dizer, como sempre disse se você tivesse postado alguns anos atrás, teria me poupado de muitos problemas, mas é bom que alguém se interesse em mostrar como configurar o samba, Saudações

    1.    Frederico Antonio Valdés Toujague dito

      Como diz o ditado "nunca é tarde se a felicidade for boa" e outro "é melhor tarde do que nunca". Obrigado por comentar. Comecei a usar o Samba, acho que por volta de 2007. Até agora, não tinha conseguido postar nada sobre ele.

      1.    Erick dito

        Da mesma forma, já uso o samba quase na mesma época, mas vejo que você aperfeiçoou muito e está certo que "nunca é tarde se a felicidade é boa", me pareceu, devo dizer que é muito bom alguém compartilhar seus conhecimentos, muitos Às vezes a gente não ousa ou não tem tempo, no meu caso é o primeiro, Saudações

  5.   moela dito

    Amigo @fico, gosto muito dos seus artigos. Eles são extremamente bem explicados e detalhados. Obrigado.

    1.    Frederico Antonio Valdés Toujague dito

      Espero que sejam úteis para você. Esse é o propósito !!!.

      1.    moela dito

        Sim. É 🙂

        A propósito, acabei de ver seu artigo postado em outra página (http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html) e a referência à fonte é muito pequena. Isso não se faz. Mérito de quem merece, droga! Não sei se daqui eles podem pedir a essas pessoas que façam uma grande diferença em quem faz as coisas. Para o olho destreinado, passaria como se eles o tivessem criado e postado.

  6.   oscar dito

    Sr. autor do post, e se você criar um artigo sobre como compartilhar arquivos via samba para usuários comuns? Quero dizer algo menos extenso e mais gráfico, como como compartilhar de linux para linux e de linux para windows mas não de um maneira tão profissional, mas gosto de compartilhar arquivos entre PCs em casa.

    1.    Frederico Antonio Valdés Toujague dito

      Para esse caso, recomendo usar ssh para Linux - Linux e winscp para Windows - Linux. Existem vários artigos neste mesmo site.
      Este mesmo post, embora possa parecer complicado, se você copiar e colar os poucos comandos que inclui, também funciona para uma rede doméstica.

      1.    eliotime3000 dito

        Embora seja mais prático usar o sistema SMB / CIFS para usar o mesmo protocolo de compartilhamento de arquivos para Windows (ou pastas compartilhadas para abreviar).

        Farei meus experimentos para poder fazer um tutorial de como fazer uma pasta compartilhada no GNU / Linux (no meu caso, Debian Wheezy) para que as redes com Windows a reconheçam como uma pasta compartilhada.

  7.   um nível dito

    muito bom e o comprimento vale a pena, mas talvez você deva mencionar o parâmetro oslevel antes de interagir com o windows.
    lembranças

    1.    Frederico Antonio Valdés Toujague dito

      Observe que é uma rede sem um controlador de domínio do Windows. Usaremos esse parâmetro quando tratarmos de uma máquina associada a um Domínio.

  8.   último novato dito

    quando eu tiver algum tempo eu vou
    [offtopic] Eu gostaria de postar tutoriais do GIMP. Se pode?
    [/ offtopic]

  9.   Frederico Antonio Valdés Toujague dito

    Amigo @giskard, acabei de visitar http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html, e não vi nenhuma referência a este post. Eles fizeram um copiar / colar na bochecha, Hahahahahaha. Isso mostra que, pelo menos, o post é de boa qualidade. Eu digo, não? Hahahahahaha.

    1.    moela dito

      Perto do final, em letras minúsculas, está o link que diz "fonte" e aponta para este site. Mas fazer isso me parece uma total descortesia e falta de respeito. Felizmente, aqui sabemos quem é o autor 🙂

    2.    Julio Cesar dito

      Eles colocam a referência, mas dificilmente pode ser notado que eles tinham que ter mencionado no início do artigo

  10.   truko22 dito

    No arch wiki diz que a partir da versão 3.4 é recomendado usar pdbedit em vez de smbpasswd.

    Uma pergunta, de acordo com um amigo antes de adicionar um usuário ao Samba um usuário deve ser criado no sistema, mas com / bin / false
    useradd -s / bin / false myuser
    0.o é verdade?

  11.   Frederico Antonio Valdés Toujague dito

    Amigo @ truko22, e em geral para quem faz perguntas semelhantes. Lembre-se de que sempre afirmamos que só damos um Ponto de entrada para o assunto. Também recomendamos a leitura da documentação anexa. Afinal, a personalização do serviço é da responsabilidade de quem o implementa, de forma a responder às suas necessidades e com o nível de segurança que as satisfaz.

    Por exemplo, o problema de permissões pode ser evitado se permitirmos que qualquer pessoa escreva para o compartilhamento usando chmod 777. Claro que essa não é uma solução segura.

    Você pode evitar que o usuário inicie uma sessão local ou via ssh se nós o criarmos através adduser user –shell / bin / false. Em outras palavras, o usuário criado não pode acessar um terminal ou console.

    Em outras palavras, o Samba pode ser configurado de várias maneiras, das mais simples às mais complexas.

    O que acontece?. Se escrevermos a postagem sem permitir que usuários adicionados ao Samba façam login localmente, eles certamente perguntarão por quê. É por isso que preferimos escrevê-lo da maneira mais clássica possível e deixar que cada um tire suas próprias conclusões.

    @ truko22, Obrigado por me dar o ponto certo para fazer o comentário anterior !!!

    1.    truko22 dito

      Muito obrigado, agora eu entendo 😀 sobre o –shell / bin / false

  12.   Frederico Antonio Valdés Toujague dito

    Amigo @ truko22, esqueci o pdbedit. Desde o Etch que me acostumei a usar smbpasswd. Este comando pode ser executado por qualquer usuário do sistema e seu comportamento e resultados variam. pdbedit, também pode ser usado, mas só pode ser chamado pelo usuário root.

    Sobre o Samba, você pode escrever artigos inteiros sobre muitos de seus comandos.

  13.   Leão dito

    Esta muito bom!!
    lembranças

  14.   Marcos dito

    Artigo muito bom. Parabéns e obrigado por essa contribuição

  15.   Joseuzin dito

    Queria perguntar se existe um artigo sobre o samba como controlador de domínio e se ele já pode controlar o domínio com políticas de grupo como um servidor windows, quero dizer, para evitar alterações nas propriedades de endereços de rede, usando pendrives, etc.

  16.   Ricardo Mejías dito

    Olá, como está o Fico, instalei o Samba 3.6 com LDAP e LAM 3.7 - gostaria de saber se você sabe como permitir que os usuários alterem a senha ao iniciar a seção já que me diz "você não tem permissão para alterar sua senha" saudações ...