Introdução
Para o compartilhamento de diretórios via rede, com a possibilidade de configurar permissões de controle de acesso, o Samba sobressai-se sobre os concorrentes.
Além de que, o mesmo também é capaz de compartilhar diretórios de um sistema de arquivos Linux (ext, JFS…) através da rede, possibilitando o acesso ao mesmo, utilizando o protocolo cliente smb, para distribuições GNU/Linux, e o próprio Windows Explorer (explorador de diretórios), para sistemas operacionais Microsoft Windows. VantagensEm relação ao seu concorrente proprietário ($$), o sistema operacional Microsoft Windows Server, o Samba é muitíssimo mais completo, apresenta menos erros (conhecidos também como bugs), além do que, como o software Samba deve ser instalado em um servidor GNU/Linux, a possibilidade de ter o servidor infectado por malware (vírus, cavalos de troia, worms, etc), é MÍNIMA. E, por fim, a configuração de permissão de acesso de diretórios é feita INTEIRAMENTE utilizando ferramentas da distribuição GNU/Linux, o que torna muitas das técnicas hacking ineficazes. DesvantagemEntão, qual o principal motivo de o mercado utilizar, principalmente, Windows Server para tal serviço, você se pergunta? Simples: em sistemas Windows, configurar o sistema para compartilhar diretórios é brincadeira de criança, já em sistemas Linux, o arquivo de configurações do Samba é assustador para quem nasceu no mundo do “mas onde é que clica?”. Porém, ao término da configuração, o sistema durará por muitos anos (se não, eternamente), se tudo depender do sistema operacional, pois não há agentes “feitos para destruir o sistema”, como em outros sistemas operacionais proprietários. ConclusãoNo mundo Windows, a configuração é simples e rápida, porém, a mesma precisará ser refeita de tempos em tempos, pois, todo tipo de Malware está preparado para destruir o sistema, além disso, erros de sistema serão frequentes, confundindo o usuário e o setor de TI da empresa. Utilizando um servidor GNU/Linux, por vias normais, a configuração é mais lenta, porém, uma vez terminada a configuração do mesmo, a equipe de TI apenas necessitará pensar em “como agregar funções a mais”. Chega de enxaquecas e gastos desnecessários com manutenção! |
|
Etapa 1
Instalando o Samba e criando os diretórios a serem compartilhadosVamos botar a mão na massa! A configuração será feita em um servidor Debian 7 (Wheezy), porém, pode ser adaptada facilmente para CentOS, Red Hat e outras distribuições GNU/Linux. Utilizaremos um terminal modo texto. InstalaçãoInstale o pacote samba em seu servidor Debian: # aptitude install samba Após a instalação, será criado o arquivo de configurações do servidor Samba. Localização do arquivo: /etc/samba/smb.conf Configuração: Parte 1 – Criando os diretóriosAntes de começar a criar os diretórios que, posteriormente, estarão disponíveis via rede, planeje no papel quantos departamentos (grupos de pessoas/usuários) sua empresa possui. Crie um diretório no caminho de sua preferência, em seu sistema de arquivos: # mkdir /samba Em seguida, crie um subdiretório para cada departamento de sua empresa: # mkdir /samba/marketing Obs.: a forma mais simples de criar um diretório que contém nome espaçado em GNU/Linux, é digitando-se apenas o nome espaçado entre aspas (ex.: “diretório com nome espaçado”). Depois de criado os subdiretórios, a etapa 1 estará terminada. |
|
Etapa 2
Configuração: Parte 2 – Arquivo de configuração do SambaO Samba, assim como muitos outros servidores GNU/Linux, deve ser configurado alterando-se os parâmetros presentes em um arquivo de configuração, e estes parâmetros alterados, serão então, futuramente, carregados nas variáveis do software servidor, durante sua inicialização. O arquivo de configuração do Samba encontra-se em: /etc/samba/smb.conf É recomendável renomear o arquivo, pois, iniciaremos a configuração de nosso servidor a partir do zero! # mv /etc/samba/smb.conf /etc/samba/smb.conf.original Aqui, utilizaremos o editor de textos Nano, por ser o editor de textos padrão do GNU/Linux, isto é, o mesmo encontra-se por padrão, em qualquer distribuição GNU/Linux, ao contrário do Vim/Vi, entre outros: # nano /etc/samba/smb.conf Em seu terminal, neste momento, você deve estar visualizando um arquivo novo, recém-criado por você, utilizando o editor de textos Nano. O arquivo de configurações Samba está dividido em seções, e cada seção é representada da seguinte forma: “[nome da seção 1]” “[nome da seção 2]”… Para configurar o Samba, iniciaremos pela seção global. # A seção global contém parâmetros de configurações globais, os quais serão aplicados a todo o
#servidor, e a todo compartilhamento. [global] server string = nomedoserver #Nome DNS netbios name = nomedoserver #Nome NetBIOS workgroup = WORKGROUP #Grupo de trabalho das máquinas Windows #Opções para security: Depois de terminada a configuração global, deve-se configurar os compartilhamentos: #Compartilhando
#[nome do compartilhamento] [Publicidade e Marketing] comment = Acesso Restrito ao setor de Marketing path = /samba/marketing public = yes #Acesso sem senha, público (yes ou no) writable = yes #Permitir alterações no diretório? (yes ou no) #valid users = deixe para mais tarde #Mais tarde! Já é possível testar nossas configurações. Vamos, para isso reiniciar o serviço do Samba: # /etc/init.d/samba restart Ou: # /etc/init.d/samba stop Ou: # service samba restart Ou ainda: # service samba stop Vamos testar nossa configuração! Em um computador Windows, presente na mesma rede e configurado no mesmo grupo de trabalho do Samba, chame o diálogo Executar, e então, digite:
Caso tenha escolhido o valor none ou share para o parâmetro security, nenhum prompt de senha será apresentado. Caso tenha escolhido o valor user para security, terminaremos a configuração na seção “Configuração – Parte 3 (Configurando Permissões)”. Você, provavelmente, terá acesso com permissões de somente leitura ao diretório “Publicidade e Marketing”. Configuraremos isso mais tarde. CuriosidadeSabe por que não se deve convidar usuários ao servidor, com frases do gênero: “Bem-Vindo ao compartilhamento…”? Certa vez, um hacker invadiu um dos servidores de uma certa empresa, e ao ter acesso ao shell da empresa, recebeu a seguinte mensagem “Bem-Vindo à empresa y”. Mais tarde, o mesmo foi descoberto, e julgado em tribunal. Porém, o mesmo alegou ter sido “bem recebido” na empresa, e ganhou a causa, sem sofrer penalidades. Agora, lhe pergunto: Você convidaria um hacker ao seu servidor? |
|
Etapa 3
Configurando permissões – Usuários e GruposAgora, vamos sair um pouco do arquivo de configurações do Samba e criarmos os usuários que realizarão login via rede através do Samba. Os usuários do Samba, assim como citado anteriormente, são usuários comuns do GNU/Linux. Vamos criá-los. # useradd joana_dark Os três usuários acima, serão usuários do Samba, pertencentes ao grupo marketing. Porém, para cada um deles, foi criado um diretório /home. Abaixo, segue os mesmos comandos, porém, com parâmetros que impossibilitarão o uso do login e senha para login local no servidor, e negarão a criação de uma pasta pessoal (/home/[usuário]): # useradd –no-create-home -s /bin/false joana_dark O parâmetro “-s” especifica um shell de comandos para ser atribuído ao usuário criado. O shell /bin/false, como o nome sugere, é um shell falso, e qualquer usuário que utiliza este shell não será capaz de logar-se corretamente no sistema GNU/Linux. Ainda bem que para o usuário acessar os compartilhamentos, ele não precisa de um shell válido, não é mesmo? Caso você tenha criado um usuário sem especificar o shell, o usuário é configurado com o shell padrão de sua distro. Para alterá-lo, edite diretamente o arquivo de texto /etc/passwd, ou execute o comando usermod -s /bin/false [nomeDoUsuárioExistente]. # nano /etc/passwd Os usuários acima, foram criados sem qualquer tipo de senha, pois, os usuários do Samba não necessitam de uma senha de logon no GNU/Linux, portanto, configurar uma senha é opcional. Vamos adicionar estes usuários para serem utilizados no Samba: # smbpasswd -a joana_dark Já se pode testar o login destes usuários em seu servidor Samba, utilizando um cliente Microsoft Windows. * Aviso: logar não quer dizer “acesso garantido aos diretórios”, isso ainda estamos ao passo de configurar. Para facilitar a administração e ter compartilhamentos Samba extremamente seguros, devemos organizar os usuários em grupos. Em uma empresa, é muito simples: o nome dos grupos de usuários deverão ser os mesmos de cada departamento da empresa. Vamos criar o(s) grupo(s): # addgroup marketing Neste exemplo, apesar de criarmos três grupos, apenas o grupo marketing será configurado. Agora, vamos agrupar os funcionários da empresa nos grupos correspondentes, de acordo com o seu departamento. Em nosso caso, os três funcionários pertencerão ao mesmo grupo (departamento) marketing: # adduser joana_dark marketing |
|
Etapa 4
Configuração: Parte 3 – Configurando Permissões (Permissões de acesso e segurança)Primeiramente, vamos criar um diretório pessoal para cada um dos três membros do grupo marketing: # mkdir /samba/marketing/maradonna * Aviso: os nomes dos diretórios não necessitam ser os mesmos que o do usuário. Primeiramente, ao diretório raiz do departamento, iremos configurar quem o “comandará”, e o grupo de usuários que o comandará: # chown root.marketing /samba/marketing O comando chown (change owner), segue a seguinte sintaxe: chown [usuário_dono].[grupo_dono] [diretório] Você deve estar perguntando-se: mas, por que devemos ter o usuário root de dono, uma vez que o mesmo sempre possui acesso irrestrito a todos os diretórios? E a resposta é simples: o usuário dono, neste momento não será importante. O mais importante é que o grupo marketing agora, é dono de seu próprio diretório. Ótimo! Agora, vamos a uma das partes mais divertidas, a configuração das permissões. A partir deste momento, o diretório /samba/marketing pertence ao usuário root, também ao grupo marketing e a todos os membros deste grupo. É extremamente recomendável conhecer permissões (chmod) a partir deste ponto. # chmod 000 /samba/marketing Sintaxe do comando: chmod [permissão_usuário_dono][permissão_grupo_dono][permissão_para_qualquer_outro_usuário] [diretório] Para cada permissão (dono, grupo, ou outros usuários), pode-se atribuir um número entre 0 e 7, para permitir o nível de acesso ao diretório especificado. Abaixo, será explicado cada nível de acesso, sem maiores detalhes: Permissão Binário Decimal --- 000 0 --x 001 1 -w- 010 2 -wx 011 3 r-- 100 4 r-x 101 5 rw- 110 6 rwx 111 7 Fonte: www.infowester.com Onde:
Se não compreendeu permissões GNU/Linux, você deve estudar sobre a mesma, e o link acima, o auxiliará muito em seu aprendizado. Vamos analisar novamente o comando digitado anteriormente: # chmod 000 /samba/marketing Usuário Grupo Outros usuários (não donos) 0 0 0 Leitura=negada, Leitura=negada, Leitura=negada, Escrita=negada, Escrita=negada, Escrita=negada, Execução=negada. Execução=negada. Execução=negada. Sendo assim, ninguém terá acesso ao diretório, correto? Vamos ser bonzinhos, e liberar o acesso ao usuário e ao grupo? Planejando… – O usuário (root) poderá receber qualquer permissão. # chmod 750 /samba/marketing Usuário Grupo Outros usuários (não donos) 7 5 0 Leitura=concedida, Leitura=negada, Leitura=negada, Escrita=concedida, Escrita=negada, Escrita=negada, Execução=concedida. Execução=concedida. Execução=negada. Reinicie os daemons do Samba: # /etc/init.d/samba restart Pronto, agora experimente acessar o servidor Samba de um cliente Windows, acesse o diretório compartilhado Marketing e uma senha lhe será pedida. Você deve, apenas, poder ver o conteúdo do diretório, mas não poderá alterá-lo. Ainda não pode acessar o diretório? Isso é comum e será resolvido assim que alterarmos algumas configurações do arquivo de configurações do Samba, ok? Não se desespere. Iremos agora, tornar os usuários pertencentes ao grupo marketing donos de seus próprios subdiretórios: # chown maradonna.marketing /samba/marketing/maradonna Agora, cada usuário é dono de um diretório diferente, e, além disso, o grupo também é dono de cada diretório dos usuários do grupo marketing. Vamos configurar o nível de acesso de cada usuário, para cada um dos três diretórios: # chmod 750 /samba/marketing/maradonna Vamos analisar o comando. # chmod 750 /samba/marketing/joana_dark O usuário dono (joana_dark) recebeu a permissão 7 (acesso total), os membros do grupo marketing receberam a permissão 5 (r-x – Read & Execution – Leitura + Execução), permitindo a estes, acessarem o diretório livremente, porém, não poderão alterar ou salvar quaisquer dados. |
|
Etapa 5
Configuração: Parte 3 – Configurando Permissões (Realizando alterações no arquivo de configuração do Samba)# nano /etc/samba/smb.conf Oba! Estamos novamente configurando o smb.conf. Faremos agora, os ajustes finais. #Compartilhando
#[nome do compartilhamento] [Publicidade e Marketing] comment = Acesso Restrito ao setor de Marketing path = /samba/marketing public = no #Acesso sem senha, público (yes ou no) writable = yes #Permitir alterações no diretório? (yes ou no) valid users = @marketing #Apenas os membros do grupo marketing acessarão o compartilhamento. force group = marketing #Força o acesso do grupo marketing somente. Salve o documento e, em seguida, reinicie os daemons do Samba: # /etc/init.d/samba restart Há ainda um parâmetro chamado veto files, para você acrescentar à um compartilhamento. O mesmo é útil para vetar nomes de arquivos e/ou extensões, facilitando para o administrador impedir a disseminação de arquivos perigosos que sejam alojados no servidor, e desencorajar os usuários à guardarem arquivos pessoais nos diretórios compartilhados. Veja abaixo um exemplo de uso do parâmetro: veto files = *.exe/*.com/*. scr/*.rar/*.zip/*.ace*.cab/*.bat/*.inf/
O parâmetro veto files pode ser aplicado à um compartilhamento, ou diretamente na seção global. Quer mais? Que tal gerenciar o seu servidor com o WEB Admin para o Samba, o SWAT? # aptitude install swat Após a instalação, abra seu navegador de Internet preferido e digite o seguinte endereço na barra de endereços de seu navegador:
|