Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instacao_e_configuracao_do_powerdns_com_postgresql_com_poweradmin_no_debian_squeeze_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Instação e configuração do PowerDNS + PostgreSQL + Poweradmin no Debian Squeeze ======
  
 +
 +O PowerDNS é um dos muitos softwares de DNS, ele é muito poderoso, pode fazer milhares de resoluções por segundo, e o que mais me chamou atenção, pode-se comunicar com vários backends, includindo MySQL, PostgreSQL, LDAP, Oracle e outros.
 +
 +Para se ter uma ideia, existem grandes implementações feitas com ele, incluindo register.com e tucows.com, e, segundo o site oficial, existem aproximadamente 4000 servidores em serviços secundários ativos na internet, que servem aproximadamente 10 milhões de zonas e um imenso número de domínios. Testes no primeiro nível do domínios .EU demonstraram que o PowerDNs pode prover 50.000 resoluções por segundo num único servidor, com um hardware simples. No Google encontrei relatos de testes feitos inclusive pelo registro.br para utilização do mesmo.
 +
 +A única desvantagem evidente é que o PowerDNS ainda não prevê uma implementação completa do DNSSEC. (O que para muitos é irrelevante,​ visto que poucos são aqueles que implementaram DNSSEC em seus servidores)
 +
 +Utilizar o PowerDNS inclusive como cache de DNS é uma ótima pedida devido a sua excelente performance.
 +
 +Vamos agora atualizar os repositórios e instalar os pacotes necessários.
 +
 +Prepare o seu sistema com o seguinte script [[https://​github.com/​douglasqsantos/​easy-debian|Easy-Debian]] para que não falte nenhum pacote ou configuração.
 +
 +O que vou utilizar
 +    * Ip do servidor: 192.168.1.30
 +    * Faixa de rede dos clientes: 192.168.1.0/​24
 +    * Domínio: douglasqsantos.com.br
 +
 +Os pacotes que precisamos instalar.
 +
 +<sxh bash>
 +aptitude update -y && aptitude dist-upgrade -y && aptitude install pdns-backend-pgsql pdns-recursor pdns-doc -y
 +</​sxh>​
 +
 +Agora vamos mandar instalar o PostgreSQL
 +<sxh bash>
 +aptitude install postgresql postgresql-client postgresql-common postgresql-contrib postgresql-doc postgresql-server-dev-all -y
 +</​sxh>​
 +
 +Agora vamos acertar algumas configurações básicas dele, vamos liberar o acesso da nossa rede para o servidor e vamos desativar o ssl
 +<sxh bash>
 +vim /​etc/​postgresql/​8.4/​main/​postgresql.conf
 +[...]
 +listen_addresses = '​*'​
 +[...]
 +ssl = false
 +</​sxh>​
 +
 +Agora vamos habilitar as máquinas da nossa rede a poderem se conectar no PostgreSQL ​
 +<sxh bash>
 +vim /​etc/​postgresql/​8.4/​main/​pg_hba.conf
 +[...]
 +#Adicionar no final do arquivo, aqui vamos liberar a rede 192.168.1.0/​24 a poder acessar o nosso servidor
 +host    all         ​all ​        ​192.168.1.0/​24 ​            md5
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço do PostgreSQL
 +<sxh bash>
 +/​etc/​init.d/​postgresql restart
 +</​sxh>​
 +
 +Agora vamos redefinir a senha do usuário postgres
 +<sxh bash>
 +su - postgres
 +postgres@debian:​~$ psql 
 +psql (8.4.13)
 +Digite "​help"​ para ajuda.
 +
 +postgres=# ALTER USER postgres WITH PASSWORD '​senha';​
 +</​sxh>​
 +
 +Agora precisamos criar um usuário e o banco de dados para o pdns
 +<sxh bash>
 +psql -h localhost -U postgres
 +Senha para usuário postgres: ​
 +psql (8.4.13)
 +Digite "​help"​ para ajuda.
 +
 +postgres=# create user pdns with password '​senha';​
 +CREATE
 +postgres=# create database pdns with owner pdns;
 +CREATE
 +postgres=# \q
 +</​sxh>​
 +
 +Agora vamos importar a estrutura do bando do pdns
 +<sxh bash>
 +psql -h localhost -U pdns -d pdns < /​usr/​share/​doc/​pdns-backend-pgsql/​pgsql.sql
 +</​sxh>​
 +
 +Agora vamos configurar o arquivo para a conexão do powerDNS com o MySQL
 +<sxh bash>
 +cp /​usr/​share/​doc/​pdns-backend-pgsql/​examples/​pdns.local.gpgsql /​etc/​powerdns/​pdns.d/​
 +</​sxh>​
 +
 +Vamos Acertar a configuração
 +<sxh bash>
 +vim /​etc/​powerdns/​pdns.d/​pdns.local.gpgsql
 +# PostgreSQL Configuration
 +#
 +gpgsql-host=127.0.0.1
 +gpgsql-port=5432
 +gpgsql-dbname=pdns
 +gpgsql-user=pdns
 +gpgsql-password=senha
 +</​sxh>​
 +
 +Vamos acertar agora a configuração do powerdns
 +<sxh bash>
 +
 +vim /​etc/​powerdns/​pdns.conf
 +[...]
 +#Aqui estamos liberando quem vai poder fazer consultas recursivas nesse servidor então a maquina local e a minha rede local
 +allow-recursion=127.0.0.0/​8,​192.168.1.0/​24
 +launch=bind,​gpgsql
 +recursor=127.0.0.1:​2525
 +</​sxh>​
 +
 +Agora vamos acertar o arquivo de configuração que controla as consultas recursivas
 +<sxh bash>
 +vim /​etc/​powerdns/​recursor.conf
 +[...]
 +local-port=2525
 +</​sxh>​
 +
 +Vamos acertar agora o /​etc/​resolv.conf
 +<sxh bash>
 +vim /​etc/​resolv.conf
 +domain douglasqsantos.com.br
 +nameserver 127.0.0.1
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço do powerDNS
 +<sxh bash>
 +/​etc/​init.d/​pdns-recursor restart
 +Restarting PowerDNS recursor: pdns-recursor.
 +/​etc/​init.d/​pdns restart
 +Restarting PowerDNS authoritative nameserver: stopping and waiting..done
 +started
 +</​sxh>​
 +
 +Agora vamos verificar se o serviço esta funcionando
 +<sxh bash>
 +/​etc/​init.d/​pdns monitor
 +already running
 +</​sxh>​
 +
 +Agora vamos analisar os logs.
 +<sxh bash>
 +tail -f /​var/​log/​syslog
 +Nov 14 11:16:25 debian pdns[1392]: PowerDNS 2.9.22 (C) 2001-2009 PowerDNS.COM BV (Jan  5 2012, 19:09:34, gcc 4.4.5) starting up
 +Nov 14 11:16:25 debian pdns[1392]: PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.
 +Nov 14 11:16:25 debian pdns[1392]: DNS Proxy launched, local port 51065, remote 127.0.0.1:​2525
 +Nov 14 11:16:25 debian pdns[1392]: Creating backend connection for TCP
 +Nov 14 11:16:25 debian pdns[1392]: gpgsql Connection succesful
 +Nov 14 11:16:25 debian pdns[1392]: About to create 3 backend threads for UDP
 +Nov 14 11:16:25 debian pdns[1392]: gpgsql Connection succesful
 +Nov 14 11:16:25 debian pdns[1392]: gpgsql Connection succesful
 +Nov 14 11:16:25 debian pdns[1392]: gpgsql Connection succesful
 +Nov 14 11:16:25 debian pdns[1392]: Done launching threads, ready to distribute questions
 +</​sxh>​
 +
 +Vamos fazer um teste agora de consulta
 +<sxh bash>
 +nslookup www.terra.com.br
 +
 +Server: ​        ​127.0.0.1
 +Address: ​       127.0.0.1#​53
 +
 +Non-authoritative answer:
 +Name:   ​www.terra.com.br
 +Address: 200.154.56.80
 +</​sxh>​
 +
 +Agora vamos instalar o gerenciador web para o nosso powerdns
 +
 +<sxh bash>
 +aptitude install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd ​ -y
 +aptitude install php-pear php5-imap php5-mcrypt php5-mhash php5-ming php5-pgsql php5-xmlrpc gettext ​ -y
 +</​sxh>​
 +
 +Vamos fazer um acerto no php
 +
 +O arquivo tem que ficar como abaixo
 +
 +<sxh bash>
 +vim /​etc/​php5/​cli/​conf.d/​ming.ini
 +; configuration for php MING module
 +extension=ming.so
 +</​sxh>​
 +
 +Agora vamos instalar alguns pacotes pear que precisamos.
 +
 +<sxh bash>
 +pear install MDB2
 +pear install pear/​MDB2#​pgsql
 +</​sxh>​
 +
 +Agora vamos baixar o nosso powerdns e configurar ele.
 +
 +<sxh bash>
 +
 +cd /var/www
 +wget -c http://​wiki.douglasqsantos.com.br/​Downloads/​misc/​poweradmin-2.1.6.tgz
 +tar -xzvf poweradmin-2.1.6.tgz
 +mv poweradmin-2.1.6/​ poweradmin
 +touch /​var/​www/​poweradmin/​inc/​config.inc.php
 +chown -R www-data:​www-data /​var/​www/​poweradmin/​
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço do Apache.
 +
 +<sxh bash>
 +/​etc/​init.d/​apache2 restart
 +</​sxh>​
 +
 +Agora vamos a configuração da nossa tela de gerenciamento acesse em http://​ip_servidor/​poweradmin/​install ​
 +
 +  - Aqui nesta tela podemos selecionar o idioma e selecionar Go to step 2.
 +  - Aqui nesta tela so precisamos selecionar Go to step 3.
 +  - Aqui nesta tela precisamos informar os dados para conexão no banco de dados da seguinte forma:
 +    - Username: **pdns**
 +    - Password: **senha**
 +    - Database type: **PostgreSQL**
 +    - Hostname: **127.0.0.1**
 +    - DB Port: **5432**
 +    - Database: **pdns**
 +    - Poweradmin administrator password: **senha**
 +    - Agora vamos selecionar Go to step 4
 +  - Aqui nesta tela temos que informar os dados do usuário que vai ter acesso para criar e efetuar a manutenção do pdns vamos configurar da seguinte forma:
 +    - Username: **pdns**
 +    - Password: **senha**
 +    - Hostmaster: **hostmaster.douglasqsantos.com.br**
 +    - Primary nameserver: **ns1.douglasqsantos.com.br**
 +    - Secondary nameserver: **ns2.douglasqsantos.com.br**
 +    - Agora vamos selecionar Go to step 5.
 +  - Aqui na próxima tela temos um aviso sobre os privilégios que precisamos adicionar ao usuário, como definimos na criação do banco que o dono é o pdns não precisamos fazer aqueles ajustes, aqui temos que selecionar Go to step 6.
 +  - Aqui nesta tela temos a informação que as informações foram gravadas nos arquivo config.inc.php aqui precisamos selecionar Go to step 7.
 +  - Agora recebemos a informação que a instalação terminou e precisamos remover o diretório install vamos fazer isso 
 +
 +<sxh bash>
 +rm -rf /​var/​www/​poweradmin/​install
 +</​sxh>​
 +
 +Agora vamos fazer mais alguns ajustes no arquivo de zonas por padrão ele não deixa adicionar zonas não válidas ex: douglas.lan ou douglas.intranet e em alguns casos precisamos disto.
 +<sxh php>
 +vim /​var/​www/​poweradmin/​inc/​config.inc.php
 +<?php
 +
 +$db_host ​               = '​127.0.0.1';​
 +$db_user ​               = '​pdns';​
 +$db_pass ​               = '​senha';​
 +$db_name ​               = '​pdns';​
 +$db_port ​               = '​5432';​
 +$db_type ​               = '​pgsql';​
 +$db_layer ​              = '​MDB2';​
 +
 +$session_key ​           = '​(1p1g160*QCnROb%x08kTJbWjqet]l!q_L&​7Y}qKAX(Nm3';​
 +
 +$iface_lang ​            = '​en_EN';​
 +
 +//Opções de dns que não vem por padrão
 +$dns_fancy ​             = false;
 +$dns_strict_tld_check ​  = false;
 +
 +//controle de logs que não vem por padrão ​
 +$syslog_use = true;
 +$syslog_ident = '​poweradmin';​
 +$syslog_facility = LOG_USER;
 +
 +$dns_hostmaster ​        = '​hostmaster.douglasqsantos.com.br';​
 +$dns_ns1 ​               = '​ns1.douglasqsantos.com.br';​
 +$dns_ns2 ​               = '​ns2.douglasqsantos.com.br';​
 +
 +?>
 +</​sxh>​
 +
 +Agora vamos mandar reiniciar o pdns
 +<sxh bash>
 +/​etc/​init.d/​pdns restart && /​etc/​init.d/​pdns-recursor restart
 +</​sxh>​
 +
 +Agora já podemos ir para a página inicial para logar no sistema.
 +
 +http://​ip_servidor/​poweradmin
 +
 +  - Aqui informe o usuário sendo **admin** e a senha sendo **senha** e selecione Login.
 +  - Após logar vamos ter a tela principal de gerenciamento
 +  - Vamos agora redefinir a senha do nosso admin então selecione Change password.
 +  - Aqui temos que informar a senha admin e informar uma nova senha e confirmar ela e selecionar Change password.
 +  - Após isso vamos ser redireciondos para página de login novamente.
 +  - Informe o usuário admin e a senha que você definiu.
 +  - Agora vamos criar uma zona de teste.
 +  - Na tela de gerenciamento principal selecione Add master zone
 +    - Aqui precisamos informar o nome da nossa zona: **douglasqsantos.com.br**
 +    - Em Owner vamos deixar o **Administrator**
 +    - Em Type vamos deixar **master**
 +    - Agora vamos selecionar Add zone
 +  - Agora vamos em List zones o link no topo da tela.
 +  - Como pode ser notado conseguimos criar o domínio com sucesso.
 +  - Agora selecione o icone de bloco de notas com lápiz.
 +  - Agora precisamos criar algumas entradas padrões pelo menos
 +    - Em cima do botão Add record temos que informar o nosso registro da seguinte forma:
 +      - Em name não informe nada
 +      - Em type selecione **A**
 +      - Em Content informe o ip do servidor: **192.168.1.30**
 +      - Agora selecione **Add record**
 +    - Agora selecione o link com fundo verde que apareceu
 +      - Em name informe **poweradmin**
 +      - Em type selecione **A**
 +      - Em Content informe o ip do servidor: **192.168.1.30**
 +      - Agora selecione **Add record**
 +    - Agora selecione o link com fundo verde que apareceu
 +      - Em name informe **ns1 **
 +      - Em type selecione **A**
 +      - Em Content informe o ip do servidor: **192.168.1.30**
 +      - Agora selecione **Add record**
 +    - Agora selecione o link com fundo verde que apareceu
 +    - Voltamos para a tela de inserção de registros, precisamos agora informar para o dns o nosso registro ns da seguinte forma
 +      - Em name não informe nada
 +      - Em type selecione **NS**
 +      - Em Content informe **ns1.douglasqsantos.com.br**
 +      - Agora selecione **Add record**
 +    - Agora selecione o link com fundo verde que apareceu
 +    - Voltamos para a tela de inserção de registros, precisamos agora informar um registro para o nosso servidor de email da seguinte forma
 +      - Em name informe **mail**
 +      - Em type selecione **A**
 +      - Em Content informe o ip do servidor: **192.168.1.30**
 +      - Agora selecione **Add record**
 +    - Agora selecione o link com fundo verde que apareceu
 +    - Voltamos para a tela de inserção de registros, precisamos agora informar para o email o nosso registro mx da seguinte forma
 +      - Em name não informe nada
 +      - Em type selecione **MX**
 +      - Em Content informe **mail.douglasqsantos.com.br**
 +      - Em Priority informe: **10**
 +      - Agora selecione **Add record**
 +    - Agora selecione o link com fundo verde que apareceu
 +    - Voltamos para a tela de inserção de registros, precisamos agora informar um registro para o nosso servidor de web da seguinte forma
 +      - Em name informe **www**
 +      - Em type selecione **A**
 +      - Em Content informe o ip do servidor: **192.168.1.30**
 +      - Agora selecione **Add record**
 +    - Agora selecione o link com fundo verde que apareceu
 +    - Voltamos para a tela de inserção de registros, agora vamos criar um cname para o registro do mail da seguinte forma
 +      - Em name informe **smtp**
 +      - Em type selecione **CNAME**
 +      - Em Content informe : **mail.douglasqsantos.com.br**
 +      - Agora selecione **Add record**
 +  - Vamos fazer alguns testes no servidor.
 +
 +Vamos constar o nosso douglasqsantos.com.br
 +
 +<sxh bash>
 + ​nslookup douglasqsantos.com.br
 +Server: ​  ​127.0.0.1
 +Address: ​ 127.0.0.1#​53
 +
 +Name: douglasqsantos.com.br
 +Address: 192.168.1.30
 +</​sxh>​
 +
 +Agora vamos consultar o host ns1.douglasqsantos.com.br ​
 +<sxh bash>
 +nslookup ns1.douglasqsantos.com.br
 +Server: ​  ​127.0.0.1
 +Address: ​ 127.0.0.1#​53
 +
 +Name: ns1.douglasqsantos.com.br
 +Address: 192.168.1.30
 +</​sxh>​
 +
 +Agora já temos a resposta que precisamos.
 +
 +Agora vamos efetuar uma pesquisa com o dig sobre os registro do tipo ns.
 +
 +<sxh bash>
 +dig -t NS douglasqsantos.com.br
 +
 +; <<>>​ DiG 9.7.3 <<>>​ -t NS douglasqsantos.com.br
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 37534
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 +
 +;; QUESTION SECTION:
 +;​douglasqsantos.com.br. ​  ​IN ​ NS
 +
 +;; ANSWER SECTION:
 +douglasqsantos.com.br. ​ 86400 IN  NS  ns1.douglasqsantos.com.br.
 +
 +;; ADDITIONAL SECTION:
 +ns1.douglasqsantos.com.br. ​ 86400 IN  A 192.168.1.30
 +
 +;; Query time: 4 msec
 +;; SERVER: 127.0.0.1#​53(127.0.0.1)
 +;; WHEN: Wed Nov 14 11:52:37 2012
 +;; MSG SIZE  rcvd: 67
 +</​sxh>​
 +
 +Agora vamos consultar o nosso cname 
 +<sxh bash>
 +nslookup smtp.douglasqsantos.com.br
 +Server: ​  ​127.0.0.1
 +Address: ​ 127.0.0.1#​53
 +
 +smtp.douglasqsantos.com.br ​ canonical name = mail.douglasqsantos.com.br.
 +Name: mail.douglasqsantos.com.br
 +Address: 192.168.1.30
 +</​sxh>​
 +
 +Agora vamos fazer uma pesquisa sobre qualquer tipo de registro do nosso domínio
 +
 +<sxh bash>
 +dig -t ANY douglasqsantos.com.br
 +
 +; <<>>​ DiG 9.7.3 <<>>​ -t ANY douglasqsantos.com.br
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 988
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 2
 +
 +;; QUESTION SECTION:
 +;​douglasqsantos.com.br. ​  ​IN ​ ANY
 +
 +;; ANSWER SECTION:
 +douglasqsantos.com.br. ​ 86400 IN  NS  ns1.douglasqsantos.com.br.
 +douglasqsantos.com.br. ​ 86400 IN  A 192.168.1.30
 +douglasqsantos.com.br. ​ 86400 IN  MX  10 mail.douglasqsantos.com.br.
 +douglasqsantos.com.br. ​ 86400 IN  SOA ns1.douglasqsantos.com.br. hostmaster.douglasqsantos.com.br. 2012111406 28800 7200 604800 86400
 +
 +;; ADDITIONAL SECTION:
 +ns1.douglasqsantos.com.br. ​ 86400 IN  A 192.168.1.30
 +mail.douglasqsantos.com.br. 86400 IN  A 192.168.1.30
 +
 +;; Query time: 13 msec
 +;; SERVER: 127.0.0.1#​53(127.0.0.1)
 +;; WHEN: Wed Nov 14 11:53:09 2012
 +;; MSG SIZE  rcvd: 167
 +</​sxh>​
 +
 +====== Habilitando o poweradmin trabalhar com https ======
 +
 +Vamos gerar a key para o https
 +
 +Preparando o diretório que vai armazenar os nosso certificados
 +<sxh bash>
 +mkdir -p /​etc/​ssl/​apache
 +cd /​etc/​ssl/​apache
 +</​sxh>​
 +
 +
 +Gerando a key
 +<sxh bash>
 +openssl genrsa -des3 -out server.key 1024
 +Generating RSA private key, 1024 bit long modulus
 +....................++++++
 +...........++++++
 +e is 65537 (0x10001)
 +Enter pass phrase for server.key: senha
 +Verifying - Enter pass phrase for server.key: senha
 +</​sxh>​
 +
 +Vamos gerar agora a requisição de assinatura para o certificado
 +<sxh bash>
 +openssl req -new -key server.key -out server.csr
 +Enter pass phrase for server.key: senha
 +You are about to be asked to enter information that will be incorporated
 +into your certificate request.
 +What you are about to enter is what is called a Distinguished Name or a DN.
 +There are quite a few fields but you can leave some blank
 +For some fields there will be a default value,
 +If you enter '​.',​ the field will be left blank.
 +-----
 +Country Name (2 letter code) [AU]:BR
 +State or Province Name (full name) [Some-State]:​Parana
 +Locality Name (eg, city) []:Curitiba
 +Organization Name (eg, company) [Internet Widgits Pty Ltd]:​Douglas
 +Organizational Unit Name (eg, section) []:Douglas
 +Common Name (eg, YOUR name) []:​poweradmin.douglasqsantos.com.br
 +Email Address []:​douglas@douglasqsantos.com.br
 +
 +Please enter the following '​extra'​ attributes
 +to be sent with your certificate request
 +A challenge password []:
 +An optional company name []:Douglas
 +</​sxh>​
 +
 +Agora vamos auto assinar o nosso certificado
 +<sxh bash>
 +openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
 +Signature ok
 +subject=/​C=BR/​ST=Parana/​L=Curitiba/​O=Douglas/​OU=Douglas/​CN=poweradmin.douglasqsantos.com.br/​emailAddress=douglas@douglasqsantos.com.br
 +Getting Private key
 +Enter pass phrase for server.key: senha
 +</​sxh>​
 +
 +Agora vamos acertar as permissões das chaves
 +<sxh bash>
 + chmod 0400 server.*
 + cp server.key server.key.orig
 +</​sxh>​
 +
 +Agora vamos tirar a senha do certificado assinado para que o apache não fique pedindo senha a cada vez que for inicializar
 +<sxh bash>
 + ​openssl rsa -in server.key.orig -out server.key
 + Enter pass phrase for server.key.orig:​ senha
 + ​writing RSA key
 +</​sxh>​
 +
 +Vamos acertar as permissões de todas as chaves ​
 +<sxh bash>
 + chmod 0400 /​etc/​ssl/​apache/​* ​
 +</​sxh>​
 +
 +Vamos agora configurar o host virtual com o acesso via https para o nosso poweradmin
 +
 +Aqui estamos redirecionando qualquer acesso ao site via http para https para forçar o cliente utilizar criptografia na conexão
 +
 +<sxh apache>
 +vim /​etc/​apache2/​sites-available/​poweradmin
 +<​VirtualHost *:​80> ​
 +  ServerName poweradmin.douglasqsantos.com.br
 +  Redirect / https://​poweradmin.douglasqsantos.com.br/ ​
 +</​VirtualHost> ​
 + 
 +<​VirtualHost *:​443> ​
 +        ServerAdmin webmaster@douglasqsantos.com.br ​
 +        ServerName poweradmin.douglasqsantos.com.br
 +  DocumentRoot "/​var/​www/​poweradmin"​
 +   <​Directory "/​var/​www/​poweradmin">​
 +     ​Options -Indexes +FollowSymLinks +MultiViews
 +     ​AllowOverride All
 +     Order Allow,deny
 +     Allow From All
 +   </​Directory>​
 +        ​
 +
 +   <​IfModule mod_php5.c>​
 +   ​AddType application/​x-httpd-php .php
 +     ​php_flag expose_php Off
 +     ​php_flag allow_url_fopen Off
 +     ​php_flag allow_url_include Off
 +     ​php_flag magic_quotes_gpc Off
 +     ​php_flag register_globals Off
 +     ​php_flag disable_functions show_source
 +     ​php_flag disable_functions system
 +     ​php_flag disable_functions shell_exec
 +     ​php_flag disable_functions passthru
 +     ​php_flag disable_functions exec
 +     ​php_flag disable_functions popen
 +     ​php_flag disable_functions proc_open
 +     ​php_flag disable_functions symlink
 +   </​IfModule>​
 +        CustomLog /​var/​log/​apache2/​poweradmin.access.log combined ​
 +        ErrorLog /​var/​log/​apache2/​poweradmin.error.log ​
 +        LogLevel warn 
 +  SSLEngine on
 +  SSLCipherSuite ALL:​!ADH:​!EXPORT56:​RC4+RSA:​+HIGH:​+MEDIUM:​+LOW:​+SSLv2:​+EXP:​+eNULL
 +  SSLCertificateFile "/​etc/​ssl/​apache/​server.crt"​
 +  SSLCertificateKeyFile "/​etc/​ssl/​apache/​server.key"​
 +        <​FilesMatch "​\.(cgi|shtml|phtml|php)$">​
 +     ​SSLOptions +StdEnvVars
 +  </​FilesMatch>​
 +     ​BrowserMatch "​.*MSIE.*"​ \
 +     ​nokeepalive ssl-unclean-shutdown \
 +     ​downgrade-1.0 force-response-1.0
 +  ServerSignature Off
 +</​VirtualHost>​
 +</​sxh>​
 +
 +Configurando a porta que o nosso host Virtual vai estar escutando.
 +<sxh bash>
 +vim /​etc/​apache2/​ports.conf
 +[...]
 +NameVirtualHost *:443
 +</​sxh>​
 +
 +Vamos carregar o módulo ssl para o apache.
 +<sxh bash>
 +a2enmod ssl
 +</​sxh>​
 +
 +Vamos acertar as permissões do diretório
 +<sxh bash>
 +chown -R www-data:​www-data /​var/​www/​poweradmin/​
 +</​sxh>​
 +
 +Vamos carregar o nosso host Virtual
 +<sxh bash>
 +a2ensite poweradmin
 +</​sxh>​
 +
 +Agora vamos desabilitar os virtuais hosts defaults
 +<sxh bash>
 +a2dissite default
 +a2dissite default-ssl
 +</​sxh>​
 +
 +Agora é sé reiniciar o apache
 +<sxh bash>
 +/​etc/​init.d/​apache2 restart
 +</​sxh>​
 +
 +Agora ajuste o cliente que vai acessar o poweradmin para utilizar o endereço de servidor dns com o ip do poweradmin
 +
 +Agora já podemos acessar o nosso poweradmin pelo seguinte endereço:
 +  - http://​poweradmin.douglasqsantos.com.br
 +
 +
 +====== Referências ======
 +  - http://​www.powerdns.com/​content/​home-powerdns.html
 +  - http://​doc.powerdns.com/​
 +  - http://​wiki.powerdns.com/​trac
 +  - http://​httpd.apache.org/​
 +  - http://​httpd.apache.org/​docs/​
 +  - http://​httpd.apache.org/​docs/​2.2/​ssl/​
 +  - http://​wiki.apache.org/​httpd/​
 +  - http://​httpd.apache.org/​docs/​2.2/​vhosts/​