Implantando o Nagios em HTTP Seguro (HTTPS)

Prezados, no trabalho resolvemos catalogar a implantação de alguns serviços para assegurar o funcionamento destes e aumentar a produtividade na recuperação de desastres e ou migração de hardware. Enfim, segue abaixo a documentação que fiz e adaptei para postar como artigo aqui na comunidade.

[ Hits: 55.732 ]

Por: Rafael Bruno de Almeida em 12/08/2009


Apache 2.2.13 - Virtualhost



Apache 2.2.13

Inicialmente, como instalei o Slackware 12 CD1 Full, provavelmente ele já deve ter instalado um servidor Apache, devemos mudar o script de iniciação do serviço para iniciar o Apache correto, que é este que foi compilado a alguns passos atrás. Segue abaixo o código do script.

Crie e edite o arquivo que será o script de iniciação do serviço do Apache:

# touch /etc/rc.d/rc.httpd

Edite-o com o conteúdo abaixo, mesmo que arquivo já exista:

# vi /etc/rc.d/rc.httpd

#!/bin/sh
#
# /etc/rc.d/rc.httpd
#
# Start/stop/restart
# the Apache (httpd) web server.
#
# To make Apache start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.httpd
#
# For information on these options, "man apachectl".


case "$1" in
  'start')
    /usr/local/apache2/bin/apachectl -k start
  ;;
  'stop')
    /usr/local/apache2/bin/apachectl -k stop
    killall httpd
    rm -f /var/run/httpd/*.pid
  ;;
  'restart')
    /usr/local/apache2/bin/apachectl -k restart
  ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
  ;;
esac

Saia do arquivo e o salve com a sequência de teclas: Esc :wq!

Dê permissão de execução ao script:

# chmod +x /etc/rc.d/rc.httpd

Configurando arquivo principal do Apache:

# vi /usr/local/apache2/conf/httpd.conf

Confira se os módulos abaixo estão no arquivo:

LoadModule php5_module        modules/libphp5.so
AddHandler php5-script .php
AddType text/html .php
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

Troque o usuário do serviço de:

User daemon
Group daemon

Para:

User apache
Group apache

Coloque um e-mail de preferência no parâmetro:

ServerAdmin email@exemplo.com.br

Localize o parâmetro:

DirectoryIndex index.html

e o altere para:

DirectoryIndex index.html index.php

Inclua as linhas abaixo no final do arquivo para que o módulo ssl seja carregado na porta default (443):

<IfModule mod_ssl.c>
   Listen 443
</IfModule>

Os demais parâmetros do arquivo eu deixei default, pois não vou utilizar o diretório raiz do servidor (DocumentRoot "/usr/local/apache2/htdocs"), o que vou fazer é configurar um virtualhost para hospedar o Nagios, tendo em vista que preciso de mais de um site funcionando neste servidor.

NOTA: Inclusive eu costumo remover qualquer tipo de index do diretório raiz, caso queira fazer o mesmo é só rodar este comando:

# rm /usr/local/apache2/htdocs/index*

Virtualhost

Com o virtualhost conseguimos hospedar mais de um site no servidor com apenas um endereço IP, ou seja, o Apache passa a tratar o cabeçalho dos web sites direcionando assim as requisições para o site em que o cliente está tentando acessar.

Não vou entrar muito em detalhes quanto ao conceito e as possíveis configurações deste recurso, porém é sempre bom lembrar que melhores esclarecimentos estão disponíveis no site dos desenvolvedores do Apache.

Abaixo segue a configuração de um virtualhost que utilizaremos para testar as configurações do Apache e do PHP funcionando em https.

Inicialmente definimos um nome para o nosso virtualhost, geralmente se coloca o IP onde o site será publicado seguido da porta em que o site funcionará (HTTP = porta 80 e HTTPS = porta 443):

NameVirtualHost ip.ip.ip.ip:443

Logo depois vêm as configurações dos sites:

<VirtualHost ip.ip.ip.ip:443>
   ServerName nagios.exemplo.com.br:443
   DocumentRoot /var/www/nagios

   <Directory "/var/www/nagios">
      Options FollowSymLinks
      AllowOverride All
      Order deny,allow
      Allow from all
   </Directory>

   SSLEngine on
   SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
   SSLCertificateFile "/etc/ssl/certs/nagios.exemplo.com.br.crt"
   SSLCertificateKeyFile "/etc/ssl/private/nome_chave.key"
</VirtualHost>

Posteriormente iremos reconfigurar este virtualhost para o funcionamento do Nagios, de momento o utilizaremos apenas para testar o funcionamento do Apache e do PHP.

Assim finalizamos as configurações no arquivo de configurações do Apache, salve o arquivo através do comando: Esc + :wq!

No nosso virtualhost configuramos seu diretório raiz para /var/www/nagios, tendo em vista que este diretório ainda não existe, devemos criá-lo com o comando abaixo:

# mkdir /var/www/nagios

Para saber se está tudo funcionando, criaremos o arquivo conforme abaixo:

# touch /var/www/nagios/info.php

Edite este arquivo com o seguinte comando:

# echo "<?php phpinfo(); ?>" > /var/www/nagios/info.php

Agora é iniciar o servidor Apache conforme o script que criamos no início das configurações.

# /etc/rc.d/rc.httpd start

Confira se as portas do serviços estão abertas:

# nmap -sS localhost

Resultado:

Interesting ports on localhost (127.0.0.1):
Not shown: 1692 closed ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

Realize um teste no site através do seu browser:

https://nagios.exemplo.com.br/info.php

Deverá aparecer uma página com as informações do PHP que instalamos 5.2.10.

NOTA: Lembro que por se tratar de um certificado criado por nosso servidor, o mesmo não possui confiança perante a web, ou seja, o browser avisará sobre a integridade do certificado e devemos selecionar a opção que confie no mesmo.

O site deverá ser acessado através deste nome, pois de acordo com os recursos do virtualhost, o Apache passará a tratar o cabeçalho e só direcionará os acessos a pasta deste site se a requisição for com destino ao mesmo, ou seja, https://nagios.exemplo.com.br ou o que você configurou no virtualhost.

Adicione uma entrada em seu DNS apontando o nome que você cadastrou no virtualhost (ServerName nagios.exemplo.com.br:443) para o IP do servidor que você configurou também no virtualhost (NameVirtualHost ip.ip.ip.ip:443).

Página anterior     Próxima página

Páginas do artigo
   1. Pré-instalação
   2. OpenSSL 0.9.8e
   3. Apache 2.2.13 - Instalação, GD Library 2.0.35 e PHP 5.2.10
   4. Apache 2.2.13 - Virtualhost
   5. NAGIOS 3.1.2 e Apache 2.2.13
   6. Nagios plugins 1.4.13
   7. Finalizando
Outros artigos deste autor

Implantando o Cacti (gerador de gráficos) em HTTP Seguro (HTTPS)

Corrigindo a falha "WARNING! Your cache is running out of filedescriptors" - Squid2.7STABLE9 Slackware 12

Backup de roteadores Cisco com o TFTP + Pancho - Slackware 13

Leitura recomendada

PSSAV - Simulação de Escalonamento de Processos

Instalação do Gnuteca - Sistema de Biblioteca Livre

FOG Project - Configurando meu primeiro servidor de imagens

Funtoo Current - Instalação completa

tzwatch - Navegando pelo horário mundial no Debian

  
Comentários
[1] Comentário enviado por hugovja em 12/08/2009 - 16:50h

Muito bom o artigo, ajudou bastante. Parabéns.

[2] Comentário enviado por magnolinux em 12/08/2009 - 18:58h

Otimo a didadica utilizada no artigo. Mais acho que perdeu a oportunidade de explicar a funcionalidade e a confi dos arquivos do proprio nagios.

Parabens..!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts