You are on page 1of 91

Apache

Verso 1.0.0

Sumrio
I

Sobre essa Apostila

II Informaes Bsicas

III GNU Free Documentation License

10

IV

19

Apache

1 O que Apache?
2 Plano de ensino
2.1 Objetivo . . .
2.2 Pblico Alvo .
2.3 Pr-requisitos
2.4 Descrio . .
2.5 Metodologia .
2.6 Cronograma
2.7 Programa . .
2.8 Avaliao . .
2.9 Bibliografia .

20
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

3 Mdulo I - Introduo, instalao e configurao


3.1 Lio 1 - Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Histria do Apache . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.3 Caractersticas do Apache . . . . . . . . . . . . . . . . . . . . .
3.2 Lio 2 - Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Pr-requisitos de Hardware . . . . . . . . . . . . . . . . . . . . .
3.2.2 Pacotes necessrios . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3 Instalando com o APT . . . . . . . . . . . . . . . . . . . . . . . .
3.2.4 Instalando atravs de um pacote genrico . . . . . . . . . . . . .
3.3 Lio 3 - Conhecendo o Apache . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Os arquivos de configurao . . . . . . . . . . . . . . . . . . . .
3.3.2 Arquivos de log . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3 Iniciando, reiniciando e recarregando a configurao do servidor
3.3.4 Opes de linha de comando . . . . . . . . . . . . . . . . . . . .
1

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

21
21
21
21
21
21
21
22
23
23

.
.
.
.
.
.
.
.
.
.
.
.
.
.

24
24
24
24
25
25
25
26
26
27
27
27
27
28
29

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.4 Lio 4 - Configurando o Apache . . . . . . . . . . . . . .


3.4.1 O httpd.conf . . . . . . . . . . . . . . . . . . . . .
3.4.2 Configurando a porta padro do Apache . . . . . .
3.4.3 Adicionando uma pgina no Apache . . . . . . . .
3.4.4 Especificando opes/permisses para as pgina
3.5 Lio 5 - Restries de acesso . . . . . . . . . . . . . . .
3.5.1 Restries de acesso . . . . . . . . . . . . . . . .
3.5.2 Autorizao . . . . . . . . . . . . . . . . . . . . . .
3.5.3 Autenticao . . . . . . . . . . . . . . . . . . . . .
3.5.4 Criando um arquivo de senhas . . . . . . . . . . .
3.5.5 Autenticao atravs de usurios . . . . . . . . . .
3.5.6 Autenticao usando grupos . . . . . . . . . . . .
3.5.7 Usando autorizao e autenticao juntos . . . . .
3.5.8 Acesso diferenciado em uma mesma diretiva . . .
3.5.9 O arquivo .htaccess . . . . . . . . . . . . . . . . .
3.5.10 Usando a diretiva SetEnvIf com Allow e Deny . . .
3.5.11 A diretiva <Limit> . . . . . . . . . . . . . . . . . . .
3.6 Lio 6 - O sistema de log do Apache . . . . . . . . . . .
3.6.1 Sistema de Log do Apache . . . . . . . . . . . . .
3.6.2 Arquivos de log . . . . . . . . . . . . . . . . . . . .
3.6.3 Arquivos de log - 2 . . . . . . . . . . . . . . . . . .
3.6.4 Arquivos de log - 3 . . . . . . . . . . . . . . . . . .
3.6.5 Arquivos de log - 4 . . . . . . . . . . . . . . . . . .
3.6.6 Definindo documentos de erro personalizados . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

29
30
30
30
31
36
36
36
40
41
41
43
44
45
46
48
48
49
49
49
50
51
52
53

4 Mdulo II - Configuraes avanadas


4.1 Lio 7 - Configurando o Apache como um servidor proxy
4.1.1 Configurando o proxy . . . . . . . . . . . . . . . .
4.1.2 Controlando o acesso ao servidor proxy . . . . . .
4.1.3 Redirecionamento de conexes no Apache . . . .
4.2 Lio 8 - Virtual Hosts . . . . . . . . . . . . . . . . . . . .
4.2.1 Virtual hosts . . . . . . . . . . . . . . . . . . . . .
4.2.2 Virtual hosts baseados em IP . . . . . . . . . . . .
4.2.3 Virtual hosts baseados em nome . . . . . . . . . .
4.2.4 Segurana no uso de IPs em Virtual Hosts . . . .
4.3 Lio 9 - Mdulos DSO . . . . . . . . . . . . . . . . . . .
4.4 Lio 10 - Uso de criptografia SSL . . . . . . . . . . . . .
4.4.1 Uso de criptografia SSL . . . . . . . . . . . . . . .
4.4.2 Servidor apache com suporte a ssl . . . . . . . . .
4.4.3 Instalando o suporte a mdulo SSL no Apache . .
4.4.4 Gerando um certificado digital . . . . . . . . . . .
4.4.5 Exemplo de configurao do mdulo mod-ssl . . .
4.4.6 Autorizando acesso somente a conexes SSL . .
4.4.7 Iniciando o servidor Web com suporte a SSL . . .
4.5 Exemplos dos arquivos de configurao . . . . . . . . . .
4.5.1 httpd.conf . . . . . . . . . . . . . . . . . . . . . . .
4.5.2 access.conf . . . . . . . . . . . . . . . . . . . . . .
4.5.3 srm.conf . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

55
55
55
57
57
58
58
59
60
61
62
65
65
65
66
66
66
68
68
69
69
78
82

Parte I

Sobre essa Apostila

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Contedo
O contedo dessa apostila fruto da compilao de diversos materiais livres publicados na internet, disponveis em diversos sites ou originalmente produzido no CDTC (http://www.cdtc.org.br.)
O formato original deste material bem como sua atualizao est disponvel dentro da licena
GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seo de
mesmo nome, tendo inclusive uma verso traduzida (no oficial).
A reviso e alterao vem sendo realizada pelo CDTC (suporte@cdtc.org.br) desde outubro
de 2006. Crticas e sugestes construtivas sero bem-vindas a qualquer hora.

Autores
A autoria deste de responsabilidade de Frederico Oliveira de Paula (fredaodepaula@cdtc.org.br).
O texto original faz parte do projeto Centro de Difuso de Tecnologia e Conhecimento que
vm sendo realizado pelo ITI (Instituto Nacional de Tecnologia da Informao) em conjunto com
outros parceiros institucionais, e com as universidades federais brasileiras que tem produzido e
utilizado Software Livre apoiando inclusive a comunidade Free Software junto a outras entidades
no pas.
Informaes adicionais podem ser obtidas atravs do email ouvidoria@cdtc.org.br, ou da
home page da entidade, atravs da URL http://www.cdtc.org.br.

Garantias
O material contido nesta apostila isento de garantias e o seu uso de inteira responsabilidade do usurio/leitor. Os autores, bem como o ITI e seus parceiros, no se responsabilizam
direta ou indiretamente por qualquer prejuzo oriundo da utilizao do material aqui contido.

Licena
Copyright 2006, Instituto Nacional de Tecnologia da Informao (cdtc@iti.gov.br) .
Permission is granted to copy, distribute and/or modify this document under the terms
of the GNU Free Documentation License, Version 1.1 or any later version published by
the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOSTILA. A copy of the license is included in the section entitled GNU Free Documentation
License.

Parte II

Informaes Bsicas

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Sobre o CDTC
Objetivo Geral
O Projeto CDTC visa a promoo e o desenvolvimento de aes que incentivem a disseminao de solues que utilizem padres abertos e no proprietrios de tecnologia, em proveito do
desenvolvimento social, cultural, poltico, tecnolgico e econmico da sociedade brasileira.
Objetivo Especfico
Auxiliar o Governo Federal na implantao do plano nacional de software no-proprietrio e
de cdigo fonte aberto, identificando e mobilizando grupos de formadores de opinio dentre os
servidores pblicos e agentes polticos da Unio Federal, estimulando e incentivando o mercado
nacional a adotar novos modelos de negcio da tecnologia da informao e de novos negcios
de comunicao com base em software no-proprietrio e de cdigo fonte aberto, oferecendo
treinamento especfico para tcnicos, profissionais de suporte e funcionrios pblicos usurios,
criando grupos de funcionrios pblicos que iro treinar outros funcionrios pblicos e atuar como
incentivadores e defensores dos produtos de software no proprietrios e cdigo fonte aberto, oferecendo contedo tcnico on-line para servios de suporte, ferramentas para desenvolvimento de
produtos de software no proprietrios e do seu cdigo fonte livre, articulando redes de terceiros
(dentro e fora do governo) fornecedoras de educao, pesquisa, desenvolvimento e teste de produtos de software livre.

Guia do aluno
Neste guia, voc ter reunidas uma srie de informaes importantes para que voc comece
seu curso. So elas:
Licenas para cpia de material disponvel;
Os 10 mandamentos do aluno de Educao a Distncia;
Como participar dos foruns e da wikipdia;
Primeiros passos.
muito importante que voc entre em contato com TODAS estas informaes, seguindo o
roteiro acima.

Licena
Copyright 2006, Instituto Nacional de Tecnologia da Informao (cdtc@iti.gov.br).
6

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

dada permisso para copiar, distribuir e/ou modificar este documento sob os termos
da Licena de Documentao Livre GNU, Verso 1.1 ou qualquer verso posterior
pblicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSA
APOSTILA. Uma cpia da licena est inclusa na seo entitulada "Licena de Documentao Livre GNU".

Os 10 mandamentos do aluno de educao online

1. Acesso Internet: ter endereo eletrnico, um provedor e um equipamento adequado


pr-requisito para a participao nos cursos a distncia;
2. Habilidade e disposio para operar programas: ter conhecimentos bsicos de Informtica necessrio para poder executar as tarefas;
3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distncia conta muitos pontos, pois ir colaborar para o processo ensino-aprendizagem pessoal,
dos colegas e dos professores;
4. Comportamentos compatveis com a etiqueta: mostrar-se interessado em conhecer seus
colegas de turma respeitando-os e se fazendo ser respeitado pelos mesmos;
5. Organizao pessoal: planejar e organizar tudo fundamental para facilitar a sua reviso
e a sua recuperao de materiais;
6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigaes e
realiz-las em tempo real;
7. Curiosidade e abertura para inovaes: aceitar novas idias e inovar sempre;
8. Flexibilidade e adaptao: requisitos necessrio mudana tecnolgica, aprendizagens
e descobertas;
9. Objetividade em sua comunicao: comunicar-se de forma clara, breve e transparente
ponto - chave na comunicao pela Internet;
10. Responsabilidade: ser responsvel por seu prprio aprendizado. O ambiente virtual no
controla a sua dedicao, mas reflete os resultados do seu esforo e da sua colaborao.

Como participar dos fruns e Wikipdia


Voc tem um problema e precisa de ajuda?
Podemos te ajudar de 2 formas:
A primeira o uso dos fruns de notcias e de dvidas gerais que se distinguem pelo uso:
. O frum de notcias tem por objetivo disponibilizar um meio de acesso rpido a informaes
que sejam pertinentes ao curso (avisos, notcias). As mensagens postadas nele so enviadas a
7

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

todos participantes. Assim, se o monitor ou algum outro participante tiver uma informao que
interesse ao grupo, favor post-la aqui.
Porm, se o que voc deseja resolver alguma dvida ou discutir algum tpico especfico do
curso. recomendado que voc faa uso do Frum de dvidas gerais que lhe d recursos mais
efetivos para esta prtica.
. O frum de dvidas gerais tem por objetivo disponibilizar um meio fcil, rpido e interativo
para solucionar suas dvidas e trocar experincias. As mensagens postadas nele so enviadas
a todos participantes do curso. Assim, fica muito mais fcil obter respostas, j que todos podem
ajudar.
Se voc receber uma mensagem com algum tpico que saiba responder, no se preocupe com a
formalizao ou a gramtica. Responda! E no se esquea de que antes de abrir um novo tpico
recomendvel ver se a sua pergunta j foi feita por outro participante.
A segunda forma se d pelas Wikis:
. Uma wiki uma pgina web que pode ser editada colaborativamente, ou seja, qualquer participante pode inserir, editar, apagar textos. As verses antigas vo sendo arquivadas e podem
ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um
timo suporte a processos de aprendizagem colaborativa. A maior wiki na web o site "Wikipdia", uma experincia grandiosa de construo de uma enciclopdia de forma colaborativa, por
pessoas de todas as partes do mundo. Acesse-a em portugus pelos links:
Pgina principal da Wiki - http://pt.wikipedia.org/wiki/
Agradecemos antecipadamente a sua colaborao com a aprendizagem do grupo!

Primeiros Passos
Para uma melhor aprendizagem recomendvel que voc siga os seguintes passos:
Ler o Plano de Ensino e entender a que seu curso se dispe a ensinar;
Ler a Ambientao do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas bsicas do mesmo;
Entrar nas lies seguindo a seqncia descrita no Plano de Ensino;
Qualquer dvida, reporte ao Frum de Dvidas Gerais.

Perfil do Tutor
Segue-se uma descrio do tutor ideal, baseada no feedback de alunos e de tutores.
O tutor ideal um modelo de excelncia: consistente, justo e profissional nos respectivos
valores e atitudes, incentiva mas honesto, imparcial, amvel, positivo, respeitador, aceita as
idias dos estudantes, paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.
8

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

A classificao por um tutor desta natureza proporciona o melhor feedback possvel, crucial, e,
para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem. Este tutor
ou instrutor:
fornece explicaes claras acerca do que ele espera e do estilo de classificao que ir
utilizar;
gosta que lhe faam perguntas adicionais;
identifica as nossas falhas, mas corrige-as amavelmente, diz um estudante, e explica porque motivo a classificao foi ou no foi atribuda;
tece comentrios completos e construtivos, mas de forma agradvel (em contraste com um
reparo de um estudante: os comentrios deixam-nos com uma sensao de crtica, de
ameaa e de nervossismo)
d uma ajuda complementar para encorajar um estudante em dificuldade;
esclarece pontos que no foram entendidos, ou corretamente aprendidos anteriormente;
ajuda o estudante a alcanar os seus objetivos;
flexvel quando necessrio;
mostra um interesse genuno em motivar os alunos (mesmo os principiantes e, por isso,
talvez numa fase menos interessante para o tutor);
escreve todas as correes de forma legvel e com um nvel de pormenorizao adequado;
acima de tudo, devolve os trabalhos rapidamente;

Parte III

GNU Free Documentation License

10

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

(Traduzido pelo Joo S. O. Bueno atravs do CIPSGA em 2001)


Esta uma traduo no oficial da Licena de Documentao Livre GNU em Portugus Brasileiro. Ela no publicada pela Free Software Foundation, e no se aplica legalmente a distribuio
de textos que usem a GFDL - apenas o texto original em Ingls da GNU FDL faz isso. Entretanto,
ns esperamos que esta traduo ajude falantes de portugus a entenderem melhor a GFDL.
This is an unofficial translation of the GNU General Documentation License into Brazilian Portuguese. It was not published by the Free Software Foundation, and does not legally state the
distribution terms for software that uses the GFDLonly the original English text of the GFDL does
that. However, we hope that this translation will help Portuguese speakers understand the GFDL
better.
Licena de Documentao Livre GNU Verso 1.1, Maro de 2000
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
permitido a qualquer um copiar e distribuir cpias exatas deste documento de licena, mas
no permitido alter-lo.

INTRODUO
O propsito desta Licena deixar um manual, livro-texto ou outro documento escrito "livre"no
sentido de liberdade: assegurar a qualquer um a efetiva liberdade de copi-lo ou redistribui-lo,
com ou sem modificaes, comercialmente ou no. Secundariamente, esta Licena mantm
para o autor e editor uma forma de ter crdito por seu trabalho, sem ser considerado responsvel
pelas modificaes feitas por terceiros.
Esta Licena um tipo de "copyleft"("direitos revertidos"), o que significa que derivaes do
documento precisam ser livres no mesmo sentido. Ela complementa a GNU Licena Pblica Geral (GNU GPL), que um copyleft para software livre.
Ns fizemos esta Licena para que seja usada em manuais de software livre, por que software
livre precisa de documentao livre: um programa livre deve ser acompanhado de manuais que
provenham as mesmas liberdades que o software possui. Mas esta Licena no est restrita a
manuais de software; ela pode ser usada para qualquer trabalho em texto, independentemente
do assunto ou se ele publicado como um livro impresso. Ns recomendamos esta Licena principalmente para trabalhos cujo propsito seja de introduo ou referncia.

APLICABILIDADE E DEFINIES
Esta Licena se aplica a qualquer manual ou outro texto que contenha uma nota colocada pelo
detentor dos direitos autorais dizendo que ele pode ser distribudo sob os termos desta Licena.
O "Documento"abaixo se refere a qualquer manual ou texto. Qualquer pessoa do pblico um

11

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

licenciado e referida como "voc".


Uma "Verso Modificada"do Documento se refere a qualquer trabalho contendo o documento
ou uma parte dele, quer copiada exatamente, quer com modificaes e/ou traduzida em outra
lngua.
Uma "Seo Secundria" um apndice ou uma seo inicial do Documento que trata exclusivamente da relao dos editores ou dos autores do Documento com o assunto geral do
Documento (ou assuntos relacionados) e no contm nada que poderia ser includo diretamente
nesse assunto geral (Por exemplo, se o Documento em parte um livro texto de matemtica, a
Seo Secundria pode no explicar nada de matemtica).
Essa relao poderia ser uma questo de ligao histrica com o assunto, ou matrias relacionadas, ou de posies legais, comerciais, filosficas, ticas ou polticas relacionadas ao mesmo.
As "Sees Invariantes"so certas Sees Secundrias cujos ttulos so designados, como
sendo de Sees Invariantes, na nota que diz que o Documento publicado sob esta Licena.
Os "Textos de Capa"so certos trechos curtos de texto que so listados, como Textos de Capa
Frontal ou Textos da Quarta Capa, na nota que diz que o texto publicado sob esta Licena.
Uma cpia "Transparente"do Documento significa uma cpia que pode ser lida automaticamente, representada num formato cuja especificao esteja disponvel ao pblico geral, cujos
contedos possam ser vistos e editados diretamente e sem mecanismos especiais com editores
de texto genricos ou (para imagens compostas de pixels) programas de pintura genricos ou
(para desenhos) por algum editor de desenhos grandemente difundido, e que seja passvel de
servir como entrada a formatadores de texto ou para traduo automtica para uma variedade
de formatos que sirvam de entrada para formatadores de texto. Uma cpia feita em um formato
de arquivo outrossim Transparente cuja constituio tenha sido projetada para atrapalhar ou desencorajar modificaes subsequentes pelos leitores no Transparente. Uma cpia que no
"Transparente" chamada de "Opaca".
Exemplos de formatos que podem ser usados para cpias Transparentes incluem ASCII simples sem marcaes, formato de entrada do Texinfo, formato de entrada do LaTex, SGML ou XML
usando uma DTD disponibilizada publicamente, e HTML simples, compatvel com os padres, e
projetado para ser modificado por pessoas. Formatos opacos incluem PostScript, PDF, formatos
proprietrios que podem ser lidos e editados apenas com processadores de texto proprietrios,
SGML ou XML para os quais a DTD e/ou ferramentas de processamento e edio no estejam
disponveis para o pblico, e HTML gerado automaticamente por alguns editores de texto com
finalidade apenas de sada.
A "Pgina do Ttulo"significa, para um livro impresso, a pgina do ttulo propriamente dita,
mais quaisquer pginas subsequentes quantas forem necessrias para conter, de forma legvel,
o material que esta Licena requer que aparea na pgina do ttulo. Para trabalhos que no
tenham uma pgina do ttulo, "Pgina do Ttulo"significa o texto prximo da apario mais proeminente do ttulo do trabalho, precedendo o incio do corpo do texto.

12

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

FAZENDO CPIAS EXATAS


Voc pode copiar e distribuir o Documento em qualquer meio, de forma comercial ou no
comercial, desde que esta Licena, as notas de copyright, e a nota de licena dizendo que esta
Licena se aplica ao documento estejam reproduzidas em todas as cpias, e que voc no acrescente nenhuma outra condio, quaisquer que sejam, s desta Licena.
Voc no pode usar medidas tcnicas para obstruir ou controlar a leitura ou confeco de
cpias subsequentes das cpias que voc fizer ou distribuir. Entretanto, voc pode aceitar compensao em troca de cpias. Se voc distribuir uma quantidade grande o suficiente de cpias,
voc tambm precisa respeitar as condies da seo 3.
Voc tambm pode emprestar cpias, sob as mesmas condies colocadas acima, e tambm
pode exibir cpias publicamente.

FAZENDO CPIAS EM QUANTIDADE


Se voc publicar cpias do Documento em nmero maior que 100, e a nota de licena do
Documento obrigar Textos de Capa, voc precisar incluir as cpias em capas que tragam, clara
e legivelmente, todos esses Textos de Capa: Textos de Capa da Frente na capa da frente, e
Textos da Quarta Capa na capa de trs. Ambas as capas tambm precisam identificar clara e
legivelmente voc como o editor dessas cpias. A capa da frente precisa apresentar o ttulo completo com todas as palavras do ttulo igualmente proeminentes e visveis. Voc pode adicionar
outros materiais s capas. Fazer cpias com modificaes limitadas s capas, tanto quanto estas
preservem o ttulo do documento e satisfaam a essas condies, pode ser tratado como cpia
exata em outros aspectos.
Se os textos requeridos em qualquer das capas for muito volumoso para caber de forma
legvel, voc deve colocar os primeiros (tantos quantos couberem de forma razovel) na capa
verdadeira, e continuar os outros nas pginas adjacentes.
Se voc publicar ou distribuir cpias Opacas do Documento em nmero maior que 100, voc
precisa ou incluir uma cpia Transparente que possa ser lida automaticamente com cada cpia
Opaca, ou informar, em ou com, cada cpia Opaca a localizao de uma cpia Transparente
completa do Documento acessvel publicamente em uma rede de computadores, qual o pblico
usurio de redes tenha acesso a download gratuito e annimo utilizando padres pblicos de
protocolos de rede. Se voc utilizar o segundo mtodo, voc precisar tomar cuidados razoavelmente prudentes, quando iniciar a distribuio de cpias Opacas em quantidade, para assegurar
que esta cpia Transparente vai permanecer acessvel desta forma na localizao especificada
por pelo menos um ano depois da ltima vez em que voc distribuir uma cpia Opaca (diretamente ou atravs de seus agentes ou distribuidores) daquela edio para o pblico.
pedido, mas no obrigatrio, que voc contate os autores do Documento bem antes de
redistribuir qualquer grande nmero de cpias, para lhes dar uma oportunidade de prover voc
com uma verso atualizada do Documento.

13

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

MODIFICAES
Voc pode copiar e distribuir uma Verso Modificada do Documento sob as condies das sees 2 e 3 acima, desde que voc publique a Verso Modificada estritamente sob esta Licena,
com a Verso Modificada tomando o papel do Documento, de forma a licenciar a distribuio
e modificao da Verso Modificada para quem quer que possua uma cpia da mesma. Alm
disso, voc precisa fazer o seguinte na verso modificada:
A. Usar na Pgina de Ttulo (e nas capas, se houver alguma) um ttulo distinto daquele do Documento, e daqueles de verses anteriores (que deveriam, se houvesse algum, estarem listados
na seo "Histrico do Documento"). Voc pode usar o mesmo ttulo de uma verso anterior se
o editor original daquela verso lhe der permisso;
B. Listar na Pgina de Ttulo, como autores, uma ou mais das pessoas ou entidades responsveis pela autoria das modificaes na Verso Modificada, conjuntamente com pelo menos cinco
dos autores principais do Documento (todos os seus autores principais, se ele tiver menos que
cinco);
C. Colocar na Pgina de Ttulo o nome do editor da Verso Modificada, como o editor;
D. Preservar todas as notas de copyright do Documento;
E. Adicionar uma nota de copyright apropriada para suas prprias modificaes adjacente s
outras notas de copyright;
F. Incluir, imediatamente depois das notas de copyright, uma nota de licena dando ao pblico
o direito de usar a Verso Modificada sob os termos desta Licena, na forma mostrada no tpico
abaixo;
G. Preservar nessa nota de licena as listas completas das Sees Invariantes e os Textos de
Capa requeridos dados na nota de licena do Documento;
H. Incluir uma cpia inalterada desta Licena;
I. Preservar a seo entitulada "Histrico", e seu ttulo, e adicionar mesma um item dizendo
pelo menos o ttulo, ano, novos autores e editor da Verso Modificada como dados na Pgina de
Ttulo. Se no houver uma sesso denominada "Histrico"no Documento, criar uma dizendo o
ttulo, ano, autores, e editor do Documento como dados em sua Pgina de Ttulo, ento adicionar
um item descrevendo a Verso Modificada, tal como descrito na sentena anterior;
J. Preservar o endereo de rede, se algum, dado no Documento para acesso pblico a uma
cpia Transparente do Documento, e da mesma forma, as localizaes de rede dadas no Documento para as verses anteriores em que ele foi baseado. Elas podem ser colocadas na seo
"Histrico". Voc pode omitir uma localizao na rede para um trabalho que tenha sido publicado
pelo menos quatro anos antes do Documento, ou se o editor original da verso a que ela se refira
der sua permisso;
K. Em qualquer seo entitulada "Agradecimentos"ou "Dedicatrias", preservar o ttulo da
14

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

seo e preservar a seo em toda substncia e fim de cada um dos agradecimentos de contribuidores e/ou dedicatrias dados;
L. Preservar todas as Sees Invariantes do Documento, inalteradas em seus textos ou em
seus ttulos. Nmeros de seo ou equivalentes no so considerados parte dos ttulos da seo;
M. Apagar qualquer seo entitulada "Endossos". Tal sesso no pode ser includa na Verso
Modificada;
N. No reentitular qualquer seo existente com o ttulo "Endossos"ou com qualquer outro
ttulo dado a uma Seo Invariante.
Se a Verso Modificada incluir novas sees iniciais ou apndices que se qualifiquem como
Sees Secundrias e no contenham nenhum material copiado do Documento, voc pode optar
por designar alguma ou todas aquelas sees como invariantes. Para fazer isso, adicione seus
ttulos lista de Sees Invariantes na nota de licena da Verso Modificada. Esses ttulos precisam ser diferentes de qualquer outro ttulo de seo.
Voc pode adicionar uma seo entitulada "Endossos", desde que ela no contenha qualquer coisa alm de endossos da sua Verso Modificada por vrias pessoas ou entidades - por
exemplo, declaraes de revisores ou de que o texto foi aprovado por uma organizao como a
definio oficial de um padro.
Voc pode adicionar uma passagem de at cinco palavras como um Texto de Capa da Frente
, e uma passagem de at 25 palavras como um Texto de Quarta Capa, ao final da lista de Textos
de Capa na Verso Modificada. Somente uma passagem de Texto da Capa da Frente e uma de
Texto da Quarta Capa podem ser adicionados por (ou por acordos feitos por) qualquer entidade.
Se o Documento j incluir um texto de capa para a mesma capa, adicionado previamente por
voc ou por acordo feito com alguma entidade para a qual voc esteja agindo, voc no pode
adicionar um outro; mas voc pode trocar o antigo, com permisso explcita do editor anterior que
adicionou a passagem antiga.
O(s) autor(es) e editor(es) do Documento no do permisso por esta Licena para que seus
nomes sejam usados para publicidade ou para assegurar ou implicar endossamento de qualquer
Verso Modificada.

COMBINANDO DOCUMENTOS
Voc pode combinar o Documento com outros documentos publicados sob esta Licena, sob
os termos definidos na seo 4 acima para verses modificadas, desde que voc inclua na combinao todas as Sees Invariantes de todos os documentos originais, sem modificaes, e liste
todas elas como Sees Invariantes de seu trabalho combinado em sua nota de licena.
O trabalho combinado precisa conter apenas uma cpia desta Licena, e Sees Invariantes
Idnticas com multiplas ocorrncias podem ser substitudas por apenas uma cpia. Se houver
mltiplas Sees Invariantes com o mesmo nome mas com contedos distintos, faa o ttulo de
15

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

cada seo nico adicionando ao final do mesmo, em parnteses, o nome do autor ou editor
origianl daquela seo, se for conhecido, ou um nmero que seja nico. Faa o mesmo ajuste
nos ttulos de seo na lista de Sees Invariantes nota de licena do trabalho combinado.
Na combinao, voc precisa combinar quaisquer sees entituladas "Histrico"dos diversos documentos originais, formando uma seo entitulada "Histrico"; da mesma forma combine
quaisquer sees entituladas "Agradecimentos", ou "Dedicatrias". Voc precisa apagar todas as
sees entituladas como "Endosso".

COLETNEAS DE DOCUMENTOS
Voc pode fazer uma coletnea consitindo do Documento e outros documentos publicados
sob esta Licena, e substituir as cpias individuais desta Licena nos vrios documentos com
uma nica cpia incluida na coletnea, desde que voc siga as regras desta Licena para cpia
exata de cada um dos Documentos em todos os outros aspectos.
Voc pode extrair um nico documento de tal coletnea, e distribu-lo individualmente sob
esta Licena, desde que voc insira uma cpia desta Licena no documento extrado, e siga esta
Licena em todos os outros aspectos relacionados cpia exata daquele documento.

AGREGAO COM TRABALHOS INDEPENDENTES


Uma compilao do Documento ou derivados dele com outros trabalhos ou documentos separados e independentes, em um volume ou mdia de distribuio, no conta como uma Verso Modificada do Documento, desde que nenhum copyright de compilao seja reclamado pela
compilao. Tal compilao chamada um "agregado", e esta Licena no se aplica aos outros
trabalhos auto-contidos compilados junto com o Documento, s por conta de terem sido assim
compilados, e eles no so trabalhos derivados do Documento.
Se o requerido para o Texto de Capa na seo 3 for aplicvel a essas cpias do Documento,
ento, se o Documento constituir menos de um quarto de todo o agregado, os Textos de Capa
do Documento podem ser colocados em capas adjacentes ao Documento dentro do agregado.
Seno eles precisaro aparecer nas capas de todo o agregado.

TRADUO
Traduo considerada como um tipo de modificao, ento voc pode distribuir tradues
do Documento sob os termos da seo 4. A substituio de Sees Invariantes por tradues
requer uma permisso especial dos detentores do copyright das mesmas, mas voc pode incluir
tradues de algumas ou de todas as Sees Invariantes em adio s verses orignais dessas
Sees Invariantes. Voc pode incluir uma traduo desta Licena desde que voc tambm inclua a verso original em Ingls desta Licena. No caso de discordncia entre a traduo e a

16

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

verso original em Ingls desta Licena, a verso original em Ingls prevalecer.

TRMINO
Voc no pode copiar, modificar, sublicenciar, ou distribuir o Documento exceto como expressamente especificado sob esta Licena. Qualquer outra tentativa de copiar, modificar, sublicenciar, ou distribuir o Documento nula, e resultar automaticamente no trmino de seus direitos
sob esta Licena. Entretanto, terceiros que tenham recebido cpias, ou direitos de voc sob esta
Licena no tero suas licenas terminadas, tanto quanto esses terceiros permaneam em total
acordo com esta Licena.

REVISES FUTURAS DESTA LICENA


A Free Software Foundation pode publicar novas verses revisadas da Licena de Documentao Livre GNU de tempos em tempos. Tais novas verses sero similares em espirito verso
presente, mas podem diferir em detalhes ao abordarem novos porblemas e preocupaes. Veja
http://www.gnu.org/copyleft/.
A cada verso da Licena dado um nmero de verso distinto. Se o Documento especificar
que uma verso particular desta Licena "ou qualquer verso posterior"se aplica ao mesmo, voc
tem a opo de seguir os termos e condies daquela verso especfica, ou de qualquer verso
posterior que tenha sido publicada (no como rascunho) pela Free Software Foundation. Se o
Documento no especificar um nmero de Verso desta Licena, voc pode escolher qualquer
verso j publicada (no como rascunho) pela Free Software Foundation.
ADENDO: Como usar esta Licena para seus documentos
Para usar esta Licena num documento que voc escreveu, inclua uma cpia desta Licena
no documento e ponha as seguintes notas de copyright e licenas logo aps a pgina de ttulo:
Copyright (c) ANO SEU NOME.
dada permisso para copiar, distribuir e/ou modificar este documento sob os termos da Licena
de Documentao Livre GNU, Verso 1.1 ou qualquer verso posterior publicada pela Free Software Foundation; com as Sees Invariantes sendo LISTE SEUS TTULOS, com os Textos da
Capa da Frente sendo LISTE, e com os Textos da Quarta-Capa sendo LISTE. Uma cpia da licena est inclusa na seo entitulada "Licena de Documentao Livre GNU".
Se voc no tiver nenhuma Seo Invariante, escreva "sem Sees Invariantes"ao invs de
dizer quais so invariantes. Se voc no tiver Textos de Capa da Frente, escreva "sem Textos de
Capa da Frente"ao invs de "com os Textos de Capa da Frente sendo LISTE"; o mesmo para os
Textos da Quarta Capa.
Se o seu documento contiver exemplos no triviais de cdigo de programas, ns recomendamos a publicao desses exemplos em paralelo sob a sua escolha de licena de software livre,

17

CDTC

Centro de Difuso de Tecnologia e Conhecimento

tal como a GNU General Public License, para permitir o seu uso em software livre.

18

Brasil/DF

Parte IV

Apache

19

Captulo 1

O que Apache?
c (http://www.netcraft.com/), o Apache mais usado que todos os outros servidores web do
mundo juntos.
Ao final deste curso o aluno ter conhecimento suficiente para instalar e configurar um servidor Apache.
O curso, com base na distribuio Debian, tem duas semanas, o contedo do curso estar visvel
somente a partir da data de incio. Para comear o curso voc deve ler o Guia do aluno a seguir.

20

Captulo 2

Plano de ensino
2.1 Objetivo
Qualificar tcnicos na utilizao do servidor Apache.

2.2 Pblico Alvo


Tcnicos que desejam trabalhar com Apache.

2.3 Pr-requisitos
Os usurios devero ser, necessariamente, indicados por empresas pblicas e ter conhecimento bsico acerca do sistema GNU/Linux e redes de computadores.

2.4 Descrio
O curso de Apache ser realizado na modalidade EAD e utilizar a plataforma Moodle como
ferramenta de aprendizagem. Ele composto de um mdulo de aprendizado que ser dado
na primeira semana e um mdulo de avaliao que ser dado na segunda semana. O material
didtico estar disponvel on-line de acordo com as datas pr-estabelecidas no calendrio. A
verso utilizada para o Apache ser a 1.3.36.

2.5 Metodologia
O curso est dividido da seguinte maneira:

2.6 Cronograma
Descrio das atividades
Semana 1:

21

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Introduo;
Instalao;
Conhecendo o Apache;
Configurando o Apache;
Restries de acesso;
O sistema de log do Apache;
Semana 2:
Configurando o Apache como um servidor proxy;
Virtual hosts;
Mdulos DSO;
Uso de criptografia SSL;
Avaliao de aprendizagem;
Avaliao do curso.
Como mostrado na tabela acima, a cada semana ser disponibilizado um conjunto de mdulos.
recomendvel que o participante siga as datas estabelecidas.
As lies, disponveis em cada mdulo, contm o contedo principal. Elas podero ser acessadas quantas vezes forem necessrias, desde que esteja dentro da semana programada. Ao final
de uma lio, voc receber uma nota de acordo com o seu desempenho. Caso sua nota numa
determinada lio seja menor do que 6.0, sugerimos que voc faa novamente esta lio.
Ao final do curso sero disponibilizadas as avaliaes referentes aos mdulos estudados anteriormente. Somente as notas das avaliaes sero consideradas para a nota final. Todos os
mdulos ficaro visveis para que possam ser consultados durante a avaliao final.
Para conhecer as demais atividades de cada mdulo leia o tpico seguinte: "Ambientao do
Moodle".
Os instrutores estaro sua disposio ao longo de todo curso. Qualquer dvida deve ser enviada ao frum correspondente. Diariamente os monitores daro respostas e esclarecimentos.

2.7 Programa
O curso oferecer o seguinte contedo:
Introduo, instalao, configurao;
Configuraes avanadas.

22

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

2.8 Avaliao
Toda a avaliao ser feita on-line.
Aspectos a serem considerados na avaliao:
iniciativa e autonomia no processo de aprendizagem e de produo de conhecimento;
capacidade de pesquisa e abordagem criativa na soluo dos problemas apresentados.
Instrumentos de avaliao:
participao ativa nas atividades programadas;
avaliao ao final do curso;
o participante far vrias avaliaes referente ao contedo do curso. Para a aprovao e
obteno do certificado o participante dever obter nota final maior ou igual a 6.0 de acordo
com a frmula abaixo:
Nota Final = ((ML x 7) + (AF x 3)) / 10 = Mdia aritmtica das lies;
AF = Avaliaes.

2.9 Bibliografia
http://focalinux.cipsga.org.br/guia/avancado/ch-s-apache.htm
http://www.apache.org

23

Captulo 3

Mdulo I - Introduo, instalao e


configurao
3.1 Lio 1 - Introduo
Uma breve introduo sobre o Apache.

3.1.1 Introduo
Um servidor web um programa responsvel por disponibilizar pginas, fotos, ou qualquer
outro tipo de objeto ao navegador do cliente. Ele tambm pode operar recebendo dados do
cliente, processando e enviando o resultado para que o cliente possa tomar a ao desejada
(como em aplicaes CGIs, banco de dados web, preenchimento de formulrios, etc). O Apache
se encaixa nessa categoria de software.

3.1.2 Histria do Apache


O Apache tem como base o servidor web NCSA 1.3 (National Center of Supercomputing
Applications), que foi desenvolvido por Rob McCool. Quando Rob deixou o NCSA, o desenvolvimento foi interrompido, assim muitos desenvolvedores buscaram personalizar sua prpria verso
do NCSA ou adicionar mais caractersticas para atender s suas necessidades. Neste momento
comea a histria do Apache com Brian Behlendorf e Cliff Skolnick abrindo uma lista de discusso para interessados no desenvolvimento, conseguindo espao em um servidor doado pela
HotWired e trocando patches corrigindo problemas, adicionando recursos e discutindo idias com
outros desenvolvedores e hackers interessados neste projeto.
A primeira verso oficial do Apache foi a 0.6.2, lanada em Abril de 1995 (neste perodo a NCSA
retomava o desenvolvimento de seu servidor web, tendo como desenvolvedores Brandon Long e
Beth Frank que tambm se tornaram membros especiais do grupo Apache, compartilhando idias
sobre seus projetos).
Nas verses 2.x do Apache, a escalabilidade do servidor foi ampliada suportando as plataformas
Win32 (no obtendo o mesmo desempenho que em plataformas UNIX mas sendo melhorado
gradativamente).

24

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.1.3 Caractersticas do Apache


Abaixo esto algumas caractersticas que fazem esse servidor web o preferido entre os administradores de sistemas:
possui suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script, ASP, etc;
suporte a autorizao de acesso podendo ser especificadas restries de acesso separadamente para cada endereo/arquivo/diretrio acessado no servidor;
autenticao requerendo um nome de usurio e senha vlidos para acesso a alguma pgina/subdiretrio/arquivo (suportando criptografia via Crypto e MD5);
negociao de contedo, permitindo a exibio da pgina Web no idioma requisitado pelo
Cliente Navegador;
suporte a tipos mime;
personalizao de logs;
mensagens de erro;
suporte a virtual hosting ( possvel servir 2 ou mais pginas com endereos/ portas diferentes atravs do mesmo processo ou usar mais de um processo para controlar mais de um
endereo);
suporte a IP virtual hosting;
suporte a name virtual hosting;
suporte a servidor Proxy ftp e http, com limite de acesso, caching (todas flexivelmente configurveis);
suporte a proxy e redirecionamentos baseados em URLs para endereos internos;
suporte a criptografia via SSL,Certificados Digitais;
mdulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursos sem necessidade de recompilao do programa.

3.2 Lio 2 - Instalao


Instalao do Apache na distribuio Debian.

3.2.1 Pr-requisitos de Hardware


O Apache uma aplicao muito leve, para rodar um servidor a fim de hospedar uma pgina
web so necessrios uma rede de 100MB/s, um Pentium 90, 24MB de RAM, um HD com um
bom desempenho e espao em disco considervel de acordo com o tamanho projetado de seu
servidor web (considerando seu crescimento).
Uma configurao mais rpida para redes 100MB/s teria como processador um Cyrix MX ou
25

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Intel Pentium MMX como plataforma mnima (Cyrix o recomendado pelo alto desempenho no
processamento de strings), barramento de HD SCSI com uma boa placa controladora (Adaptec
19160 ou superior) com 64MB de RAM no mnimo.
Como pode-se ver, os requisitos mnimos para construir um servidor para hospedar um site so
realmente mnimos, mas sites de maior trfego necessitam de configuraes mais robustas, principalmente memria e processamento.

3.2.2 Pacotes necessrios


Para instalar o Apache alguns pacotes so pr-requisitos, o usurio que instalar a partir da
ferrementa APT no precisa se preocupar com esses pacotes pois o APT cuidar de instal-los
automticamente.
apache-common ( 1.3.34-0);
debconf ;
dpkg ( 1.9.0) ;
libc6 (>= 2.3.2.ds1-21) ;
libc6.1 (>= 2.3.2.ds1-21) ;
libdb4.2 ;
libexpat1 (>= 1.95.8) ;
libmagic1 ;
logrotate (>= 3.5.4-1) ;
mime-support ;
perl (>= 5.8.4-2) .

3.2.3 Instalando com o APT


Para instalar o Apache com a ferramenta APT primeiro devemos estar logados como o superusurio:
user@debian: # su Password:
Agora j como o usurio root, basta dar o comando a seguir para instalar:
debian: # apt-get install apache apache-doc
Note que alm do pacote Apache foi instalado tambm o pacote apache-doc, este ltimo contm a documentao, em ingls, do programa. A documentao pode ser muito til para saber
informaes sobre os arquivos de configurao, os parmetros dos diversos arquivos, os diretrios, mensagens de erro e qualquer outro tipo de informao referente ao programa.

26

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.2.4 Instalando atravs de um pacote genrico


Os que no possuem a ferramenta APT ou outra parecida podem instalar o Apache a partir do
pacote baixado do endereo http://httpd.apache.org/download.cgi, a opo abordada aqui e em
todo o curso ser a 1.3.36, por isso escolha o pacote apache_1.3.36.tar.gz.
Depois de feito o download do arquivo, v ao diretrio onde se encontra o pacote para que
possamos descompact-lo:
debian: # tar -xvf apache_1.3.36.tar.gz
Ser criada ento a pasta apache_1.3.36, devemos ir para esta pasta e preparar para a compilao e instalao:
debian: # cd apache_1.3.36 debian: /apache_1.3.36# ./configure prefix=/etc/httpd
Com a opo prefix voc pode definir o diretrio de instalao do Apache, no caso escolhemos o padro /etc/httpd. Agora s compilar e instalar com os comandos:
debian: /apache_1.3.36# make debian: /apache_1.3.36# make install

3.3 Lio 3 - Conhecendo o Apache


Uma noo sobre alguns arquivos e diretrios importantes para o funcionamento do Apache.

3.3.1 Os arquivos de configurao


O Apache composto por diversos arquivos de configurao, esses ficam geralmente no
diretrio /etc/apache, a no ser que o diretrio tenha sido mudado na hora da instalao, eles
estaro nesse diretrio.
httpd.conf - Arquivo de configurao principal do Apache, possui diretivas que controlam a
operao do daemon servidor. Um arquivo de configurao alternativo pode ser especificado atravs da opo -f"da linha de comando;
srm.conf - Contm diretivas que controlam a especificao de documentos que o servidor
oferece aos clientes. O nome desse arquivo pode ser substitudo atravs da diretiva ResourceConfig no arquivo principal de configurao;
access.conf - Contm diretivas que controlam o acesso aos documentos. O nome desse
arquivo pode ser substitudo atravs da diretiva AccessConfig no arquivo principal de configurao.
O Servidor Web l os arquivos acima na ordem que esto especificados (httpd.conf, srm.conf
e access.conf). As configuraes tambm podem ser especificadas diretamente no arquivo
httpd.conf. Note que no obrigatrio usar os arquivos srm.conf e access.conf, mas isto proporciona uma melhor organizao das diretivas do servidor, principalmente quando se tem um
grande conjunto de diretivas. A configurao desses arquivos ser abordada em tpicos mais
adiante.

3.3.2 Arquivos de log


O servidor httpd grava seus arquivos de log geralmente em /var/log/apache, no possvel
descrever os arquivos de logs usados porque tanto seus nomes como contedo podem ser personalizados no arquivo httpd.conf. Mesmo assim, os arquivos de logs encontrados na instalao
padro do Apache so os seguintes:
27

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

access.log - registra detalhes sobre o acesso s pginas do servidor httpd;


error.log - registra detalhes saber erros de acesso s pginas ou erros internos do servidor;
agent.log - registra o nome do navegador do cliente (campo UserAgent do cabealho http).

3.3.3 Iniciando, reiniciando e recarregando a configurao do servidor


O Apache pode ser executado tanto como um servidor Inetd ou como um Daemon. A inicializao de programas pelo Inetd uma boa estratgia quando voc precisa de um controle de
acesso bsico (o fornecido pelo tcpd), e o servio pouco usado na mquina.
A segurana de um servio iniciado pelo inetd pode ser substituda e melhorada por um firewall
bem configurado, garantindo facilidades extras como um relatrio de trfego para a porta do servidor web, por exemplo. Mesmo assim se o servidor Apache estiver rodando como Daemon e
estiver ocioso, ele ser movido para swap liberando a memria RAM para a execuo de outros
programas.
Neste curso ser assumido o funcionamento do Apache como Daemon, que o mtodo de funcionamento recomendado para sites de grande trfego onde ele freqentemente requisitado e
considerado um servio crtico.
O mtodo padro para iniciar programas como daemons no Debian atravs dos diretrios
/etc/rc?.d. Cada diretrio deste contm os programas que sero executados/interrompidos no
nvel de execuo "?"(rc1.d/, rc2.d/ ...). O contedo destes diretrios so links para os scripts
originais em /etc/init.d/programa, o nosso programa alvo /etc/init.d/apache. O /etc/init.d/apache
aceita os seguintes parmetros:
start - inicia o Apache;
stop - finaliza o Apache;
restart - reinicia o Apache, efetuando uma pausa de 5 segundos entre a interrupo do seu
funcionamento e reinicio;
reload - recarrega os arquivos de configurao do Apache, as alteraes entram em funcionamento imediatamente;
reload-modules - recarrega os mdulos. Basicamente feito um restart no servidor;
force-reload - faz a mesma funo que o reload.
Para reiniciar o Apache usando o /etc/init.d/apache, digite:
debian: # /etc/init.d/apache restart
Na realidade, o que o /etc/init.d/apache faz interagir diretamente com o shell script apachectl.
O apachectl recebe os parmetros enviados pelo usurio e converte para sinais que sero enviados para o binrio Apache. Da mesma forma ele verifica os cdigos de sada do Apache e os
transforma em mensagens de erro legveis para o usurio comum. Os seguintes comandos so
aceitos pelo apachectl:
httpd-server/start - inicia o Apache;
stop - finaliza o Apache (enviando um sinal TERM);
28

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

restart - reinicia o Apache (enviando um sinal HUP);


graceful - recarrega os arquivos de configurao do Apache (enviando um sinal USR1);
fullstatus - mostra o status completo do servidor Apache (requer o lynx e o mdulo mod_status
carregado);
status - mostra o status do processo do servidor Apache (requer o lynx e o mdulo mod_status
carregado);
configtest - verifica se a sintaxe dos arquivos de configurao est OK (executa um apache
-t).

3.3.4 Opes de linha de comando


Em alguns casos pode ser necessrio inciar o o servidor com algum parmetro especfico,
abaixo segue uma lista com as opes de linha de comando para iniciar o Apache.
-D nome - Define um nome que ser usado na diretiva <IfDefine nome>;
-d diretrio - Especifica o diretrio ServerRoot (substitui o do arquivo de configurao);
-f arquivo - Especifica um arquivo ServerConfigFile alternativo;
-C "diretiva- Processa a diretiva antes de ler os arquivo de configurao;
-c "diretiva- Processa a diretiva depois de ler os arquivos de configurao;
-v - Mostra a verso do programa;
-V - Mostra opes usadas na compilao do Apache;
-h - Mostra o help on-line do programa;
-l - Lista mdulos compilados junto com o Apache (embutidos);
-L - Lista diretivas de configuraes disponveis;
-S - Mostra configuraes de Virtual Hosting;
-t - Executa a checagem de sintaxe nos arquivos de configurao do Apache (incluindo a
checagem da diretiva DocRoot);
-T - Executa a checagem de sintaxe nos arquivos de configurao do Apache (menos da
diretiva DocRoot).

3.4 Lio 4 - Configurando o Apache


Aspectos da configurao do Apache.

29

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.4.1 O httpd.conf
O arquivo httpd.conf o principal arquivo de configurao do Apache, nele voc pode mudar
diversos parmetros como a porta a que o servidor responder, os arquivos de log, criao de
virtual hosts e etc. Um exemplo bem comentado do httpd.conf pode ser encontrado na pgina
principal deste curso, logo abaixo do link para esta lio.

3.4.2 Configurando a porta padro do Apache


Use a diretiva Port para configurar a porta padro que o Apache receber requisies por
padro. A diretiva Listen tambm usada para ajustar o endereo/portas alternativas (usadas
tambm em Virtual Hosts) e substituir as definies de Port. Somente uma diretiva Port e um
argumento podero ser especificados. Para mais controle sobre as portas do sistema use a diretiva Listen .
A diretiva BindAddress usada para especificar endereos IP das interfaces ou endereos FQDN
que o Apache responder requisies. Mais de um endereo podem ser especificados separados
por espaos. Caso no seja definido, o Apache assumir o valor "*"(atender requisies vindas
de qualquer interface).
OBS1: - permitido usar somente uma diretiva BindAddress. A diretiva Listen dever ser usada
se desejar mais controle sobre as portas do servidor web.
OBS2: - As interfaces especificadas pela diretiva Listen substituir as especificadas em BindAddress.
Exemplo:
BindAddress 192.168.1.1 - Especifica que os usurios da faixa de rede 192.168.1.* tero
acesso ao servidor httpd. Isto assume que a mquina possui o endereo 192.168.1.1 em
sua interface de rede interna.
BindAddress * - Atender requisies vindas de qualquer interface de rede.
A diretiva Listen usada para se ter um controle maior sobre a especificao de endereos/portas alternativas que o servidor web esperar por requisies externas. Esta diretiva
muito usada na construo de Virtual Hosts. Esta diretiva pode substituir completamente as diretivas Port e BindAddress. Podem ser usados o nmero da porta, ou o par endereo:porta:
Listen 192.168.1.1:80
Listen 192.168.7.1:81
Listen 60000
O endereo que dever ser usado o da interface de rede (assim como na diretiva BindAddress). No exemplo acima, o servidor httpd esperar por requisies vindas de 192.168.1.* na
porta 80 e tambm 60000, e requisies vindas de 192.168.7.1 na porta 81 e tambm 60000.

3.4.3 Adicionando uma pgina no Apache


Existem dois tipos de pginas que podem ser adicionadas ao Apache: a pgina raiz e subpginas.
Pgina Raiz
A pgina raiz especificada atravs da diretiva DocumentRoot e ser mostrada quando se entrar
no domnio principal, como http://www.cursos.cdtc.org.br. Na configurao padro do Apache,
30

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

DocumentRoot aponta para o diretrio /var/www. Este diretrio ser assumido como raiz caso os
diretrios no sejam iniciados por uma /:
home/cdtc - Aponta para /var/www/home/cdtc
/home/cdtc - Aponta para /home/cdtc
Este diretrio deve conter um arquivo de ndice vlido (especificado pela diretiva DocumentIndex no srm.conf) e permisses de acesso vlidas no arquivo access.conf para autorizar o acesso
as pginas em /var/www.
Sub-pginas
Sub pginas so armazenadas abaixo do diretrio da Pgina raiz, como http://cursos.cdtc.org.br/
brasil/ . Elas podem ser um subdiretrio da pgina principal em /var/www ou serem criadas atravs da diretiva Alias no arquivo srm.conf. Caso seja um sub-diretrio, as permisses de acesso
de /var/www sero herdadas para este subdiretrio, mas tambm podero ser modificadas com
a especificao de uma nova diretiva de acesso.
Atravs da diretiva Alias a pgina pode estar localizada em outro diretrio do disco (at mesmo
outro sistema de arquivos) e as permisses de acesso devero ser definidas para aquela pgina.
Para criar um endereo http://cursos.cdtc.org.br/brasil que aponta para o diretrio /home/cdtc/brasil
no disco local, basta usar a seguinte diretiva no srm.conf:
Alias /brasil /home/cdtc/brasil
Pode ser necessrio permitir o acesso nova pgina caso o servidor tenha uma configurao restritiva por padro, isso ser visto mais adiante. Aps isto, faa o servidor httpd reler
os arquivos de configurao ou reinici-lo, ento a pgina /home/cdtc/brasil estar acessvel via
http://cursos.cdtc.org.br/brasil.
OBS: Caso inclua uma / no diretrio que ser acessvel via URL, o endereo somente estar
disponvel caso voc entre com / no final da URL:
Alias /doc/ /usr/doc/
O diretrio /doc somente poder ser acessado usando http://cursos.cdtc.org.br/doc/, o uso de
http://cursos.cdtc.org.br/doc retornar uma mensagem de URL no encontrada.

3.4.4 Especificando opes/permisses para as pgina


As opes de restrio podem tanto ser especificadas nas diretivas <Directory>, <Location>
ou <Files> quanto nos arquivos .htaccess (ou outro nome de arquivo de controle de acesso especificado pela opo AccessFileName do arquivo de configurao do Apache). Cada diretiva
de acesso especificada entre <tags> e devem ser fechadas com </tag> (como na linguagem
HTML). As seguintes diretivas de acesso so vlidas no Apache:
Directory
As restrio afetar o diretrio no disco especificado, conseqentemente a pgina armazenada
nele. Por exemplo:
<Directory /var/www>
Order deny,allow
deny from all
allow from 10.1.0.1
<Directory>

31

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

O acesso ao diretrio /var/www ser permitido somente ao computador com o endereo IP


10.1.0.1.
DirectoryMatch
Funciona como a diretiva <Directory> mas trabalha com expresses regulares como argumento.
Por exemplo:
<DirectoryMatch "/www/.*
Order deny,allow
deny from all
<DirectoryMatch>
Bloquear o acesso ao diretrio /www e sub-diretrios dentro dele.
Files
As restries afetaro os arquivos do disco que conferem com o especificado. possvel usar
os coringas? E * como no shell. Tambm podem ser usadas expresses regulares especificando
um " "aps Files e antes da expresso. Por exemplo:
<Files *.txt>
Order deny,allow
deny from all
</Files>
Bloqueia o acesso a todos os arquivos com a extenso .txt
<Files "\.(gif|jpe?g|bmp|png)$
Order deny,allow
</Files>
Bloqueia o acesso a arquivos gif, jpg, jpeg, bmp, png (note que o " "ativa o modo de interpretao de expresses regulares).
FilesMatch
Permite usar expresses regulares na especificao de arquivos (equivalente a diretiva <Files
"expresso). Por exemplo:
<FilesMatch "\.(gif|jpe?g|bmp|png)$
Order deny,allow
</FilesMatch>
Bloqueia o acesso a arquivos gif, jpg, jpeg, bmp, png.
Location
As restries afetaro o diretrio base especificado na URL e seus sub-diretrios. Por exemplo:
<Location /security>
Order allow,deny
32

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

</Location>
Bloqueia o acesso de todos os usurios ao diretrio /security da URL (a explicao porque o
acesso bloqueado neste caso ser explicado em na prxima lio).
LocationMatch
Idntico a diretiva <Location> mas trabalha com expresses regulares. Por exemplo:
<LocationMatch "/(extra|special)/data
Order deny,allow
deny from all
</LocationMatch>
Bloquear URLs que contm a substring "/extra/data"ou "/special/data".
O uso das diretivas <Directory> e <Files> apropriada quando voc deseja trabalhar com permisses a nvel de diretrios/arquivos no disco local (o controle do proxy tambm feito via
<Directory>), o uso da diretiva <Location> adequado para trabalhar com permisses a nvel de
URL. A ordem de processamento das diretivas de acesso so processadas a seguinte:
1. a diretiva <Directory> (com exceo de <DirectoryMatch>) e os arquivos .htaccess so processados simultaneamente. As definies dos arquivos .htaccess substituem as de <Directory>) ;
2. expresses regulares de <DirectoryMatch>, <Directory> ;
3. <Files> e <FilesMatch> so processados simultaneamente ;
4. <Location> e <LocationMatch> so processados simultaneamente.
Normalmente encontrado a opo Options dentro de uma das diretivas acima, a funo
desta diretiva controlar os seguintes aspectos da listagem de diretrios:
All
Todas as opes so usadas exceto a MultiViews. a padro caso a opo Options no seja
especificada.
ExecCGI
Permite a execuo de scripts CGI.
FollowSymLinks
O servidor seguir links simblicos neste diretrio (o caminho no modificado). Esta opo
ignorada caso aparea dentro das diretivas <Location>, <LocationMatch> e <DirectoryMatch>.
Includes
permitido o uso de includes no lado do servidor.
33

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

IncludesNOEXEC
permitido o uso de includes do lado do servidor, mas o comando #exec e #include de um
script CGI so desativados.
Indexes
Se no existir um arquivo especificado pela diretiva <DirectoryIndex> no diretrio especificado,
o servidor formatar automaticamente a listagem ao invs de gerar uma resposta de acesso negado.
MultiViews
Permite o uso da Negociao de contedo naquele diretrio. A negociao de contedo permite o envio de um documento no idioma requisitado pelo navegador do cliente.
SymLinksIfOwnerMatch
O servidor somente seguir links simblicos se o arquivo ou diretrio alvo tiver como dono o
mesmo user ID do link. Esta opo ignorada caso aparea dentro das diretivas <Location>,
<LocationMatch> e <DirectoryMatch>.
Mltiplos parmetros para Options podem ser especificados atravs de espaos.
OBS1: A opo Options no tem efeito dentro da diretiva FILES.
OBS2: Tanto faz usar maisculas quanto minsculas nas diretivas de configurao, opes e
parmetros de configurao do Apache, a capitalizao apenas ajuda a leitura e interpretao:
SymLinksIfOwnerMatch (LinksSimblicosSeDonoConferir).
As opes especificadas para o diretrio afetam tambm seus sub-diretrios, a no ser que sejam
especificadas opes separadas para o sub-diretrio:
<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
Ao acessar o diretrio /var/www/cdtc, as permisses usadas sero de /var/www, ao menos que
uma diretiva <Directory> ou <Location> seja especificada:
<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
<Directory /var/www/cdtc>
Options Includes
</Directory>
34

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

As opes e restries de acesso de /var/www/cdtc sero EXATAMENTE as especificadas no


bloco da diretiva <Directory /var/www/cdtc> e somente os includes sero permitidos. Para adicionar ou remover uma opo individual definidas por diretivas anteriores, podem ser usado os
sinais "+"ou -", por exemplo:
<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
<Directory /var/www/cdtc>
Options +Includes -Indexes
</Directory>
As opes Indexes e FollowSymLinks so definidas para o diretrio /var/www, ento as permisses do diretrio /var/www/cdtc sero FollowSymLinks (do diretrio /web/docs) e Includes (adicionada) e o parmetro Indexes no ter efeito neste diretrio.
permitido fazer um aninhamento das diretivas <Directory> e <Files>:
<Directory /var/www>
Order allow,deny
allow from all
<Files LEIAME-DONO.txt>
Order deny,allow
deny from all
</Files>
</Directory>
Neste caso, somente os arquivos LEIAME-DONO.txt existentes no diretrio /var/www e seus subdiretrios sero bloqueados.
Se a diretiva <Files> for usada fora de uma estrutura <Directory>, ela ter efeito em todos os
arquivos disponibilizados pelo servidor. Este excelente mtodo para proteger os arquivos de
acesso, senhas e grupos, conforme ser explicado mais adiante.
Qualquer outro tipo de aninhamento de diretivas resultar em um erro de configurao ao se tentar carregar/recarregar o Apache. Um exemplo de diretiva incorreta:
<Directory /var/www>
Options Indexes FollowSymLinks
<Directory /var/www/cdtc>
Options +Includes -Indexes
</Directory>
</Directory>
O correto :

35

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
<Directory /var/www/cdtc>
Options +Includes -Indexes
</Directory>
Espero que tenha observado o erro no exemplo acima.
OBS1: Voc pode verificar se a configurao do Apache est correta digitando apache -t como
usurio root, se tudo estiver correto com suas configuraes ele retornar a mensagem: "Syntax
OK".
OBS2: Se Options no for especificado, o padro ser permitir tudo exceto MultiViews.
OBS3: Qualquer restrio afetar o diretrio atual e todos os seus sub-diretrios! Defina permisses de sub-diretrios especficos separadamente caso precise de um nvel de acesso diferente.
Veja tambm a seo sobre arquivos OverRide (.htaccess) para detalhes sobre este tipo de arquivo.
OBS4: A diretiva de acesso Directory />"no afetar outros sistemas de arquivos montados
dentro de seus subdiretrios. Caso uma diretiva de acesso padro no seja especificada para
outros sistemas de arquivos, o acesso ser automaticamente negado.

3.5 Lio 5 - Restries de acesso


Aspectos relevantes da configurao das restries de acesso.

3.5.1 Restries de acesso


A restrio de acesso do Apache feita atravs de Autorizao e Autenticao. Atravs da
autorizao, checado se o endereo/rede especificada tem ou no permisso para acessar a
pgina. A autenticao requer que seja passado nome e senha para garantir acesso a pgina.
Os mtodos de Autorizao e Autenticao podem ser combinados como veremos mais adiante.

3.5.2 Autorizao
A restrio de acesso por autorizao (controlado pelo mdulo mod_access), permite ou no
o acesso ao cliente de acordo com o endereo/rede especificada. As restries afetam tambm
os sub-diretrios do diretrio alvo. Abaixo um exemplo de restrio de acesso que bloqueia o
acesso de qualquer host que faz parte do domnio .spammers.com.br a URL http://servidor/teste:
<Location /teste>
Option Indexes
36

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Order allow,deny
allow from all
deny from .spammers.com.br
</Location>
A opo Option foi explicada anteriormente, seguem as explicaes das outras diretivas:
Order
Especifica em que ordem as opes de acesso allow/deny sero pesquisadas. Caso no seja especificada, o padro ser deny/allow. Note que a ordem de pesquisa de allow e deny a inversa
da especificada. A diretiva Order aceita os seguintes valores:
deny,allow - esta a padro, significa um servidor mais restritivo; a diretiva allow processada primeiro e somente depois a diretiva deny. Caso nenhuma diretiva allow e deny forem
especificadas ou no conferirem, PERMITE TUDO como padro;
allow,deny - significa um servidor mais permissivo, a opo deny processada primeiro e
somente depois a opo allow. Caso nenhuma diretiva allow e deny seja especificadas ou
no conferirem, BLOQUEIA TUDO como padro;
mutual-failure - somente permite o acesso se o usurio receber autorizao atravs da
opo allow e NO ser bloqueado pela opo deny, caso uma das checagens falhe, o
acesso imediatamente negado. uma opo interessante quando voc quer somente
pessoas de um determinado endereo/rede acessando o seu sistema e no estejam em
sua lista negra.
ATENO: importante saber se a pgina ser permissiva ou restritiva para escolher a
ordem mais adequada ao seu caso, tambm leve em considerao a possibilidade do processamento cair na diretiva de acesso padro, caso nem a diretiva allow e deny confiram e voc estiver
usando a ordem de acesso "allow,deny"ou "deny,allow". Um sistema mal configurado neste aspecto poder trazer srias conseqncias. comum em pginas permissivas se definir a seguinte
configurao:
Order allow,deny
allow from all
O motivo que em um grande site, se forem adicionadas mais restries nesta pgina (devido a
alguns domnios que tm usurios mal comportados, bloqueio de acesso rede do concorrente,
potenciais atacantes, etc...), estas devero ser lidas antes da diretiva "allow from all"e podem
passar desapercebidas ao administrador e podem simplesmente no funcionar caso a opo Order no esteja ajustada corretamente (lembre-se, voc o administrador e a integridade do site
depende de sua ateno na escolha da ordem correta das diretivas de acesso).
allow from
Especifica o endereo que ter acesso ao recurso especificado. A diretiva allow from aceita os
seguintes valores:
all - o acesso permitido a todos;
um endereo de domnio completo (FQDN). Por exemplo www.debian.org.br ;
um endereo de domnio parcial. Qualquer computador que confira com o inicio ou fim ter
o acesso permitido. Por exemplo, .spammers.com.br, .debian.org ;
37

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

um endereo IP completo, como 192.168.1.1 ;


um endereo IP parcial como 192.168.1. ;
um par rede/mscara como 10.1.0.0/255.255.0.0 ou 10.1.0.0/16, uma faixa de acesso
mquinas de uma mesma rede pode ser definida facilmente atravs deste mtodo.
OBS1: necessrio reiniciar o Apache depois de qualquer modificao em seu arquivo de
configurao (executando apachectl restart), ou recarregar os arquivos de configurao (apachectl graceful). OBS2: Mais de um host pode ser especificado separando com um espao:
allow from 192.168. .debian.org.br
Permitir o acesso de qualquer mquina que o endereo IP confira com 192.168.*.* e qualquer
computador do domnio debian.org.br . OBS3: Regras baseadas em nomes simples de hosts
(como www) no conferiro! Dever ser usado o FQDN ou IP: www.dominio.com.br . OBS4:
Caso Order no seja especificado, deny,allow ser usado como padro (ou seja, permitir tudo
como padro).
deny from
Especifica os endereos que NO tero acesso ao recurso especificado. As explicaes referentes a esta diretiva de acesso so idntica as de allow from.
recomendvel o uso de endereos IP ao invs de endereos DNS e um mecanismo antispoofing no firewall ou cdigo de roteamento, pois ficar mais difcil um ataque baseado em
DNS spoofing, aumentando consideravelmente a segurana de seu servidor web.
ATENO: Caso receba erros 403 (acesso negado) sem bloquear a URL nas diretivas de acesso,
uma dos seguintes problemas pode ser a causa:
o servidor Web no tem permisses para acessar/abrir o diretrio da pgina. Certifique-se
que o dono e grupo do processo Apache (especificado pela diretiva User e Group) possuem
permisses de acesso quele diretrio;
quando quer fazer uma listagem de arquivos do diretrio e no especifica a opo Option
Indexes como opo de listagem;
quando no est usando Option Indexes para impedir a listagem de contedo do diretrio e
no foi encontrado um arquivo de ndice vlido dentre os existentes na diretiva DirectoryIndex no diretrio atual.
Abaixo alguns exemplos de permisses de acesso:
<Directory /var/www>
Options SymLinksIfOwnerMatch Indexes MultiViews
Order allow,deny
allow from all
</Directory>
Permite o acesso de qualquer usurio de qualquer lugar (allow from all), permite tambm a
visualizao da listagem formatada de arquivos caso nenhum arquivo especificado na diretiva
DirectoryIndex seja encontrado (Indexes), permite negociao de contedo (MultiViews) e seguir
links caso o dono do arquivo confira com o nome do link (SymLinksIfOwnerMatch).
<Directory /var/www>
Options SymLinksIfOwnerMatch Indexes MultiViews
</Directory>
38

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Tem o mesmo significado da diretiva acima por mtodos diferentes; quando nenhuma opo
Order especificada, deny,allow definido como padro, e como nenhuma opo de acesso allow/deny foi especificada, o padro "Order deny,allow" usado e permite TUDO como padro.
<Directory /var/www>
Options Indexes
Order deny,allow
deny from all
</Directory>
Esta regra acima no tem muita lgica pois restringe o acesso de todos os usurios ao diretrio /var/www, ao menos se esta for sua inteno...
<Location /cdtc>
Options All
Order allow,deny
allow from all
</Location>
A regra acima permite o acesso a URL http://www.servidor.org/cdtc de qualquer host na Internet.
<Files .htaccess>
Order deny,allow
deny from all
</Files>
Bloqueia o acesso a qualquer arquivo .htaccess do sistema.
<Files "leiame-(arm|alpha|m68k|sparc|powerpc)txt
Order deny,allow
deny from all
</Files>
Bloqueia o acesso a qualquer arquivo leiame-arm.txt, leiame-alpha.txt, leiame-m68k.txt, leiamesparc.txt e leiame-powerpc.txt fazendo uso de expresses regulares.
<Directory /var/www>
Options Indexes
Order mutual-failure
allow from .dominio.com.br
deny from lammer.dominio.com.br
</Directory>
A diretiva acima somente permite acesso ao diretrio /var/www de mquinas pertencentes ao
domnio .dominio.com.br desde que no seja lammer.dominio.com.br.
<Directory /var/www>
Options Indexes MultiViews
Order allow,deny
deny from .com .com.br
allow from all
39

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

</Directory>
Bloqueia o acesso ao diretrio /var/www de computadores pertencentes aos domnios .com e
.com.br.
<Directory /var/www>
Options None
Order deny,allow
allow from 192.168.1. .guiafoca.org .debian.org
deny from 200.200.123.
</Directory>
A regra acima permite o acesso de mquinas da rede 192.168.1.*, do domnio *.guiafoca.org
e *.debian.org, o acesso de mquinas da rede 200.200.123.* bloqueado (nada contra, peguei
nesse nmero ao acaso rsrs).
Note que a mquina 192.168.4.10 ter acesso LIVRE a regra acima, pois no conferir nem com
allow nem com deny, ento o processamento cair na diretiva padro de deny,allow, que neste
caso permite o acesso caso nem allow e deny conferiram com o padro.
<Directory /var/www>
Options None
Order allow,deny
allow from 192.168.1. .cipsga.org.br .debian.org
deny from 200.200.123.
</Directory>
A regra acima idntica a anterior somente com a mudana da opo Order. Bloqueia o acesso
de mquinas da rede 200.200.123.* e permite o acesso de mquinas da rede 192.168.1.*, do
domnio *.cipsga.org.br e *.debian.org.
Note que a mquina 192.168.4.10 ter acesso BLOQUEADO regra acima, pois no conferir
nem com allow nem com deny, ento o processamento cair na diretiva padro de allow,deny que
neste caso bloqueia o acesso.f
Supondo a existncia da URL http://www.servidor.org/cdtc, o que faria a diretiva abaixo?
<Location /cdtc>
Options All
Order allow,deny
allow from all
</Location>

3.5.3 Autenticao
Atravs da autenticao (controlado pelo mdulo mod_auth) possvel especificar um nome
e senha para acesso ao recurso solicitado. As senhas so gravadas em formato criptografado
usando Crypto ou MD5 (conforme desejado). O arquivo de senhas pode ser centralizado ou
especificado individualmente por usurio, diretrio ou at mesmo por arquivo acessado.

40

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.5.4 Criando um arquivo de senhas


O arquivo de senhas pode ser criado e mantido atravs do uso de 3 utilitrios: htpasswd,
htdigest e dbmmanage:
htpasswd
Este usado para criar o arquivo de senhas. Para criar um banco de dados com o nome senhas
para o usurio convidado, usada a seguinte sintaxe:
debian: # htpasswd -c -m senhas convidado
Voc ser perguntado por uma senha para o usurio convidado e para redigit-la. A opo
-c"indica que dever ser criado um arquivo, a opo -m"indica a utilizao de senhas criptografadas usando o algoritmo MD5, que garante maior segurana que o mtodo Crypto. A senha pode
ser especificada diretamente na linha de comando atravs da opo -b"(isto um timo recurso
para utilizao em shell scripts ou programas CGI de integrao com o navegador).
debian: # htpasswd -b -d senhas chefe abcdef
No exemplo acima, uma senha de alta segurana ser introduzida no banco de dados senhas
tornando impossvel o acesso pgina do usurio.
Note que esta senha foi cadastrada usando o algoritmo de criptografia Crypto (opo -d). O
algoritmo SHA tambm pode ser usado como alternativa, atravs da opo -s". Para modificar a
senha do usurio convidado, basta usar a mesma sintaxe (sem a opo -c"que usada para criar
um novo arquivo):
debian: # htpasswd -m senhas convidado
ou
debian: # htpasswd -b -m senhas convidado nova_senha
Opcionalmente voc pode especificar a opo -d"para atualizar tambm o formato da senha para
Crypto. Podem existir senhas de criptografias mistas (SHA, Crypto, MD5) no mesmo arquivo sem
nenhum problema.
A mudana do formato de senhas til quando se deseja aumentar o nvel de segurana oferecido por um melhor sistema ou para manter a compatibilidade com alguns scripts/programas que
compartilhem o arquivo de senhas.
htdigest e dbmmanage
Estes so idnticos ao htpasswd, a diferena que o htdigest permite criar/manter um arquivo de
senhas usando a autenticao Digest, enquanto o dbmmanage permite manter o banco de dados
de senhas em um arquivo DB, DBM, GDBM e NDBM, formatos conhecidos pelo Perl.
Para mais informaes sobre esses utilitrios as pginas de manual podem ser acessadas:
debian: # man htpasswd
debian: # man htdigest
debian: # man dbmmanage

3.5.5 Autenticao atravs de usurios


Atravs deste mtodo possvel especificar que usurios tero acesso ao recurso definido,
usando senhas de acesso individuais criptografadas usando um dos utilitrios da seo anterior.
41

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Para restringir o acesso ao endereo http://servidor.org/teste:


<Location /teste>
AuthName "Acesso a pgina do CDTC"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
# AuthGroupFile /home/users/SenhaGrupo
Require valid-user
</Location>
Ao tentar acessar o endereo http://servidor/teste, ser aberta uma janela no navegador com o
ttulo Enter username for Acesso pgina do CDTC at servidor.org, a diretiva Require valid-user
definem que o usurio e senha digitados devem existir no arquivo especificado por AuthUserFile
para que o acesso seja garantido. Uma explicao de cada opo de acesso usado na autenticao:
AuthName
Ser o nome que aparecer na janela de autenticao do seu navegador indicando qual rea restrita est solicitando senha (podem existir vrias no servidor, bastando especificar vrias diretivas
de restries).
AuthType
Especifica o mtodo de que o nome e senha sero passados ao servidor. Este mtodo de autenticao pode ser Basic ou Digest:
Basic - utiliza a codificao base64 para encodificao de nome e senha, enviando o resultado ao servidor. Este um mtodo muito usado e pouco seguro, pois qualquer sniffer
instalado em um roteador pode capturar e descobrir facilmente seu nome e senha;
Digest - transmite os dados de uma maneira que no pode ser facilmente decodificada, incluindo a codificao da rea protegida (especificada pela diretiva AuthName) que possui
a seqencia de login/senha vlida. A diferena deste mtodo que voc precisar de arquivos de senhas diferentes para cada rea protegida especificada por AuthName (tambm
chamada de Realm).
AuthUserFile
o arquivo gerado pelo utilitrio htpasswd que contm a senha correspondente ao usurio.
AuthGroupFile
um arquivo texto que contm o nome do grupo, dois pontos (":") e o nome dos usurios que
podem ter acesso ao recurso, separados por vrgulas. No exemplo acima ele se encontra comentado, mas a seguir encontrar exemplos que explicam em detalhes o funcionamento desta
diretiva.
Require
Especifica que usurios podem ter acesso ao diretrio. Podem ser usadas uma das 3 sintaxes:
Require user usurio1 usurio2 usurio3 - Somente os usurios especificados so considerados vlidos para ter acesso ao diretrio;
Require group grupo1 grupo2 grupo3 - Somente os usurios dos grupos especificados so
considerados vlidos para terem acesso ao diretrio. Esta diretiva til quando deseja que
somente alguns usurios de determinado grupo tenham acesso ao recurso (por exemplo,
usurios do grupo admins).

42

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Require valid-user - Qualquer usurio vlido no banco de dados de senhas pode acessar o
diretrio. bem til quando as opes de acesso especificadas por Require user so muito
longas.
A opo Require deve ser acompanhado das diretivas AuthName, AuthType e as diretivas
AuthUserFile e AuthGroupFile para funcionar adequadamente.
OBS: necessrio reiniciar o Apache depois de qualquer modificao em seu arquivo de configurao (apachectl restart), ou recarregar os arquivos de configurao (apachectl graceful). Note
que o apachectl somente um shell script para interao mais amigvel com o servidor web
Apache, retornando mensagens indicando o sucesso/falha no comando ao invs de cdigos de
sada.
Alguns exemplos para melhor assimilao:
<Location /teste>
AuthName "Acesso a pgina do CDTC"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
Require user gleydson
</Location>
As explicaes so idnticas anterior, mas somente permite o acesso do usurio gleydson
URL http://servidor.org/teste, bloqueando o acesso de outros usurios contidos no arquivo AuthUserFile.
<Location /teste>
AuthName "Acesso a pgina do CDTC"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
Require user gleydson usuario1 usuario2
</Location>
<Location /teste>
AuthName "Acesso a pgina do CDTC"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
Require user gleydson
Require user usuario1
Require user usuario2
</Location>
As duas especificaes acima so equivalentes e permite o acesso aos usurios gleydson, usuario1 e usuario2 a pgina http://servidor.org/teste.

3.5.6 Autenticao usando grupos


H casos onde existem usurios de um arquivo de senhas que devem ter acesso a um diretrio e outros no, neste caso a diretiva valid-user no pode ser especificada (porque permitiria
o acesso de todos os usurios do arquivo de senha ao diretrio) e uma grande lista de usurios
ficaria bastante complicada de ser gerenciada com vrios usurios na diretiva Require user.

43

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Quando existe esta situao, recomendado o uso de grupos de usurios. Para fazer uso desse
recurso, primeiro dever ser criado um arquivo que armazenar o nome do grupo e dos usurios
pertencente quele grupo usando a seguinte sintaxe (vamos chamar este arquivo de SenhaGrupo):
admins: gleydson usuario2
usuarios: usuario1 usuario2 usuario3 gleydson
Agora adaptamos o exemplo anterior para que somente os usurios especificados no grupo admins do arquivo criado acima:
<Location /teste>
AuthName "Acesso a pgina do CDTC"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
AuthGroupFile /home/gleydson/SenhaGrupo
Require group admins
</Location>
Agora somente os usurios pertencentes ao grupo admins (gleydson e usuario2) podero ter
acesso ao diretrio /teste.
OBS1: Verifique se o servidor Web possui acesso leitura no arquivo de senhas de usurios
e grupos, caso contrrio ser retornado um cdigo "500 - Internal Server Error". Este tipo de
erro caracterizado por tudo estar OK na sintaxe dos arquivos de configurao aps checagem
com "apache -t"e todas as diretivas de controle de acesso apontam para os diretrios e arquivos
corretos.
OBS2: Sempre use espaos para separar os nomes de usurios pertencentes a um grupo.
OBS3: NUNCA coloque os arquivos que contenham senhas e grupos em diretrios de acesso
pblico onde usurios podem ter acesso via o servidor Web. Tais localizaes so /var/www,
/home/"usuario"/public_html e qualquer outro diretrio de acesso pblico que defina em seu sistema.
recomendvel tambm ocultar estes arquivos atravs da diretiva <Files> evitando possveis riscos de segurana com usurios acessando os arquivos de senha e grupo.
Na distribuio Debian, qualquer arquivo iniciando com .ht* ser automaticamente ocultado pelo
sistema, pois j existe uma diretiva <Files "\.ht. Tal diretiva pode tambm ser especificada no
arquivo de acesso .htaccess. Assim um arquivo .htsenha e .htgroup so bons nomes se estiver
desejando ocultar dados de olhos curiosos...

3.5.7 Usando autorizao e autenticao juntos


Os mtodos de autorizao e autenticao podem ser usados ao mesmo tempo dentro de
qualquer uma das diretivas de controle de acesso. As diretivas de autorizao so processadas
primeiro (mod_access) e depois as diretivas de autenticao (mod_auth). Segue um exemplo:
<Directory /var/www>
Options Indexes
Order deny,allow
allow from .dominiolocal.com.br
deny from all
44

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

AuthName "Acesso ao diretrio do servidor Web"


AuthType basic
AuthUserFile /var/cache/apache/senhas
Require valid-user </Directory>
c
<Directory /var/www>
Options Indexes
Order mutual-failure
allow from .dominiolocal.com.br
deny from lammer.dominiolocal.com.br
AuthName "Acesso ao diretrio do servidor Web"
AuthType basic
AuthUserFile /var/cache/apache/senhas
AuthGroupFile /var/cache/apache/grupos
Require group admins
</Directory>
c

3.5.8 Acesso diferenciado em uma mesma diretiva


interessante permitir que usurios que fazem conexes de locais confiveis tenham acesso
direto sem precisar fornecer nome e senha e de locais inseguros e acessarem somente aps
comprovarem quem realmente so. Como o caso de permitir que usurios de uma rede privada
tenham acesso completo aos recursos e permitir o acesso externo ao mesmo recurso somente
atravs de senha. Isto pode ser feito com o uso da diretiva Satisfy junto ao bloco de autorizao/autenticao. Vamos tomar como base o exemplo anterior:
<Directory /var/www>
Options Indexes
Order mutual-failure
allow from .dominiolocal.com.br
deny from lammer.dominiolocal.com.br
AuthName "Acesso ao diretrio do servidor Web"
AuthType basic
AuthUserFile /var/cache/apache/senhas
AuthGroupFile /var/cache/apache/grupos
Require group admins
Satisfy any
</Directory>
Note que o exemplo o mesmo com a adio da diretiva Satisfy any no final do bloco do arquivo. Quando a opo Satisfy no especificada, ela assumir "all"como padro, ou seja, o
usurio dever passar no teste de autorizao e autenticao para ter acesso.
A diferena do exemplo acima em relao ao da seo anterior se a mquina passar no teste de
autorizao ela j ter acesso garantido. Caso falhe no teste de autorizao, ainda ter a chance
45

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

de ter acesso pgina passando na checagem de autenticao.


Isto garante acesso livre aos usurios do domnio .dominiolocal.com.br. J os outros usurios,
incluindo acessos vindos de lammer.dominiolocal.com.br que pode ser uma mquina com muito
uso, podero ter acesso ao recurso caso tenha fornecido um nome e senha vlidos para passar
pelo processo de autenticao. Tenha isto em mente... este tipo de problema comum e depende mais de uma poltica de segurana e conduta interna, o sistema de segurana no pode
fazer nada a no ser permitir acesso a um nome e senha vlidos.
Tenha cuidado com o uso da opo Satisfy em diretivas que especificam somente o mtodo de
autenticao:
<Directory /var/www>
Options Indexes
AuthName "Acesso ao diretrio do servidor Web"
AuthType basic
AuthUserFile /var/cache/apache/senhas
AuthGroupFile /var/cache/apache/grupos
Require group admins
Satisfy any
</Directory>
ATENO PARA O DESCUIDO ACIMA!: Como o mtodo de autorizao NO especificado,
assumido deny,allow como padro, que permite o acesso a TODOS os usurios. O bloco acima
NUNCA executar o mtodo de autenticao por este motivo. A melhor coisa NO usar a opo
Satisfy em casos que s requerem autenticao ou usar Satisfy all (que ter o mesmo efeito de
no us-la).
A falta de ateno nisto pode comprometer silenciosamente a segurana de seu sistema.

3.5.9 O arquivo .htaccess


O arquivo .htaccess deve ser colocado no diretrio da pgina que dever ter suas permisses
de acesso/listagem controladas. A vantagem em relao a incluso direta de diretivas de acesso
dentro do arquivo de configurao do Apache, que o controle de acesso poder ser definido
pelo prprio webmaster da pgina, sem precisar ter acesso direto a configurao do Apache, que
requerem privilgios de root.
Outro ponto fundamental que no h necessidade de reiniciar o servidor Web, pois este arquivo
lido no momento de cada acesso ao diretrio que controla. O nome do arquivo OverRide pode
ser definido atravs da diretiva AccessFileName no arquivo de configurao do Apache, .htaccess
usado como padro.
O controle de que opes estaro disponveis no .htaccess so definidas na diretiva AllowOverride que pode conter o seguintes parmetros:
None - o servidor no buscar o arquivo .htaccess nos diretrios;
All - o servidor utilizar todas as opes abaixo no arquivo .htaccess;
AuthConfig - permite o uso de diretivas de autenticao (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, etc.);
FileInfo - permite o uso de diretivas controlando o tipo de documento (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, etc.);
46

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Indexes - permite o uso de diretivas controlando a indexao de diretrio (AddDescription,


AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing,
HeaderName, IndexIgnore, IndexOptions, ReadmeName, etc.);
Limit - permite o uso de diretivas controlando o acesso ao computador (allow, deny e order);
Options - permite o uso de diretivas controlando caractersticas especficas do diretrio
(Options e XBitHack).
OBS: No tem sentido usar a opo AllowOverride dentro da diretiva <Location>, ela ser
simplesmente ignorada.
Para acesso ao arquivo .htaccess do diretrio /var/www/focalinux, o Apache buscar os arquivos
.htaccess na seqencia: /.htaccess, /var/.htaccess, /var/www/.htaccess,
/var/www/focalinux/.htaccess, qualquer diretiva que no exista no .htaccess do diretrio /var/www/focalinux
ter seu valor definido pela diretiva dos arquivos .htaccess dos diretrios anteriores. Somente
aps esta seqncia de checagens o acesso ao documento permitido (ou negado).
Por este motivo, muitos administradores decidem desativar completamente o uso de arquivos
.htaccess no diretrio raz e habilitar somente nos diretrios especificados pela diretiva <Directory> no arquivo de configurao do Apache, evitando brechas de segurana na manipulao
destes arquivos (esta uma boa idia a no ser que se dedique 24 horas somente na administrao do seu servidor Web e conhea toda sua estrutura hierrquica de segurana):
<Directory />
AllowOverride none
</Directory>
<Directory /var/www>
AllowOverride limit authconfig indexes
</Directory>
Na especificao acima, o arquivo .htaccess ser procurado no diretrio /var/www e seus subdiretrios, usando somente opes que controlam a autorizao de acesso (limit), autenticao e
opes (authconfig) e de indexao de documentos (indexes).
Alguns exemplos do uso do arquivo .htaccess:
Para permitir o acesso direto de usurios da rede 192.168.1.* diretamente, e requerer senha de
acesso para outros usurios, o seguinte arquivo .htaccess deve ser criado no diretrio /var/www:
Order deny,allow
allow from 192.168.1.0/24
deny from all
AuthName "Acesso a pgina Web principal da Empresa"
AuthType basic
AuthUserFile /var/cache/apache/senhas
Require valid-user
Satisfy any
Note que a sintaxe exatamente a mesma das usadas na diretivas de acesso, por este motivo vou dispensar explicaes detalhadas a respeito.
ATENO: A diretiva Options Indexes dever ser especificada no AllowOverRide e no no arquivo
.htaccess. Agora voc j sabe o que fazer se estiver recebendo erros 500 ao tentar acessar a
47

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

pgina (Erro interno no servidor)...

3.5.10 Usando a diretiva SetEnvIf com Allow e Deny


possvel especificar o acesso baseado em variveis de ambiente usando a diretiva SetEnvIf,
isto lhe permite controlar o acesso de acordo com o contedo de cabealhos HTTP. A sintaxe a
seguinte:
SetEnvIf [atributo] [expresso] [varivel]
Isto pode ser facilmente interpretado como: Se o "atributo"especificado conter a "expresso", a
"varivel"ser criada e armazenar o valor verdadeiro. Veja abaixo:
SetEnvIf User-Agent ".*MSIE*."EXPLODER
<Directory /var/www>
Order deny,allow
allow from all
deny from env=EXPLODER
</Directory>
Se o Navegador (campo User-Agent do cabealho http) usado para acessar a pgina for o Internet Explorer, a varivel EXPLODER ser criada e ter o valor verdadeiro (porque a expresso
de SetEnvIf conferiu com a expresso).
Note o uso de "deny from env=VARIVEL". Neste caso se o navegador for o Internet Explorer, o
acesso ser bloqueado (pois o navegador conferiu, assim a varivel EXPLODER recebeu o valor
verdadeiro).
permitido especificar as diretivas de acesso normais junto com especificao de variveis de
ambiente, basta separ-las com espaos. Uma descrio completa dos cabealhos HTTP, contedo e parmetros aceitos por cada um so descritos na RFC 2068.

3.5.11 A diretiva <Limit>


Esta diretiva semelhante a <Directory> mas trabalha com mtodos HTTP (como GET, PUT,
POST, etc) ao invs de diretrios. A diretiva <Limit> pode ser usada dentro da diretiva de acesso
<Directory>, <Location>, mas nenhuma diretiva de controle de acesso pode ser colocada dentro
de <Limit>.
Os mtodos HTTP vlidos so: GET, POST, PUT DELETE, CONNECT, OPTIONS, TRACE,
PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK e UNLOCK. Note que os mtodos so case-sensitive. Por exemplo:
<Directory /var/www>
Option Indexes
<Limit POST PUT DELETE>
Order deny,allow
allow from 192.168.1.0/24
deny from all
</Limit>
</Directory>
Somente permitem o uso dos mtodos POST, PUT, DELETE de mquinas da rede interna.
OBS1: Se o mtodo GET bloqueado, o cabealho HTTP tambm ser bloqueado.
OBS2: A diretiva de acesso <Limit> somente ter efeito na diretiva <Location> se for especificada
48

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

no arquivo de configurao do servidor web. A diretiva <Location> simplesmente ignorada nos


arquivos .htaccess...
Este abaixo usado por padro na distribuio Debian para restringir para somente leitura o
acesso aos diretrios de usurios acessados via mdulo mod_userdir:
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order deny,allow
Deny from all
</Limit>
</Directory>
Diretiva <LimitExcept>
Esta diretiva semelhante a <Limit>, mas atinge todos os mtodos HTTP, menos os especificados.

3.6 Lio 6 - O sistema de log do Apache


Breve explicao sobre os arquivos de log do Apache e a suas funes.

3.6.1 Sistema de Log do Apache


O Apache bem flexvel na especificao do que ser registrado em seus arquivos de log,
possibilitando utilizar um arquivo de log nico, diversos arquivos de logs registrando cada evento
ocorrido no sistema (conexo, navegador, bloqueio de acesso, erros, etc) incluindo os campos
que deseja em cada arquivo e a ordem dos campos em cada um deles.
Enfim qualquer coisa pode ser especificada de forma que atenda s suas necessidades particulares de logging.

3.6.2 Arquivos de log


AgentLog
AgentLog arquivo/pipe: Indica o nome do arquivo que registrar o nome do navegador que est
acessando a pgina (contedo do cabealho User-Agent). possvel usar o pipe "para direcionar
os erros para um programa de formatao ou processamento. ATENO: Se um programa for
usado como pipe, ele ser executado sob o usurio que iniciou o Apache. Revise o cdigo fonte
do programa para ter certeza que no contm falhas que possam comprometer a segurana de
seu sistema.
Exemplo: AgentLog /var/log/apache/agent.log
ErrorLog
49

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

ErrorLog arquivo/pipe - Especifica o arquivo que registrar as mensagens de erro do servidor


Apache. possvel usar o pipe "para direcionar os erros para um programa de formatao ou
processamento.
Exemplo: ErrorLog /var/log/apache/errors.log
CustomLog
Permite especificar onde os logs sero gravados para os arquivos de logs personalizados. Esta
diretiva tambm aceita apelidos definidos pela diretiva LogFormat.
CustomLog [arquivo/pipe] [formato/nome]
Onde:
arquivo/pipe
Arquivo de log personalizado ou pipe.
formato/nome
Especifica o formato do arquivo de log (da mesma forma que o especificado na opo LogFormat). Dever ser especificado entre "aspas"caso tiver espaos.
Ao invs de especificar o formato, tambm possvel usar um apelido definido pela opo LogFormat, neste caso os parmetros definidos pelo LogFormat para "nome"sero atribudos diretiva
CustomLog.
Exemplos:
CustomLog /var/log/apache/common.log "%h %l %u %t \"%r \"%>s %b"
CustomLog /var/log/apache/common.log common

3.6.3 Arquivos de log - 2


RefererLog
RefererLog [arquivo/pipe]: indica que arquivo/pipe registrar os campos Referer do cabealho
HTTP. Esta diretiva mantida por compatibilidade com o servidor web NCSA 1.4.
A configurao padro do Apache usa uma diretiva alternativa para a especificao do referer
que a seguinte:
LogFormat "%Refereri -> %U"referer
CustomLog /var/log/apache/referer.log referer
Exemplo: RefererLog /var/log/apache/referer.log

RewriteLog
RewriteLog: [arquivo/pipe]: indica o arquivo/pipe que registrar qualquer regravao de URL feita
pelo Apache.
OBS: No recomendvel direcionar o nome de arquivo para /dev/null como forma de desativar
este log, porque o mdulo de regravao no cria a sada para um arquivo de log, ele cria a
sada de log internamente. Isto somente deixar o servidor lento. Para desativar este registro,
simplesmente remova/comente a diretiva RewriteLog ou use a opo RewriteLogLevel 0.
Exemplo: RewriteLog "/usr/local/var/apache/logs/rewrite.log
RewriteLogLevel
RewriteLogLevel [num]: especifica os detalhes que sero includos no registro da opo RewriteLog, os valores permitidos esto entre 0 e 9. Se for usado 0, o registro do RewriteLog totalmente
50

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

desativado (esta a padro).


OBS: Qualquer valor acima de 2 deixa o servidor Web cada vez mais lento devido ao processamento e a quantidade de detalhes registrados no arquivo especificado por RewriteLog.

3.6.4 Arquivos de log - 3


ScriptLog
ScriptLog [arquivo]: especifica o nome do arquivo de log que receber as mensagens de erros
gerados por scripts CGI executados no servidor. Esta opo controlada pelo mdulos mod_cgi.
Os arquivos de log sero abertos por um sub-processo rodando com as permisses do usurio
especificado na diretiva "user".
OBS: Esta opo somente recomendada como depuradora de scripts CGI, no para uso contnuo em servidores ativos.
Exemplo: ScriptLog /var/log/apache/cgiscripts.log
ScriptLogBuffer
ScriptLogBuffer: Especifica o tamanho do cabealho PUT ou POST gravado no arquivo especificado por ScriptLog. O valor padro 1024 bytes. Esta opo controlada pelo mdulos mod_cgi
Exemplo: ScriptLogBuffer 512 ScriptLogLength
ScriptLogLength: [tamanho]: especifica o tamanho mximo do arquivo de log gerado pela opo
ScriptLog. O valor padro 10385760 bytes (10.3MB). Esta opo controlada pelo mdulos
mod_cgi.
Exemplo: ScriptLogLength 1024480
LogFormat
LogFormat: define os campos padres do arquivo gerado pela opo TransferLog. O seu formato
o seguinte:
LogFormat [formato] [nome]
Quando o formato no especificado, assume o valor padro %h %l %u %t \"%r\"%s %b. A especificao do [nome] permite que voc utilize o formato especificado em uma opo CustomLog
ou outra diretiva LogFormat, facilitando a especificao do formato do log.
Os seguintes formatos so vlidos:
%b - bytes enviados, excluindo cabealhos HTTP;
%f - nome do arquivo;
%FOOBARe - o contedo da varivel de ambiente FOOBAR;
%h - mquina cliente;
%a - endereo IP da mquina cliente;
%A - endereo IP local. Muito til em virtual hostings;
%Foobari - o contedo de Foobar: linhas de cabealho na requisio enviada ao servidor;
%l - o nome de login remoto enviado pelo identd (se fornecido);
%Foobarn - o contedo de "FooBar"de outro mdulo;
%Foobaro: - o contedo de Foobar: linhas de cabealho na resposta;
%p - a porta do servidor servindo a requisio;
51

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

%P - a identificao do processo filho que serviu a requisio;


%r - a primeira linha da requisio;
%s - Status- para requisies que foram redirecionadas. internamente. Este o status de
uma requisio *original*. Use %s para a ltima;
%t - hora, no formato do arquivo de log (formato ingls padro);
%formatt - hora, no formato definido por strftime;
%T - o tempo necessrio para servir a requisio, em segundos;
%u - usurio remoto (atravs do auth, pode ser falso se o status de retorno (%s) for 401);
%U - o caminho da URL requisitada;
%v - o nome cannico definido por ServerName que serviu a requisio;
%V - o nome do servidor de acordo com a configurao de UseCanonicalName.
Exemplos:
LogFormat "%h %l %u %t \"%r\"%>s %b \"%Refereri\"\"%User-Agenti\"%T %v"full LogFormat
"%h %l %u %t \"%r\"%>s %b \"%Refereri\"\"%User-Agenti\"%P %T"debug LogFormat "%h %l %u
%t \"%r\"%>s %b \"%Refereri\"\"%User-Agenti\ combined LogFormat "%h %l %u %t \"%r\"%>s
%b"common LogFormat "%Refereri -> %U"referer LogFormat "%User-agenti"agent

3.6.5 Arquivos de log - 4


TransferLog
TransferLog [arquivo/pipe]: indica o arquivo que armazenar as transferncias entre o servidor
http e o cliente. Ela cria o arquivo de log com o formato definido pela opo LogFormat mais
recente (sem a especificao do nome associado a diretiva) ou o formato padro CLF do log do
Apache.
Se omitido, o arquivo no ser gerado
Exemplo: TransferLog /var/log/apache/transferncias.log
OBS: Se esta no uma opo muito utilizada na administrao de seus sistemas, recomendvel o uso da diretiva CustomLog para evitar confuses futuras.
LogLevel
Define o nvel de alerta das mensagens que sero gravadas no arquivo especificado pela diretiva
ErrorLog. Quando no especificado, assume o nvel "error"como padro. Abaixo os parmetros
aceitos em sua respectiva ordem de importncia:
emerg - o sistema est inutilizvel;
alert - a ao deve ser tomada imediatamente;
crit - condies crticas;
error - condies de erro;
warn - condies de alerta;
notice - condio normal mas significante;
52

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

info - mensagens informativas;


debug - mensagens do nvel de depurao.
Note que os nveis so os mesmos usados pelo syslog. Quando um nvel particular especificado, as mensagens de todos os nveis de maior importncia tambm sero registrados. Por
exemplo, se o nvel "info"for especificado, as mensagens com os nveis de "notice"e "warn"tambm
sero registradas. recomendado o uso de um nvel de no mnimo crit.
Anonymous_LogEmail
Se estiver como "on"a senha digitada ser registrada no arquivo especificado por ErrorLog. Esta
diretiva ativada por padro.
Exemplo: Anonymous_LogEmail off
CookieLog
Especifica o arquivo que ser usado para registrar os cookies
OBS1: Caso o caminho do arquivo no seja especificado nas diretivas, ser assumido DocumentRoot como diretrio padro.
OBS2: Caso esteja usando o pipe, o dono do processo ser o mesmo que iniciou o servidor WEB
Apache. Tenha certeza do funcionamento do programa para no comprometer o seu sistema, e
cuide para que ele no possa ser modificado indevidamente por outros usurios.
Exemplo: CookieLog /var/log/apache/cookies.log

3.6.6 Definindo documentos de erro personalizados


Documentos de erros personalizados so definidos atravs da diretiva ErrorDocument.
possvel especificar cdigos de erros que sero atendidos por certos documentos ou colocar esta
diretiva dentro de blocos de controle de acesso <Directory>, <Location> ou <VirtualHost> para
que tenham mensagens de erro personalizadas, ao invs da padro usada pelo servidor httpd.
ErrorDocument [cdigo de erro] [documento]
Onde:
Cdigo de erro
Cdigo de erro da mensagem (veja Cdigos HTTP). O cdigo de erro 401 deve referir-se a um
arquivo local.
Documento
Documento, mensagem de erro ou redirecionamento que ser usado no servidor caso aquele
cdigo de erro seja encontrado:
para definir uma mensagem de erro padro para todo servidor web, basta colocar a diretiva
ErrorDocument fora das diretivas que controlam o acesso a diretrios e virtual hosts (o inicio
do arquivo httpd.conf ideal).
Exemplos:
ErrorDocument 404 /cgi-bin/erros404.pl - direciona para um script em Perl que manda um
e-mail ao administrador falando sobre o link quebrado e envia o usurio a uma pgina de
erro padro;
ErrorDocument 404 /naoencontrada.html - direciona o usurio para o arquivo naoencontrada.html (dentro de DocumentRoot) quando ocorrer o erro 404. Note que o diretrio /
levado em considerao o especificado pela diretiva DocumentRoot;
ErrorDocument 500 "Erro Interno no servidor- mostra a mensagem na tela quando ocorrer
o erro 500;
53

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

ErrorDocument 401 /obtendoacesso.html - direciona o usurio ao arquivo explicando como


obter acesso ao sistema;
ErrorDocument 503 http://www.guiafoca.org/servicos.html - redireciona o usurio URL especificada;
ErrorDocument 403 "Acesso negado- mostra a mensagem na tela no caso de erros 403.

54

Captulo 4

Mdulo II - Configuraes avanadas


4.1 Lio 7 - Configurando o Apache como um servidor proxy
As configuraes necessrias para configurar o Apache como um servidor proxy.

4.1.1 Configurando o proxy


O Apache pode ser configurado para funcionar como servidor proxy transparente para sua
rede interna, possibilitando inclusive o uso de cache de disco. possvel se fazer conexes
HTTP (incluindo SSL) e FTP. Atravs desta caracterstica tambm possvel usar uma das caractersticas mais interessantes desse servidor web: o redirecionamento de conexes para uma
determinada URL para uma outra mquina, que pode ser um outro host remoto ou uma mquina
da rede interna (no acessvel diretamente via Internet).
O primeiro passo ativar o mdulo de proxy no arquivo httpd.conf, basta descomentar a linha:
# LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
O seguinte bloco pode ser colocado no final do arquivo httpd.conf para configurar um servidor
proxy para realizar conexes diretas (sem o uso de cache) e permitir o uso de servidores proxy
em sua rede:
# Suporte a Proxy
#
<IfModule mod_proxy.c>
ProxyRequests off
ProxyRemote * http://debian:3128
ProxyBlock microsoft.com microsoft.com.br
NoProxy 192.168.1.0/24
ProxyDomain .gms.com.br
# Ativa/Desativa a manipulao de cabealhos HTTP/1.1 "Via:".
#
# ("Full"adiciona a verso do servidor Apache; "Block"remove todos os cabealhos
# de sada "Via:")
# Escolha uma das opes: Off | On | Full | Block
#
#ProxyVia On
</IfModule>

55

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Segue a explicao de cada uma das diretivas acima:


ProxyRequests [on/off]
Ativa (on) ou Desativa (off) o servio de proxy do servidor Apache. Note que o mdulo libproxy.so
deve estar carregado para que o bloco <IfModule libproxy.c> seja processado. A desativao
desta diretiva no afeta a diretiva ProxyPass.
ProxyRemote [origem] [URL]
Esta opo til para fazer o Apache redirecionar suas requisies para outro servidor proxy
(como o squid ou o gateway da rede, caso o Apache esteja sendo executado em uma mquina
interna). A origem pode ser uma URL completa (como http://www.debian.org), uma URL parcial
(como ftp, http) ou "*"para que o redirecionamento seja sempre usado.
ProxyBlock [padro]
Permite bloquear o acesso a endereos que contenham o padro especificado. Podem ser especificadas palavras, mquinas, domnios, URLs separados por espaos. O Apache far a resoluo
DNS no caso de endereos IP e far o cache para requisies futuras.
NoProxy [endereos]
Permite especificar endereos Internos que no sero redirecionados para o servidor proxy especificado por ProxyRemote. Podem ser usados nomes de mquinas, endereos IP, subredes ou
domnios separados por espaos.
ProxyDomain [endereo]
Especifica o endereo que ser adicionado a URL caso seja recebida uma requisio que contenha somente um nome de mquina. til em redes Internas.
Note que quando o suporte a proxy no est ativado no Apache, qualquer endereo de URL
externa levar a pgina definida pela diretiva DocumentRoot. Isto deixar de funcionar aps configurar o servio de proxy.
O uso do cache interessante para acelerar as requisies http da rede interna e para a rede
externa, desta forma, se uma requisio que foi feita anteriormente, ser descarregado o arquivo
do disco rgido e assim evitar uma nova conexo externa (isto libera a rede para outras coisas).
Para configurar um cache no servio proxy, adicione as seguintes linhas no final do bloco anterior
de proxy:
# As linhas abaixo ativam o cache do Apache, o cache no funcionar ao menos que
# CacheRoot seja especificado
CacheRoot /var/spool/apache
CacheForceCompletion 70
CacheSize 5
CacheGcInterval 3
CacheDefaultExpire 5
CacheMaxExpire 300
NoCache 192.168.1.0/24 a_domain.com outrodomnio.com.br outro.dominio.net
Cada diretiva acima possui o seguinte significado:
CacheRoot
Diretrio base onde sero criados os outros diretrios de cache. O cache s ser ativado se esta
diretiva for definida.
CacheForceCompletion [num]
Se uma transferncia for cancelada e passar de num%, o Apache continuar a transferncia e
56

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

armazenar o arquivo no cache. O valor padro 90.


CacheSize [num]
Define o tamanho mximo do diretrio de cache do Apache, em KB. No especifique um valor
que tome mais de 70% do espao em disco. O valor padro 5.
CacheGcInterval [num]
Define o tempo que o cache ser checado em busca de arquivos maiores que o total do cache.
Arquivos que ultrapassem o tamanho do cache so automaticamente eliminados.
CacheDefaultExpire [num]
Define o tempo que os documentos ficaro no cache, se foram transferidos atravs de protocolos
que no suportam horas de expirao. O valor padro 1 hora.
CacheMaxExpire [num]
Define o tempo que os documentos permanecero armazenados no cache (em horas). Esta opo ignora a hora de expirao do documento (caso fornecida). O valor padro 24 horas.
NoCache [endereos]
Permite especificar lista de palavras, mquinas, domnios, IPs que no sero armazenados no
cache do Apache. Caso seja usado NoCache * o cache ser desativado completamente. Note
que o cache tambm pode ser desativado comentando a diretiva CacheRoot.
Se voc desejar um servidor cache mais flexvel, rpido, dinmico, configurvel (com possibilidade de uso de restries baseadas em URL, tempo de acesso, autenticao), instale o squid e
configure o Apache para fazer forward de conexes para ele .

4.1.2 Controlando o acesso ao servidor proxy


muito recomendado incluir o bloco abaixo no arquivo access.conf para definir o acesso dos
servios de proxy nas redes desejadas (se a sua configurao for aberta como padro isto pode
ser opcional):
# Acesso aos servios proxy do apache
<Directory proxy:*>
Order deny,allow
Deny from all
Allow from .seudominio.com.br
</Directory>
Se essa diretiva no for definida como acima o proxy estar aberto no apenas para uma rede
especfica, situao no muito recomendada.
Para explicaes sobre o processo de bloqueio acima, releia a seo sobre Autorizao, na lio
5.

4.1.3 Redirecionamento de conexes no Apache


Este recurso do Apache interessante para criar clusters de servidores em sua rede interna.
O que ele faz pegar uma requisio a um determinado endereo e redirecion-lo a outra mquina e as respostas so repassadas ao servidor web (para o cliente a mesma mquina est
atendendo a requisio, para voc o processamento das requisies est sendo distribudo internamente na rede).
As seguintes diretivas so usadas para realizar o redirecionamento de conexes: ProxyPass e
ProxyPassRemote.
ProxyPass
57

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

ProxyPass [diretrio_da_url [outro_servidor:/diretrio]


A ProxyPass permite que a URL seja redirecionada para o servidor local e diretrio especificado.
Por exemplo, assumindo que o endereo principal de nosso servidor http://www.guiafoca.org e
desejamos que a URL http://www.guiafoca.org/download seja atendida por uma mquina localizada na nossa rede privada com o endereo http://192.168.1.54. Basta incluir a linha:
ProxyPass /download http://192.168.1.54
Qualquer requisio externa a http://www.guiafoca.org/download/iniciante ser atendida por
http://192.168.1.54/iniciante.
ProxyPassRemote
ProxyPassRemote [diretrio_da_url [outro_servidor:/diretrio]
Esta diretiva permite modificar o cabealho Location nas mensagens de respostas de redirecionamento enviadas pelo Apache. Isto permite que o endereo retornado seja o do servidor (que
faz a interface externa com o cliente) e no da mquina do redirecionamento.
ProxyPass /download http://192.168.1.54 ProxyPassReverse /download http://192.168.1.54
Se a mquina 192.168.1.54 redirecionar a URL para http://192.168.1.54/download/iniciante, a resposta ser modificada para http://www.guiafoca.org/download/iniciante antes de ser retornada ao
cliente.
Da maneira que est configurado o bloco abaixo, o servidor proxy estaria ativado na rede.
<IfModule mod_proxy.c>
ProxyRequests off
ProxyRemote * http://debian:3128
ProxyBlock microsoft.com microsoft.com.br
NoProxy 192.168.1.0/24
ProxyDomain .gms.com.br
</IfModule>

4.2 Lio 8 - Virtual Hosts


Explicao sobre como configurar o servidor para servir mais de um site ao mesmo tempo.

4.2.1 Virtual hosts


Virtual Hosts (sites virtuais) um recurso que permite servir mais de um site no mesmo servidor. Podem ser usadas diretivas especficas para o controle do site virtual, como nome do
administrador, erros de acesso a pgina, controle de acesso e outros dados teis para personalizar e gerenciar o site. Existem 2 mtodos de virtual hosts:
Virtual Hosts baseados em IP - requer um endereo IP diferente para cada site. Este poder
ser um IP real (da interface de rede) ou um apelido , o que interessa que deve haver
um endereo IP diferente para cada site. O nmero de sites servidos estar limitado a
quantidade de endereos IP disponveis em sua classe de rede. O apache foi um dos
primeiros servidores web a incluir suporte a virtual hosts baseados em IP;
Virtual Hosts baseados em nome - este utiliza nomes para identificar os sites servidos e
requerem somente um endereo IP. Desta maneira possvel servir um nmero ilimitado de
sites virtuais. O navegador do cliente deve suportar os cabealhos necessrios para garantir

58

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

o funcionamento deste recurso (praticamente todos os navegadores atuais possuem este


suporte).
As explicaes desta seo so baseadas na documentao do Apache.

4.2.2 Virtual hosts baseados em IP


Existem duas maneiras de rodar este tipo de host virtual: atravs de daemons httpd separados ou em um nico daemon httpd usando a diretiva <VirtualHost>.
As vantagens do uso de daemons separados para servir requisies a proteo sob UID e GID
diferente dos outros servidores, assim o administrador do site no ter acesso ao httpd.conf, pgina do site2 (porque ele estar rodando sob uma UID e GID diferentes e o acesso restrito).
Para usar este mtodo, especifique a opo -f [arquivo_cfg] para utilizar um arquivo de configurao personalizado e a diretiva Listen endereo:porta para dizer onde o servidor aguardar as
requisies.
As vantagens do uso de um mesmo daemon para servir as requisies so: quando no h problema se os administradores de outros sites tenham acesso ao mesmo arquivo de configurao
ou quando h a necessidade de servir muitas requisies de uma s vez (quanto menos servidores web estiverem em execuo, melhor o desempenho do sistema). Abaixo um exemplo de
configurao de virtual hosts servindo os sites www.site1.com.br e www.site2.com.br:
ServerAdmin webmaster@site.com.br
<VirtualHost www.site1.com.br>
ServerName www.site1.com.br
ServerAdmin site1@site1.com.br
DocumentRoot /var/www/www_site1_com_br
TransferLog /var/log/apache/site1/access.log
ErrorLog /var/log/apache/site1/error.log
User www-data
Group www-data
</VirtualHost>
<VirtualHost www.site2.com.br>
ServerName www.site2.com.br
DocumentRoot /var/www/www_site2_com_br
CustomLog /var/log/apache/site2/access.log combined
ErrorLog /var/log/apache/site2/error.log
</VirtualHost>
Qualquer diretiva dentro de <VirtualHost> controlaro tero efeito no site virtual especificado.
Quando uma diretiva no for especificada dentro de <VirtualHost>, sero usados os valores padres especificados no arquivo de configurao do Apache (como a diretiva ServerAdmin webmaster@site.com.br que ser usado como padro na configurao de www.site2.com.br).
Digite apache -S para ver suas configuraes de virtual hosts atual.
OBS1: Desative a diretiva UseCanonicalName off quando utilizar o recurso de mquinas virtuais,
esta diretiva faz com que o nome do servidor retorne usando o valor em ServerName quando o
cliente digita um endereo qualquer.
59

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

OBS2: Utilize sempre que possvel endereos IP em configuraes crticas, assim os servios
no sero to vulnerveis a possveis falsificaes ou erros.
OBS3: No permita que outros usurios a no ser o root e o dono do processo Apache (especificado pela diretiva User) tenham acesso de gravao aos logs gerados pelo servidor, pois
os dados podem ser apagados ou criados links simblicos para binrios do sistema que sero
destrudos quando o Apache gravar dados. Alguns binrios e bibliotecas so essenciais para o
funcionamento do sistema.

4.2.3 Virtual hosts baseados em nome


Este mtodo idntico ao baseado em IP, em especial adicionamos a diretiva NameVirtualHost para dizer qual o endereo IP do servidor que est servindo os virtual hosts baseados em
nome. Veja o exemplo de configurao:
NameVirtualHost 200.200.200.10:80
<VirtualHost _default_:80 200.200.200.10:80>
ServerName www.site.com.br
ServerAdmin admin@site.com.b
r DocumentRoot /var/www
TransferLog /var/log/apache/access.log
ErrorLog /var/log/apache/error.log
</VirtualHost>
<VirtualHost 200.200.200.10>
ServerName www.site1.com.br
ServerAdmin admin1@site1.com.br
DocumentRoot /var/www/www_site1_com_br
TransferLog /var/log/apache/site1/access.log
ErrorLog /var/log/apache/site1/error.log
</VirtualHost>
<VirtualHost 200.200.200.10>
ServerName www.site2.com.br
ServerAdmin admin2@site2.com.br
DocumentRoot /var/www/www_site2_com_br
TransferLog /var/log/apache/site2/access.log
ErrorLog /var/log/apache/site2/error.log
</VirtualHost>
A diretiva NameVirtualHost diz que ser usado virtual hosts baseados em nome servidos pela
mquina com IP 200.200.200.10. Os parmetros dentro do bloco das diretivas <VirtualHost > so
especficas somente no site virtual especificado, caso contrrio os valores padres definidos no
arquivo de configurao sero usados. Caso nenhum virtual host confira com a configurao, o
virtualhost _default_ ser usado.
Digite apache -S para ver suas configuraes de virtual hosts atual. Se sua inteno criar um
grande nmero de virtual hosts que sero servidos pela mesma mquina, o uso da expanso %0
e diretivas VirtualDocumentRoot e VirtualScriptAlias so recomendados:
NameVirtualHost 200.200.200.10:80
60

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

<VirtualHost 200.200.200.10>
VirtualDocumentRoot /var/www/%0
VirtualScriptAlias /var/www/%0/cgi-bin
TransferLog log/apache/site1/access.log
ErrorLog log/apache/site1/error.log
</VirtualHost>
Agora crie os diretrios em /var/www correspondentes aos nomes de domnios que sero servidos por sua mquina: mkdir /var/www/www.site1.com.br, mkdir /var/www/www.site2.com.br. Note
que sua mquina dever estar com o DNS configurado para responder por estes domnios .
ATENO: importante que os endereos especificados nas diretivas ServerName (www.site1.com.br)
resolvam o endereo IP da diretiva VirtualHost (200.200.200.10). Isto deve ser feito via DNS ou
nos arquivos /etc/hosts.
OBS1: Utilize sempre que possvel endereos IP em configuraes crticas, assim os servios
no sero to vulnerveis a possveis falsificaes ou erros.
OBS2: No permita que outros usurios a no ser o root e o dono do processo Apache (especificado pela diretiva User) tenham acesso de gravao aos logs gerados pelo servidor. Pois
os dados podem ser apagados ou criados links para binrios do sistema que sero destrudos
quando o Apache gravar dados para os logs. Alguns binrios e bibliotecas so essenciais para o
funcionamento do sistema.

4.2.4 Segurana no uso de IPs em Virtual Hosts


Quando voc est colocando um nome na diretiva de configurao do seu virtual hosts, est
assumindo que ele resolver o endereo IP corretamente (como www.site1.com.br => 200.200.
200.10). Se por algum motivo o servidor DNS for modificado (por outra pessoa que tem acesso a
isto), o endereo IP resolvido para o site www.site1.com.br poder ser modificado para 200.200.200.20,
isto redirecionar as requisies para outra mquina ao invs da mquina correta. Este tipo de
ataque chamado "DNS Spoofing"e o uso de endereo IP (ao invs de nomes) praticamente
evita que isto acontea. Esta situao pode acontecer com a diretiva abaixo:
<VirtualHost www.gms.com.br>
ServerName www.gms.com.br
ServerAdmin gleydson@guiafoca.org
DocumentRoot /var/www/www_gms_com_br
</VirtualHost>
Outra situao, que impede o funcionamento do servidor Web, quando o servidor DNS est
em manuteno ou por algum outro motivo no pode resolver o endereo IP de um nome especificado (como www.site1.com.br). O Apache precisa saber qual o seu endereo IP para ser
executado. Veja a prxima modificao:
<VirtualHost 192.168.1.1>
ServerName www.gms.com.br
ServerAdmin gleydson@guiafoca.org
DocumentRoot /var/www/www_gms_com_br
</VirtualHost>
Na configurao acima usamos o IP do servidor para especificar o virtual host. O apache tentar
fazer o DNS reverso para determinar qual nome servido por aquele endereo IP
61

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

(www.site1.com.br). Se ele falhar, somente a seo <VirtualHost> correspondente ser desativada. Isto j uma melhoria sobre a primeira configurao. O nome do servidor na diretiva
ServerName garante que o servidor responda com o nome correto.
Para evitar ataques baseados em DNS siga os seguintes procedimentos de segurana:
preferencialmente utilize o arquivo /etc/hosts para a resoluo de nomes em mquinas locais (principalmente quando existe somente um administrador). um mtodo que evita
diversas consultas ao servidor DNS (que pode deixar o acesso lento) e este arquivo gerenciado pelo usurio root, isto evita o acesso de qualquer usurio para a falsificao de
endereos. Este arquivo tambm til caso a pesquisa DNS falhe (quando a ordem de
pesquisa for do servidor DNS para o arquivo hosts no arquivo /etc/host.conf), pois de qualquer forma o nome ser resolvido e o servidor Apache ser executado;
evite dar poderes a outros administradores para manipularem seu prprio domnio DNS,
no h nada que possa impedi-los de modificar o endereo "X"para ser servido pelo IP
"Y"desviando o trfego para seu prprio servidor web. Se isto no for possvel, siga as
dicas abaixo para diminuir possveis problemas:
utilize endereos IP na diretiva <VirtualHost>;
use endereos IP na diretiva Listen;
use um endereo IP na diretiva BindAddress;
sempre utilize o parmetro ServerName em todas as diretivas <VirtualHost>, isto evita o
retorno incorreto de nomes (que pode evitar/revelar fraudes);
quando utilizar virtual hosts, crie uma diretiva <VirtualHost _default_L:*> usando uma diretiva DocumentRoot que no aponte para lugar algum. Esta diretiva ser acessada quando
nenhuma diretiva VirtualHost servir a requisio, conferindo com o endereo/ip.

4.3 Lio 9 - Mdulos DSO


Pequena explicao sobre como adicionar ou remover mdulos DSO.
Os mdulos DSO permitem adicionar/remover caractersticas do Apache sem necessidade de
recompilar todo o servidor web, assim interrompendo o servio para a atualizao dos arquivos.
Mdulos de programas terceiros tambm podem ser compilados e adicionados sem problemas
atravs deste recurso.
Os mdulos so carregados para a memria no momento que o Apache iniciado atravs da
diretiva LoadModule no arquivo de configurao. Dessa forma, toda vez que um novo mdulo for
adicionado, removido ou alterado, ser necessrio reiniciar o servidor Apache. A sintaxe da linha
para carregar mdulos .so a seguinte:
LoadModule [nome_do_modulo] [caminho_do_arquivo_so]
nome_do_modulo
Especifica o nome do mdulo, no deve conter espaos.
caminho_do_arquivo_so
Define a localizao do arquivo que contm o mdulo especificado. Por padro os mdulos esto
localizados em /usr/lib/apache/[verso]
A posio em que os mdulos aparecem podem ter influncia em seu funcionamento, alguns requerem que sejam especificados antes de outros mdulos para funcionarem corretamente (como
62

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

o mdulo php3_module, que deve ser carregado antes de qualquer mdulo de controle de CGIs).
Leia a documentao especfica sobe o mdulo em caso de dvidas, os mdulos que acompanham o Apache so documentados em detalhes no manual do Apache.
Para usar uma caracterstica/diretiva/opo do Apache que dependa de um certo mdulo, obviamente voc dever carregar o mdulo correspondente (em caso de dvidas, leia a documentao
sobre o mdulo). Veja o httpd.conf para exemplos do uso da diretiva LoadModule.
Por exemplo, se voc quiser utilizar as diretivas de autorizao (allow, deny, order) dever ter
o mdulo mod_access carregado, para usar as diretivas de autorizao (authname, authuserfile,
authtype, etc) dever ter o mdulo mod_auth carregado. Mais detalhes podem ser encontrados
na lio sobre restries de acesso.
OBS1: O suporte a DSO atualmente s est disponvel para plataforma UNIX e seus derivados,
como o GNU/Linux.
Tambm possvel ativar certas diretivas verificando se o mdulo correspondente est ou no
carregado atravs da diretiva IfModule:
<IfModule mod_userdir.c>
UserDir disabled root
UserDir public_html
</IfModule>
Nas linhas acima, as diretivas UserDir somente sero executadas se o mdulo mod_userdir.c
estiver carregado atravs da diretiva LoadModule.
Segue abaixo uma lista de mdulos padres que acompanham o Apache, os mdulos marcados
com "*"so ativados por padro:
Criao de Ambiente
mod_env - ajusta variveis de ambiente para scripts CGI/SSI;
mod_setenvif - ajusta variveis de ambiente de acordo com cabealhos http;
mod_unique_id - gera identificadores nicos para requisies.
Deciso de tipo de contedo de arquivos
mod_mime - determinao de tipo/encodificao do contedo (configurado);
mod_mime_magic - determinao de tipo/encodificao do contedo (automtico);
mod_negotiation - seleo de contedo baseado nos cabealhos "HTTP Accept*".
Mapeamento de URL
mod_alias - traduo e redirecionamento de URL simples;
mod_rewrite - traduo e redirecionamento de URL avanado;
mod_userdir - seleo de diretrios de recursos por nome de usurio;
mod_speling - correo de URLs digitadas incorretamente;
mod_vhost_alias - suporte para virtual hosts dinamicamente configurados em massa.
63

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Manipulao de Diretrios
mod_dir - manipulao de Diretrio e arquivo padro de diretrio;
mod_autoindex - gerao de ndice automtico de diretrio.
Controle de Acesso
mod_access - controle de acesso por autorizao (usurio, endereo, rede);
mod_auth - autenticao HTTP bsica (usurio, senha);
mod_auth_dbm - autenticao HTTP bsica (atravs de arquivos NDBM do Unix);
mod_auth_db - autenticao HTTP bsica (atravs de arquivos Berkeley-DB);
mod_auth_anon - autenticao HTTP bsica para usurios no estilo annimo;
mod_auth_digest - autenticao MD5;
mod_digest - autenticao HTTP Digest.
Respostas HTTP
mod_headers - cabealhos de respostas HTTP (configurado);
mod_cern_meta - cabealhos de respostas HTTP (arquivos no estilo CERN);
mod_expires - respostas de expirao HTTP;
mod_asis - respostas HTTP em formato simples (raw).
Scripts
mod_include - suporte a Includes no lado do servidor (SSI - Server Sides Includes);
mod_cgi - suporte a CGI (Common Gateway Interface);
mod_actions - mapeia scripts CGI para funcionarem como handlers internos.
Manipuladores de contedo Interno
mod_status - visualiza status do servidor em tempo de execuo;
mod_info - visualiza sumrio de configurao do servidor.
Registros de Requisies
mod_log_config - registro de requisies personalizveis;
mod_log_agent - registro especializado do User-Agent HTTP (depreciado);
mod_log_refer - registro especializado do Referrer HTTP (depreciado);
mod_usertrack - registro de cliques de usurios atravs de Cookies HTTP.
64

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Outros
mod_imap - suporte a Mapeamento de Imagem no lado do servidor;
mod_proxy - mdulo de Cache do Proxy (HTTP, HTTPS, FTP);
mod_so - inicializao do Dynamic Shared Object (DSO).
Experimental
mod_mmap_static - cache de pginas freqentemente servidas via mmap().
Desenvolvimento
mod_example - demonstrao da API do Apache (somente desenvolvedores).

4.4 Lio 10 - Uso de criptografia SSL


Referncia rpida sobre o uso do mdulo apache-ssl com o servidor Apache.

4.4.1 Uso de criptografia SSL


Esta seo uma referncia rpida para configurao e uso do mdulo apache-ssl com o servidor Apache. Este mdulo realiza a comunicao segura de dados (criptografada) via porta 443
(que usada como padro quando especificamos uma url iniciando com https://). A transmisso
criptografada de dados importante quando temos dados confidenciais que precisamos transmitir como movimentao bancria, senhas, nmero de cartes de crdito, fazer a administrao
remota do servidor, etc. SSL significa Secure Sockets Layer (camada segura de transferncia) e
TLS Transport Layer Security (camada segura de Transporte).
A inteno aqui fornecer explicaes prticas para colocar um servidor Apache com suporte a
SSL funcionando no menor tempo possvel. Detalhes sobre funcionamento de certificados, mtodos de criptografia, assinatura, etc. devero ser buscados na documentao deste mdulo ou
em sites especializados ( um assunto muito longo).

4.4.2 Servidor apache com suporte a ssl


Ao invs de utilizar o mdulo mod_ssl, voc poder usar o pacote apache-ssl, ele nada mais
que um servidor Apache com o suporte SSL j incluso e no interfere no servidor Apache padro,
porque executado somente na porta 443.
Se voc tem um grande site com configuraes de acesso personalizadas, ele trar mais trabalho
de administrao, pois as configuraes e diretivas de restries de acesso devero ser copiadas
para este servidor web. No entanto, ele indicado para mquinas que sero servidores SSL
dedicados ou quando no possui configuraes especiais em seu servidor web principal.
Esta seo tem por objetivo a instalao do suporte ao mdulo SSL (mod_ssl) no servidor Apache
padro.

65

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

4.4.3 Instalando o suporte a mdulo SSL no Apache


Instale o pacote libapache-mod-ssl.
debian: # apt-get install libapache-mod-ssl
Aps instal-lo, edite o arquivo /etc/apache/httpd.conf adicionando a linha:
LoadModule ssl_module /usr/lib/apache/1.3/mod_ssl.so
Depois, gere um certificado digital ssl com o programa mod-ssl-makecert. Ele ser armazenado
por padro nos diretrios em /etc/apache/ssl.??? e seu uso explicado no resto desta lio.

4.4.4 Gerando um certificado digital


O certificado digital a pea que garante a transferncia segura de dados. Ele contm detalhes sobre a empresa que far seu uso e quem o emitiu. Para gerar ou modificar um certificado
digital, execute o comando mod-ssl-makecert e siga as instrues. O mtodo de criptografia
usado pelo certificado digital baseado no conceito de chave pblica/privada, a descrio sobre
o funcionamento deste sistema de criptografia feito usando pgp (gpg)para criptografia de arquivos (http://focalinux.cipsga.org.br/guia/avancado/ch-d-cripto.htm#s-d-cripto-gpg).
OBS: No utilize acentos nos dados de seu certificado.

4.4.5 Exemplo de configurao do mdulo mod-ssl


Abaixo uma configurao rpida para quem deseja ter um servidor com suporte a SSL funcionando em menor tempo possvel (ela feita para operar em todas as instalaes e no leva em
considerao o projeto de segurana de sua configurao atual do Apache). Note que todas as
diretivas relacionadas com o mdulo mod_ssl comeam com o nome "SSL":
# Somente processa as diretivas relacionadas a SSL caso o mdulo mod_ssl estiver
# carregado pela diretiva LoadModule
<IfModule mod_ssl.c>
# necessrio especificar as portas que o servidor Web aguardar conexes (normais e ssl).
Listen 80
Listen 443
# Ativa o tratamento de conexes com o destino na porta 443 pela diretiva
# VirtualHost abaixo
<VirtualHost _default_:443>
# Ativa ou desativa o mdulo SSL para este host virtual
SSLEngine on
# Certificado do servidor.
SSLCertificateFile /etc/apache/ssl.crt/server.crt
# Chave privada de certificado do servidor.
SSLCertificateKeyFile /etc/apache/ssl.key/server.key
66

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

# A linha abaixo fora o fechamento de conexes quando a


# conexo com o navegador Internet Explorer interrompida. Isto
# viola o padro SSL/TLS mas necessrio para este tipo de
# navegador. Alguns problemas de conexes de navegadores tambm
# so causados por no saberem lidar com pacotes keepalive.
SetEnvIf User-Agent ".*MSIE.*"nokeepalive ssl-unclean-shutdown
</VirtualHost>
</IfModule>
#################################################################################
# Adicionalmente podero ser especificadas as seguintes opes para modificar #
# o comportamento da seo SSL (veja mais detalhes na documentao do mod-ssl) #
#################################################################################
# Formato e localizao do cache paralelo de processos da seo. O cache de seo
# feito internamente pelo mdulo mas esta diretiva acelera o processamento
# de requisies paralelas feitas por modernos clientes navegadores. Por padro
# nenhum cache usado ("none").
SSLSessionCache dbm:/var/run/ssl-cache
# Localizao do arquivo de lock que o mdulo SSL utiliza para
# sincronizao entre processos. O padro nenhum.
SSLMutex file:/var/run/ssl-mutex
# Especifica o mtodo de embaralhamento de dados que ser utilizado
# durante o incio de uma seo SSL (startup) ou durante o processo
# de conexo (connect). Podem ser especificados "builtin"( muito rpido
# pois consome poucos ciclos da CPU mas no gera tanta combinao aleatria), um
# programa que gera nmeros aleatrios (com "exec") ou os dispositivos aleatrios
# /dev/random e /dev/urandom (com "file"). Por padro nenhuma fonte
# adicional de nmeros aleatrios usada.
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/urandom 512
#SSLRandomSeed connect file:/dev/urandom 512
#SSLRandomSeed connect exec:/pub/bin/NumAleat
# Tipos MIME para download de certificados
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
# Tempo mximo de permanncia dos objetos do cache acima. O valor padro
# 300 segundos (5 minutos).
SSLSessionCacheTimeout 300
# Verso do protocolo SSL que ser usada. Podem ser especificadas
67

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

# SSLv2, SSLv3 TLSv1 ou all. O mais compatvel com os navegadores atuais


# o "SSLv2". Por padro "all" usado.
#SSLProtocol all
#SSLProtocol -all +SSLv3
# Registra detalhes sobre o trfego neste arquivo. Mensagens de erro
# tambm so armazenadas no arquivo de registro padro do Apache
SSLLog /var/log/apache/ssl-mod.log
# Nvel das mensagens de log registradas por SSLLog
SSLLogLevel info
Algumas diretivas deste mdulo podem fazer parte tanto da configurao global do servidor como
diretivas de acesso (Directory, Location, .htaccess, veja a opo "Context"na documentao do
mod_ssl).

4.4.6 Autorizando acesso somente a conexes SSL


Existem casos que precisam restringir o uso de conexes normais e permitir somente conexes via SSL (como por exemplo, dentro da diretiva de acesso que controla seu acesso a uma
pgina com listagem de clientes). A opo SSLRequereSSL usada para tal e deve ser usada
dentro das diretivas de controle acesso:
<Directory /var/www/secure/clientes>
Options Indexes
Order deny,allow
Deny from evil.cracker.com
SSLRequireSSL
</Directory>
A diretiva acima requer que sejam feitas conexes SSL (porta 443 - https://) para acesso ao
diretrio /var/www/secure/clientes, qualquer conexo padro no criptografada (feita na porta 80)
ser rejeitada com o erro 403.
OBS: A diretiva SSLRequireSSL podia ser colocada entre as condicionais "IfModule mod_ssl.c"mas
o servidor web permitiria conexes no criptografadas se por algum motivo esse mdulo no estivesse carregado. Na configurao acima, ocorrer um erro e impedir o funcionamento do
servidor web caso ocorra algum problema com o mod_ssl.

4.4.7 Iniciando o servidor Web com suporte a SSL


Verifique se a configurao do Apache est ok com apache -t. Caso positivo, reinicie o servidor usando um dos mtodos descritos na lio 3. O servidor web lhe pedir a FraseSenha para
descriptografar a chave privada SSL (esta senha foi escolhida durante o processo de criao do
certificado).
Esta senha garante uma segurana adicional caso a chave privada do servidor seja copiada de
alguma forma. Somente quem tem conhecimento da FraseSenha poder iniciar o servidor com
suporte a transferncia segura de dados. Verifique se o virtual host est servindo as requisies
68

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

na porta 443 com apache -S.


O nico mtodo para fazer o servidor web evitar de pedir a senha para descriptografar a chave
privada colocando uma senha em branco. Isto s recomendado em ambientes seguros e o
diretrio que contm a chave privada dever ter somente permisses para o dono/grupo que executa o servidor Web. Qualquer outra permisso poder por em risco a segurana da instalao
caso a chave privada seja roubada. Depois disso, execute o comando:
# entre no diretrio que contm a chave privada
cd /etc/apache/ssl.key
# renomeie a chave privada para outro nome
ren server.key server.key-Csenha
openssl rsa -in server.key-Csenha -out server.key
Digite a senha quando pedido. A chave original (com senha) estar gravada no arquivo server.keyCsenha e poder ser restaurada se necessrio. Reinicie o servidor Apache, desta vez ele no
pedir a senha.
OBS1: Tire uma cpia de segurana da chave privada original antes de executar esta operao.
OBS2: No se esquea de ajustar as permisses de acesso no diretrio /etc/apache/ssl.key caso
no utilize senha para proteger seu certificado digital.

4.5 Exemplos dos arquivos de configurao


4.5.1 httpd.conf
##
## httpd.conf Arquivo de configurao do servidor httpd Apache
##
#
# Baseado nos arquivos de configurao originais do servidor NCSA por Rob McCool.
# Modificado para distribuio junto ao guia Foca GNU/Linux Avanado
# http://focalinux.cipsga.org.br/ <gleydson@guiafoca.org>
#
# Este o arquivo de configurao principal do servidor Apache. Ele contm as
# diretivas de configurao que do ao servidor suas instrues.
# Veja <http://www.apache.org/docs/> para informaes detalhadas sobre as
# diretivas.
#
# NO leia simplesmente as instrues deste arquivo sem entender o que significam
# e o que fazem, se no tiver certeza do que est fazendo consulte a documentao
# on-line ou leia as sees apropriadas do guia. Voc foi avisado.
#
# Aps este arquivo ser processado, o servidor procurar e processar o arquivo
# /etc/apache/srm.conf e ento /etc/apache/access.conf
# a no ser que voc tenha modificado o nome dos arquivos acima atravs das
# diretivas ResourceConfig e/ou AccessConfig neste arquivo.

69

CDTC

Centro de Difuso de Tecnologia e Conhecimento

#
# Configurao e nomes de arquivos de log: se os nomes de arquivos que
# especificar para os arquivos de controle do servidor iniciam com uma
# "/", o servidor usar aquele caminho explicitamente. Se os nomes *no*
# iniciarem com uma "/", o valor de ServerRoot adicionado assim
# "logs/foo.log"com ServerRoot ajustado para "/usr/local/apache"ser
# interpretado pelo servidor como "/usr/local/apache/logs/foo.log".
#
# Originalmente por Rob McCool
# modificado por Gleydson Mazioli da Silva para o guia Foca GNU/Linux
# Carga dos Mdulos de Objetos Compartilhados:
# para voc ser capaz de usar a funcionalidade de um mdulo que foi construdo como
# um mdulo compartilhado, ser necessrio adicionar as linhas LoadModule
# correspondentes sua localizao, assim as diretivas que os mdulos contm
# estaro disponveis _antes_ de serem usadas.
# Exemplo:
#
# ServerType pode ser inetd, ou standalone. O modo Inetd somente suportado nas
# plataformas Unix. O modo standalone inicia o servidor como um daemon.
#
ServerType standalone
# Se estiver executando a partir do inetd, v at a diretiva "ServerAdmin".
# Port: A porta que o servidor standalone escutar. Para portas < 1023, ser
# necessrio o servidor funcionando como root inicialmente.
Port 80
#
# HostnameLookups: Registra os nomes DNS dos clientes ou apenas seus endereos
# IPs
# ex., www.apache.org (on) ou 204.62.129.132 (off).
# O valor padro off porque permitir menos trfego na rede. Ativando
# esta opo significa que cada acesso de um cliente resultar em
# NO MNIMO uma requisio de procura ao servidor de nomes (DNS).
#
HostnameLookups off
# Caso desejar que o servidor http seja executado como um usurio ou grupo diferente
# voc deve executar o httpd inicialmente como root e ele modificar sua ID para a
# especificada.
# User/Group: O nome (ou #nmero) do usurio/grupo que executar o servidor httpd.
70

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

# No SCO (ODT 3) use "User nouser"e "Group nogroup"


# No HPUX voc pode no ser capaz de usar memria compartilhada como nobody, e
# sugerido que seja criado um usurio www e executar o servidor httpd como
# este usurio, adequando as permisses onde necessrias.
User www-data
Group www-data
# ServerAdmin: Seu endereo de e-mail, onde os problemas com o servidor devem ser
# enviados. Este endereo aparecer nas mensagens de erro do servidor.
ServerAdmin gleydson@guiafoca.org
#
# ServerRoot: O topo da rvore de diretrios onde os arquivos de configurao do
# servidor, erros, e log so mantidos.
#
# NOTA: Se tiver a inteno de colocar isto em um sistema de arquivos montado
# em um servidor NFS (ou outra rede) ento por favor leia a documentao do
# LockFile
# (disponvel em <http://www.apache.org/docs/mod/core.html#lockfile>);
# e se salvar de vrios problemas.
#
# No adicione uma barra no fim do caminho do diretrio.
#
ServerRoot /etc/apache
# BindAddress: Voc pode usar esta opo em virtual hosts. Esta
# opo usada para dizer ao servidor que endereo IP escutar. Ele pode
# conter ou "*", um endereo IP, ou um nome de domnio completamente qualificado
# (FQDN). Veja tambm a diretiva VirtualHost.
BindAddress *
#
# Suporte a Objetos Compartilhados Dinamicamente (DSO - Dynamic Shared Object)
#
# Para ser capaz de usar a funcionalidade de um mdulo que foi compilado como
# um mdulo DSO, voc ter que adicionar as linhas LoadModule correspondentes
# nesta localizao, assim as diretivas contidas nela estaro disponveis
# _antes_ de serem usadas. Por favor leia o arquivo README.DSO na distribuio
# 1.3 do Apache para mais detalhes sobre o mecanismo DSO e execute o comando
# "apache -l"para a lista de mdulos j compilados (estaticamente linkados e
# assim sempre disponveis) em seu binrio do Apache.
#
# Please keep this LoadModule: line here, it is needed for installation.
# LoadModule vhost_alias_module /usr/lib/apache/1.3/mod_vhost_alias.so
# LoadModule env_module /usr/lib/apache/1.3/mod_env.so
71

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so


# LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so
LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so
LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so
LoadModule status_module /usr/lib/apache/1.3/mod_status.so
# LoadModule info_module /usr/lib/apache/1.3/mod_info.so
# LoadModule includes_module /usr/lib/apache/1.3/mod_include.so
LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so
LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so
LoadModule php3_module /usr/lib/apache/1.3/libphp3.so
LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so
# LoadModule asis_module /usr/lib/apache/1.3/mod_asis.so
# LoadModule imap_module /usr/lib/apache/1.3/mod_imap.so
# LoadModule action_module /usr/lib/apache/1.3/mod_actions.so
# LoadModule speling_module /usr/lib/apache/1.3/mod_speling.so
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
LoadModule access_module /usr/lib/apache/1.3/mod_access.so
LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so
# LoadModule anon_auth_module /usr/lib/apache/1.3/mod_auth_anon.so
# LoadModule dbm_auth_module /usr/lib/apache/1.3/mod_auth_dbm.so
# LoadModule db_auth_module /usr/lib/apache/1.3/mod_auth_db.so
# LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
# LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so
# LoadModule cern_meta_module /usr/lib/apache/1.3/mod_cern_meta.so
LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so
# LoadModule headers_module /usr/lib/apache/1.3/mod_headers.so
# LoadModule usertrack_module /usr/lib/apache/1.3/mod_usertrack.so
LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so
LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so
# LoadModule sys_auth_module /usr/lib/apache/1.3/mod_auth_sys.so
# LoadModule put_module /usr/lib/apache/1.3/mod_put.so
# LoadModule throttle_module /usr/lib/apache/1.3/mod_throttle.so
# LoadModule allowdev_module /usr/lib/apache/1.3/mod_allowdev.so
# LoadModule auth_mysql_module /usr/lib/apache/1.3/mod_auth_mysql.so
# LoadModule pgsql_auth_module /usr/lib/apache/1.3/mod_auth_pgsql.so
# LoadModule eaccess_module /usr/lib/apache/1.3/mod_eaccess.so
# LoadModule roaming_module /usr/lib/apache/1.3/mod_roaming.so
#
# ExtendedStatus: Controla se o Apache gerar detalhes completos de status
# (ExtendedStatus On) ou apenas detalhes bsicos (ExtendedStatus Off) quando o
# manipulador (handler) "server-status"for usado. O padro Off.
#
ExtendedStatus on
#
72

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

# ErrorLog: A localizao do arquivo de log de erros.


# Se no estiver especificando a diretiva ErrorLog dentro de <VirtualHost>,
# as mensagens de erros relativas aos hosts virtuais sero registradas neste
# arquivo. Se definir um arquivo de log de erros para <VirtualHost>, as
# mensagens relativas ao servidor controlados por ela sero registradas l e
# no neste arquivo.
#
ErrorLog /var/log/apache/error.log
#
# LogLevel: Controla o nmero de mensagens registradas no ErrorLog.
# Facilidades possveis incluem: debug, info, notice, warn, error, crit,
# alert, emerg.
# Veja as facilidades na seo do guia sobre o syslog para detalhes:
#
LogLevel warn
# As seguintes diretivas definem alguns formatos de nomes que sero usadas com a
# diretiva CustomLog (veja abaixo).
LogFormat "%h %l %u %t "%r"%>s %b "%Refereri%User-Agenti"%T %v"full
LogFormat "%h %l %u %t "%r"%>s %b "%Refereri%User-Agenti"%P %T"debug
LogFormat "%h %l %u %t "%r"%>s %b "%Refereri%User-Agenti combined
LogFormat "%h %l %u %t "%r"%>s %b"common
LogFormat "%Refereri -> %U"referer
LogFormat "%User-agenti"agent
#
# A localizao e formato do arquivo de log de acesso (definida pela diretiva
# LogFormat acima).
# Se no definir quaisquer arquivos de log de acesso dentro de um
# <VirtualHost>, elas sero registradas aqui. Se for definida dentro
# de <VirtualHost> o arquivo de log de acesso ser registrado no
# arquivo especificado na diretiva e no aqui.
#
#CustomLog /var/log/apache/access.log common
# Se voc desejar ter um arquivo de log separado para o agent (navegador usado)
# e referer, descomente as seguintes diretivas.
#CustomLog /var/log/apache/referer.log referer
#CustomLog /var/log/apache/agent.log agent
# Se preferir um arquivo de log simples, com os detalhes de acesso, agent, e
# referer (usando o formato combined da diretiva LogFile acima), use a seguinte
# diretiva:
CustomLog /var/log/apache/access.log combined
73

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

#
# Incluir uma linha contendo a verso do servidor e um nome de host virtual
# para as pginas geradas pelo servidor (documentos de erro, listagens
# de diretrios FTP, sada dos mdulos mod_status e mod_info, etc., exceto
# para documentos gerados via CGI). Use o valor "EMail"para tambm incluir
# um link mailto: para o ServerAdmin. Escolha entre "On", "Off"ou "EMail".
#
ServerSignature On
#
# PidFile: O arquivo que o servidor gravar os detalhes sobre seu PID quando
# iniciar.
#
PidFile /var/run/apache.pid
#
# ScoreBoardFile: Arquivo usado para armazenar detalhes do processo interno do
# servidor. Nem todas as arquiteturas requerem esta diretiva, mas se a sua
# requerer (voc saber porque este arquivo ser criado quando executar o
# Apache) ento voc *dever* ter certeza que dois processos do Apache no
# utilizam o mesmo arquivo ScoreBoardFile.
#
ScoreBoardFile /var/run/apache.scoreboard
#
# Na configurao padro, o servidor processar este arquivo, o
# srm.conf e o access.conf neste ordem. Voc pode fazer o servidor
# ignorar estes arquivos usando "/dev/null".
#
ResourceConfig /etc/apache/srm.conf
AccessConfig /etc/apache/access.conf
#
# A diretiva LockFile define o caminho do lockfile usado quando o servidor
# Apache for compilado com a opo USE_FCNTL_SERIALIZED_ACCEPT ou
# USE_FLOCK_SERIALIZED_ACCEPT. Esta diretiva normalmente deve ser deixada em seu
# valor padro. A razo principal de modifica-la no caso do diretrio de logs
# seja montado via um servidor NFS< pois o arquivo especificado em LockFile
# DEVE SER ARMAZENADO EM UM DISCO LOCAL. O PID do processo do servidor principal
# automaticamente adicionado neste arquivo.
#
LockFile /var/run/apache.lock
# ServerName permite ajustar o nome de host que ser enviado
# aos clientes, caso seja diferente do nome real (por exemplo, se desejar usar
# www ao invs do nome real de seu servidor).
#
74

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

# Nota: Voc no pode simplesmente inventar nomes e esperar que funcionem. O nome
# que definir dever ser um nome DNS vlido para sua mquina.
ServerName debian.meudominio.org
# UseCanonicalName: Com esta opo ligada, se o Apache precisar construir uma
# URL de referncia (uma url que um retorno do servidor a uma requisio) ele
# usar ServerName e Port para fazer o "nome cannico". Com esta opo desligada,
# o Apache usar computador:porta que o cliente forneceu, quando possvel.
# Isto tambm afeta SERVER_NAME e SERVER_PORT nos scripts CGIs.
#
# Dependendo de sua configurao, principalmente em virtual hosts, recomendvel
# deix-la desativada ou com o valor DNS. O valor DNS obtm o nome do servidor
# atravs de uma requisio DNS reversa do endereo IP (muito til para virtual
# hosts baseados em IP).
UseCanonicalName off
# CacheNegotiatedDocs: Por padro, o Apache envia Pragma: no-cache com cada
# documento que foi negociado na base do contedo. Isto permite dizer a
# servidores proxy para no fazerem cache do documento. Descomentando a
# seguinte linha desativa-se esta caracterstica, e os proxyes sero capazes
# de fazer cache dos documentos.
#CacheNegotiatedDocs
# Timeout: O nmero de segundos antes de receber e enviar um time out
Timeout 300
# KeepAlive: Se vai permitir ou no conexes persistentes (mais que uma requisio
# por conexo). Mude para "Off"para desativar.
KeepAlive On
# MaxKeepAliveRequests: O nmero mximo de requisies que sero permitidas
# durante uma conexo persistente. Mude para 0 para permitir uma quantidade
# ilimitada. Ns recomendamos deixar este nmero alto, para obter a mxima
# performance.
MaxKeepAliveRequests 100
# KeepAliveTimeout: Nmero de segundos que aguardar a prxima requisio
KeepAliveTimeout 15
# Regulagem do tamanho de pool do servidor. Ao invs de fazer voc adivinhar
# quantos processos servidores precisar, o Apache adapta dinamicamente
# de acordo com a carga que ele v isto , ele tenta manter o nmero de
# processos o bastante para manipular a carga atual, mas alguns poucos
75

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

# servidores esparsos para manipular requisies transientes (ex. requisies


# simultneas mltiplas de um navegador Netscape simples).
# Ele faz isto verificando periodicamente quantos servidores esto
# aguardando por uma requisio. Se l existe menos que MinSpareServers,
# ele cria um novo processo. Se existe mais que MaxSpareServers, ele
# fecha alguns processos. Os valores abaixo esto adequados para muitos
# sites.
MinSpareServers 5
MaxSpareServers 10
# Nmero de servidores que sero iniciados deve conter um valor razovel.
StartServers 5
# Limita o nmero total de servidores rodando, i.e., limita o nmero de clientes
# que podem conectar simultaneamente se este limite sempre atingido,
# os clientes podem sero BARRADOS, assim este valor NO DEVE SER MUITO PEQUENO.
# Ele tem a inteno principal de ser um freio para manter um em execuo com
# uma performance aceitvel de acordo com os requerimentos de construo e
# carga calculada no servidor.
MaxClients 150
#
# MaxRequestsPerChild: O nmero de requisies que cada processo tem permisso
# de processar antes do processo filho ser finalizado. O filho ser finalizado
# para evitar problemas aps uso prolongado quando o Apache (e talvez as
# bibliotecas que utiliza) tomar memria e outros recursos. Na maioria dos
# sistemas, isto realmente no necessrio, exceto para alguns (como o
# Solaris) que possuem ponteiros notveis em suas bibliotecas. Para estas
# plataformas, ajuste para algo em torno de 10000 ou algo assim; uma
# configurao de 0 significa ilimitado.
#
# NOTA: Este valor no inclui requisies keepalive aps a requisio
# inicial por conexo. Por exemplo, se um processo filho manipula
# uma requisio inicial e 10 requisies "keptalive"subseqentes,
# ele somente contar 1 requisio neste limite.
#
MaxRequestsPerChild 30

# Listen: Permite fazer o Apache escutar um IP determinado e/ou porta, em


# adio a padro. Veja tambm o comando VirtualHost:
#Listen 3000
#Listen 12.34.56.78:80
76

CDTC

Centro de Difuso de Tecnologia e Conhecimento

# VirtualHost: Permite o daemon responder a requisies para mais que um


# endereo IP do servidor, se sua mquina estiver configurada para aceitar pacotes
# para mltiplos endereos de rede. Isto pode ser feito com a opo de aliasing
# do ifconfig ou atravs de patches do kernel como o de VIF.
# Qualquer diretiva httpd.conf ou srm.conf pode ir no comando VirtualHost.
# Veja tambm a entrada BindAddress.
#<VirtualHost host.some_domain.com>
#ServerAdmin webmaster@host.some_domain.com
#DocumentRoot /var/www/host.some_domain.com
#ServerName host.some_domain.com
#ErrorLog /var/log/apache/host.some_domain.com-error.log
#TransferLog /var/log/apache/host.some_domain.com-access.log
#</VirtualHost>

# VirtualHost: Se voc quiser manter mltiplos domnios/nomes de mquinas em sua


# mquina voc pode ajustar o contedo de VirtualHost para eles.
# Por favor veja a documentao em <http://www.apache.org/docs/vhosts/>
# para mais detalhes antes de tentar configurar seus hosts virtuais.
# Voc pode usar a opo de linha de comando -S para verificar sua configurao
# de hosts virtuais.
#
# Se desejar usar hosts virtuais baseados em nome, ser necessrio definir no
# mnimo um endereo IP (e nmero de porta) para eles.
#
#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78
#
# Exemplo de um Host Virtual:
# Praticamente qualquer diretiva do Apache pode entrar na condicional
# VirtualHost.
#
#<VirtualHost ip.address.of.host.some_domain.com>
# ServerAdmin webmaster@host.some_domain.com
# DocumentRoot /www/docs/host.some_domain.com
# ServerName host.some_domain.com
# ErrorLog logs/host.some_domain.com-error.log
# CustomLog logs/host.some_domain.com-access.log common
#</VirtualHost>
#<VirtualHost _default_:*>
#</VirtualHost>

77

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

4.5.2 access.conf
# access.conf: Configurao de acesso Global
# Documentos on-line em http://www.apache.org/
# Este arquivo define as configuraes do servidor que afetam, que tipos de
# servios so permitidos e em quais circunstncias.
# Cada diretrio que o Apache possui acesso, pode ser configurado respectivamente
# com quais servios e caractersticas que podem ser permitidas e/ou bloqueadas
# no diretrio (e seus subdiretrios).
#
# Primeiro a configurao restringe uma srie de permisses:
<Directory />
Options SymLinksIfOwnerMatch
AllowOverride None
# Order deny,allow
# Deny from all
</Directory>
# Desse ponto em diante, necessrio especificar o que ser permitido
# caso contrrio ser bloqueado pelo bloco acima.
# Esta parte deve ser modificada para a localizao do documento raz do servidor.
<Directory /var/www>
# A opo Options pode conter os valores "None", "All", ou quaisquer combinao
# de "Indexes", "Includes", "FollowSymLinks", "ExecCGI", ou "MultiViews".
#
# Note que "MultiViews"deve ser *explicitamente* especificada "Options All"
# no a ativa (pelo menos no ainda).
Options Indexes FollowSymLinks Includes MultiViews
# Esta opo controla que opes os arquivos .htaccess nos diretrios podem ser
# substitudas. Pode tambm conter "All", ou qualquer combinao de "Options",
# "FileInfo", "AuthConfig", e "Limit"
AllowOverride None
# Controla quem pode obter materiais deste servidor. Leia a seo adequada no
# guia para mais explicaes sobre a ordem de acesso, padres e valores permitidos.
order allow,deny
allow from all
</Directory>

78

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

#
# O diretrio "/usr/lib/cgi-bin"deve ser modificado para o diretrio que
# possuem seus scripts CGI, caso tenha configurado o suporte a CGIs no
# servidor.
#
<Directory /usr/lib/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
#
# Permite ver relatrios de status e funcionamento do servidor web e
# processos filhos, atravs da URL http://servidor/server-status
# isto requer o mdulo status_module (mod_status.c) carregado no arquivo
# httpd.conf
#
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .meudominio.org
#</Location>
#
# Permite relatrio de configurao remota do servidor, atravs da URL
# http://servername/server-info
# Isto requer o mdulo info_module (mod_info.c) carregado no arquivo
# httpd.conf
#
#<Location /server-info>
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .meudominio.org
#</Location>
# Visualizao do diretrio de cones
<Directory /usr/share/apache/icons>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

79

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

# O Debian Policy assume que /usr/doc "/doc/"e linkado com /usr/share/doc,


# pelo menos para localhost.
<Directory /usr/doc>
Options Indexes FollowSymLinks
order deny,allow
deny from all
allow from 192.168.1.10/24
</Directory>
# Esta define a localizao visualizvel do monitor de status mod_throttle
#
<location /throttle-info>
SetHandler throttle-info
</location>
#
# As seguintes linhas previnem os arquivos .htaccess de serem mostrados nos
# clientes Web. Pois os arquivos .htaccess freqentemente contm detalhes
# de autorizao, o acesso desabilitado por razes de segurana. Comente
# estas linhas se desejar que seus visitantes vejam o contedo dos arquivos
# .htaccess. Se modificar a diretiva AccessFileName acima, tenha certeza de
# fazer as modificaes correspondentes aqui.
#
# As pessoas tambm tendem a usar nomes como .htpasswd nos arquivos de senhas
# a diretiva abaixo os proteger tambm.
#

<Files "^ht
Order allow,deny
Deny from all
</Files>
#
# Controla o acesso a diretrios UserDir. As seguintes diretivas so um exemplo
# para um site onde estes diretrios esto restritos a somente-leitura. Veja
# detalhes sobre as opes de acesso, e limites na seo sobre controle
# de acesso do guia
#
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order deny,allow
Deny from all
80

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

</Limit>
</Directory>
#
# As vezes ocorrem relatos de pessoas tentando abusar de uma falha antiga nos
# dias do Apache 1.1 (muitas pginas na Net documentam isso). Esta falha envolve
# um script CGI distribudo como parte do Apache. Descomentando estas linhas voc
# poder redirecionar estes ataques a um script de registro em phf.apache.org. Ou
# poder gravar em sua prpria mquina, usando o script support/phf_abuse_log.cgi.
#
#<Location /cgi-bin/phf*>
# Deny from all
# ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
#</Location>

# Acesso aos servios proxy do Apache:


#<Directory proxy:*>
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#</Directory>
# A seguinte diretiva permite o acesso de todos os usurios ao contedo da pgina
# do guia Foca GNU/Linux exceto os que possuem navegadores MSIE piscando
# Veja a seo sobre restries de acesso para detalhes sobre a diretiva de
# controle de acesso baseado no user-agent
SetEnvIf User-Agent MSIE EXPLODER
<Directory /var/www/focalinux>
Options Indexes
Order allow,deny
allow from all
deny from env=EXPLODER
ErrorDocument 403 "Explorer no entra, pgina com o contedo potencialmente perigoso ao Windows, use um navegador seguro para ter acesso a esta pgina piscando.
</Directory>
# A diretiva abaixo somente permite acesso a leitura do arquivo
# h-supor-fonte.txt a pessoas que fornecerem o nome/senha corretos
# que constam no arquivo passwd1.
# Este bloco contm um erro que a localizao do arquivo da senha em um
# diretrio pblico, voc dever adapt-lo se no quiser se ver em apuros.
#
# A permisso do diretrio de nvel superior prevalece sobre seus
# sub-diretrios, no caso as permisses de /focalinux, a menos que
# sejam definidas opes de acesso especficas ao arquivo abaixo
<Location /focalinux/humor/h-supor-fonte.txt>
AuthName "Piada de fonte de alimentao"
81

CDTC

Centro de Difuso de Tecnologia e Conhecimento

AuthType basic
AuthUserFile /home/gleydson/public_html/passwd1
Require valid-user
# Satisfy all
</Location>
# Libera o acesso a localizao /debian (acessada atravs de /pub/mirror/debian,
# definida no Alias acima)
<Location /debian>
Options Indexes
Order deny,allow
allow from all
deny from all
</Location>

4.5.3 srm.conf
# Neste arquivo so definidos o espao de nomes que os usurios visualizaro no
# seu servidor http. Este arquivo tambm define configuraes do servidor que
# afetam como as requisies so servidas e como os resultados devero ser
# formatados.
# Veja os tutoriais em http://www.apache.org/ para mais detalhes
# DocumentRoot: O diretrio principal onde voc servira seus documentos.
# Por padro, todas as requisies so tomadas atravs deste diretrio,
# exceto links simblicos e aliases que podem ser usados para apontar para
# outras localizaes no sistema de arquivos.
DocumentRoot /var/www
#
# UserDir: O nome do diretrio que ser adicionado ao diretrio home do usurio
# caso uma requisio usurio seja recebida.
#
<IfModule mod_userdir.c>
# Linha abaixo por recomendao de segurana do manual do Apache
UserDir disabled root
UserDir public_html
</IfModule>

#
# DirectoryIndex: Nome do arquivo ou arquivos que sero usados como ndice do
# diretrio. Especifique mais de um arquivos separados por espaos ao invs
# de s um nome (como "index") para aumentar a performance do servidor.
#
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.shtml index.cgi
82

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

</IfModule>
#
# Diretivas que controlam a exibio de listagem de diretrios geradas pelo servidor.
#
<IfModule mod_autoindex.c>
#
# FancyIndexing: se voc deseja o padro fancy index ou padro para a indexao
# de arquivos no diretrio. Usando FancyIndexing o servidor
# Apache gerar uma listagem de arquivos que poder ser
# ordenada, usar tipos de cones e encoding, etc. Veja as
# prximas opes.
IndexOptions FancyIndexing
#
# As diretivas AddIcon* dizem ao servidor que cone mostrar para um determinado
# arquivo ou extenso de arquivos. Estes somente so mostrados para os
# diretrios classificados atravs da opo FancyIndexing.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif */core
AddIcon /icons/deb.gif .deb Debian
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
83

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

AddIcon /icons/folder.gif ^^DIRECTORY^^


AddIcon /icons/blank.gif ^^BLANKICON^^
# DefaultIcon o cone que ser mostrado para aplicativos que no tiverem um
# cone explicitamente definido.
DefaultIcon /icons/unknown.gif
#
# AddDescription: isto lhe permite colocar uma curta descrio aps um arquivo
# nos ndices gerados pelo servidor. Estes somente so mostrados para diretrios
# com ndices organizados usando a opo FancyIndexing.
# Formato: AddDescription "descrio"extenso
#
#AddDescription "GZIP compressed document".gz
#AddDescription "tar archive".tar
#AddDescription "GZIP compressed tar archive".tgz

# ReadmeName o nome do arquivo LEIAME que o servidor procurar como


# padro. Estes sero inseridos no fim da listagem de diretrios.
Formato: ReadmeName nome
#
# O servidor procurar primeiro por nome.html,e o incluir se ele for encontrado,
# e ento procurar pelo nome e o incluir como texto plano se encontrado.
ReadmeName README
# HeaderName o nome do arquivo que deve ser colocado no topo do ndice
# de diretrios. As regras de procura de nome so as mesmas do arquivo
# README
HeaderName HEADER
#
# IndexIgnore: um conjunto de nomes de arquivos que a listagem de diretrios
# deve ignorar e no incluir na listagem. permitido o uso de coringas
# como no interpretador de comandos.
#
IndexIgnore .??* * *# HEADER* README* RCS CVS *,v *,t
</IfModule>
# AccessFileName: O nome do arquivo que ser procurado em cada diretrio
# que contm detalhes sobre as permisses de acesso a um determinado
# diretrio e opes de listagem. Tenha cuidado ao modificar o nome
# deste arquivo, muitas definies que trabalham em cima do nome
# .htaccess nos arquivos de configurao devero ser modificados para
# no comprometer a segurana de seu servidor.
84

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

# Uma falta de ateno neste ponto poder deixar este arquivo visvel
# em qualquer listagem de diretrios facilmente.
AccessFileName .htaccess
# TypesConfig especifica o arquivo de configurao que contm os tipos
# usados pelo servidor
TypesConfig /etc/mime.types
#
# DefaultType o tipo MIME padro que o servidor utilizar para um documento
# caso ele no possa determinar seu contedo, como atravs de extenses
# de arquivos. Se o servidor contm em sua maioria texto ou documentos em HTML,
# "text/plain" um bom valor. Caso a maioria do contedo seja binrio, tal
# como aplicativos ou fotos, o tipo mais adequado ao seu caso poder ser
# "application/octet-stream"para evitar que navegadores tentem exibir
# aplicativos binrios como se fossem texto.
# Se desejar uma referncia rpida sobre tipos mime, consulte o arquivo
# /etc/mime.types .
#
DefaultType text/plain
#
# Document types.
#
<IfModule mod_mime.c>
# AddEncoding permite que alguns navegadores (Mosaic/X 2.1+, Netscape, etc)
# descompactem dados durante sua abertura. N
# Nota: Nem todos os navegadores suportam isto. Esquea os nomes parecidos,
# as seguintes diretivas Add* no tem nada a ver com personalizaes
# da opo FancyIndexing usada nas diretivas acima.
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
#
# AddLanguage: permite especificar o idioma do documento. Voc pode
# ento usar a negociao de contedo para dar ao navegador um
# arquivo no idioma solicitado.
#
# Nota 1: O sufixo no precisa ser o mesmo da palavra chave do
# idioma estes com o documento em Polons (no qual o
# cdigo padro da rede pl) pode desejar usar "AddLanguage pl .po"
# para evitar confuso de nomes com a extenso comum de scripts
# scripts em linguagem Perl.
#
# Nota 2: As entradas de exemplos abaixo mostram que em alguns casos
85

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

# as duas letras de abreviao do Idioma no so idnticas s duas letras


# do Pas para seu pas, como Danmark/dk versus Danish/da.
#
# Nota 3: No caso de ltz ns violamos a RFC usando uma especificao de
# trs caracteres. Mas existe um trabalho em progresso para corrigir isto
# e obter os dados de referncia para limpar a RFC1766.
#
# Danish (da) - Dutch (nl) - English (en) - Estonian (ee)
# French (fr) - German (de) - Greek-Modern (el)
# Italian (it) - Portugese (pt) - Luxembourgeois* (ltz)
# Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz)
# Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja)
#
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
# AddCharset ISO-2022-JP .jis
AddLanguage pl .po
# AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
# LanguagePriority: permite definir a prioridade para a exibio de
# documentos caso nenhum documento confira durante a negociao de
# contedo.
#
# Para fazer isto, especifique os idiomas em ordem de preferncia de exibio
# de idiomas.
#
<IfModule mod_negotiation.c>
LanguagePriority pt-br pt es en da nl et fr de el it ja pl ltz ca sv
</IfModule>
#
# AddType permite modificar o mime.types sem editar o arquivo, ou fazer
# a associao de arquivos a certos tipos de contedo.
#
86

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

# Por exemplo, o mdulo PHP 3.x (que no faz parte da distribuio do


# Apache - veja http://www.php.net) tipicamente utiliza isto:
#
#AddType application/x-httpd-php3 .php3
#AddType application/x-httpd-php3-source .phps
#
# E para arquivos PHP 4.x use:
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
AddType application/x-tar .tgz
AddType image/bmp .bmp
# hdml
AddType text/x-hdml .hdml
#
# AddHandler permite mapear certas extenses de arquivos a programas
# "manipuladores"adequados a seu contedo. Estes podem ser construdos
# no servidor ou adicionados com o comando Action (veja abaixo).
#
# Se desejar usar includes no lado do servidor, ou servir diretrios
# com scripts CGI para fora, descomente as seguintes linhas.
#
# Para usar scripts CGI:
#
#AddHandler cgi-script .cgi .sh .pl
#
# Para usar arquivos html gerados atravs do servidor:
#
#AddType text/html .shtml
#AddHandler server-parsed .shtml
#
# Descomente as seguintes linhas para ativar as caractersticas de arquivos
# send-asis HTTP do servidor Apache:
#
#AddHandler send-as-is asis
#
# Se desejar usar arquivos de mapas de imagens processadas no servidor, use:
#
#AddHandler imap-file map
#
# Para ativar tipo de mapas, voc poder usar:
87

Brasil/DF

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

#
#AddHandler type-map var
</IfModule>
# Fim dos tipos de documentos
# Preferncias padres de exibio de caracteres (veja http://www.apache.org/info/css-security/).
AddDefaultCharset on
AddDefaultCharsetName iso-8859-1
# Redirect permite dizer aos clientes que documentos no existem mais no seu servidor
# e a nova localizao do documento.
# Format: Redirect nomeurl url
# "nomeurl" o caminho especificado na url e "url" a nova localizao do
# documento.
# Aliases: Inclua aqui quantos apelidos voc desejar (sem limite) o formato :
# Alias nomeurl nomereal.
# "nomeurl" o caminho especificado na url e "nomereal" a localizao
# do documento no sistema de arquivos local.
# Note que se voc incluir uma / no fim de "nomeurl", ento o servidor
# requisitar que tambm esteja presente na URL.
Alias /icons/ /usr/share/apache/icons/
Alias /doc/ /usr/doc/
Alias /focalinux /var/www/focalinux
Alias /debian-br /var/www/debian-br/htdocs
Alias /debian /pub/mirror/debian
# ScriptAlias: Esta diretiva controla que diretrios contm scripts do servidor.
# Format: ScriptAlias fakename realname
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
#
# Action: permite definir os tipos de mdia que executaro um script quando um
# arquivo que conferir for chamado. Isto elimina a necessidade de caminhos de URLs
# repetidas para processadores de arquivos CGI freqentemente usados.
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
#
#
# MetaDir: especifica o nome do diretrio no qual o Apache procurar arquivos de
# detalhes do mdulo mod_cern_meta. Os mdulos meta contm cabealhos HTTP
# adicionais que sero includos durante o envio do documento.
88

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

#
#MetaDir .web
#
# Resposta de erros personalizada (no estilo do Apache).
# Estas podem ser 3 tipos:
#
# 1) texto plano
#ErrorDocument 500 "O servidor fez boo boo.
# n.b. a aspa (") marca como texto, ela no ser exibida.
#
# 2) redirecionamentos locais
#ErrorDocument 404 /missing.html
# para redirecionar para a URL local /missing.html
#ErrorDocument 404 /cgi-bin/missing_handler.pl
# N.B.: tambm possvel redirecionar a um script o documento usando includes
# do lado do servidor (server-side-includes).
#
# 3) redirecionamentos externos
#ErrorDocument 402 http://algum.outro_servidor.com/inscricao.html
# N.B.: Muitas das variveis de ambientes associada com a requisio atual *no*
# estaro disponveis para tal script.
#
# O mdulo mod_mime_magic permite o servidor usar vrias dicas atravs do contedo
# do arquivo para determinar o seu tipo. A diretiva MIMEMagicFile diz ao mdulo
# onde as definies de dicas esto localizadas. O mdulo mod_mime_magic no
# parte do servidor padro Apache (voc precisar adicion-lo manualmente com
# uma linha LoadModule (veja o pargrafo DSO na seo Ambiente Global no
# arquivo httpd.conf), ou recompile o servidor e inclua mod_mime_magic como
# parte de sua configurao), por este motivo ele est entre as condicionais
# <IfModule>. Isto significa que a diretiva MIMEMagicFile somente ser processada
# caso o mdulo esteja ativo no servidor.
#
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>

<IfModule mod_setenvif.c>
#
# As seguintes diretivas modificam o funcionamento da resposta normal do
# servidor HTTP.
# A primeira diretiva desativa o keepalive para o Netscape 2.x e navegadores que
# as falsificam. Existem problemas conhecidos com estas implementaes de
# navegadores. A segunda diretiva para o MS IE 4.0b2 que tem uma implementao
# defeituosa do HTTP/1.1 e no suporta adequadamente o keepalive quando ele
# utiliza as respostas de redirecionamento 301 e 302.
89

CDTC

Centro de Difuso de Tecnologia e Conhecimento

#
BrowserMatch "Mozilla/2"nokeepalive

BrowserMatch "MSIE 40b2;"nokeepalive


downgrade-1.0 force-response-1.0
#
# As seguintes diretivas desativam as respostas HTTP/1.1 para navegadores que
# violam a especificao HTTP/1.0 no sendo capaz de enviar uma resposta
# 1.1 bsica.
#

BrowserMatch "RealPlayer 40"force-response-1.0

BrowserMatch "Java/10"force-response-1.0

BrowserMatch "JDK/10"force-response-1.0
</IfModule>
# Se o mdulo Perl est instalado, isto ser ativado.
<IfModule mod_perl.c>
Alias /perl/ /var/www/perl/
<Location /perl>
Options +ExecCGI
SetHandler perl-script
PerlHandler Apache::Registry
</Location>
</IfModule>

90

Brasil/DF

You might also like