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!

[ Hits: 192.883 ]

Por: Milton Caetano Filho em 14/01/2010 | Blog: http://www.miltoncaetanofilho.blogspot.com


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.

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

wscript.quit

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.
Linux: Interoperabilidade estações windows acessando servidor Linux Samba.
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\Windows\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.
Linux: Interoperabilidade estações windows acessando servidor Linux Samba.
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.

Página anterior     Próxima página

Páginas do artigo
   1. Cenário para implantação
   2. Configurando acesso ao Samba
   3. Configurando estações de trabalho Windows para acessar servidor Samba
   4. Criando shell script para deletar arquivos com extensões maliciosas
Outros artigos deste autor

Acessando servidor Linux remotamente utilizando WinSCP e Putty no Windows

Interoperabilidade monitorando servidores e estações Windows com servidor Linux usando MRTG

Leitura recomendada

Samba standalone server com antivírus

Samba com autenticação simples e lixeira

Mapeando todas os tipos de unidades de redes no Linux

Permissões do Samba usando chmod

Samba: Implementando um domínio

  
Comentários
[1] Comentário enviado por fabio em 14/01/2010 - 16:44h

Gostei do trabalho! A única observação que faço é sobre o shell script no final. Ao invés de deletar os arquivos, seria uma boa movê-los para um diretório de quarentena. Digo isso porque, como programador, trabalho muito com arquivos .js (leia-se java script). Se algum dia teu script apagar o .js de algum webdesigner da empresa os caras vão querer te matar por aí! :)

[2] Comentário enviado por silent-man em 14/01/2010 - 17:22h

O Artigo está muito bom, bem prático e direto. Parabéns!

Eu só acho que deveria ser pesquisada alguma ferramenta que automatizasse a coisa. Como?

Sempre que eu quiser adicionar/remover um diretório compartilhado ou a ser compartilhado temos que ir ao Samba(smb.conf) adicionar os valores(diretório, permissões, etc...).

No R(u)windows Temos por exemplo o "File Server Resource". Com essa ferramenta é muito prático fazer esses ajustes. Claro que para nós (jedi's) que gostamos de digitar(shell) não há problema, penso apenas no caso de alguém que queira adicionar uma pasta a ser compartilhada e não tenha estes conhecimentos a coisa complica.

O seu script está bom também. Só acho que se ele deleta sempre as mesma extensões, por que não fazer algo mais rápido? Tipo ele buscar as extensões em todos os subdiretórios de /home e dai removê-los, movê-los, etc...

Veja bem, isso não é uma crítica. Estou apenas colocando meu ponto de vista de como a coisa pode crescer ou ficar melhor ainda.

Abcs!

[3] Comentário enviado por removido em 14/01/2010 - 17:27h

Excelente artigo amigo!

Algumas dicas acima muito boa.

[]'s

[4] Comentário enviado por mcfmlt em 14/01/2010 - 20:51h

Prezados Amigos!

Agradeço muito os comentários e dicas!
Porém esse arquivo deleta_virus.sh já foi criado levando em consideração as dicas de vocês.
Como no exemplo acima citado não possuia por exemplo o pessoal de Webdesign é simples para resolver tal dificuldade.

Como vocês podem perceber utilizei funções em meu script então para nao deletarmos os arquivos em .js (javascript) fiaramos da seguinte maneira.
Adicionariamos uma função específica para a pasta Webdesign.

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

Notem que nesse função a extensão *.js não esta presente.
Assim o script será executado e não ira deletar os arquivos com a extensao .js na pasta webdesign.

Abraços!

Espero ter ajudado..

Atenciosamente Milton Caetano Filho.

[5] Comentário enviado por AllanDC em 15/01/2010 - 08:50h

Um simples veto files no smb.conf não seria mais prático do que rodar script para pesquisar tais arquivos?

[6] Comentário enviado por joaoferreira em 15/01/2010 - 23:13h

Muito bom, parabéns..

Agora uma ideia legal como faço para o meu servidor de arquivo autenticar com o domínio que é windows server 2003?

[7] Comentário enviado por Ignorante em 17/01/2010 - 11:20h

Muito Bom!!!

Parabéns, artigo muito bem explicado.

[8] Comentário enviado por joaoferreira em 18/01/2010 - 00:29h

Cara,

Realmente este artigo me ajudou muito.
Agora não conseguir deletar os arquivos dentro da pasta conforme o script que você colocou.

Abraço.

[9] Comentário enviado por mcfmlt em 18/01/2010 - 00:50h

Prezado João Ferreira!

Tente fazer da seguinte maneira.

crie um arquivo: por exemplo #touch del_virus.sh > dê permissao de execução para ele
#chmod +x del_virus.sh

em seguida insira o seguinte conteúdo nele

deleta_virus()
{
cd /sua_pasta_compartilhada/sua_pasta_compartilhada;
rm -f *.exe *.cmd *.bat *.pif *.inf *.com *.src *.vbs *.aa;
}
deleta_virus

em seguida salve este conteúdo.

Logo após apenas para teste, crie alquns arquivos nessa pasta com as extensões acima!

touch teste.exe teste.cmd teste.bat teste.pif e etc...

Em seguida execute esse shellscript que criamos # ./deleta_virus.sh
Em seguida verifique se os arquivos criados com as seguintes extensões foram deletados! Se sim
agora é só agendar no crontab para disparar esse script de acordo com a sua necessidade...

Espero ter ajudado...
Atenciosamente Milton Caetano Filho.

[10] Comentário enviado por konqueror em 26/01/2010 - 21:29h

Milton Caetano Filho este artigo foi de grande valia para mim,fiz como descrito no artigo e funcionou perfeitamente.
Embora eu não esteja numa rede corporativa e sim doméstica(minha casa) :-(.
Porem gostei muito do artigo pois ajudou bastante um iniciante como eu no maravilhoso mundo GNU/Linux,seu artigo esta muito bem escrito.
Parabéns e muito obrigado

[11] Comentário enviado por israel_super em 11/02/2010 - 23:50h

Ola pessoal

eu fiz um server em laboratorio para um cliente. ele era samba dominio com squid e iptables, squid autenticado autenticando com usuarios do dominio samba.
ate ai tudo certo
faixa de ip da wan 192.167.1.1/24
faixa rede 192.168.1 254/24
em laboratorio tava perfeito
mas cheguei no cliente, eu nao pude deixar a rede dele com as faixas de ip que eu tinha feito em lab.
pois na rede ele tem umas maquinas CNC q se comunicam por ip fixo com os pc e pra mudar ip das maquinas é froid
a rede la era 10.0.1.1
modem ligado direto no hub
mask 255.0.0.0

entao tive q mudar os ips do servidor
deixei a wan com 192.167.1.1/24 e lan eu coloquei 10.0.1.1/8
reconfigurei o DHCPD, Alterei o ip no IPtables, Squid, Sarg e httpd

o squid nao queria mais autenticar no samba
depois de horas pequisando achei o problema
tem q excluir o arquivo wins.dat e restartar o samba
dai autentica perfeito
porem agora as maquinas nao ingressam no dominio
ele pede o user e a senha do adm
mas fica pensando e da o erro que o usuario e senha nao foi encontrado
tipo parece que o usuario nao faz parte do adm do samba

meu samba é 3.4 e tava perfeito em laboratorio, ate tinha conseguido ingressar win7 nele.

alguem sabe me dizer o q pode ser

obrigado

[12] Comentário enviado por fwneto em 13/09/2010 - 12:17h

Excelente artigo,

deixo a minha sugestão....ao inves de deletar os arquivos maliciosos, não seria melhor utilizar no samba o atributo, veto files?


segue a linha que utilizo nos meus servidores.

veto files = /*.exe/*.bat/*.com/*.ini

abs.
Neto.

[13] Comentário enviado por raulinux em 15/10/2010 - 16:04h

Muito Bom me ajudou d+

vc Poderia fazer um Artigo Sobre DHCP

[14] Comentário enviado por removido em 14/11/2010 - 22:53h

Olá, amigo!

Obrigado pelo artigo!
Muito bom!

Queria pedir uma ajuda pois não consegui utilizar o script com sucesso e o Windows XP não mapeia a unidade.

Pode ajudar???

Gostaria de saber se é possível utilizar essas configurações para usar o smbclient apenas para compartilhar pastas e arquivos entre grupos e usuários Windows XP sem usar bind, etc.



Rodrigo

[15] Comentário enviado por infoguaratiba em 06/08/2011 - 21:46h

Olá

Gostei muito do Tópico segui direitinho a risca pois estou começando a usar alguns recursos do Linux. Seguinte notei que quando envio 1 arquivo solto, fora da pasta deleta na hora, jogando dezenas dentro de uma pasta não deleta os arquivos com o script, como seria para ele fazer isso?
abraços

[16] Comentário enviado por feliperl em 23/06/2012 - 13:07h

Meu amigo muito bom o material que você disponibilizou. Acabei de efetuar os testes em minha rede e funcionou perfeitamente.
Obrigado.

[17] Comentário enviado por luiz64 em 02/01/2013 - 21:51h

Meu amigo muito bom o artigo.

Estou precisando de algumas dicas para implementar um servidor de arquivos na minha empresa.

Cenário da Rede

Um servidor principal ( debian 6.0 ) que faz o papel de autenticar os usuários na REDE;

várias estações de trabalhos ( Linux ( Ubuntun) e estações com windows xp;

Preciso de configurar um servidor de arquivos de preferência em separado do servidor de autenticação para que as estações linux e windows possam acessar as pastas compartilhadas .


[18] Comentário enviado por grandetilismo em 21/12/2013 - 11:48h

Excelente artigo meu brother.
Obrigado por postar, abraço.

'Com organização e tempo, acha-se o segredo de fazer tudo e bem feito.'
Pitágoras

[19] Comentário enviado por grandetilismo em 21/12/2013 - 12:48h

Bom artigo brother.
Obrigado por postar.

'A melhor maneira que o homem dispõe para se aperfeiçoar, é aproximar-se de Deus.'
Pitágoras

[20] Comentário enviado por erison em 31/12/2013 - 10:05h

bom dia, sou programador web, e estou me obrigando a aprender linux, e vou montar um servidor debian para desenvolvimento.
aprendi bastante com suas dicas, mais neste ultimo script que você postou, para deletar arquivos , entre eles tem .exe e pensei, mais as vezes preciso deixar armazenados alguns programas para não ficar baixando sempre, mais de boa vou deixar todos os programas zipados(acho que essa e a melhor forma, se tiver uma outra me indica).

muito grato em estar compartilhando seu conhecimento, como outros membros do fórum.

[21] Comentário enviado por mcfmlt em 27/09/2014 - 15:55h

Pessoal agradeço o contato e agradecimentos de vocês, peço desculpa pela ausência.
Na correria do dia a dia nem sempre é possível atender à todos de maneira satisfatória.
Porém sempre que possível procuro ajudar!

Como alguns amigos citaram acima é possível sim utilizar a opção do veto files, nativa do próprio samba.
Segue as linhas à serem inseridas e ou comentadas:

#Define quais extensões vão ser vetadas, ou seja não poderão ser gravadas.
# veto files = /*.mp3/*.wav/*.tif/*.pif/*.mpg/*.mpeg/*.jpg/*.bmp
#
#Define se o usuario pode ou nao apagar os arquivos vetados.
# delete veto files = yes
#

Nas considerações finais do artigo, está descrito que existem várias maneiras de se fazer os mesmos procedimentos.
Porém em particular, optei pela utilização do script onde o mesmo através de funções bloqueia as pastas destinadas a cada departamento de acordo com a realidade e suas peculiaridades ao passo que o veto files por padrão bloqueia tudo sem restrições.
Usando e editando as funções do script conseguimos uma variedade de controle maior, levando em considerações a ambiente no qual o mesmo estava rodando. Porém para outros ambientes isso pode ser uma negativa, ai cabe o admin avaliar qual a melhor solução.

Sem mais.. É isso ai... Work Work Work..

Abs..


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts