Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

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

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Artigo 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!
    Por: Milton Caetano Filho

    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 :

    * Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    * Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    Fonte: vivaoLinux
    Postado Por: RedDeviL


  • Font Size
    #2
    Ótimo post !

    RedDeviL, eu sou seu fã cara! seus posts tem sido de grande ajuda pra mim ! estou aprendendo bastante sobre linux !

    Uso dualboot ubuntu9.04 / windows7, e minha irmã e minha mãe usam XP. Eu próprio usava mais o windows pq tem uma pequena rede local (aqui dentro de casa mesmo), só para o compartilhamento de arquivos.

    Agora que consegui configurar o compartilhamento com os outros pc's q usam windows, pelo samba , quero passar a usar somente o ubuntu de agora em diante!
    sigpic
    __________Prazer, sou Zaraki Kenpachi, e vim te matar.__________
    Bankai is for the weaks!



    | HD no 4Shared |-| Anime~No~Cn |

    Comment


    • Font Size
      #3
      boa noite ,
      goataria de saber se os usuários do windows ao ligarem as maquínas e logarem, os arquivos aqual elas tem acesso estaria no servidor? na pasta progamação?

      Comment


      • Font Size
        #4
        outra pergunta ;
        posso usar o Ubuntu 12.04 desktop? pos acho melhor o uso de copiar e colar os scripts.
        obrigado pela ajuda.

        Comment

        X
        Working...
        X