CentOS como terminal server autenticando em Windows Server 2003 Active Directory com montagem automática de compartilhamentos de rede

Este procedimento é um quebra-cabeças de dicas que achei na internet e é uma alternativa ao Windows Terminal Server da Microsoft, com vantagem de utilizar menos recursos e ser completamente grátis! Todo o procedimento foi validado e revalidado, ou seja, o funcionamento é garantido.

[ Hits: 39.223 ]

Por: Vicente Sloboda em 08/01/2008 | Blog: http://blogdovicente.com


Introdução



Para criar este procedimento foi instalada a versão Centos 5.0 64 bits em um servidor VMware ESX 3.0 autenticando via winbind, o software de Terminal Services Free NX, um domínio com Windows Server 2003 usando o pam_mount para montar os compartilhamentos e o pam_listfile para controlar os usuários que tem acesso ao servidor. Não foram aplicadas atualizações no CentOS, não testei se funciona com as atualizações.

Como pré-requisito para começar é preciso instalar um CentOS 5.0, desabilitar o firewall e o SELinux.

Instalando o Winbind para permitir o acesso ao CentOS por usuários do domínio

1. Depois de instalado, logar como root. Entrar na console gráfica da máquina.

2. Executar o system-config-network e trocar o nome da máquina colocando seu nome definitivo.

3. Executar o system-config-authentication.

3.1. Ticar a opção para usar o winbind.

3.1.1. Preencher na tela Configurações do Winbind:
  • Domínio Winbind: dominio
  • Modelo de Segurança: ads
  • Reino do Winbind ADS: dominio.teste
  • Controladores de Domínio Winbind: servidor.dominio.teste
  • Template Shell: /bin/bash

3.2. Clicar na aba Autenticação e ticar em Ativar Suporte Winbind.

4. Partindo do princípio que a máquina não será um servidor samba e só usará o Winbind, alterar o /etc/samba/smb.conf conforme o arquivo abaixo, alterando os parâmetros necessários nas linhas 2, 8, 9 e 14:

[global]
workgroup = dominio
server string = Servidor Terminal Services
security = ads
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
password server = servidor.dominio.teste
realm = DOMINIO.TESTE
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/bash
winbind use default domain = true
wins server = 10.0.0.1

5. Alterar o /etc/krb5.conf conforme abaixo, alterando os parâmetros nas linhas 6, 12, 13, 14, 15, 18 e 19:

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOMINIO.TESTE
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = yes
[realms]
DOMINIO.TESTE = {
kdc = servidor.dominio.teste:88
admin_server = servidor.dominio.teste:749
default_domain = dominio.teste
}
[domain_realm]
.dominio.teste = DOMINIO.TESTE
dominio.teste = DOMINIO.TESTE
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

6. Alterar /etc/resolv.conf, caso já não esteja conforme abaixo, alterando o ip do servidor de dns na primeira linha:

nameserver 10.0.0.1
search dominio.teste
domain dominio.teste

7. Executar o comando "net ads join -S servidor -U administrator" e informar a senha para adicionar a máquina ao domínio.

8. Executar o comando "net user -U administrator" e informar a senha para verificar se o Winbind está funcionado. Se estiver, deverão ser retornados os usuários do domínio.

9. Alterar o /etc/nsswitch.conf para:

passwd: files winbind
shadow: files winbind
group: files winbind
hosts: files wins dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: files
publickey: nisplus
automount: files
aliases: files nisplus

10. Alterar o /etc/pam.d/system-auth, conforme abaixo:

#%PAM-1.0
auth required pam_listfile.so item=user sense=allow file=/etc/system_users onerr=fail
auth required pam_env.so
auth required pam_mount.so
auth sufficient pam_winbind.so use_first_pass
auth sufficient pam_unix.so use_first_pass likeauth nullok
auth required pam_deny.so
account required pam_unix.so
password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password sufficient pam_unix.so nullok md5 shadow use_authtok
password required pam_deny.so
session required pam_limits.so
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
session optional pam_mount.so

