
Servidor Web Apache
É o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Em uma pesquisa realizada em dezembro de 2007, foi constatado que a utilização do Apache representa cerca de 47.20% dos servidores ativos no mundo. Em maio de 2010, o Apache serviu aproximadamente 54,68% de todos os sites e mais de 66% dos milhões de sites mais movimentados. É a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos.
O servidor é compatível com o protocolo HTTP versão 1.13 . Suas funcionalidades são mantidas através de uma estrutura de módulos, permitindo inclusive que o usuário escreva seus próprios módulos — utilizando a API do software.
É disponibilizado em versões para os sistemas Windows, Novell Netware, OS/2 e diversos outros do padrão POSIX (Unix, Linux, FreeBSD, etc.).
Neste documento estamos demonstrando como instalar, configurar o virtual host, configurar e gerar o log de acesso e autenticar o Apache server.
Instalando e preparando o Apache no Linux Centos7
Para instalação do servidor Apache é necessário acessar o terminal e efetuar login como super usuário para obter as permissões devidas conforme demonstrado abaixo.
$ su (usuário root)
# yum install httpd (Instalação do Apache)
# service httpd start (Inicializa servidor)
# service httpd status (Retorna o estado do servidor)
Se a instalação ocorreu de maneira correta basta ir ao navegador e digitar http://localhost/, será apresentado a página com informações do Apache conforme imagem a seguir.

