sexta-feira, 6 de julho de 2012

Samba: Servidor de arquivos Linux com estações Windows

Esse artigo tem por objetivo mostrar como implementar um servidor de arquivos compartilhados seguro usando Linux + Samba. Assim como eu, muitos administradores trabalham em redes mistas (Windows e Linux). Então mãos a obra!


Cenário para implantação
Vamos primeiramente identificar o cenário, ou seja, a topologia de nossa rede.

1. É necessário um servidor Linux, nesse caso usei a distro Debian 5.0.

2. Clientes que acessarão o serviço. Podem ser arquitetura Unix, Linux e Microsoft. Nesse caso específico estamos usando estações Windows, pois a maioria dos funcionários não têm o conhecimento necessário para usar Linux por "N" motivos, desde falta de treinamento ou até mesmo o software no qual trabalham não ter similar para Linux.

Instalação dos pacotes.

# apt-get install samba

Configuração do arquivo /etc/samba/smb.conf.

Renomeie o arquivo /etc/samba/smb.conf:

# cd /etc/samba
# mv smb.conf smb.conf.bkp


Vamos criar um novo arquivo com o mesmo nome:

# touch smb.conf


Feito isso adicionaremos o seguinte conteúdo ao arquivo smb.conf. No prompt de comando use seu editor de preferência, neste caso usei o vim:

# vim smb.conf


Código:
[global]
  # Substituir xxxxxx pelo nome do domínio desejado caso necessário
  workgroup = linux
  # Substituir xxxxxx pelo nome do servidor caso necessário
  netbios name = debmirror
  server string = Samba
  domain master = yes
  preferred master = yes
  local master = yes
  domain logons = no
  logon path = %systemroot%\%u

  #logon script = todos.bat
  security = user @root
  encrypt passwords = yes
  os level = 200

  time server = yes
  unix charset = iso8859-1
  display charset = cp850

  ##Arquivo de log
  log file = /var/log/samba/%m.log
  max log size = 5000
  debug level = 2

  ##Encrypta as senhas digitadas na rede, porém não funciona 
em estações## Windows 95 e Windows 3.11
  smb passwd file = /etc/samba/smbpasswd
  username map = /etc/samba/smbusers

  ##Garantir melhor desempenho do servidor
  socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

  ##Permite a utilização de impressoras compartilhas em estações Linux
  load printers=yes
  printing=lprng
  printcap name = /etc/printcap

  
[Software]
  path = /home/software
  guest ok = yes
  browseable = no
  public = yes
  writable = yes
  read only = no

[programacao]
  path = /home/programacao
  guest ok = no
  browseable = yes
  public = no
  writable = yes
  read only = no
Neste caso estamos criando duas pastas compartilhadas:

* Software - /home/software
* programacao - /home/programacao


A pasta software será usada pela equipe de TI para fazer atualizações em estações de trabalho. A pasta programacao também será usada pela equipe de TI, porém apenas o pessoal de programação terá acesso.

Nesse ponto da configuração do sistema nosso servidor Samba permitirá acesso às pastas sem requisição de senha. É altamente recomendável adicionarmos uma senha para esses diretórios.

Configurando acesso ao Samba
Primeiro criaremos os usuários e senhas para que o acesso fique mais seguro. No prompt de comando digite:

# adduser --disabled-login --no-create-home teste

Assim criamos uma espécie de usuário fantasma que existe e pode acessar arquivos do sistema (de acordo com as permissões de acesso), mas que, por outro lado, não pode fazer login (nem localmente, nem remotamente via SSH), nem possui diretório home.

Cadastrando o usuário criado no Samba:

# smbpasswd -a teste

Feito isso nosso sistema já está apto para receber conexões autenticadas.

Para garantir que tudo as configurações sejam aplicadas reiniciaremos o serviço do Samba:

# /etc/init.d.samba restart

Configurando permissão na pasta de acesso

Agora que já adicionamos o usuário teste, setaremos as permissões necessárias para que este usuário possa incluir, excluir e modificar o conteúdo da pasta.

# chmod 777 /home/software

Obs.: As permissões podem e devem variar de acordo com a necessidade específica de cada caso. Para fins didáticos e primeiro acesso à pasta configurei permissão total para o usuário teste.

Configurando estações de trabalho Windows para acessar servidor Samba
Agora iremos configurar as estações de trabalho para que acessem os recursos de rede compartilhados pelo servidor Samba.

Obs.: existem diversas maneiras de se fazer tal configuração, estou optando pela mais prática e funcional possível para o administrador de redes.

1. Sistema cliente utilizado Windows XP com service pack 3.

Vamos criar um script para automatizar a tarefa, permitindo que toda vez em que a estação de trabalho seja reiniciada o script seja executado.

Clique no Menu Iniciar > Executar

Dentro do executar digite notepad.

Dentro do notepad (bloco de notas) cole o seguinte conteúdo.

Código:
set net = createobject("wscript.network")

