Bind com suporte a sdb/PostgreSQL

Este documento tem como objetivo demonstrar a implementação do bind com suporte de conexão ao SGDB PostgreSQL, assim possibilitando consultas de zonas DNS no banco de dados relacional PostgreSQL.

[ Hits: 19.276 ]

Por: Vagner Rodrigues Fernandes em 02/02/2007 | Blog: https://takedownsec.com.br/


Introdução



A contribuição "sdb/pgsqldb" foi incluída na versão 9.1.3 do Bind e vem sendo mantida pela ISC até a versão atual do mesmo. A própria ISC, mantenedora do Bind, relata que esta contribuição não é totalmente estável. Estou utilizando a contribuição e até o momento não tive nenhum problema relacionado. Esta contribuição possibilita que o bind consulte suas zonas de DNS diretamente no banco de dados PostgreSQL. Softwares e versões utilizados na experiência:
  • OpenBSD 4.0
  • bind 9.3.3
  • PostgreSQL Server/Client 8.1.4
  • pgsqldb.c 1.12.4.2.8.2

Obtendo, configurando e compilando o source code do bind

Primeiramente é necessário realizar o download do source code do bind, após este procedimento é necessário descompactar o pacote:

$ wget ftp://ftp.isc.org/isc/bind9/9.3.3/bind-9.3.3.tar.gz
$ tar -zxvf bind-9.3.3.tar.gz -C /dir-source-bind/

Após este processo acesse o diretório onde o pacote foi descompactado e copie as bibliotecas do pgsqldb para o diretório onde se encontra o source code do named:

$ cd /dir-source-bind/
$ cp ./contrib/sdb/pgsqldb/* ./bin/named/


É necessário alterar alguns parâmetros no Makefile.in (/dir-source-bind/bin/named/Makefile.in) do named, as linhas dos parâmetros estão vazias, estas linhas estão localizadas logo abaixo do comentário "# Add database drivers here". Elas devem ser preenchidas da seguinte forma:

DBDRIVER_OBJS = [email protected]@
DBDRIVER_SRCS = pgsqldb.c
DBDRIVER_INCLUDES = -I/usr/local/includes/postgresql/
DBDRIVER_LIBS = -lpq -L/usr/local/lib/postgresql/

No próximo procedimento devemos inserir o caminho da biblioteca pgsqldb.h no source code do named(/dir-source-bind/bin/named/main.c), abaixo do comentário "/* #include "xxdb.h" */" inserir a seguinte linha:

#include "pgsqldb.h"

No mesmo arquivo deve-se adicionar após o comentário "/* xxdb_init(); */" a seguinte linha:

pgsqldb_init();

O mesmo deve ser feito após o comentário /* xxdb_clear(); */ adicionando a seguinte linha:

pgsqldb_clear();

Antes de iniciar o processo de compilação é necessário criar os seguintes links simbólicos:

# ln -fs /usr/local/include/postgresql/ /usr/local/include/postgresql/pgsql
# ln -s /usr/local/lib/libpq.so.4.1 /usr/local/lib/postgresql/


Após todo procedimento, pode-se dar início a compilação do bind.

# cd /dir-source-bind/
# ./configure --prefix=PREFIX --exec-prefix=EPREFIX
# make
# make install


    Próxima página

Páginas do artigo
   1. Introdução
   2. Criando registros na base de dados PostgreSQL
   3. named.conf
Outros artigos deste autor

Configurando um servidor de FTP no OpenBSD

Vacuum - otimizando sua base de dados PostgreSQL

tMSNc - MSN modo texto

Burlando "MSN Sniffers" com TOR e Gaim

Mantendo seu Slackware atualizado com o slackcurrent

Leitura recomendada

Transferindo arquivos com o rsync

Aircrack-ng e sua família para quebrar WEP e WPA1

Criando uma rede virtual com servidor de internet e estações utilizando VirtualBox

Controle de banda de domínios virtuais no Debian Etch

Criando um pinguim móvel com Fedora Core 1 e Siemens M50

  
Comentários
[1] Comentário enviado por alberto_neo em 22/02/2008 - 08:50h

Bom dia fera tranquilo estava lendo seu artigo e tive algumas duvidas gostaria de saber esse esquema que voce fez server apenas para adicionar um dominio ou poderia colocar mais de um e outra coisa essa funçao so existe para PostgreSQL

Att

Alberto_neo


Contribuir com comentário