Terminal Services com Centos com Autenticação em AD e montagem compartilhamentos Windows
Publicado em 4/12/2007 | Autor Vicente
————————————————-
O objetivo deste procedimento é prover um ambiente de Terminal Services FreeNX com Centos autenticando em domínio Active Directory com montagem automática de compartilhamentos Windows.
Para criar este procedimento foi instalado a versão Centos 5 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.
1. Instalar o Centos 5 normalmente, desabilitar o Firewall e o SELinux
Instalando o Winbind para permitir o acesso ao CentOS por usuários do domínio.
2. Depois de instalado, logar como root. Entrar na console gráfica da máquina.
3. Executar o system-config-network e trocar o nome da máquina colocando seu nome definitivo.
4. Executar o system-config-authentication.
4.1. Ticar a opção para usar o winbind
4.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
4.2. Clicar na aba Autenticação e ticar em Ativar Suporte Winbind.
5. 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
6. 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
}
7. 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
8. Executar o comando: net ads join -S servidor -U administrator e informar a senha para adicionar a máquina ao domínio.
9. 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.
10. 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
11. 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
12. 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!!!
13. O nome do arquivo neste caso é o /etc/system_users, o arquivo não existe e será preciso criá-lo.
14. 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.
15. 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.
Instalação do PAM_MOUNT para montagem automática de compartilhamentos Windows.
16.Criar o arquivo /etc/yum.repos.d/fedora.repo com o conteúdo abaixo:
[fedora-dries]
name=Extra Fedora rpms dries – 6 – $basearch
baseurl=http://ftp.riken.jp/Linux/dries/fedora/fc6/$basearch/dries/RPMS
http://ftp.belnet.be/packages/dries.ulyssis.org/fedora/fc6/$basearch/dries/RPMS
gpgkey=http://dries.ulyssis.org/rpm/RPM-GPG-KEY.dries.txt
enabled=1
gpgcheck=1
[fedora-extras]
name=Fedora Extras 6 – $basearch
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/6/$basearch/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=extras-6&arch=$basearch
#mirrorlist=file:///etc/yum.repos.d/local-extras
enabled=1
gpgkey=http://ftp.riken.jp/Linux/fedora/extras/RPM-GPG-KEY-Fedora-Extras
gpgcheck=1
17. Para instalar softwares usando o YUM será necessário ter acesso a internet:
17.1 Caso tenha acesso direto a internet o yum funciona sem problemas.
17.2 Caso tenha acesso a internet por servidor proxy sem autenticação, executar o comando export http_proxy=”http://ip_do_servidor_proxy:porta”
17.3 Caso tenha acesso a internet por servidor proxy que exija autenticação, executar o comando export http_proxy=”http://dominio\usuario:senha_do_usuario@ip_do_servidor_proxy:porta”
18. Instalar o pam_mount com o comando: yum install pam_mount
18.1 Isto instalará a versão para o Fedora do pam_mount. O pam_mount não está no repositório do CentOS e é o método mais fácil para não precisar compilá-lo a partir do fontes. Não é a última versão mas atende aos propósitos deste procedimento.
19. Editar o arquivo /etc/security/pam_mount.conf e colocar no final do arquivo os volumes que deverão ser montados para cada usuário. Para evitar que um usuário tenha acesso aos volumes dos outros usuários, o ponto de montagem deverá estar dentro do seu home.
20. Cada linha com os volumes a serem montados deverá seguir o seguinte layout:
volume <user> <type> <server> <volume> <mount point> <mount options> <fs key cipher> <fs key path>
21. Para montar compartilhamentos via CIFS os últimos 3 parâmetros podem ser substituídos por traços. Abaixo exemplos de as linhas para montar os compartilhamentos \\servidor\grp no ponto de montagem ~/r e \\servidor\apl em ~/o. Insira as linha no final do /etc/security/pam_mount.conf:
volume * cifs servidor grp ~/r – - -
volume * cifs servidor apl ~/o – - -
21.1 Note que o acento til indica o diretório home do usuário.
21.2 Verifiquei que se forem adicionados muitos compartilhamentos é possível que haja time out para o client de Terminal Services. Até 6 compartilhamentos, pelos testes que fiz, não há problemas.
22. Reiniciar o winbind com o comando: service winbind restart
23. Testar o funcionamento tentando logar com uma chave que tenha permissão para logar na máquina conforme descrito no ítem 12.
ssh <usuario_com_permissão>@localhost
Instalação do FreeNX (Terminal Server para Linux)
24. Configurar o proxy caso seja necessário conforme descrito no ítem 17.
25. Instalar o FreeNX e a biblioteca que o mesmo necessita com o comando: yum install freenx libXcomposite
26. Criar um arquivo de configuração para o FreeNX a partir do modelo com o comando: cp /etc/nxserver/node.conf.sample /etc/nxserver/node.conf
27. Reiniciar o SSH e o FreeNX com os comandos:
27.1 service sshd restart
27.2 service freenx-server start
28. Instalar o cliente para FreeNX conforme no site http://wiki.centos.org/HowTos/FreeNX e testar o acesso com uma chave com permissão para logar no servidor conforme descrito ítem 12.
29. Mudar no arquivo /etc/inittab o parâmetro abaixo para evitar que o servidor suba a interface gráfica na console:
id:5:initdefault: para id:3:initdefault:
30. Reiniciar o servidor. O usuário do Active Directory autorizado conseguirá acesso ao servidor via cliente de Terminal Services NX e terá os compartilhamentos Windows descritos no arquivo de configuração do pam_mount montados automaticamente.
3 comentários, comente você também!
Categoria: dicas, Linux, Sistema Operacional, TodosTags: centos, freenx, pam_mount, samba, terminal services, winbind
Comments
3 Responses to “Terminal Services com Centos com Autenticação em AD e montagem compartilhamentos Windows”
Deixe um comentário!


January 14th, 2010 @ 16:06
August 3rd, 2010 @ 19:59
November 5th, 2010 @ 21:55