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
# 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:
- Copiar ou baixar o script para o diretório onde estão os teus bats de login;
- Criar um diretório chamado scripts, nele ficarão os modelos de script para cada um dos grupos;
- Dentro de scripts, criar um diretório para cada grupo com o nome do grupo, por exemplo, grupo1 grupo2 grupo3;
- 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;
- 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.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
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:- Trocar senha do SAMBA via estações Windows pelo próprio usuário [Dica]
- http://tetrixbr.blogspot.com/
- PDC Samba levando os administradores para o Windows [Dica]
- Adicionando "automagicamente" usuários [Shell-Script Script]
- SAMBA - logon script [Fórum - Suporte a Servidor] - CentOSB
- Slackware como controlador de domínio [Artigo]