Archive for the 'OpenLDAP' Category

Scripts em BASH para administração do LDAP

clodonil March 26th, 2010

 Um dos pontos mais complexos em administrar a base LDAP é encontrar ferramentas que auxiliam no gerenciamento da base. Algumas ferramentas, tais como phpldapadmin e outras com o nome de ldapbrowser realmente contribuem nesse processo.

Entretanto em algumas tarefas administrativas essas ferramentas são ineficazes e o administrador se depara com situações que ele mesmo tem que desenvolver soluções pontuais.

É com essa visão que apresento um conjunto de scripts que podem auxiliar os administradores na construção de scripts para soluções dos problemas do cotidiano.

Os scripts foram criados utilizando a linguagem de script BASH, que vem por padrão na maioria dos Linux. Para os scripts funcionarem é importante que as ferramentas do LDAP estejam instaladas na maquina. Normalmente essas ferramentas estão no pacote ldap-utils. Além dos pacotes das ferramentas instaladas é necessário que o LDAP esteja instalado e configurado.

Para os scripts funcionarem é preciso criar a base LDAP e as unidades organizacionais. Vou colocar esses 2 ldif para deixar bem claro.

Com o LDAP instalado é preciso que seja incluída o domínio na base LDAP. Segue um exemplo do domínio root; essa é a primeira entrada para a base LDAP. 

dn: dc=dominio
objectClass: top
objectClass: dcObject
objectClass: organization
dc: dominio
o: descricao do dominio

Após a inclusão da base é necessário criar as unidades organizacionais. Dentro dessas unidades que vamos criar os usuários e os grupos. A título de exemplo para a execução do script, crie as unidades organizacionais pessoas (ou=pessoas) e grupos (ou=grupos).
A seguir estão as duas unidades organizacionais.
 
dn: ou=pessoas,dc=dominio
objectClass: organizationalUnit
ou: pessoas
 
dn: ou=groups,dc=dominio
objectClass: organizationalUnit
ou: groups
 

 

Neste caso estamos criando duas entradas. A primeira é para os usuários e a segunda para os grupos que os usuários pertencem.

Depois de esclarecida essas informações, vamos para os scripts.

Os scripts que estarei apresentando são:

  • add_user.sh – Utilizado para incluir usuário na base LDAP;
  • delete_user.sh – Utilizado para excluir usuário na base LDAP;
  • add_group.sh – Script utilizado para incluir grupo na base LDAP;
  • delete_group.sh – Script para deletar grupos;
  • add_user_group.sh – Script utilizado para incluir um usuário no grupo;
  • alter_senha.sh – Script utilizado para alterar/definir as senhas dos usuários;

Juntamente com os scripts é necessário criar um arquivo com o nome config e dentro dele colocar as configurações da base para ser utilizadas por todos os scripts.

Segue o conteúdo do arquivo config. Altere com os dados da sua base LDAP.

 

suffix="dc=dominio"
people="ou=people",$suffix
group="ou=groups",$suffix
rootdn="cn=manager"
rootpw="senha"

 

O primeiro script (add_user.sh) é para incluir o usuário base LDAP.

 

 

 

#!/bin/bash

source config

uidnumber=`ldapsearch -h localhost -x -b $suffix -D $rootdn,$suffix -w $rootpw uidNumber | grep uidNumber | sort | cut -d : -f 2 | tail -n 1| sed s/\ //g | sed s/uidNumber//g`

if [ -z $uidnumber ]; then
   uidnumber="1000"
fi

nextuid=`expr $uidnumber + 1`

echo "Digite o nome:"
read cn

echo "Digite o sobrenome:"
read sn

echo "Digite o email:"
read email

uid=$1
(
echo "dn:uid=$uid,$people"
echo "objectClass: top"
echo "objectClass: person"
echo "objectClass: posixAccount"
echo "objectClass: inetOrgPerson"
echo "cn:$cn"
echo "sn: $sn"
echo "mail: $email"
echo "telephonenumber:11-11-1-11"
echo "uid: $uid"
echo "userPassword: x"
echo "homeDirectory: /home/$uid"
echo "loginShell: /dev/null"
echo "uidNumber: $nextuid"
echo "gidNumber: $nextuid"
)| ldapadd -x -D $rootdn,$suffix -w $rootpw

 

Sintaxe para executar o script.

# user_add.sh julia
 
O primeiro parâmetro é o uid do usuário. Como exemplo de possibilidade, coloquei a inclusão dos dados: Nome, SobreNome e Email. Outros campos podem ser incluídos também. O mais importante nesse script é o gerenciamento do uidNumber que não podem ser repetidos.
 
O segundo script (del_user.sh) é para apagar os usuários da base LDAP.
 
#!/bin/bash
 
source config
 
