20 de abr. de 2011

Slackware 13 com Samba PDC completo

 Slackware 13 com Samba PDC completo

O objetivo desse arquivo é demonstrar de maneira simples como montar um servidor Samba com PDC e perfil móvel. Depois de muita pesquisa chegamos ao resultado desse artigo para que todos que precisarem possam tirar o máximo proveito possível. Todos os créditos serão dados no final do artigo. Bom proveito!

Configuração do Samba - smb.conf

O arquivo de configuração do Samba foi contribuído pelo nosso amigo H4ck-Du5t e fiz algumas modificações. Segue abaixo:

[global]

# Comentário sobre o Servidor.
comment = Servidor

# Host do Servidor.
netbios name = servidor

# Domínio que está sendo criado.
workgroup = placeredes

# Faz com que o usuário seja obrigado a autenticar no domínio diferente do (share) que seria apenas um compartilhamento.
security = user

# Faz com que as eleições sejam bem sucedidas.
os level = 100

# Aceita logon de clientes.
domain logons = yes

# Nome do script de logon.
logon script = %U.bat

# Referências do Controlador de domínio.
domain master = yes
local master = yes
preferred master = yes
time Server = yes
# Encriptação de senha para o uso de clientes XP e 2K.
encrypt passwords = yes
keep alive = 20
debug level = 3
log file = /var/log/samba_log.%u

## Com essa linha, não será necessário cadastrar as Estações no SAMBA

add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u

# Configuração de senhas.
passwd program = /usr/bin/passwd %u
passwd chat = *Entre\scom\snova\ssenha:* %n\n*Repita\snova\ssenha:* %n\n
null passwords = no
admin users = @users

# Sincronismo de senhas com as estações. A senha pode ser alterada via windows.
unix password sync = no
socket options = IPTOS_LOWDELAY TCP_NODELAY

# Permissão de acesso para somente sub-redes cadastradas.

hosts allow = 10.0.0.

# Compartilhamentos
[homes]
comment = Pastas dos Usuários
public = no
browseable = no
writeable = yes

[netlogon]
comment = Compartilhamento de Scripts
path = /arquivos/placeredes/netlogon
guest ok = Yes
browseable = no

#### Todos os diretorios tem permissoes por grupos, aqui estão separados por @placeredes (administrador) @diretoria, @departamento e @users
(todos).

[publico]
comment = Diretório Publico
path = /arquivos/placeredes/publico
browseable = yes
writeable = yes
force create mode = 0770
force directory mode = 0770
read only = no
admin users = @users
write list = @users

[tecnico]
comment = Diretório Tecnico
path = /arquivos/placeredes/tecnico
browseable = yes
writeable = yes
force create mode = 0770
force directory mode = 0770
read only = no
admin users = @placeredes @diretoria @tecnico
write list = @placeredes @diretoria @tecnico

[vendas]
comment = Diretório de Vendas
path = /arquivos/placeredes/vendas
browseable = yes
writeable = yes
force create mode = 0770
force directory mode = 0770
read only = no
admin users = @placeredes @diretoria @vendas
write list = @placeredes @diretoria @vendas

Cadastre o usuário root no Samba:

# smbpasswd -a root

Crie as pastas necessárias:

# mkdir /arquivo
# cd /arquivos
# mkdir placeredes
# cd placeredes
# mkdir netlogon
# mkdir publico


Dê as permissões nas pastas criadas:

# chmod 755 /arquivos/placeredes/netlogon
# chmod 755 /arquivos/placeredes/publico


Crie o arquivo netlogon.bat dentro da pasta /arquivos/netlogon com o seguinte conteúdo:

net use P: \\servidor\servidor\publico /yes 

Criar usuários e grupos

Aqui demonstrarei como criar grupos e usuários e associá-los. Temos nessa área dicas importantes de nossos colaboradores do VOL e outros grupos.

Como iremos fazer uso de um script em shell para cadastrar os usuários e definir os grupos, vamos primeiro criar todos os grupos que terá na empresa:

# groupadd nomedogrupo

Aqui deverão ser cadastrados os grupos da empresa, como: diretoria, departamento, administrador. Com certeza não terão problemas ao criar os grupos.