Set FSODrive= CreateObject("Scripting.FileSystemObject")
If not FSODrive.DriveExists("H:") Then
Set NW = CreateObject("WScript.Network")
NW.MapNetworkDrive "H:", "\\seu_servidor\sua_pasta", False
End If
Obs.: "\\seu_servidor\sua_pasta" deve ser substituído pelo endereço ip e pasta definida por você no seu servidor. No meu caso ficou assim: \\192.168.56.12\software.

Após inserir o conteúdo no notepad (bloco de notas), clique em Arquivo > Salvar como. Na guia "Salvar Como" salve o documento com o nome "mapdrive.vbs", na opção abaixo "Salvar tipo como", selecione "Todos os arquivos".

Obs: Salve seu arquivo na raiz do sistema em c:\.

Editando o registro do Windows
Agora que quase tudo já está pronto, iremos para a etapa final que é manipular o registro do Windows XP para executar o comando toda vez que o sistema operacional for inicializado.

Mão na massa!

Clique no menu iniciar > executar.

Dentro de executar digite > regedit

Logo após digitar o comando aparecerá a tela do editor de registros do Windows.


No editor de registros no menu ao lado esquerdo aparecerá uma lista de pastas do sistema. Navegue pela seguinte sequência.

Meu computador\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W indows\CurrentVersion\Run

Dentro da pasta Run, ao lado direito, clicaremos com o botão direito do mouse, aparecerá a guia Novo, dentro de Novo teremos "Novo valor de sequência", coloque o seguinte nome: "MAPEAR UNIDADE DE REDE".

Feito isso clicamos com o botão direito do mouse em cima no novo item criado "MAPEAR UNIDADE DE REDE", aparecerá a guia modificar, selecione esta guia.

Na caixa "Editar Sequência" que será aberta, dentro da campo "Dados do Valor" digite dentro das aspas duplas "" a localização do nosso arquivo "c:\mapdrive.vbs", assim como na imagem abaixo.



Agora toda vez que o PC for inicializado será carregado junto com sua inicialização o nosso arquivo "mapdrive.vbs", que tem por finalidade mapear o compartilhamento do nosso servidor Samba Linux.

Criando shell script para deletar arquivos com extensões maliciosas
Como nem tudo é perfeito nessa vida, e para piorar estamos trabalhando em uma rede onde temos estações Windows que são comumente atacadas por vírus, nós administradores temos que bolar uma saída eficaz para amenizar este problema.

Como no mundo *IX Unix, Linux e suas variantes não costuma-se ter esse tipo de problemas, não teria a necessidade da criação desse script, mas no mundo Windows esse problema é crônico e temos que agir, senão nosso Linux passa a agir como um hospedeiro de programas maliciosos.

Criando o arquivo:

# touch deleta_virus.sh

Editando o arquivo:

# vim deleta_virus.sh


Coloque este conteúdo no arquivo:
Código:
#!/bin/bash
#Arquivo criado para deletar arquivos com a extensão .exe .cmd .bat 
.pif .aa .js .vbs .src .inf
#Criado por Milton Caetano Filho

deleta_software()
{
cd /home/software;
rm -f [a-zA-Z0-9]*.exe *.cmd *.bat *.pif *.inf *.com *.src *.vbs *.js *.aa;
}

deleta_programacao()
{
cd /home/programacao;
rm -f [a-zA-Z0-9]*.exe *.cmd *.bat *.pif *.inf *.com *.src *.vbs *.js *.aa;
}

deleta_software
deleta_programacao
Vamos utilizar o cron para que o arquivo seja executado de um em um minuto no sistema:

Código:
0-59/1 * * * * root /bin/deleta_virus.sh
Feito isso nosso servidor Linux está apto a excluir todos os arquivos que contém as expressões acima. Os arquivos que contém tais expressões normalmente acarretam algum tipo de problema no sistema Windows. Utilizando esse shell script estaremos impedindo a propagação desses conteúdos em nossa rede.

Conclusão
Procurei fazer da maneira mais simples e objetiva possível esse artigo! Com certeza existem várias outras maneiras de se configurar um servidor Samba em estações Windows. Optei por uma configuração que utilizo a mais de dois anos com total sucesso.

Inicialmente utilizava um servidor Windows 2003 por motivos de força maior. Mas devido a constantes quedas e instabilidade não aguentei mais e migrei de plataforma.

Desde de que foi implantando esse servidor com o Linux assumindo a tarefa não tive mais problemas, com a adição do shell script que monitora e deleta a existência dos arquivos com a extensões pré-definidas o servidor se tornou um excelente, senão a melhor solução para tal necessidade.

Obs.: Se você utiliza estações Windows em sua rede, tenha um bom antivírus de preferência pago, pois seu servidor Linux estará sempre 100%, já não posso garantir o mesmo da suas estações de trabalho, pois o Windows esta presente.

Espero ter ajudado.

Fontes externas :

* http://www.samba.org/
* http://www.infowester.com/tutregistrowin.php

Fonte: vivaoLinux
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário

Copyright © Hacking & Security | Powered by Xandao Design by Xandao86 | Xandao86