Criando um Virtual Host
O Virtual Host é uma solução para hospedar vários sites, com domínios e subdomínios diferentes através de um mesmo servidor com o mesmo endereço IP. Como todo processamento é feito no mesmo servidor este é um fator limitador, pois os recursos da maquina são divididos entres as aplicações.
Criando arquivos e diretórios onde ficara os dados do site www.gti2m.com.br:
# mkdir /var/www/gti2m.com
# mkdir /var/www/restrito/gti2m.com/public_html
# gedit ......( aqui você coloca o nome do arquivo...... ex.: index.html)
Em seguida editamos o arquivo "httpd.conf" (#gedit etc/httpd/conf/httpd.conf), com o Gedit e fazemos as seguintes alterações:
Descomentar a linha NameVirtualHost *:80 suprimindo o símbolo #.
<VirtualHost *:80>
ServerName www.gti2m.com
ServerAlias gti2m.com
DocumentRoot /var/www/restrito/gti2m.com/public_html
ErrorLog /var/log/httpd/error_gti2m.log
CustomLog /var/log/httpd/request_gti2m.log combined
</VirtualHost>
Depois que a página estiver com o conteúdo pronto, para acessá-la no navegador através do nome, é necessário editar através do Gedit o arquivo "hosts" (#gedit /etc/hosts) e adicionar a tabela de hosts o seguinte:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 gti2m.com.br (Linha adicionada)
127.0.0.1 www.gti2m.com.br (Linha adicionada)
Acessando o endereço www.gti2m.com.br será exibida a página criada. Talvez seja necessário desabilitar o firewall, e reinicializar o Apache, para isso digite no terminal:
# service iptables stop (parar o firewall)
# service httpd restart (reinicializar o Apache)
Configurando o arquivo Log de acesso do Apache
Todas as vezes que um computador navega na internet deixa “rastros”, como um carro que sai de um local e vai até seu destino, passando por vários pontos. Estes rastros são registrados através de arquivos de Logs, que podem fornecer informações como data, hora, usuário, entre outros. Os Logs são muito usados para monitorar eventos, serviços e realizar auditorias.
Quando estamos configurando o virtual host, no arquivo "httpd.conf" esta linha abaixo em destaque de vermelho é que determina se será criado o Access_Log (CustomLog), o diretório (/var/log/httpd/), e o nome do arquivo (request_gti2m.log)
<VirtualHost *:80>
ServerName www.gti2m.com
ServerAlias gti2m.com
DocumentRoot /var/www/restrito/gti2m.com/public_html
ErrorLog /var/log/httpd/error_gti2m.log
CustomLog /var/log/httpd/request_gti2m.log combined
</VirtualHost>
Para editarmos o arquivo de Log é necessário ir até o diretório que determinamos conforme mostrado acima e abrir o arquivo com um editor (Gedit).
# /var/log/httpd
# gedit request_gti2m.log
Quando aberto este arquivo exibirá todo o histórico de acesso do site www.gti2m.com.br.
Em nosso caso ficou assim:
127.0.0.1 - gabriel - [28/May/2015:11:24:04 -0300] - Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0
127.0.0.1 - gabriel - [28/May/2015:11:24:04 -0300] - Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0
127.0.0.1 - gabriel - [28/May/2015:11:24:04 -0300] - Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0
Para configurar o formato e quais dados serão exibidos neste arquivo de “request_gti2m.log” demonstrado acima, é necessário editar a seção correspondente no "httpd.conf" conforme o seguinte caminho:
# /etc/httpd/conf/
#gedit httpd.conf
Formato escolhido na linha em destaque:
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h - %u - %t - %{User-Agent}i" combined
#LogFormat "%h %l %u %t \"%r\" %>s %b" common
Conforme demonstrado na linha acima “LogFormat”, os dados que escolhemos para serem apresentados em nosso arquivo de log de acessos foram, “%h” (IP de quem acessou o site www.gti2m.com.br), “%u” (nome do usuário que acessou), “%t” (o dia, o mês, o ano e a hora que aconteceu o acesso), "%{User-Agent}i" (o navegador utilizado, S.O e versão do S.O e tipo de dispositivo), outras variáveis poderá ser consultado no link (http://httpd.apache.org/docs/2.2/mod/mod_log_config.html).
Configurando usuário e senha no Apache
Muitas vezes desejamos colocar dados em servidores web mas não queremos que os mesmos sejam públicos. Faremos então uma breve descrição sobre o arquivo “.htaccess”. Antes de mais nada, é necessário certificar-se de que o Apache está configurado para aceitar arquivos “.htaccess” como arquivos especiais. Para configurar esse comportamento, precisamos editar o arquivo de configuração do Apache, que é o "httpd.conf". Geralmente ele está localizado no diretório "/etc/httpd/conf”.
Segue abaixo as alterações realizadas em nosso arquivo para restringir os acessos:
<Directory />
AllowOverride AuthConfig
AuthName "Acesso Restrito"
AuthType Basic
AuthUserFile /var/www/auth/acesso
require valid-user
</Directory>
AllowOverride AuthConfig: diz para o Apache procurar pelos arquivos “.htaccess” nos diretórios web e aplicar as regras contidas no arquivo em todos os diretórios e subdiretórios onde ele esteja localizado.
AuthName: O nome que aparece como mensagem de Login.
AuthType: Tipo de autenticação. Pode ser Basic ou Digest.
AuthUserFile: O diretório onde está o arquivo de usuários e senhas que nós criamos (#/var/www/auth/acesso.)
require valid-user: O que o Apache precisa para validar o acesso. Neste caso indicamos que um usuário válido é necessário para acessar a página.
O “.htaccess” deve ser criado no mesmo diretório o qual ele protegerá, e restringirá acesso não somente a este diretório como também a todos os subdiretórios decorrentes.
Em nosso servidor colocamos o arquivo dentro do diretório conforme demonstrado abaixo:
#touch /var/www/restrito/.htaccess
Assim tudo que estiver dentro do diretório “restrito”, estará protegido através da solicitação de um usuário e senha configurada conforme as explicações a seguir.
Antes de mais nada precisamos criar os usuários/senhas que terão acesso à nossa área restrita. Para isso usaremos o utilitário "htpasswd", que vem junto com o Apache e cria arquivos de senhas criptografadas em um formato que o servidor entende. Aqui iremos criar senhas para os usuários ezio, denis, gabriel e deborah:
Primeiro, criamos um diretório para guardar o arquivo de senhas e entramos nele. Em nosso exemplo, vamos criar o diretório “auth” dentro do diretório “/var/www”.
# mkdir /var/www/auth
# cd /var/www/auth
Usamos o “htpasswd” para criar os usuários e suas senhas, no arquivo que chamaremos de “acesso”.
# htpasswd -c -m acesso ezio
New password:
Re-type new password:
Adding password for user ezio
# htpasswd -m acesso denis
New password:
Re-type new password:
Adding password for user denis
#htpasswd -m acesso gabriel
New password:
Re-type new password:
Adding password for user gabriel
#htpasswd -m acesso deborah
New password:
Re-type new password:
Adding password for user deborah
O parâmetro “-c”, foi utilizado para criar o arquivo chamado acesso, que não existia até então. Por isso foi utilizado apenas no usuário ezio e não nos demais. O parâmetro “-m”, força a utilização de senhas criptografadas. O resultado que temos é o arquivo /var/www/auth/acesso, contendo os usuários que terão acesso às áreas restritas, seguidos por suas respectivas senhas criptografadas conforme abaixo:
ezio:$apr1$2Zfz0cmM$lTQ3FEbVvAsFI2KPAqpYy0
deborah:$apr1$JbWlzdlv$vNXWxy4WJudreomIb3br91
denis:$apr1$MQJGWfF9$mL4cgSaUoaPH7xA7iyIkk.
gabriel:$apr1$NukFgTPX$WDsoV0VWhUCB7sEVe0Y3d.




Laboratório de Redes de Computadores
(Professor - Dinailton José da Silva)
