- CentOS 5.5 - IP 192.168.1.104
- Windows XP com IE 8 e Firefox 3.5
- Windows 2003 - Domínio EXZICA.SYTES.NET 192.168.1.23
Pacotes instalados no CentOS 5.5
- Samba 3.0
- Squid 3.0
- Winbind
- SELinux DESATIVADO
Arquivos que serão configurados:
- /etc/krb5.conf
- /etc/samba/smb.conf
- /etc/nsswitch.conf
- /etc/hosts
Instale os pacotes:
# yum install squid samba winbind
Configurando a autenticação kerberos
Conteúdo do arquivo /etc/krb5.conf
[libdefaults]
default_realm = EXZICA.SYTES.NET
[realms]
EXZICA.SYTES.NET = {
kdc = 192.168.1.23
}
Efetuando a autenticação:
# kinit administrator
Deve aparecer:
# Password for administrator@EXZICA.SYTES.NET:
Verificando o ticket:
# klist
Deve aparecer:
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@EXZICA.SYTES.NET
Valid starting Expires Service principal
10/08/10 16:43:01 10/09/10 02:44:48 krbtgt/EXZICA.SYTES.NET@EXZICA.SYTES.NET
renew until 10/09/10 16:43:01
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
Configurando o Samba:
Conteúdo do arquivo /etc/samba/smb.conf
[global]
workgroup = EXZICA
netbios name = FIREWALL
realm = EXZICA.SYTES.NET
server string = Firewall
security = ads
encrypt passwords = Yes
password server = W2K3.EXZICA.SYTES.NET
log file = /var/log/samba/%m.log
max log size = 0
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
preferred master = False
local master = No
domain master = False
dns proxy = No
wins server = W2K3.EXZICA.SYTES.NET
winbind separator = /
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
idmap uid = 10000-60000
idmap gid = 10000-60000
Edite o arquivo /etc/hosts e adicione o seu hostname configurado no Samba, "netbios name" da seguinte forma:
192.168.1.104 FIREWALL.EXZICA.SYTES.NET FIREWALL
Inicie o serviço:
# service samba start
# service winbind start
Adicione o computador ao domínio:
# net ads join -U administrator
Deve aparecer:
administrator's password:
Using short domain name -- EXZICA
Joined 'FIREWALL' to realm 'EXZICA.SYTES.NET'
Ou verifique da seguinte forma:
net rpc join -U administrador -w DOMAIN
Agora deve reiniciar o winbind:
service winbind stop
service winbind start
Verifique a relação de confiança do computador adicionado e o domínio:
# wbinfo -t
checking the trust secret via RPC calls succeeded
Verifique os usuários do domínio:
# wbinfo -u
Verique os grupos do domínio:
# wbinfo -g
Edite o arquivo /etc/nsswitch.conf para consultar a base winbind
passwd: compat files winbind
shadow: files
group: compat files winbind
Configurações do Squid:
A linha de autenticação é a seguinte:
...
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm keep_alive on
...
acl autenticado proxy_auth REQUIRED
...
http_access allow autenticado
...
Edite as permissões de pasta:
#
chgrp squid /var/cache/samba/winbindd_privileged#
chmod 750 /var/cache/samba/winbindd_privileged
CentOS 6.5 mudou o diretório para:
#
chgrp squid /var/lib/samba/winbindd_privileged
#
chmod 750 /var/lib/samba/winbindd_privileged
Inicie o serviço
# service squid start
Logue em qualquer computador que esteja no domínio e abrindo o Internet Explorer e não será solicitado login/senha pois o login que será enviado ao Squid é o login que efetuou logon na máquina.
Para a verificação dos grupos do Active Directory com o Squid:
Verificando se não á problemas:
# wbinfo -r administrator
Deve retornar os IDs dos grupos em que o usuário administrator pertence.
Caso não retorne, proceda da seguinte forma:
# service smb stop; service winbind stop; service squid stop
# rm /var/cache/samba/winbindd_idmap.tdb
# service smb start; service winbind start; service squid start
Verifique novamente o comando
# wbinfo -r administrator
Edite o arquivo /etc/squid/squid.conf
...
external_acl_type grupo %LOGIN /usr/lib/squid/wbinfo_group.pl
...
acl gr_internet external grupo internet
# acl nome_da_acl external nome_do_external nome_do_grupo_no_Active_Directory_que_o_login_deve_pertencer
...
http_access allow autenticado gr_internet
...
Reinicie o serviço
# service squid restart
A cada usuário que adicionado e removido do grupo do Active Directory deve-se efetuar um reload do squid:
# service squid reload
Um comentário:
Ajudou muito, só faltou mesmo informar que o arquivo /etc/resolv.conf deve estar apontando o nameserver para o AD, caso contrário ele não consegue achá-lo. Aqui estávamos usando um outro DNS e na hora de dar um net ads join não encontrava nunca o domínio. Depois de ajustar o resolv.conf funcionou sem problemas. Obrigado!
Postar um comentário