Arquivo da categoria: Squid

Replicando base LDAP

Demorei um pouco, mas estou postando as configurações para fazer réplica do OpenLDAP.
É interessante utilizarmos réplica da base ldap para autenticar serviços em outros servidores. É só pensar do seguinte modo: O que é melhor: meu squid ter que ir até o PDC se autenticar, ou ele fazer a consulta ldap localmente?
Com réplica matamos dois gatos com uma paulada só! Pois criamos uma base de contingência (ou várias) e amenizamos o tráfego na rede.

Levaremos em conta que o openldap esteja instalado e funcionando nos dois servidores.

Configuração do /etc/ldap/slapd.conf no servidor primário:

replogfile /var/log/ldap/slapd.replog
replica host=ip_servidor_secundario:389
 binddn="cn=admin,dc=dominio,dc=com,dc=br"
 bindmethod=simple credentials=senha

Atenção!! Atente para o espaço em branco no inicio das duas ultimas linhas. 😉

Configuração do /etc/ldap/slapd.conf nos servidores secundário:

updatedn "cn=admin,dc=dominio,dc=com,dc=br"
updateref ldap://ip-servidor-primario:380

É necessário que o servidor OpenLDAP secundario tenha os mesmo dados que o servidor OpenLDAP primario, para isto iremos gerar uma copia da base do servidor OpenLDAP primario:
slapcat -v -l /home/usuario/base.ldif
Transfira o arquivo para o servidor secundário, e importe os dados:
slapadd -v -l base.ldif

Antes de iniciar o ldap no servidor secundário verifique as permissões no diretório: /var/lib/ldap/. Todos os arquivos devem ser do usuário openldap. (chown openldap.openldap /var/lib/ldap/*)
inicie o ldap.

Agora faça uma alteração na base principal e verifique se o servidor secundário está sendo atualizado.

That’s all…


PDC Samba com OpenLDAP

Recentemente precisei implantar Samba como PDC autenticando em uma base LDAP. Encontrei muito material na internet, porém alguns muito complexos, outros incompletos. A questão é que deve-se saber muito bem o que está fazendo antes de um projeto como esse. Ainda mais levando em conta que a base LDAP irá autenticar outros serviços, como squid e aplicações internas. Costumo aplicar a filosofia KISS (Keep It Simple, Stupid), pois quanto mais complexo for, mais fácil é de dar problemas e mais demorado é para solucioná-los. Tudo isso tive que levar em conta, afinal não quero perder meu emprego.

Após ler vários manuais e fazer inúmeros testes, fiz a implantação do Samba + OpenLdap + Squid. Este é um passo-a-passo que criei enquanto fazia a implantação.

Tutorial: Samba como PDC + OpenLdap + Squid no Debian Etch.

Instalar o Samba: aptitude install samba samba-doc winbind
Arquivo exemplo de configuração do smb.conf: smb.conf

Instalar o OpenLDAP: aptitude install openssl db4.2-util sasl2-bin libsasl2-modules libsasl2-modules-ldap slapd ldap-utils

Copiar o schema do samba para o ldap:
cd /usr/share/doc/samba-doc/examples/LDAP/
gunzip samba.schema.gz
cp samba.schema /etc/ldap/schema/
cd /etc/ldap

Arquivo exemplo de configuração do slapd.conf: slapd.conf

descomentar a linha: allow bind_v2
Adicionar o schema do samba(no final da lista):
include /etc/ldap/schema/samba.schema
suffix “dc=empresa,dc=com,dc=br”
password-hash {MD5}
rootdn “cn=admin,dc=empresa,dc=com,dc=br”
rootpw (senha MD5)
access to attrs=userPassword,shadowLastChange,sambaNTPassword,sambaLMPassword
by dn=”cn=admin,dc=empresa,dc=com,dc=br” write

Comando para criar senha: slaplasswd -h {MD5} -s senha

reiniciar openldap: etc/init.d/slapd restart

verificar se está online: netstat -lnt |grep 389
ps aux |grep slapd

Instalar smbldap-tools:aptitude install smbldap-tools

Editar os arquivos em /etc/smbldap.conf:

smbldap.conf

smbldap_bind.conf

Pegar o SID do samba: net getlocalsid

Passar a senha do admin do openldap para o samba: smbpasswd -w senha_adm_ldap

Popular a base: smbldap-populate

Inserir usuário root na base ldap: smbpasswd -a root (caso dê erro, popule a base novamente)

Instalar nss: aptitude install libnss-ldap
editar /etc/nsswitch.conf
passwd: compat ldap
group: compat ldap
shadow: compat ldap
editar /etc/libnss-ldap.conf
bind policy soft (remover logs na inicialização do servidor)

Verifique se o sistema está reconhecendo os usuários da base com o comando: getent passwd

Por indicação do pessoal da lista debian-br estou utilizando a ferramenta LAM (LDAP Account Manager) para gerenciar minha base LDAP. Realmente é uma excelente opção para gerenciamento de um PDC.

instalar dependências: aptitude install apache2 apache2-ssl php5 php5-ldap php5-mhash php-fpdf
site oficial: http://sourceforge.net/projects/lam
wget http://ufpr.dl.sourceforge.net/sourceforge/lam/ldap-account-manager_2.2.0-1_all.deb
dpkg -i ldap-account-manager_2.2.0-1_all.deb

Configurar a memória do apache:
editar o arquivo /etc/php5/apache2/php.ini
Alterar o parâmetro memory_limit para 64M

Acessar o endereço: http://seu_ip/lam

Para configurar o squid para acessar a base ldap basta utilizar a autenticação ldap_auth:

auth_param basic program /usr/lib/squid/ldap_auth -b “ou=users,dc=empresa,dc=com,dc=br” -h ip_do_servidor_ldap -v 3

No meu próximo post, abordarei backup e réplica da base LDAP.