jun 182020
 

INTRODUÇÃO

O objetivo de um mecanismo de replicação de dados é permitir a manutenção de várias cópias idênticas de um ­­­­mesmo dado em vários servidores de bancos de dados (SGBD). Os principais benefícios da replicação de dados são a redundância, o que torna o sistema tolerante a falhas, a possibilidade de um balanceamento de carga do sistema, já que o acesso pode ser distribuído entre as réplicas, e finalmente, ter-ser o backup online dos dados, já que todas as replicas estariam sincronizadas. Este artigo, apresenta uma introdução ao mecanismo de replicação do MySQL, bem como as configurações básicas para realização desta tarefa.

VISÃO GERAL DA REPLICAÇÃO

O MySQL permite um tipo de replicação conhecido como Master-Slave, onde temos um servidor atuando como master e um ou mais servidores atuando como slave. O master grava em um log binário de alteração todos os comandos de atualizações da base de dados. Desta forma, todas as alterações ocorridas no master são imediatamente replicadas para os outros servidores slave.

A replicação no mysql é principalmente compatível com a anterior, isto é, um servidor mais novo pode normalmente ser um escravo de um servidor mais velho sem nenhum problema. Porém, versões mais antigas dos servidores são, freqüentemente, incapazes de servir como slaves de versões mais novas, pois eles não podem entender novas características ou a sintaxe SQL que o servidor mais novo utiliza, e pode haver diferenças no formato dos arquivos que a replicação usa, por exemplo, você não pode replicar de um master MySQL 5.0 para um slave MySQL 4.0.

Continue reading »

Configurando um Servidor Ldap no Debian

 Linux  Comentários desativados em Configurando um Servidor Ldap no Debian
jan 122012
 

Observações:

  • Iremos levar em consideração que você possui uma instalação “limpa” do S.O. Debian GNU/Linux.
  • Os serviços que estão sendo usandos na solução também devem estar devidamente configurados e em operação.

Instalando o Servidor LDAP

Antes de instalar o Ldap, precisamos ajustar o arquivo hosts.

[email protected]:~# vi /etc/hosts

127.0.0.1       localhost.localdomain    localhost
10.0.0.22       nome.dominio.com.br      nome

Em seguida, vamos instalar os pacotes.

[email protected]:~# aptitude install slapd ldap-utils

Omitir a configuração do servidor OpenLDAP: <Não>
Informe o nome do domínio DNS: dominio.com.br
Informe o nome de sua organização: dominio.com.br
Senha do admin: *********
Confirme a senha: *********
Permitir protocolo LDAPv2? <Não>

Em seguida

[email protected]:~# aptitude install libnss-ldap libpam-ldap

Identificador de Recurso Uniforme (URI) do Servidor LDAP: ldap://localhost:389
O nome distinto ("distinguished name") da base de procura: dc=dominio,dc=com,dc=br
Versão LDAP a ser utilizada: 3
A base de dados LDAP requer login? <Não>
Privilégios especiais LDAP para o root? <Não>
Permitir a leitura/escrita no ficheiro de configuração apenas para o dono? <Não>
O nsswitch.conf não é gerido automaticamente. <OK>
Tornar a conta root local o administrador da base de dados. <Não>
A base de dados LDAP requer autenticação? <Não>
Criptografia local a ser utilizada na mudança de senhas. md5

Configurando o Servidor LDAP

Agora vamos configurar o servidor LDAP e habilitar o sistema operacional para realizar autenticação no mesmo. Verifique as seguintes linhas:

[email protected]:~# vi /etc/ldap/slapd.conf

# Definindo classes de objetos
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/samba.schema

# Habilitando LOGs
loglevel        256

# Specificando base de dados a ser usada
database        bdb

# Base DN
suffix          "dc=dominio,dc=com,dc=br"

# Root DN
# rootdn        "cn=admin,dc=dominio,dc=com,dc=br"

# Diretorio de armazenamento de dados
directory       "/var/lib/ldap"

# Índices
index           objectClass eq

# ACL's
access to attrs=userPassword,shadowLastChange
        by dn="cn=admin,dc=dominio,dc=com,dc=br" write
        by anonymous auth
        by self write
        by * none

access to dn.base="" by * read

access to *
        by dn="cn=admin,dc=dominio,dc=com,dc=br" write
        by * read
[email protected]:~# vi /etc/ldap/ldap.conf

BASE    dc=dominio,dc=com,dc=br
URI     ldap://127.0.0.1:389

Não esquecendo de reiniciar o serviço.

[email protected]:~# /etc/init.d/slapd stop
[email protected]:~# /etc/init.d/slapd stop

Configurando a PAM

E agora vamos habilitar a PAM para autenticar no LDAP, permitindo assim que o sistema operacional possa utilizar os usuários e grupos contidos no servidor.

