Servidor de Nomes (BIND) com OpenLDAP

By:Diego Pereira Grassato

23/Julho/2009

Muitas vezes, é desejável para armazenar informações de DNS em um banco de dados, e não em zonas em arquivos texto ASCII plano. Armazenar estes arquivos em uma zona de dados pode reduzir muito overhead administração desde associar informações, tais como contato de faturamento, gerenciamento de contas, backup simplificado, etc., podem ser armazenadas e processadas no interior do mesmo banco de dados. Além disso, devido à natureza do DNS concepção, a informação deve ser armazenada redundantemente em dois ou mais hosts. O clássico de dados através da replicação zona transferência não é confiável, inseguro e muitas vezes difíceis de administrar.

Para ultrapassar este problema alguns projetos de DNS para armazenar informações em bancos de dados relacionais. Como dito acima o DNS gravas sua informações em uma lista em arquivo de texto, no entanto se estudarmos sua estrutura veremos que ele trabalha em forma de árvore LDAP. LDAP (Lightweight Directory Access Protocol) é provavelmente a mais amplamente distribuída hierárquica de dados protocolo utilizado hoje em dia. LDAP permite certa flexibilidade na sua base de dados usando esquema, assim como de uma organização cresce e muda, o banco de dados utilizado para armazenar informações que reflitam a organização e também pode mudar.

BIND (Named)

BIND (Berkeley Internet Name Domain ou, como chamado previamente, Berkeley Internet Name Daemon) é o servidor para o protocolo DNS mais utilizado na Internet, especialmente em sistemas do tipo Unix, onde ele pode ser considerado um padrão de fato. Foi criado por quatro estudantes de graduação, membros de um grupo de pesquisas em ciência da computação da Universidade de Berkeley, e foi distribuído pela primeira vez com o sistema operacional BSD. O programador Paul Vixie, enquanto trabalhava para a empresa DEC, foi o primeiro mantenedor do BIND. Atualmente o BIND é suportado e mantido pelo Internet Systems Consortium. Seu site oficial é: https://www.isc.org/software/bind.

O BIND é uma implementação do protocolo DNS e inclui os seguintes serviços:

  • Um servidor de domínios (named)
  • As bibliotecas para conversão de nomes de domínio em endereços de IP.
  • Outras ferramentas para verificar o funcionamento do servidor DNS e suas respectivas Zonas configuradas.
  • Para a versão 9, o BIND foi praticamente reescrito. Ele passou a suportar, dentre outras funcionalidades, a extensão DNSSEC e os protocolos TSIG e IPv6

Compilando BIND

Primeiro precisamos baixar e extrair a fonte do BIND-SDB-LDAP nos portos árvore. Podemos realizar esta tarefa, que vai para o diretório BIND:

http://bind9-ldap.bayour.com/bind-sdb-ldap-1.1.0.tar.gz

Para maiores Informações de versões recentes do software:

http://www.venaas.no/ldap/bind-sdb/

BIND SDB LDAP é uma modificação do “Simplified Database” API que fornece uma interface LDAP para bind9 utilizando o “sdb”. Com esta API, pode armazenar zonas BIND LDAP em uma base de dados, em vez de arquivos. Note que quando utiliza sdb, as zonas não são colocadas em cachê na memória, BIND irá efetivamente realizar uma pesquisa de dados sempre que recebe uma consulta.

Uma vez baixado, extraia-o para o diretório de sua escolha, correndo o seguinte comando:

#root@host#tar -xzf bind-sdb-ldap-1.1.0.tar.gz

Isto irá criar um bind-sdb-ldap-1.0 diretórios com a fonte no mesmo.

#root@host# ls

INSTALL  README  ldapdb.c  ldapdb.h

Agora vamos ao BIND, faça o download da fonte em:

http://www.bind9.net/download

ou link direto

ftp://ftp.isc.org/isc/bind9/9.6.1rc1/bind-9.6.1rc1.tar.gz

Procure baixa sempre a versão mais recente.

Copie a ldapdb.c bin/named e ldapdb.h para bin/named /include na árvore fonte.

root@host# cp ldapdb.c  ../bind-9.6.1rc1/bin/named/

root@host#cp ldapdb.h ../bind-9.6.1rc1/bin/named/include

root@host#cd /root/bind-9.6.1rc1

Após os arquivos de origem tenham sido copiados para o diretório do bind9, então precisamos fazer algumas modificações no fonte do bind9 para que seja compilado com a nova API.

Altere os diretórios para /root/bind-9.6.1rc1/bin/named/Makefile.in e editar o arquivo e faça as seguintes modificações quando você vê estas linhas:

#

DBDRIVER_OBJS = ldapdb.@O@

DBDRIVER_SRCS = ldapdb.c

DBDRIVER_INCLUDES = -I/usr/local/include

DBDRIVER_LIBS = -L/usr/local/lib -lldap -llber –lresolv

Em seguida, será necessário modificar o arquivo para /root/bind-9.6.1rc1/bin/named/main.c no mesmo diretório do Makefile.in e procure a seguinte linha:

/* #include “xxdb.h” */

Temos que mudá-lo para utilizar a fonte LDAPDB arquivo:

#include <ldapdb.h>

No mesmo arquivo, procure a inicialização linha:

/* xxdb_init(); */

Temos que adicionar uma linha abaixo dessa para usar o LDAPDB inicialização função:

ldapdb_ini();

E finalmente, precisamos encontrar a limpeza rotineira linha:

/* xxdb_clear(); */

Temos que adicionar uma linha abaixo dessa LDAPDB limpeza para utilizar a função:

ldapdb_clear();

Assim que esse arquivo for salvo, deveremos ao retornar diretório base do bind9 para compilarmos o BIND.

root@host#cd /root/bind-9.6.1rc1

Utilizaremos estes parâmetros de compilação:

root@host :~/bind-9.6.1rc1# SLKCFLAGS=”-O2 -march=i486 -mtune=i686″

CFLAGS=”$SLKCFLAGS” \

./configure \

–prefix=/usr \

–libdir=/usr/lib${LIBDIRSUFFIX} \

–sysconfdir=/etc \

–localstatedir=/var \

–with-libtool \

–mandir=/usr/man \

–enable-shared \

–disable-static \

–enable-threads \

–with-openssl=/usr

root@host :~/bind-9.6.1rc1#make

root@host :~/bind-9.6.1rc1#make install

Configurações OpenLdap

Com o servidor OpenLDAP devidamente instalado adicionaremos uma nova schema, faça o download altere seu nome:

root@host :~#http://www.venaas.no/ldap/bind-sdb/dnszone-schema.txt

root@host :~#mv dnszone-schema.txt dnszone-schema

Copie o schema para o diretório de schemas do OpenLDAP:

root@host :~# dnszone.schema /etc/openldap/schema

Vamos configura o arquivo slapd.conf que fica no diretório /etc/openldap:

root@host :~#vi /etc/openldap slapd.conf

Você irá adicionar este novo schema logo abaixo deste:

include         /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/nis.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/openldap.schema

Ficando assim:

include         /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/nis.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/openldap.schema

include         /etc/openldap/schema/dnszone.schema

No final do arquivo nos índices adicionará index zoneName,relativeDomainName eq,sub, ficará assim:

index   cn              eq

index   sn              eq

index   objectClass     eq

index   uid             eq

index   gidNumber       eq

index   uidNumber       eq

index   zoneName,relativeDomainName eq,sub

Uma vez que o esquema tenha sido incluído, é preciso reiniciar OpenLDAP para que o processo slapd:

root@host# /etc/rc.d/rc.openldap restart

Pronto nosso servidor OpenLDAP  já está em funcionamento, vamos agora adicionar as entrada para configuração de nosso servidor. A maioria dos administradores já utiliza algum tipo de ferramenta LDAP administração para executar operações, como adicionar e remover as informações do banco de dados. Para este exemplo, nós iremos fornecer o que é comumente conhecido como um arquivo LDIF para usar como orientação para a inclusão de registros no banco de dados. Primeiro vamos olhar para uma norma zona  normal configurada no /etc/named.conf arquivo pode ser semelhante a este:

Domínio dtux.no-ip.org no Named:

dtux.no-ip.org.zone

$ORIGIN dtux.no-ip.org.$TTL 86400

@               IN SOA    ns1.dtux.no-ip.org. root.dtux.no-ip.org. (

2009061500   ; serial

28800      ; refresh (8 hours)

14400      ; retry (4 hours)

259200    ; expire (5 weeks 6 days 16 hours)

86400      ; minimum (1 day)

)

A       192.168.5.10

NS      dtux.no-ip.org.

NS      ns.dtux.no-ip.org.

NS      ns2.dtux.no-ip.org.

MX      5 dtux.no-ip.org.

mx1             IN      CNAME    mail.dtux.no-ip.org.

dtux            IN        A     192.168.5.10

ftp             IN        A     192.168.5.10

www             IN        A     192.168.5.10

ldap            IN        A     192.168.5.10

ns              IN        A     192.168.5.10

ns2             IN        A     192.168.5.3

cliente         IN        A     192.168.5.3

mail            IN        A     192.168.5.3

client          IN        A     192.168.5.1

Zona Reversa:

$ORIGIN 5.168.192.in-addr.arpa.$TTL 78000

@       IN     SOA dtux.no-ip.org. diego@dtux.no-ip.org(

2009061500      ; versão

10800           ;refresh (3 horas)

3600            ;retry   (1  hora)

432006          ;expire  (5  dias)

86400          ;TTL     (1   dia)

)

;

@        IN      NS       dtux.no-ip.org.

IN      NS       ns2.dtux.no-ip.org.

3        IN      PTR      192-168-5-3.dtux.no-ip.org.

10       IN      PTR      192-168-5-10.dtux.no-ip.org.

5.168.192.in-addr.arpa

dn: dc=BIND,dc=dtux,dc=no-ip,dc=orgobjectClass: top

objectClass: dcObject

objectClass: organization

dc: BIND

o: DTuX BIND

dn: ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: organizationalUnit

objectClass: dcObject

dc: BIND

ou: teste

dn: zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: dtux.no-ip.org

zoneName: dtux.no-ip.org

dn: relativeDomainName=@,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: @

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

sOARecord: ns1.dtux.no-ip.org. root.dtux.no-ip.org. 2009061500 28800 14400 2 59200 86400

aRecord: 192.168.5.10

nSRecord: dtux.no-ip.org.

nSRecord: ns.dtux.no-ip.org.

nSRecord: ns2.dtux.no-ip.org.

mXRecord: 5 dtux.no-ip.org.

dn: relativeDomainName=client,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: client

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

aRecord: 192.168.5.1

dn: relativeDomainName=cliente,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: cliente

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

aRecord: 192.168.5.3

dn: relativeDomainName=dtux,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux ,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: dtux

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

aRecord: 192.168.5.10

dn: relativeDomainName=ftp,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: ftp

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

aRecord: 192.168.5.10

No LDIF do domínio dtux.no-ip.org do OpenLDAP ficará assim:

dtux.no-ip.org.ldif

dn: relativeDomainName=ldap,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=orgobjectClass: top

objectClass: dNSZone

relativeDomainName: ldap

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

aRecord: 192.168.5.10

dn: relativeDomainName=mail,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: mail

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

aRecord: 192.168.5.3

dn: relativeDomainName=mx1,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: mx1

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

cNAMERecord: mail.dtux.no-ip.org.

dn: relativeDomainName=ns,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: ns

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

aRecord: 192.168.5.10

dn: relativeDomainName=ns2,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: ns2

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

aRecord: 192.168.5.3

dn: relativeDomainName=www,zoneName=dtux.no-ip.org,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: www

zoneName: dtux.no-ip.org

dNSTTL: 86400

dNSClass: IN

aRecord: 192.168.5.10

Agora zona reversa:

5.168.192.in-addr.ldif

dn: zoneName=5.168.192.in-addr.arpa,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: 5.168.192.in-addr.arpa

zoneName: 5.168.192.in-addr.arpa

dn: relativeDomainName=10,zoneName=5.168.192.in-addr.arpa,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: 10

zoneName: 5.168.192.in-addr.arpa

dNSTTL: 78000

dNSClass: IN

pTRRecord: 192-168-5-10.dtux.no-ip.org.

dn: relativeDomainName=3,zoneName=5.168.192.in-addr.arpa,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: 3

zoneName: 5.168.192.in-addr.arpa

dNSTTL: 78000

dNSClass: IN

pTRRecord: 192-168-5-3.dtux.no-ip.org.

dn: relativeDomainName=@,zoneName=5.168.192.in-addr.arpa,ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org

objectClass: top

objectClass: dNSZone

relativeDomainName: @

zoneName: 5.168.192.in-addr.arpa

dNSTTL: 78000

dNSClass: IN

nSRecord: dtux.no-ip.org.

nSRecord: ns2.dtux.no-ip.org.

sOARecord: dtux.no-ip.org. diego@dtux.no-ip.org 2009061500 10800 3600 432006  86400

Adicionaremos agora os LDIFs no servidor usando os seguintes comandos:

root@host# ldapadd -x -D cn=root,dc=dtux,dc=no-ip,dc=org -W –f  dtux.no-ip.org.ldif

root@host# ldapadd -x -D cn=root,dc=dtux,dc=no-ip,dc=org -W –f  5.168.192.in-addr.ldif

Configurando o Named(Bind)

O arquivo named.conf é onde ficam configurações em texto plano onde é indicado a localização das zonas no sistema. A configuração usual é parecida como está:

#Zona dtux.no-ip.orgzone “dtux.no-ip.org.” IN {

type master;

file /var/named dtux.no-ip.org.zone”;

notify yes;

};

#Reverso da Zona

zone “11.168.192.in-addr.arpa” IN {

type master;

file “/var/named/11.168.192.in-addr.arpa”;

notify yes;

};

Ao invés de guarda as zonas em arquivos irão substituí-las com a opção do banco de dados LDAP, que irá fazer uma chamada utilizando a ldapclient  com nova biblioteca:

#Zona dtux.no-ip.orgzone “dtux.no-ip.org” IN {

type master;

database “ldap ldap://192.168.5.10/ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org 10800”;

notify yes;

};

#Reverso da Zona

zone “5.168.192.in-addr.arpa” IN {

type master;

database “ldap ldap://192.168.5.10/ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org 10800”;

notify yes;

};

Ao fazer pesquisas BIND irá fazer uma sub-árvore abaixo da pesquisa base no URL. O número 10800 é o TTL, que será utilizado para todas as entradas que não têm o atributo dNSTTL definido no esquema.

A partir daqui, devemos iniciar bind9 e testar a nossa configuração, simplesmente realizando uma pesquisa sobre o servidor de DNS:

root@host# named –u root

Verificando os log de mensagens.

root@host# tail -f /var/log/messages

Jun 23 11:35:53 CLIENTE named[9485]: starting BIND 9.6.1rc1
Jun 23 11:35:53 CLIENTE named[9485]: built with '--prefix=/usr' '--libdir=/usr/lib' '--sysconfdir=/etc' '--localstatedir=/var' '--with-libtool' '--mandir=/usr/man' '--enable-shared' '--disable-static' '--enable-threads' '--with-openssl=/usr' 'CFLAGS=-O2 -march=i486 -mtune=i686'
Jun 23 11:35:53 CLIENTE named[9485]: adjusted limit on open files from 1024 to 1048576
Jun 23 11:35:53 CLIENTE named[9485]: found 1 CPU, using 1 worker thread
Jun 23 11:35:53 CLIENTE named[9485]: using up to 4096 sockets
Jun 23 11:35:54 CLIENTE named[9485]: loading configuration from '/etc/named.conf'
Jun 23 11:35:54 CLIENTE named[9485]: using default UDP/IPv4 port range: [1024, 65535]
Jun 23 11:35:54 CLIENTE named[9485]: using default UDP/IPv6 port range: [1024, 65535]
Jun 23 11:35:54 CLIENTE named[9485]: listening on IPv6 interfaces, port 53
Jun 23 11:35:54 CLIENTE named[9485]: listening on IPv4 interface lo, 127.0.0.1#53
Jun 23 11:35:54 CLIENTE named[9485]: listening on IPv4 interface eth0, 192.168.5.3#53
Jun 23 11:35:54 CLIENTE named[9485]: command channel listening on 127.0.0.1#953

Testando o nosso servidor:

root@host#  nslookup dtux.no-ip.org

Server:   ns.dtux.no-ip.org
Address:  192.168.5.3
Name:     dtux.no-ip.org
Address:  192.168.5.3

Os nomes estão funcionando adequadamente ao buscar suas informações de que a zona de dados LDAP.

Segue um exemplo de named.conf completo:

#Aqui você deve informar o endereço da sua rede ou o ip das máquinas que podem utilizar este DNS
acl minha-rede {

127.0.0.1;

192.168.5.0/24;);

options {

directory “/var/named”;

dump-file “/var/log/named/named_dump.db”;

statistics-file “/var/log/named/named.stats”;

memstatistics-file “/var/log/named/named.memstats”;

minimal-responses yes;

empty-zones-enable no;

transfer-format many-answers;

forward only;

forwarders { 192.168.5.3; 192.168.5.10; };

allow-transfer  { 192.168.5.10; 192.168.5.3; 201.91.215.134;};

## Aqui você pode colocar algum DNS para realizar um forwarders caso na ##queria utilizar deixe estas linhas comentadas

version “[secured]”;

listen-on-v6 { any; };

querylog yes;};

# Configuração de Log

logging {

channel custom {

severity info;

file “/var/log/named/named.log “; # Onde armazenar as mensagens

print-time yes; # Imprimir informações temporais

print-severity yes;

print-category yes; # Mostrar a categoria da mensagem

};

category config         {custom;};

category notify         {custom;};

category dnssec         {custom;};

category general        {custom;};

category security       {custom;};

category xfer-in        {custom;};

category xfer-out       {custom;};

category lame-servers   {custom;};

};

# Na seção controls encontram-se os parâmetros para comunicação entre rndc e named

controls {   inet 127.0.0.1 port 953

allow { 127.0.0.1; }

keys { rndc; };

};

# A chave especificada para comunicação com o rndc, igual a contida em rndc.conf

key rndc {

algorithm hmac-md5;

secret “RgKH/lcrH7AKfyQV9QM7cQ==”;

};

zone “.” IN {

type hint;

file “caching-example/root.hints”;

};

zone “localhost” IN {

type master;

file “caching-example/localhost.zone”;

allow-update { none; };

};

zone “0.0.127.in-addr.arpa” IN {

type master;

file “caching-example/named.local”;

allow-update { none; };

};

zone “dtux.no-ip.org” IN {

type master;

database “ldap ldap://192.168.5.10/ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org 10800”;

notify yes;

};

zone “5.168.192.in-addr.arpa” IN {

type master;

database “ldap ldap://192.168.5.10/ou=teste,dc=BIND,dc=dtux,dc=no-ip,dc=org 10800”;

notify yes;

};

Segue um exemplo de rndc.conf completo:

# Use a chave rndc quando comunicar com o servidor "localhost"

server localhost { key rndc;

};

# Aqui estão os detalhes sobre a chave rndc

key rndc {

algorithm       hmac-md5;

secret “RgKH/lcrH7AKfyQV9QM7cQ==”;

};

# Estas são as opções padrões

options {

default-server  localhost;

default-key     “key”;

default-port 953;

};

Segue um exemplo de slapd.conf completo:include             /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/nis.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/openldap.schema

include         /etc/openldap/schema/dnszone.schema

include         /etc/openldap/schema/dhcp.schema

include         /etc/openldap/schema/ppolicy.schema

include         /etc/openldap/schema/samba.schema

allow bind_v2 bind_anon_dn

pidfile             /var/run/slapd.pid

argsfile     /var/run/slapd.args

sizelimit       unlimited

idletimeout  30

password-hash       {SSHA}

password-crypt-salt-format “$1$.8s”

access to attrs=userPassword

by self write

by anonymous auth

by dn=”cn=root,dc=dtux,dc=no-ip,dc=org” write

by * none

access to *

by * read

database     bdb

suffix       “dc=dtux,dc=no-ip,dc=org”

rootdn       “cn=root,dc=dtux,dc=no-ip,dc=org”

rootpw       dhcpserver

directory       /var/openldap-data

# Indices

index  cn                         eq

index  sn                         eq

index  objectClass               eq

index  uid                       eq

index  gidNumber                  eq

index  uidNumber                  eq

index  memberUid                  eq

index  loginShell                 eq

index  zoneName                   eq

index  relativeDomainName         eq

index  dhcpHWAddress              eq

index  dhcpClassData              eq

index  dhcpPrimaryDN              eq

index  dhcpSecondaryDN            eq

mode               0600

cachesize           2000

2 ideias sobre “Servidor de Nomes (BIND) com OpenLDAP

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s