Servidor de Arquivos Samba com Perfil Móvel (Atualizado em 15/01/2009)

Iniciado por Josely, 18 de Agosto de 2008, 11:32

tópico anterior - próximo tópico

Josely

ANALISE

CitarComo eu havia prometido atualizarei o POST sobre Servidor Samba com Perfil Móvel, adicionando mais alguns comentários e esclarecimentos e novas implementações para facilitar sua configuração. Porém antes de qualquer coisa gostaria de deixar aqui alguns esclarecimentos e também alguns pontos interessantes de serem analisados antes da implantação desde Servidor.

Do meu ponto de vista e também com base em algumas analises que fiz, conclui que o objetivo de um Servidor configurado com o Samba para Perfil Móvel é usado em casos em que os usuários, têm o costume de usar um Computador aqui outro ali, ou seja, não tem um computador que só ele use, não tem um lugar definido, usa o que estiver disponível no momento. Então olhando desse ponto de vista, podemos dizer que o Perfil Móvel é extremamente necessário já que o usuário terá que trabalhar com seus arquivos e usar as configurações que mais lhe agradam (vamos dizer assim).

Agora vamos supor que esses mesmo usuários tenham cada um seu próprio computador de trabalho, e não precisem pegar qualquer computador disponível ou que lhes é conveniente, então concluímos que não existe a necessidade de um Perfil Móvel, um perfil local já esta de bom tamanho, alem disso os arquivos dele estarão no Servidor e este estará configurado para repassar os compartilhamentos desse usuário, ou seja, suas pastas e arquivos de trabalho.

Fazer esse tipo de análise é interessante porque com isso você terá uma boa noção do que fará e poderá analisar qual a melhor configuração que se encaixara no perfil do seu cliente.

PRIMEIRA PARTE:   

CitarDA CONFIGURAÇÃO DO SMB.CONF (esta configuração do smb.conf, serve para qualquer distribuição Linux que você vai usar para configurar como Servidor).

Essa primeira parte da configuração do Samba não há muito mistério, basta que você adquira um pouco de conhecimento sobre o Samba para entender o que significa e para que serve cada item da configuração.

Os pacotes necessários para a instalação do Samba  se encontram nos repositórios oficiais da distribuição que você esta usando.

Exemplo:
Pacote          Debian             Fedora
Servidor:         samba            samba
Cliente:         smbclient            samba-client
Documentação      samba-doc            samba-doc

* Configuração do smb.conf:

Citar[global]
netbios name = <NOME DO SERVIDOR>
workgroup = <DOMINIO OU GRUPO DE TRABALHO>
server string = <TIPO DE SERVIDOR, ARQUIVOS, SAMBA...ETC>
domain master = yes
preferred master = yes
local master = yes
domain logons = yes
passdb backend = tdbsam
log file = /usr/local/samba/log.%m
max log size = 1000
#A LINHA ABAIXO EM NEGRITO, FOI COLOCADA PARA QUE O SAMBA CADASTRE AUTOMATICAMENTE O NOME DA MAQUINA, EVITANDO ASSIM QUE VOCÊ TENHA QUE CADASTRAR MAQUINA POR MAQUINA. BASTA VOCÊ CADASTRAR APENAS OS USUÁRIOS E AS MAQUINA DEIXE QUE O SAMBA FAZ O RESTO COM ESSA LINHA ADICIONADA. CASO VOCÊ QUEIRA CADASTRAR AS MAQUINAS MANUALMENTE, COMENTE ESTA LINHA COM "#" OU APAGA-LA.
add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u
logon script = netlogon.bat
# AS DUAS LINHAS ABAIXO EM NEGRITO SÃO JUSTAMENTE AS LINHAS QUE FAZEM O PERFIL MOVEL FUNCIONAREM, CASO VOCÊ NÃO QUEIRA USAR O RECURSO PODE APAGÁ-LAS OU COMENTA-LAS.
logon home = \\%N\profiles\%u
logon path = \\%N\profiles\%u

logon drive = H:
security = user
encrypt passwords = yes
os level = 100
preserve case = no
default case = lower
wins support = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
hosts allow = <IP DA SUA REDE. EX: 192.168.0.>
unix charset = iso8859-1
display charset = cp850
username map = /etc/samba/smbusers
       
[netlogon]
comment = Servico de Logon
path = /etc/samba/netlogon
writeable = no
browseable = no

[Arquivos]
comment = <COMENTÁRIO SOBRE A PASTA>
path = <CAMINHO ONDE A PASTA FOI CRIADA>
browseable = yes
writeable = yes
guest ok = yes
available = yes
#AS LINHAS ABAIXO SÃO OPCIONAIS, COM ISSO O USUÁRIOS FICARAM IMPEDIDOS DE SALVAR ARQUIVOS DO TIPO MP3, WAV, MPG...ETC. CASO VOCÊ NÃO QUEIRA USAR A LINHA, APAGUE-A OU COMENTI-A COM "#">
veto files = /*.mp3/*.wav/*.wma/*.wmv/*.mpg
delete veto files = yes

create mask = 0600
directory mask = 0700

[profiles]
comment = Perfil movel de usuarios
path = <CAMINHO ONDE O PERFIL DOS USUARIOS SERÃO GRAVADOS>
writeable = yes
browseable = no
create mask = 0600
directory mask = 0700

NOTA: Essa é basicamente a configuração que você ira precisar para configurar seu Servidor Samba com Perfil Móvel. Como já havia dito antes é bom que você dê uma boa lida sobre como funciona e para que serve cada item descrito na configuração do smb.conf, no site Guia do Hardware assim como muitos outro você encontrar um material bastante rico em informações sobre esse e muitos outros itens que você poderá implementar ao longo da configuração do seu servidor.

SEGUNDA PARTE:

CitarEsta segunda parte da nossa configuração iremos fazer o processo de cadastramento dos usuários, pasta, grupos e administradores da rede. Nos exemplos a seguir usaremos regras e comandos para as distribuições Debian (seus derivados) e também para Fedora, CentOS (derivados do hedhat).

CADASTRAMENTO DE USUÁRIOS NO SAMBA:

- Cadastro do root no Samba:

Para Debian, Fedora e CentOS:

#smbpasswd -a root

- Cadastrando localmente os usuários sem permissão de logon localmente:

Para Debian e derivados:

NOTA: Neste caso é criado uma pasta com o nome do usuário em /home, mas este usuário não fará Logon no Servidor.

#adduser  -m -d /home/<usuario> -s /bin/false <usuario>

Para Fedora e CentOS:

NOTA: Diferente do Debian e seus derivados, você percebera que não será criado pasta no /home, o usuário é criado mas sem login e pasta /home, ele é uma espécie de usuários "fantasma" so existira para o samba.

#adduser –M <usuário>

- Adicionando o usuario ao Samba:

Para Debian, Fedora e CentOS:

#smbpasswd -a <usuario>

CADASTRAMENTO DAS MAQUINAS:

NOTA: Caso você não esteja usando o item no samba que cadastra as maquinas automaticamente no Servidor, as configurações abaixo servem tanto para Debian quanto para Fedora e CentOS.

Cadastrando as contas das maquinas que farão parte do Domínio:

#useradd  -d /dev/null -s /bin/false <nome_da_maquina>$

Bloqueando/travando a maquina:

#passwd  -l  <maquina>$

Adicionando a maquina no Samba:

#smbpasswd  -a -m <nome_da_maquina>

CADASTRAMENTO DO GRUPO DE ADMINISTRADORES DO DOMINIO:

NOTA: Os procedimentos a seguir, podem ser usados em todas as distribuições, Debian (derivados), Fedora e CentOS.

- Criando Grupo de Administradores:

#addgroup <seu grupo de adm>

* Associando o grupo criado ao grupo UNIX:

#net groupmap add ntgroupmap="Domain Admins" unixgroup=<SEU GRUPO DE ADM> rid=512 type=d

* Você pode também usar esta opção para adicionar o usuário ao grupo, é usado quando o usuário foi criado antes do grupo.

#adduser <usuario> <grupo>

NOTA: Uma observação interessante, é que no CentOS ou Fedora não sera preciso você ter todo esse trabalho de criar o grupo de usuários para Administradores das Estações de Trabalho. O Fedora ou CentOS tem uma ferramenta chamada Usuários e Grupos que fica localizada em > Sistema > Administração > Usuários e Grupos, vá na aba grupos e selecione o usuário que você quer cadastrar como administrador, click no botão Propriedades na barra de tarefas, depois aba Usuários do Grupos  e marque o grupo chamado (ADM). Feito isso o usuário já é administrador das estações de trabalho.

* CRIANDO PASTAS

Criando a pasta Pasta:

#mkdir /home/Arquivos

NOTA: Este comando fara com que todos os usuários possam ler, gravar e executar quaisquer arquivo criados na pasta Arquivos. O Usuário1 criou o arquivo, o Usuário2 também terá acesso.

#chmod -R -f  1777 /home/Arquivos

Criando a pasta Netlogon:

#mkdir /etc/samba/netlogon

Criando a pasta Profiles:

#mkdir /home/profiles
#chmod 777 /home/profiles

NOTA: O script "Netlogon.bat" dever ser feito no Bloco de Notas do Windows, para que as regas de quebra de paginas sejam respeitadas para que o Servidor consiga montar os compartilhamentos nas estações Windows. Edite com os parâmetros abaixo e salve como netlogon.bat, depois copie o arquivos para "/etc/samba/netlogon".

* CRIANDO O SCRIPT PARA NETLOGON

# Cria a unidade H: com a pasta do usuário
net use h: /home
# Cria a unidade M: com as pasta publico
net use m: \\<nome_servidor>\pasta /yes

NOTA: Em relação a este script do netlogon.bat é interessante frisar que se você vai criar uma pasta de Documentos com o nome de cada usuário cadastrado e vai montar o compartilhamento dessa pasta no Windows, é interessante você criar um script de netlogon com o nome do usuário assim, o servidor montar alem do compartilhamento "geral" montara também a pasta especifica com o nome do usuário.

Exemplo:
você cadastrou o usuário João e quer que seja montado o compartilhamento da pasta (João Documentos) e também a pasta (Arquivos) que contem as demais pastas dos usuários da rede.

Faça o seguinte:

# Cria a unidade H: com a pasta de Arquivos
net use h: \\<nome_do_servidor>\Arquivos /yes
# Cria a unidade M: com a pasta do usuário
net use m: \\<nome_servidor>\Joao Documentos /yes

Agora você salva o arquivo com o nome do usuário, joao.bat. Não esqueça que este arquivo deve ser criado no bloco de notas do windows para que seja preservadas as regras de quebras de paginas.
Agora modifique no smb.conf a linha:

logon script = netlogon.bat

para

logon script = U%.bat

Com a linha modificada o Servidor vai montar os compartilhamentos do usuário que esta fazendo o Logon na estação. Este procedimento deve ser feito para todos os usuários da rede. Você pode também incluir outros compartilhamentos se achar necessário.

CitarRESOLUÇÃO DE PROBLEMAS

Como eu já havia dito antes, fiz toda essa configuração com base em testes nas distribuições Ubuntu Server 8,04 LTS e CentOS, não fiz testes em Debian e Fedora, mas acredito que funcionara normalmente para essas e outras distribuições que você ira usar como Servidor.

Alguns dos problemas enfrentados por quem vai fazer essa configuração é a  questão da comunicação do servidor com a estação, as vezes no momento da configuração do domínio a estação da um aviso de que não consegui se comunicar com o servidor do domínio ou algo desse tipo. Também  tem a questão do erro que diz "não foi possível fazer o perfil móvel do usuário e que o sistema usara um perfil temporário".

As possíveis causas desses problemas podem ser as seguintes:

- Firewall
Se a distribuição que você esta utilizando usa um sistema de firewall como o Fedora ou CentOS, você deve habilitar a por que o samba trabalha ou desabilitar o firewall por completo e depois implementa-lo a seu gosto. No nosso caso usamos o CentOS para a configuração do Servidor, desabilita-mos o firewall por completo e implementamos regras próprias com  IPTABLES.

- Selinux
Assim como o Firewall se a distribuição que você esta usando tem o sistema  Selinux, desabilite-o por completo ou se você souber lidar com ele, você pode configurar as politicas de segurança para que ele possa liberar o Servidor para comunicação com as estações. Assim como no caso do firewall também desabilitamos o Selinux por completo.

- Endereçamento de IP
Você deve observar se os endereços IP's da sua rede estão todos na mesma faixa por exemplo: o Servidor tem o IP 192.168.1.1 e as estações terão 192.168.1.2, 192.168.1.3 assim por diante. Caso os IP's não estejam corretos poderá ocasionar erros ao tentar acessar o Servidor de Domínio devido a endereços diferentes.

- Verificação do Servidor e estações
antes de engraçar no domínio verifique se o servidor enxerga a estação e a estação enxerga o servidor. Claro que você não terá acesso aos compartilhamentos do servidor, mais se tudo estiver correto, você sera capaz de enxerga-lo caso a estação esteja o grupo de trabalho com o mesmo nome do item (workgroups) do smb.conf do samba.

- Cadastramento do root
Não esqueça de cadastrar o usurário root no samba, porque ele é o usuário que dará o acesso ao domínio quando você estiver configurando as estações windows para engraçar no domínio. O root é o único que terá acesso devido ele ser o administrador do Servidor e também por possuir uma conta local no servidor, não tente usar os usuários cadastrados no Samba pois os mesmos não irão funcionar para esta etapa, devido ao fato desses usuários não terem conta local no servidor e sim no samba somente.

Basicamente posso dizer que esses foram alguns dos problemas que encontrei ao longo da configuração do servidor, acredito que esses sejam os principais problemas encontrados para o ingresso no servidor. Caso alguem tenha outros problemas relacionados a permissões, problemas com pastas, cadastro de usuários...etc, postem seus problemas que na medida do possível iremos encontrar as soluções.

Floyd

Amigo,

Não analisei a fundo sua configuração do smb.conf, mas gostaria de lembrar que, após cadastrar os usuários no samba com o smbpasswd, é preciso ativá-los com o comando:

smbpasswd -e usuario

[]s.
Sentir-se bem é o que basta.

Roger_Pereira

Boa Tarde.

Amigo esse topico que vc postou, ele esta 100% ou vc fez alguma modificação depois para resolver por exemplo o perfil movel como vc citou anteriormente.
Achei muito boa a sua abortagem e estou pensando em seguir ela para ver se consigo fazer meu samba fuincionar e como a prioridade é a mesma sua to pensando em usar.

So gostaria mesmo de uma confirmação se ta tudo OK para mim por em pratica também essa sua explicação..


T+

Roger_Pereira

Josely

Foi atualizdo o tópico? lembro que vc tinha respondido que ira atualizar assim q possivel mais sumiu seu post então to um pouco perdido se puder me confirmar certinho.


FLW..

Josely

ola amigos....

sim Roger o posto foi atualizado, desculpa não ter avisado. Também coloquei no começo do post   "Como eu havia prometido, aqui esta um breve [TUTORIAL] como configurar um Servidor Samba de Arquivos com Perfil Móvel."

Mais de qq forma tai, foi testado e ainda esta sendo testado até o presente momento, não houve erro algum, seguindo o Tutorial na risca você não tera problemas, mais caso haja algum, post o seu problema que juntos acharemos uma solução.

Roger_Pereira

Josely

Veja se pode me ajudar segui os passos aqui mostrado no seu tutorial.
So que estou com um problema no perfil movel.

Quando logo ele não consegue carregar o perfil movel, contudo não sei como funciona, eu logo e ele não encontra o perfil e diz q vai logar com um provisorio, dae ao dar logof ele não salva o perfil e sempre que loga abre um perfil novo.

A pergunta é, como faz para gravar a primeira vez o perfil lá pra ele ir buscar e salvar toda vez que der logof.

Deve ser algo simples mais que não atinei ainda a resolver.


FLW..

Josely

olha o Perfil Móvel é gerado pelo próprio servidor assim que vc faz o Logon, se ele esta dando erro é capaz da pasta profilesNT (que criei no tutorial) pode esta com permissão errada, o smb.conf também deve estar do mesmo jeito que postei (existe outras formas, mas a mais fácil foi esse que fiz).

O problema que esta dando é justamente causado por permissões erradas ou faltando. Você seguiu o Tutorial passo a passo ou você apenas implementou algumas coisas que ja existiam na sua configuração?. Nos dê mais informações.

Roger_Pereira

Eu segui 90% do seu tutorial..

Dei permição ao root no samba, ativei ele no samba.
Criei novo usuario, configurei a senha no samba e ativei ele.

Não fiz a parte de Administrador no dominio isso tem importancia? qual seria a real função dessa parte?

Cadastrei a maquina...

Criei a pasta netlogon e a profilesNT com a permição 777


Bom eu percebi que o H ficou com o endereço da pasta profilesNT se eu não colocar o arquivo .bat... isso é normal?


Eu so fiquei com duvida nessa parte.

hosts allow = <SUA FAIXA DE IP. EX: 192.168.0.>

eu devo colocar somente a faixa inicial? tipo o dhcp distribui do 10.1.1.10 ao 10.1.1.90 devo colocar somente o 10.1.1. ? ou colocar o intervalo?


Eu peguei teu smb.conf e substitui pelo meu então to seguindo quase 100% como já disse, so q fico estranho q não tá gravando o perfil


Tira uma duvida minha, dentro da pasta do profilesNT vai criar uma pasta para cada perfil? como funciona?

Josely

Bom dia Roger

1º Pergunta: O Administrador do sistema é responsável por Administrar a Rede (o nome ja diz tudo), se você não criar um Administrador para sua Rede, você ficara impedido de realizar certas funções, devido ao fato de estar com privilégios reduzidos. É tipo você ter uma conta "Convidado" no Windows XP, que não tem poderes para nada. Ja a outra conta tem porque ela faz parte do grupo de administradores (é bom você pesquisar sobre isso).

2º Pergunta: Você deve criar o arquivo netlogon.bat para que as partições criadas poção ser montadas nas estações. A unidade "H" fica para o profilesNT montar o Perfil Móvel, mais não sera visto nas estações. Se as estações estão enxergando a pasta "profilesNT", significa que algo esta errado, reveja suas configurações.

3º Pergunta: O "hosts allow = 192.168.0." é colocado quando queremos que so os usuários desta faixa de ip, tenham acesso ao servidor, ou seja, so a sua faixa de Ip interna ou local, sera aceita pelo Servidor. Ex: 192.168.0. ou 10.1.1. ou 10.0.0....etc.

4º Pergunta: Dentro da pasta "profilesNT" você não cria pasta alguma, o próprio servidor se encarrega de criar uma pasta para cada usuário que faz o logon nas estações, quando o usuário faz o logoff, o servidor captura os arquivos que ele criou e os guarda na sua pasta que esta no servidor. Todo o processo é automático o próprio servidor é que é responsável pelo restante.

Se você ainda esta em fase de teste, aconselho você a começar do zero, como ja fiz varias vezes aqui no laboratório quando tive certos problemas, formate se possível e reinstale o servidor, e começe seguindo o tutorial a risca, conserteza nada dara errado. fiz dois teste aqui me baseando ao pé da letra como esta no tutorial e tudo saiu bem.



Roger_Pereira

Ok vou seguir desde o unicio então.. to em fase de teste também aqui no laboratorio.

Seguinte antes de partir do zero tentei esse parte.

Associando o grupo criado ao grupo UNIX:

Código:

#net group add ntgroupmap="Domain Admins" unixgroup=<SEU GRUPO DE ADM> rid=512 type=d


Ele ta pedindo um password, mais o do root ta dando erro o que seria saberia me explicar?
Se eu deixo em brando diz q user o ou password estão incorretos.


Esse foi o procedimento que fiz..


root@lab:~# net group add ntgroupmap="Domain Admins" unixgroup=master rid=512 type=d
Password:
Could not connect to server 127.0.0.1
The username or password was not correct.
Connection failed: NT_STATUS_LOGON_FAILURE


Sendo que criei o grupo com nome de "master" anteriormente

Josely

teste isso aqui:

net groupmap add ntgroupmap="Domain Admins" unixgroup=<SEU GRUPO DE ADM> rid=512 type=d

Roger_Pereira

Aparentimente deu certo sua dica, veja se isso é o correto a se aparecer apos colocar o codigo.

# net groupmap add ntgroupmap="Domain Admins" unixgroup=master ri     d=512 type=d

[2008/09/23 16:19:49, 0] param/loadparm.c:set_boolean(2876)
  ERROR: Badly formed boolean in configuration file: "yes (CASO QUEIRA USAR, ADI     CIONE O IP DO SERVIDOR NAS CONFIGURAÇÕES WINS DAS ESTAÇÕES WINDOWS OU LINUX)".
[2008/09/23 16:19:49, 0] param/loadparm.c:lp_bool(2293)
  lp_bool(yes (CASO QUEIRA USAR, ADICIONE O IP DO SERVIDOR NAS CONFIGURAÇÕES WIN     S DAS ESTAÇÕES WINDOWS OU LINUX)): value is not boolean!
Successfully added grou domp Domain Admins to the mapping db as aain group



Uma ultima pergunta essa parte no smb.conf não fico mt clara para mim.

admin users = <AQUI VC COLOCA O GRUPO DE ADMINISTRADORES DA REDE EX: @NTADMIN>

é para colocar o grupo de admnistrador de dominio que vou criar?



Bom acho q com isso consigo dar seguimento, peço desculpas pelas perguntas mais estou tentando em tender ao maximo o precesso.


FLW..

Josely

Aqui esta separado rid=512 e o certo é junto

errado
Citar# net groupmap add ntgroupmap="Domain Admins" unixgroup=master ri     d=512 type=d

certo
Citar# net groupmap add ntgroupmap="Domain Admins" unixgroup=master rid=512 type=d

sim, nesta parte vc coloca o grupo de administradores que vc criou.

Citaradmin users = master

Roger_Pereira

Josely, obrigado pela ajuda e dicas todas funcionaram perfeitamente. Contudo ainda continuo com problema para carregar perfil.

Bom eu segui paso a paso seu tutorial, dae fui na estação coloquei o user e senha criado e blz logo e carrego o perfil. Dae desliguei a maquina e fui pra outro computador. Coloquei mesmo nome de maquina mesmo user e senha e esse não carrego o perfil movel. Tentei di tudo criar outro usuer outro nome de maquina e nada. Bom voltei ao computador antigo para ver se era nesse pc o problema me deparo q paro de funcionar o perfil, não estava mais carregando.. revisei tudo criei novo user a nda..

Bom formatei o Servidor e reviz dinovo todo o seu tutorial, contudo não sei o que acontece que não carrega o perfil. Dae agora eu não intendo mais nada. O que pode estar acontecendo?


FLW..

Josely

Roger vamos la:

você tem que cadastrar as maquinas que você usa para o teste por exemplo: você tem 2 pc's que quer usar como teste, você tem a maquina cliente1 e cliente2 certo?, você cadastra as duas maquinas, cria dois ou mais usuários. Nas maquinas cliente1 e cliente2 (esses são os nomes das maquinas), você configura para Domínio apos alguns instantes lhe sera pedido usuário e a senha que no caso Usuário: root Senha: a senha que você para cadastrar o root no samba com "smbpasswd -a root". Dai você vai receber a mensagem "Bem vindo ao Domínio", apos isso você reinicia a maquina e ela ja estara no dominio.

O primeiro logon que você fizer nas estações tem que ser com o usuário "root" e sua senha, para que a estação crie um relacionamento de confiança com o Servidor e saiba que essa conta é do administrador da rede. Se não houver erro algum o sistema carregara normalmente. Feito isso você faz o logoff do root e entra com uma das contas de usuário que você cadastrou, se com a conta do root não deu problema com as dos usuários também não tera problema, se tiver verifique as permissões da pasta "profilesNT".

Após o usuário se logar va ao servidor e veja se na pasta "profilesNT" tem uma pasta com o nome do usuário, caso tenha o perfil esta funcionando ou você digita no terminal "smbstatus" dai ele vai lhe dizer quais usuários e maquinas estão logados no servidor neste momento.

Caso você não consiga de forma alguma vou te passar um Tutorial do Carlos E. Morimoto que tambem faz referência a Perfil Móvel em Servidor Linux, segui este tutorial dele e esta funcionando perfeitamente aqui.