[email protected]:~# vi /etc/pam.d/common-account
#account    required      pam_unix.so
account     sufficient    pam_ldap.so
account     required      pam_unix.so try_first_pass
[email protected]:~# vi /etc/pam.d/common-auth
#auth       required      pam_unix.so nullok_secure
auth        sufficient    pam_ldap.so
auth        required      pam_unix.so nullok_secure use_first_pass
[email protected]:~# vi /etc/pam.d/common-password
#password   required      pam_unix.so nullok obscure min=4 max=8 md5
password    sufficient    pam_ldap.so
password    required      pam_unix.so nullok obscure min=4 max=8 md5 use_first_pass
[email protected]:~# vi /etc/pam.d/common-session
#Adicionar
session     optional      pam_mkhomedir.so skel=/etc/skel umask=0027
[...]
[email protected]:~# vi /etc/nsswitch.conf
[...]
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap
[...]
[email protected]:~# vi /etc/pam_ldap.conf
[...]
base dc=dominio,dc=com,dc=br
uri ldap://127.0.0.1
ldap_version 3
[...]
[email protected]:~# vi /etc/libnss-ldap.conf
[...]
base dc=dominio,dc=com,dc=br
uri ldap://127.0.0.1
ldap_version 3
rootbinddn cn=admin,dc=dominio,dc=com,dc=br
[...]
[email protected]:~# vi /etc/libnss-ldap.secret
senha_de_admin_da_base_ldap

Instalando o phpLdapAdmin

Agora iremos realizar o download do utilitário phpLdapAdmin para que a administração do LDAP seja facilitada. O download de uma versão justada para melhor administração com templates em português pode ser obtida em http://downloads.fabriciovc.eti.br/ldap/phpldapadmin-1.1.0.5.tar.gz.

[email protected]:/home/viaza132/www# wget -c http://downloads.fabriciovc.eti.br/ldap/phpldapadmin-1.1.0.5.tar.gz

Pacotes extras necessários:

  • apache2
  • php5
  • php5-ldap
[email protected]:~# aptitude install <pacotes>

Realizado o download e instalado os pacotes do apache2 e do php5 necessários, descompacte o pacote do phpLdapAdmin na área de hospedagem (/home/viaza132/www). Lembre-se que essa aplicação precisa ser configurada.

[email protected]:/home/viaza132/www# tar xzvf phpldapadmin-1.1.0.5.tar.gz
[email protected]:/home/viaza132/www# mv phpldapadmin-1.1.0.5 phpldapadmin
[email protected]:/home/viaza132/www# cd phpldapadmin/config
[email protected]:/home/viaza132/www/phpldapadmin/config# cp config.php.example config.php
[email protected]:/home/viaza132/www/phpldapadmin/config# vi config.php

Configure as seguintes linhas.

$ldapservers->SetValue($i,'server','name','DN LDAP Server');
$ldapservers->SetValue($i,'server','host','127.0.0.1');
$ldapservers->SetValue($i,'server','port','389');
$ldapservers->SetValue($i,'server','base',array('dc=dominio,dc=com,dc=br'));
$ldapservers->SetValue($i,'server','auth_type','session');
$ldapservers->SetValue($i,'login','dn','cn=admin,dc=dominio,dc=com,dc=br');
$ldapservers->SetValue($i,'server','sasl_auth',false);
$ldapservers->SetValue($i,'server','low_bandwidth',false);
$ldapservers->SetValue($i,'appearance','password_hash','md5');
$ldapservers->SetValue($i,'appearance','show_create',true);
$ldapservers->SetValue($i,'auto_number','enable',true);
$ldapservers->SetValue($i,'auto_number','mechanism','search');
$ldapservers->SetValue($i,'auto_number','min','1000');
$ldapservers->SetValue($i,'login','timeout',30);

Adicionando dados na base LDAP (com arquivos .ldif)

raiz.ldif

dn: dc=dominio,dc=com,dc=br
dc: exemplo
objectClass: domain
objectClass: top

unidadeorganizacional.ldif

dn: ou=contatos,dc=dominio,dc=com,dc=br
ou: contatos
objectClass: organizationalUnit
objectClass: top

dn: ou=usuarios,dc=dominio,dc=com,dc=br
ou: usuarios
objectClass: organizationalUnit
objectClass: top

dn: ou=grupos,dc=dominio,dc=com,dc=br
ou: grupos
objectClass: organizationalUnit
objectClass: top

usuarios.ldif

dn: uid=fabricio,ou=usuarios,dc=dominio,dc=com,dc=br
givenName: Fabricio
sn: Vaccari Constanski
cn: Fabricio Vaccari Constanski
uid: fabricio
userPassword: {MD5}F5dfrtvcmAMadsZZsjaasdsdspBQ==
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/usuarios/fabricio
loginShell: /bin/bash
objectClass: OpenLDAPperson
objectClass: posixAccount
objectClass: top

grupos.ldif

dn: cn=nome_do_grupo,ou=grupos,dc=dominio,dc=com,dc=br
cn: nome_do_grupo
gidNumber: 1000
objectClass: posixGroup
objectClass: top

Comando de adição

[email protected]:~# ldapadd -x -W -D "cn=admin,dc=dominio,dc=com,dc=br" -f arquivo.ldif