Agora para criar o usuário, uma maneira bem simples de se fazer isso é usando um script feito pelo nosso amigo Iran Macedo (http://www.vivaolinux.com.br/script/Adicionando-automagicamente-usuarios).

Faça o download do script: arquivo adiciona_usuario

e antes de executar no terminal, acesse o código usando o editor de sua preferência (vi adiciona_usuario) e localize a linha com a senha padrão para os usuários. A senha padrão original dos usuários criados pelo script é "S3nh4123". Essa é a primeira senha do usuário do Samba. Aqui eu alterei essa senha para "place", pois fica mais fácil de passar para os novos usuários do Samba.

Feito isso execute o script pela primeira vez e cadastre os usuários de maneira simples e rápida. Para cadastrar futuros usuários basta acessar o shell e digitar adiciona_usuario e fazer o cadastro dos mesmos, como diz o Iran, podem ser cadastrados 10, 20, 100 usuários numa única sessão, e o bom é que sempre mostra o último usuário criado, evitando assim que tentemos criar usuários já existentes.
Aqui nesse script já associamos o usuário ao grupo ao qual pertence.

Adicionando o Windows no domínio, netlogon e scripts

Adicionando o Windows no domínio

Para adicionar os micros no domínio clique com o botão direito em:

Meu Computador -> Nome do Computador -> Alterar

E insira o domínio, em seguida será solicitada a senha de root, clique em OK e reinicie o micro e logue com um usuário comum.

Note que já estará mapeado o diretório home do usuário.

Netlogon e scripts

Aqui foi onde tive que pensar um pouco mais e procurar uma solução mais rápida para criar os arquivos.bat de cada usuário, visto que cada usuário tem o seu próprio grupo.

Depois de uma boa pequisa no nosso glorioso Google encontrei uma dica do Marco Driemeyer.

Ele demonstra de uma maneira fácil e rápida de criar os arquivos.bat. Segue demonstração:

Primeiro faça o download do script: http://www.titansware.com.br/downloads/scripts_samba.sh

Agora siga esses passos essenciais:
  1. Copiar ou baixar o script para o diretório onde estão os teus bats de login;
  2. Criar um diretório chamado scripts, nele ficarão os modelos de script para cada um dos grupos;
  3. Dentro de scripts, criar um diretório para cada grupo com o nome do grupo, por exemplo, grupo1 grupo2 grupo3;
  4. Dentro do diretório de cada grupo, deve ser criado o bat do grupo chamado script.bat, este diretório também deve conter um arquivo chamado usuários, com um usuário por linha;
  5. Após isso execute o script ./scripts_samba.sh, ele criará o script de cada usuário da forma correta, ao fazer a alteração no script de um grupo rode o ./scripts_samba.sh novamente para que ele atualize o script dos usuários.

Para que tenha sucesso na criação dos bats, é indispensável a instalação do unix2dos, a instalação é fácil e não será abordada no artigo.

Exemplo de como ficará o bat:

# cat suporte.bat

net use h: \\servidor\administrativo /yes
net use i: \\servidor\diretoria /yes
net use j: \\servidor\expedicao /yes
net use k: \\servidor\faturamento /yes
net use l: \\servidor\financas /yes
net use m: \\servidor\gcomercial /yes
net use n: \\servidor\publico /yes
net use o: \\servidor\ti /yes
net use p: \\servidor\varejo /yes
net use q: \\servidor\vendas /yes
net time \\servidor /yes
Agora iremos abordar algumas alterações e dúvidas que poderão surgir depois de toda configuração.

Ajuste fino na configuração

Essa parte do artigo é onde podemos trabalhar ainda mais as permissões e alterações no login dos usuários.

Depois de ter configurado toda rede, surgiu a questão de ter que alterar as senhas dos usuários mensalmente por motivo de segurança. Como não são poucos usuários, fica difícil ter que fazer isso mensalmente. Por isso podemos mudar a configuração das senhas do Samba.

Exemplo:

Para que a senha expire em 30 dias, devemos usar o seguinte comando:

$ pdbedit -P "maximum password age" -C 2592000

Para que o usuário só possa mudar a senha após 25 dias depois da última troca:

$ pdbedit -P "minimum password age" -C 2160000

O tamanho mínimo da senha será de 6 caracteres:

$ pdbedit -P "min password length" -C 6

Mantém um histórico de senhas usadas pelo usuário para que ele não possa reutilizá-las. Neste caso ele não poderá utilizar as últimas duas senhas. Em conjunto com o "minimum password age" esta opção torna a política de senhas muito mais segura:

$ pdbedit -P "password history" -C 2

A senha de root não expira:

$ pdbedit -c "[X ]" -u root

Outro problema que poderão enfrentar é que o todo-poderoso root do Linux não tem acesso de administrador no Windows. Para isso devemos associar o root do Linux ao grupo de administradores do Windows. Fazemos isso através do seguinte comando:

# net groupmap add ntgroup="Domain Admins" rid=512 unixgroup=root

No meu caso, alguns usuários teriam que ter privilégios de administradores em suas estações, para isso podemos alterar a configuração acima com o seguinte comando:

# net groupmap modify ntgroup="Domain Admins" rid=512 unixgroup="GRUPO DESEJADO"

Isso é importante para a instalação de programas e alteração de data e hora nos computadores.

Bem, acho que é isso. Caso eu tenha esquecido algo eu faço uma segunda parte do artigo ou posto nos comentários.

Como fui extremamente ajuda por muitos para chegar a todo esse processo, espero que esse artigo seja útil para muitos, e sempre tenhamos em mente o seguinte: "COMPARTILHE", pois a mais felicidade em dar do que em receber.

Abraço a todos.

Créditos

Seguem as fontes citadas no artigo:

Mural de Recados