quarta-feira, 18 de abril de 2012

Compartilhamento de pastas com SAMBA no CentOS

Caros amigos, me deparei com um problema recentemente que não é novo porém, muitos administradores de sistemas linux como eu, passam em seu dia a dia que é o compartilhamento de pastas que estão em um servidor linux para um ambiente Windows. Antes eu resolvia isso colocando a máquina linux no domínio windows e configurando o samba com um monte de regras porém, resolvi pesquisar e descobri que tem um modo muito mais fácil de resolver isso. Para isso temos que seguir alguns passos que são:

1 - Criar a pasta no ambiente linux que será compartilhada no windows.
2 - Configurar o arquivo samba.conf.
3 - Liberar as portas do samba no firewall Iptables.

Vamos lá

OBSERVAÇÃO: Para facilitar o entendimento do samba.conf, colocarei possíveis comentários em vermelho. Para facilitar o entendimento de comandos colocarei em azul.

1 - Criar a pasta no ambiente linux que será compartilhada no windows
Neste exemplo colocarei a pasta no diretório / porém, a pasta pode ser criada em qualquer diretório desde que seja infomado o endereço correto no smb.conf

Para criar a pasta digite o comando no terminal mkdir bkp.

2 - Configurar o arquivo samba.conf

[global]  //onde são informadas as configurações gerais do samba.
workgroup = INGA.local   //informar o nome do grupo ou do domínio.
server string = Samba Server
security = share
log file = /var/log/samba.%m
max log size = 50
dns proxy = no

[Programas]   //Nome do compartilhamento que aparecerá no windows.
comment = Programas Compartilhado
path = /bkp   //Endereço compartilhado com o nome Programas.
read only = no
public = yes

3 - Liberar as portas do samba no firewall Iptables.

Caso se tenha um outro firewall em sua rede, é possível parar o serviço do firewall local e o compartilhamento já irá funcionar porém, um firewall não deixa de ser uma proteção a mais para o server e por isso é sempre bom deixá-lo operando.

O samba utiliza as portas 137, 138 e 139 sndo que as portas 137 e 138 são UDP e a 139 TCP. Para liberar estas portas, pode se utilizar estas regras no iptables (lembrando que estas devem ser colocadas acima das regras REJECT.

-A INPUT -p udp --dport 137 -j ACCEPT
-A INPUT -p udp --dport 138 -j ACCEPT
-A INPUT -p tcp --dport 139 -j ACCEPT

Após inserir as regras reinicie o iptables com o comando service iptables restart e pronto é só testar no windows.

Se gostou deixe um comentário, se não gostou deixe também ;-)

6 comentários:

  1. Valeu cara estava quebrando a cabeça seu post me deu uma luz

    Abraços

    ResponderExcluir
  2. O meu não funcionou. No windows fala que não tenho permissão pra acessar o diretório. Fora permissão q esta como 777, tem ideia oq pode ser

    ResponderExcluir
  3. sou novo no linux, qual o caminho para fazer estas alterações? onde fica o arquivo para ser alterado?

    ResponderExcluir
    Respostas
    1. Oi, fica em /etc/sysconfig. O arquivo é o iptables.

      Excluir
  4. para erro de permissão,Inclui :

    force create mode = 777
    # Solicita que o Samba force o tipo de permissão dos arquivos criados.
    force directory mode = 777
    # Mesmo que force create mode, mas para diretórios criados nos compartilhamentos.

    ResponderExcluir
  5. Funcionou blz...parabéns

    ResponderExcluir