11. A alteração na linha 2 do /etc/pam.d/system-auth especifica o nome do arquivo que conterá os usuários que podem logar no servidor, colocar um usuário em cada linha sem a informação do domínio, não esquecendo do root. NÃO ESQUEÇA DE ADICIONAR O ROOT SENÃO ELE NÃO CONSEGUIRÁ MAIS LOGAR NA MÁQUINA!!!

12. O nome do arquivo neste caso é o /etc/system_users, o arquivo não existe e será preciso criá-lo.

13. As alterações das linhas 4 e 15 do /etc/pam.d/system-auth serão para a montagem automática de compartilhamento Windows que veremos a seguir.

14. O arquivo /etc/pam.d/system-auth padrão do CentOS é diferente deste e pelos vários testes que eu fiz impedia que qualquer usuário local acessasse o servidor. Esta é uma versão modificada do arquivo que tenho no meu desktop com Gentoo.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação do PAM_MOUNT para montagem automática de compartilhamentos Windows
   3. Instalação do FreeNX (Terminal Server para Linux)
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

K12LTSP - Executando o Mozilla antes do GDM

Desktop 3D Linux

Instalando e utilizando o agendador at

Organizando as idéias

Instalando Debian direto do HD

  
Comentários
[1] Comentário enviado por kalib em 08/01/2008 - 10:40h

Muito show cara..
Parabéns pelo excelente artigo..é um tópico que com certeza matará a curiosidade de muita gente sobre esta possibilidade. ;]

abraço e obrigado pela colaboração

[2] Comentário enviado por ramos1986 em 08/01/2008 - 14:03h

Artigo muito bom cara, meus parabéns.

[3] Comentário enviado por dupotter em 09/01/2008 - 09:08h

A solução é boa, mas pra quem precisa rodar um software específico, como no meu caso, não funciona, pois a bos@$#% do programa só roda em windows.

[4] Comentário enviado por vicentesloboda em 09/01/2008 - 09:45h

Já tentou rodar usando Wine? Quase sempre funciona. O único problema que ainda não parei para tentar resolver é o fato do wine instalar os programas no home de cada usuário.

[5] Comentário enviado por dupotter em 09/01/2008 - 17:00h

acho que dá pra vc criar um usuário wine, fazer a instalação do diretório do wine (o fake_C) em /opt por exemplo e dar permissão de execução e escrita para todos os usuários.

meu problema é que a bomba do ERP até roda via wine (é feito em delphi), mas algumas fontes não aparecem, fica meio lento e o gerador de relatórios, o crystal, não roda (pelo menos não consegui fazer funcionar).

[6] Comentário enviado por vicentesloboda em 09/01/2008 - 17:46h

se você instalar as fontes do Windows pode funcionar, nunca fiz mas me disseram que funciona. O crystal talvez comece a rodar nas versões mais novas do wine. Tentou usar a última versão ou usou a que vem com a distribuição?

[7] Comentário enviado por vicentesloboda em 09/01/2008 - 17:47h

Alguém já tentou executar o procedimento? Se sim por favor, registre um comentário.

[8] Comentário enviado por dupotter em 09/01/2008 - 18:15h

já instalei as fontes do windows, é algum pau na programação do programa mesmo, enfim, tenho esperança que nas próximas versões possa rodar, se rodasse, essa solução seria perfeita pra mim. agora estou cotando o preço do Citrix Presentation (metaframe) só por conta desse ERP.
já usei a versão que vem na distro, os pacotes que tem no winehq e os fontes, nada adiantou.

[9] Comentário enviado por neriberto em 31/10/2008 - 09:09h

Perguntinha!!?!

Alguma dica de como fazer um linux cliente carregar o client do FreeNX ao invês dos Gerenciadores de Janela Padrão...????


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts