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: 20.926 ]

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 = pgsqldb.@O@
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

Burlando "MSN Sniffers" com TOR e Gaim

LFTP - Sophisticated File Transfer Program

CruxPorts4Slack - O ports para Slackware

DropBear: um serviço de SSH alternativo

Configurando um servidor de FTP no OpenBSD

Leitura recomendada

Como fazer NAT com cable modem

Firefox com cara de emacs com o conkeror

Acesso remoto fácil, sem necessidade de instalação de programa

Dynamips + Dynagen - Emulando Vlans com router on stick no Linux

Bem vindo ao planeta Viva o Linux

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts