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.872 ]

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

Configurando um servidor de FTP no OpenBSD

DropBear: um serviço de SSH alternativo

Vacuum - otimizando sua base de dados PostgreSQL

LFTP - Sophisticated File Transfer Program

Mantendo seu Slackware atualizado com o slackcurrent

Leitura recomendada

Básico do Apache no Debian

Resolvendo problema de conexão a internet ADSL (Velox)

Anon-Proxy no Debian Lenny

Configurando roteador Linux com Velox

Monitorando o uso do MSN com o IM Sniffer

  
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