cn=$1
echo $LDAPDN
(
echo "uid=$cn,$people"
)| ldapdelete -x -D $rootdn,$suffix -w $rootpw
 
Sintaxe:
 
# del_user.sh julia
 
O próximo script (add_group.sh) é um exemplo de como criar grupos na base LDAP. Esses grupos são criados dentro da unidade organizacional group.
 
#!/bin/bash
 
source config
 
gidnumber=`ldapsearch -h localhost -x -b $group -D $rootdn,$suffix -w $rootpw gidNumber | grep gidNumber: | sort | cut -d : -f 2 | tail -n 1| sed s/\ //g`
nextgid=`expr $gidnumber + 1`
 
uid=$1
(
echo "dn:cn=$uid,$group"
echo "objectClass: posixGroup"
echo "cn: $uid"
echo "gidNumber: $nextgid"
)| ldapadd -x -D $rootdn,$suffix -w $rootpw
 
A sintaxe para executar script.
 
# add_group.sh cpd
 
Para complementa o gerenciamento do grupo, o próximo script (delete_group.sh) é para apagar os grupos criados.
 
#!/bin/bash
 
source config
 
cn=$1
echo $LDAPDN
(
echo "cn=$cn,$group"
)| ldapdelete -x -D $rootdn,$suffix -w $rootpw
 
Para finalizar essa parte de gerenciamento de usuário e de grupo, no próximo script (add_user_group.sh)  é para adicionar o usuário no grupo.
 
#!/bin/bash
 
source config
 
cn=$1
uid=$2
LDAPDN=`ldapsearch -h localhost -x -b $group -D $rootdn,$suffix -w $rootpw "(cn=$cn)"|grep dn`
(
echo "$LDAPDN"
echo "changetype: modify"
echo "add: memberUid"
echo "memberUid: $uid"
)| ldapmodify -x -D $rootdn,$suffix -w $rootpw
 
Sintaxe:
 
# add_user_group.sh grupo usuario
 
E para finalizar temos o último script que altera a senha do usuário.
#!/bin/bash
 
source config
 
cn=$1
 
echo "Digite a senha:"
read -s pass
 
senha=`slappasswd -c crypt -s $pass`
 
LDAPDN=`ldapsearch -h localhost -x -b $people -D $rootdn,$suffix -w $rootpw "(cn=$cn)"|grep dn`
(
echo "$LDAPDN"
echo "changetype: modify"
echo "replace: userPassword"
echo "userPassword: $senha"
)| ldapmodify -x -D $rootdn,$suffix -w $rootpw
 
Dessa forma temos alguns scripts que auxiliam no gerenciamento da base LDAP. O maior legado é a possibilidade da criação de outros scripts para facilitar a vida dos administradores.

Lista OpenLDAP-Brasil

clodonil December 7th, 2009

 

 

Olá Pessoal, estamos abrindo uma nova lista de discussão que trata basicamente do Openldap e suas implementações.

Participe, colabore e aprenda.

 

Segue o link do grupo: http://groups.google.com/group/openldap-brasil

 

cn=Monitor

clodonil October 22nd, 2009

O pós-instalação de um servidor de diretório como o LDAP (OpenLDAP) é um dos momentos mais críticos para uma rede e para o administrador. O Servidor está instalado e funcionando, porém alguns informações de performance são fundamentais para determinar que o trabalho realmente terminou. Em muitos casos após a instalação e configurações que começa realmente o serviço pesado de ajustes finos e otimização do servidor.
Para que essa otimização acontecer é necessário obter informações reais do servidor, tais como acesso por segundo, os tipos de acesso e assim por diante. Antes do surgimento da função monitor do LDAP, essa tarefa era muito completa e árdua.
Entretanto com a função monitor, ficou mais fácil o administrador obter esses dados. Usando a função monitor, têm surgido ferramentas que apresentam esses dados em forma de gráficos e tabelas, e uma dessas ferramentas é o CN=MONITOR.

Essa ferramenta tem as seguintes características:

 

  • Verify Load Balancing, DNS and Server level (RedHat / Fedora / Sun Only)
  • Verify Replication, (RedHat / Fedora / Sun Only)
  • Verify Cache Size, (RedHat / Fedora / Sun Only)
  • Mail Report of weekly load
  • Summary Graph of monitoring
  • View Schema (Most Vendors)

CN=Monitor trabalhar com os seguintes servidores:

  • RedHat and Fedora/389 Directory Server
  • Novell eDirectory Server
  • General Monitoring such as response time, server availability (All)
  • OpenLDAP

 

Particularmente gostei muito dessa ferramenta porque centraliza os dados e com poucos clicks e através de gráficos é possível visualizar a situação do servidor.

 

O CN=MONITOR, apresenta informações sobre o tipo de operações que o LDAP está realizado, tais como pesquisa, escrita,alteração.

 

Next »