Você está na página 1de 174

Table of Contents

..............................................................................................................................................................................1
1 Introduo................................................................................................................................................3
1.1 Verso......................................................................................................................................3
1.2 Um resumo da Histria do Apache..........................................................................................4
1.3 Enviando Correes/Contribuindo com o projeto...................................................................4
1.4 Caractersticas do Apache........................................................................................................5
1.5 Ficha tcnica............................................................................................................................5
1.6 Requerimentos.........................................................................................................................7
1.7 Arquivos de log criados pelo Apache......................................................................................7
2 Instalao..................................................................................................................................................8
2.1 Iniciando o servidor/reiniciando/recarregando a configurao................................................8
2.2 Opes de linha de comando.................................................................................................10
2.3 Configurando a porta padro do Apache...............................................................................11
2.4 Especificando as interfaces que o Apache atender..............................................................11
2.4.1 Especificando endereos/portas adicionais (a diretiva Listen)..........................................13
3 Adicionando uma pgina no Apache....................................................................................................14
3.1 Pgina Raiz............................................................................................................................14
3.2 Subpginas...........................................................................................................................14
4 Especificando opes/permisses para as pginas..............................................................................16
5 Restries de Acesso..............................................................................................................................26
5.1 Autorizao............................................................................................................................26
5.2 Autenticao..........................................................................................................................34
5.2.1 Criando um arquivo de Senhas..........................................................................................34
Apache
i
Table of Contents
5 Restries de Acesso
5.2.2 Autenticao atravs de usurios......................................................................................36
5.2.3 Autenticao usando grupos..............................................................................................39
5.3 Usando autorizao e autenticao juntos.............................................................................41
5.3.1 Acesso diferenciado em uma mesma diretiva...................................................................43
5.4 O arquivo .htaccess................................................................................................................45
5.5 Usando a diretiva SetEnvIf com Allow e Deny.....................................................................49
5.6 A diretiva <Limit>.................................................................................................................50
5.7 Diretiva <LimitExcept>.........................................................................................................52
6 Definindo documentos de erro personalizados....................................................................................53
7 Mdulos DSO.........................................................................................................................................55
8 Sistema de Log do Apache....................................................................................................................60
8.1 A diretiva AgentLog..............................................................................................................60
8.2 A diretiva ErrorLog................................................................................................................60
8.3 A diretiva CustomLog...........................................................................................................61
8.4 A diretiva RefererLog............................................................................................................62
8.5 A diretiva RewriteLog...........................................................................................................62
8.6 A diretiva RewriteLogLevel..................................................................................................63
8.7 A diretiva ScriptLog..............................................................................................................63
8.8 A diretiva ScriptLogBuffer....................................................................................................64
8.9 A diretiva ScriptLogLength...................................................................................................64
8.10 A diretiva TransferLog..............................................................................................................64
8.11 A diretiva LogFormat................................................................................................................65
8.12 A diretiva LogLevel...................................................................................................................67
8.13 A diretiva Anonymous_LogEmail.............................................................................................68
Apache
ii
Table of Contents
8 Sistema de Log do Apache
8.14 A diretiva CookieLog................................................................................................................68
8.15 Relatrio grfico de acesso ao sistema......................................................................................69
Apndice A. O programa webalizer poder ser instalado para gerar um relatrio grfico com a
estatsticas de visitas por ano/mes/dia/hora usando os dados do access.log. Outra interessante
caracterstica so as estatsticas de cdigos http (veja Apndice B, Licena de Publicao Livre.........70
9 Configurando o Apache como servidor proxy....................................................................................75
9.1 Controlando o acesso ao servidor proxy................................................................................79
9.2 Redirecionamento de conexes no Apache...........................................................................79
10 Virtual Hosts...............................................................................................................................................81
10.1 Virtual hosts baseados em IP.....................................................................................................81
10.2 Virtual hosts baseados em nome................................................................................................84
10.3 Segurana no uso de IP's em Virtual Hosts...............................................................................86
11 Uso de criptografia SSL.............................................................................................................................89
11.1 Servidor apache com suporte a ssl.............................................................................................89
11.2 Gerando um certificado digital..................................................................................................90
11.3 Exemplo de configurao do mdulo modssl..........................................................................90
11.4 Autorizando acesso somente a conexes SSL...........................................................................95
11.5 Iniciando o servidor Web com suporte a SSL...........................................................................96
12 Exemplo comentado de um arquivo de configurao do Apache..........................................................98
12.1 O arquivo httpd.conf..................................................................................................................98
12.2 O arquivo srm.conf..................................................................................................................123
12.3 O arquivo access.conf..............................................................................................................148
Apache
iii
Table of Contents
Apndice B. Licena de Publicao Livre................................................................................................163
Apndice C. Cdigos de retorno HTTP...................................................................................................168
Apache
iv
o:p 1
Apache
o:p 2
1 Introduo
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
O 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 CGI, banco de dados web,
preenchimento de formulrios, etc).
O Apache um servidor Web extremamente configurvel, robusto e de alta performance desenvolvido por
uma equipe de voluntrios (conhecida como Apache Group), buscando criar um servidor web com muitos
recursos e com cdigo fonte disponvel gratuitamente via Internet. Segundo a Netcraft
(http://www.netcraft.com/survey/), o Apache mais usado que todos os outros servidores web do mundo
juntos.
Esta apostila documenta a configurao, personalizao, introduo aos mecanismos de autenticao e
controle de acesso do Apache, sistema proxy, virtual hosting, e exemplos de configurao do servidor httpd.
Ela no tem como objetivo ser uma referncia completa de configurao, mas sim abordar didaticamente o
assunto.
Esta apostila no tenta ser um guia completo ao Apache, mas tentar mostrar como sua estrutura organizada,
as diretivas principais de configurao, diretivas de segurana, virtual hosting, proxy, o uso de utilitrios de
gerenciamento do servidor, como personalizar algumas partes do servidor e programas teis de terceiros para
anlise e diagnstico do servidor web. No deixe tambm de ver o captulo 12 Exemplo comentado de um
arquivo de configurao do Apache, que contm muitas explicaes interessantes e faz parte do aprendizado.
1.1 Verso
assumido que esteja usando a verso 1.3.22 do Apache. As explicaes contidas aqui podem funcionar para
verses posteriores, mas recomendado que se leia a documentao sobre modificaes no programa
1 Introduo 3
(changelog) em busca de mudanas que alterem o sentido das explicaes fornecidas aqui.
1.2 Um resumo da 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).
1.3 Enviando Correes/Contribuindo com o projeto
Um formulrio est disponvel na Web para o envio de correes/sugestes em
http://www.apache.org/bug_report.html. Uma lista de anncios sobre o Apache est disponvel em
<apacheannounce@apache.org> que divulga correes, novas verses e realizao de eventos.
Mais detalhes sobre o desenvolvimento do Apache podem ser obtidos na URL http://dev.apache.org.
Apache
1.2 Um resumo da Histria do Apache 4
1.4 Caractersticas do Apache
Abaixo esto algumas caractersticas que fazem desse servidor web o preferido entre os administradores de
sistemas:
Suporte a scripts CGI usando linguagens como PHP, Perl, ASP, Shell Script, etc;
Mdulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursos
sem necessidade de recompilao do programa;

Autenticao, requerendo um nome de usurio e senha vlidos para acesso a alguma
pgina/subdiretrio/arquivo (suportando criptografia via Crypto e MD5). Suporte autorizao de
acesso, podendo ser especificadas restries de acesso separadamente para cada
endereo/arquivo/diretrio acessado no servidor;

Suporte a virtual hosting, por nome ou endereo IP: 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 servidor proxy ftp e http, com limite de acesso, caching (todas flexvelmente
configurveis). Suporte a proxy e redirecionamentos baseados em URLs para endereos internos;

Suporte a criptografia via SSL, certificados digitais;
Negociao de contedo, permitindo a exibio da pgina Web no idioma requisitado pelo Cliente
Navegador.

Suporte a tipos mime;
Personalizao de logs.
1.5 Ficha tcnica
Utilitrios:
apache: Servidor Web Principal;
apachectl: Shell script que faz interface com o apache de forma mais amigvel;
Apache
1.4 Caractersticas do Apache 5
apacheconfig: Script em Perl para configurao interativa bsica do Apache;
htpasswd: Cria/Gerencia senhas criptografadas Crypto/MD5;
htdigest: Cria/Gerencia senhas criptografadas Crypto/MD5;
dbmmanage: Cria/Gerencia senhas em formato DBM (Perl);
logresolve: Faz um DNS reverso dos arquivos de log do Apache para obter o endereo de hosts com
base nos endereos IP's;
ab: Apache Benchmarcking Ferramenta de medida de desempenho do servidor Web
Apache.
Por padro, os arquivos de configurao do Apache residem no diretrio /etc/apache:
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 o uso dos 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. Um exemplo
Apache
1.4 Caractersticas do Apache 6
comentado desses trs arquivos de configurao encontrado no captulo 12 Exemplo comentado de um
arquivo de configurao do Apache.
1.6 Requerimentos
A mquina mnima para se rodar um servidor Apache para atender a uma rede padro 10MB/s um Pentium
90, 24MB de memria RAM, um HD com um bom desempenho e espao em disco 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, AMD K6 ou 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.
1.7 Arquivos de log criados pelo Apache
O servidor httpd grava seus arquivos de log geralmente em /var/log/apache, no possvel descrever os
arquivos de log usados porque tanto seus nomes como contedo podem ser personalizados no arquivo
httpd.conf. Mesmo assim, os arquivos de log encontrados na instalao padro do Apache so os seguintes:
access.log: Registra detalhes sobre o acesso s pginas do servidor httpd.
error.log: Registra detalhes dos erros de acesso s pginas ou erros internos do servidor.
agent.log: Registra o nome do navegador do cliente (campo UserAgent do cabealho http).
Mais referncias podem ser encontradas no captulo 8 Sistema de Log do Apache. Um bom programa para
gerao de estatsticas de acesso com grficos mencionado na seo 0
Relatrio grfico de acesso ao sistema.
Apache
1.6 Requerimentos 7
2 Instalao
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
aptget install apache apachedoc
O pacote apachedoc contm a documentao de referencia do Apache, recomendvel installo se for
desejado entender melhor seu funcionamento ou consultar diretivas.
2.1 Iniciando o servidor/reiniciando/recarregando a
configurao
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 por exemplo um relatrio de trfego para a porta do servidor
web. 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 captulo, 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/, etc). 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:
2 Instalao 8
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.
reloadmodules: Recarrega os mdulos. Basicamente feito um restart no servidor.
forcereload: Faz a mesma funo que o reload
Para reiniciar o Apache usando o /etc/init.d/apache, digite:
./etc/init.d/apache restart
ou
cd /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:
httpdserver/start: Inicia o Apache
Apache
2 Instalao 9
stop: Finaliza o Apache (enviando um sinal TERM)
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).
2.2 Opes de linha de comando
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.
Apache
2.2 Opes de linha de comando 10
h: Mostra o help online 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).
2.3 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 (veja o captulo 2.4.1 Especificando endereos/portas adicionais (a diretiva
Listen) para mais detalhes).
OBS:: Somente uma diretiva Port e um argumento podero ser especificados. Para mais controle sobre as
portas do sistema use a diretiva Listen.
2.4 Especificando as interfaces que o Apache atender
A diretiva BindAddress usada para especificar os endereos IP das interfaces ou endereos FQDN em que o
Apache responder s requisies. Mais de um endereo pode ser especificado, separados por espaos. Caso
no seja definido, o Apache assumir o valor "*" (atender requisies vindas de qualquer interface).
Apache
2.3 Configurando a porta padro do Apache 11
OBS1: permitido usar somente uma diretiva BindAddress. A diretiva Listen dever ser usada se desejar
mais controle sobre as portas do servidor web. Veja a seao seguinte para maiores detalhes.
OBS2: As interfaces especificadas pela diretiva Listen substituir as especificadas em BindAddress.
Exemplos:
Apache
2.3 Configurando a porta padro do Apache 12
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.
2.4.1 Especificando endereos/portas adicionais (a diretiva Listen)
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.
Apache
2.4.1 Especificando endereos/portas adicionais (a diretiva Listen) 13
3 Adicionando uma pgina no Apache
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
Existem dois tipos de pginas que podem ser adicionadas ao Apache: a pgina raz e subpginas.
3.1 Pgina Raiz
A pgina raiz especificada atravs da diretiva DocumentRoot e ser mostrada quando se entrar no domnio
principal, como http://www.focalinux.org. Na configurao padro do Apache, DocumentRoot aponta para o
diretrio /var/www. Este diretrio ser assumido como raiz caso os diretrios no sejam iniciados por uma /:
home/focalinux: Aponta para /var/www/home/focalinux
/home/focalinux: Aponta para /home/focalinux
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 s pginas em
/var/www (veja o captulo 5 Restries de Acesso para maiores detalhes).
3.2 Subpginas
Subpginas so armazenadas abaixo do diretrio da pgina raiz, como http://www.focalinux.org/download.
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 subdiretrio, 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
3 Adicionando uma pgina no Apache 14
http://www.focalinux.org/iniciante que aponta para o diretrio /home/focalinux/download/iniciante no disco
local, basta usar a seguinte diretiva no srm.conf:
Alias /iniciante /home/focalinux/download/iniciante
Pode ser necessrio permitir o acesso nova pgina, caso o servidor tenha uma configurao restritiva por
padro (veja o captulo 5 Restries de Acesso para maiores detalhes). Aps isto, faa o servidor httpd reler
os arquivos de configurao ou reinicilo. Aps isto, a pgina /home/focalinux/download/iniciante estar
acessvel via http://www.focalinux.org/iniciante.
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 a URL http://www.focalinux.org/doc/, o uso da URL
http://www.focalinux.org/doc retornar uma mensagem de URL no encontrada.
Apache
3 Adicionando uma pgina no Apache 15
4 Especificando opes/permisses para as
pginas
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
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>
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:
4 Especificando opes/permisses para as pginas 16
<DirectoryMatch "^/www/.*">
Order deny,allow
deny from all
<DirectoryMatch>
Bloquear o acesso ao diretrio /www e subdiretrios 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>
Apache
4 Especificando opes/permisses para as pginas 17
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.
Apache
4 Especificando opes/permisses para as pginas 18
Location: As restries afetaro o diretrio base especificado na URL e seus subdiretrios. Por exemplo:
<Location /security>
Order allow,deny
</Location>
Bloqueia o acesso de todos os usurios ao diretrio /security da URL (a explicao porque o acesso
bloqueado neste caso ser explicado na seo 5.1 Autorizao).
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>)
Apache
4 Especificando opes/permisses para as pginas 19
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.
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
Apache
4 Especificando opes/permisses para as pginas 20
<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 subdiretrios, a no ser que sejam
especificadas opes separadas para o subdiretrio:
<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
Ao acessar o diretrio /var/www/focalinux, as permisses usadas sero de /var/www, ao menos que uma
diretiva <Directory> ou <Location> seja especificada:
<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
Apache
4 Especificando opes/permisses para as pginas 21
<Directory /var/www/focalinux>
Options Includes
</Directory>
As opes e restries de acesso de /var/www/focalinux sero EXATAMENTE as especificadas no bloco da
diretiva <Directory /var/www/focalinux> 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/focalinux>
Options +Includes Indexes
</Directory>
As opes Indexes e FollowSymLinks so definidas para o diretrio /var/www, ento as permisses do
diretrio /var/www/focalinux 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>:
Apache
4 Especificando opes/permisses para as pginas 22
<Directory /var/www>
Order allow,deny
allow from all
<Files LEIAMEDONO.txt>
Order deny,allow
deny from all
</Files>
</Directory>
Neste caso, somente os arquivos LEIAMEDONO.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>
Apache
4 Especificando opes/permisses para as pginas 23
Options Indexes FollowSymLinks
<Directory /var/www/focalinux>
Options +Includes Indexes
</Directory>
</Directory>
O correto :
<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
<Directory /var/www/focalinux>
Options +Includes Indexes
</Directory>
Espero que tenha observado o erro no exemplo acima.
Apache
4 Especificando opes/permisses para as pginas 24
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 subdiretrios! Defina permisses de
subdiretrios 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.
Apache
4 Especificando opes/permisses para as pginas 25
5 Restries de Acesso
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
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.
5.1 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 subdiretrios 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
Order allow,deny
allow from all
deny from .spammers.com.br
</Location>
A opo Option foi explicada acima, seguem as explicaes das outras diretivas:
5 Restries de Acesso 26
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:
o 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 seja especificadas, ou no
conferirem, PERMITE TUDO como padro.
o 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 especificada, ou no conferirem, BLOQUEIA
TUDO como padro.
o mutualfailure 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, desde que 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 conferiram e 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
Apache
5 Restries de Acesso 27
administrador, e podem simplesmente no funcionar caso a opo Order no esteja ajustada corretamente
(lembrese, 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:
o all O acesso permitido a todos.
o um endereo de domnio completo (FQDN). Por exemplo www.debian.org.br.
o 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.
o um endereo IP completo, como 192.168.1.1
o um endereo IP parcial como 192.168.1.
o um par rede/mscara como 10.1.0.0/255.255.0.0 ou 10.1.0.0/16, uma faixa de acesso a 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
Apache
5 Restries de Acesso 28
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, significa
que o servidor Web no tem permisses para acessar/abrir o diretrio da pgina. Certifiquese que o dono e
grupo do processo Apache (especificado pela diretiva User e Group) possuem permisses de acesso quele
diretrio.
Abaixo alguns exemplos de permisses de acesso:
<Directory /var/www>
Options SymLinksIfOwnerMatch Indexes MultiViews
Order allow,deny
allow from all
</Directory>
Apache
5 Restries de Acesso 29
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>
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 /focalinux>
Apache
5 Restries de Acesso 30
Options All
Order allow,deny
allow from all
</Location>
A regra acima permite o acesso a URL http://www.servidor.org/focalinux 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 leiamearm.txt, leiamealpha.txt, leiamem68k.txt, leiamesparc.txt e
leiamepowerpc.txt fazendo uso de expresses regulares.
Apache
5 Restries de Acesso 31
<Directory /var/www>
Options Indexes
Order mutualfailure
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
</Directory>
Bloqueia o acesso ao diretrio /var/www de computadores pertencentes aos domnios .com e .com.br.
Apache
5 Restries de Acesso 32
<Directory /var/www>
Options None
Order deny,allow
allow from 192.168.1. .metainfo.org .debian.org
deny from 200.200.123.
</Directory>
A regra acima permite o acesso de mquinas da rede 192.168.1.*, do domnio *.metainfo.org e *.debian.org, o
acesso de mquinas da rede 200.200.123.* bloqueado (nada contra, peguei nesse nmero ao acaso :).
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. .metainfo.org .debian.org
deny from 200.200.123.
</Directory>
Apache
5 Restries de Acesso 33
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 *.metainfo.org e
*.debian.org.
Note que a mquina 192.168.4.10 ter acesso BLOQUEADO a 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.
5.2 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.
5.2.1 Criando um arquivo de Senhas
O arquivo de senhas pode ser criado e mantido atravs do uso de 3 utilitrios: htpasswd, htdigest e
dbmmanage:
5.2.1.1 O 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:
htpasswd c m senhas convidado
Voc ser perguntado por uma senha para o usurio convidado e para redigitla. A opo "c" indica que
dever ser criado um arquivo, a opo "m" indica a utilizao de senhas criptografadas usando o algoritmo
Apache
5.2 Autenticao 34
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).
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 a 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):
htpasswd m senhas convidado
ou
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.
5.2.1.2 O 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
Apache
5.2.1 Criando um arquivo de Senhas 35
arquivo DB, DBM, GDBM e NDBM, formatos conhecidos pelo Perl.
5.2.2 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. Para restringir o acesso ao
endereo http://servidor.org/teste:
<Location /teste>
AuthName "Acesso pgina do Foca Linux"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
# AuthGroupFile /home/users/SenhaGrupo
Require validuser
</Location>
Ao tentar acessar o endereo http://servidor/teste, ser aberta uma janela no navegador com o ttulo Enter
username for Acesso pgina do Foca Linux at servidor.org, a diretiva Require validuser 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).
Apache
5.2.2 Autenticao atravs de usurios 36
AuthType Especifica o mtodo de que o nome e senha sero passados ao servidor. Este mtodo de
autenticao pode ser Basic ou Digest
o 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.
o 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:
o Require user usurio1 usurio2 usurio3 Somente os usurios especificados so considerados
vlidos para ter acesso ao diretrio.
o 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).
o Require validuser 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.
Apache
5.2.2 Autenticao atravs de usurios 37
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 Foca Linux"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
Require user gleydson
</Location>
As explicaes so idnticas a anterior, mas somente permite o acesso do usurio gleydson a URL
http://servidor.org/teste, bloqueando o acesso de outros usurios contidos no arquivo AuthUserFile.
<Location /teste>
AuthName "Acesso a pgina do Foca Linux"
AuthType basic
Apache
5.2.2 Autenticao atravs de usurios 38
AuthUserFile /home/gleydson/SenhaUsuario
Require user gleydson usuario1 usuario2
</Location>
<Location /teste>
AuthName "Acesso a pgina do Foca Linux"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
Require user gleydson
Require user usuario1
Require user usuario2
</Location>
As 2 especificaes acima so equivalentes e permite o acesso aos usurios gleydson, usuario1 e usuario2 a
pgina http://servidor.org/teste.
5.2.3 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 validuser 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
Apache
5.2.3 Autenticao usando grupos 39
com vrios usurios na diretiva Require user.
Quando existe esta situao, recomendado o uso de grupos de usurios. Para fazer uso desse recurso,
primeiro dever ser criado um arquivo quer 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 Foca Linux"
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.
Apache
5.2.3 Autenticao usando grupos 40
OBS1: Verifique se o servidor Web possui acesso a 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 contm 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 se estiver desejando ocultar dados de
olhos curiosos...
5.3 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
Apache
5.3 Usando autorizao e autenticao juntos 41
allow from .dominiolocal.com.br
deny from all
AuthName "Acesso ao diretrio do servidor Web"
AuthType basic
AuthUserFile /var/cache/apache/senhas
Require validuser
</Directory>
Para ter acesso ao diretrio /var/www, primeiro o computador deve fazer parte do domnio
.dominiolocal.com.br, assim ela passa pelo teste de autorizao, depois disso ser necessrio fornecer o login
e senha para acesso a pgina, digitando o login e senha corretos, o teste de autenticao ser completado com
sucesso e o acesso ao diretrio /var/www autorizado.
<Directory /var/www>
Options Indexes
Order mutualfailure
allow from .dominiolocal.com.br
deny from lammer.dominiolocal.com.br
AuthName "Acesso ao diretrio do servidor Web"
Apache
5.3 Usando autorizao e autenticao juntos 42
AuthType basic
AuthUserFile /var/cache/apache/senhas
AuthGroupFile /var/cache/apache/grupos
Require group admins
</Directory>
No exemplo acima, usado o mtodo de autorizao com a opo Order mutualfailure e o mtodo de
autenticao atravs de grupos. Primeiro verificado se o usurio pertence ao domnio .dominiolocal.com.br
e se ele no est acessando da mquina lammer.dominiolocal.com.br, neste caso ele passa pelo teste de
autorizao. Depois disso ele precisar fornecer o nome e senha vlidos, com o login pertencente ao
AuthGroupFile, passando pelo processo de autenticao e obtendo acesso ao diretrio /var/www.
5.3.1 Acesso diferenciado em uma mesma diretiva
interessante permitir usurios fazendo conexes de locais confiveis terem acesso direto sem precisar
fornecer nome e senha e de locais inseguros acessarem somente aps comprovarem quem realmente so.
Como o caso de permitir usurios de uma rede privada terem 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 mutualfailure
Apache
5.3.1 Acesso diferenciado em uma mesma diretiva 43
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 de ter acesso a 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, poder 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.
Apache
5.3.1 Acesso diferenciado em uma mesma diretiva 44
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 usala, hehehe).
A falta de ateno nisto pode comprometer silenciosamente a segurana de seu sistema.
5.4 O arquivo .htaccess
Apache
5.4 O arquivo .htaccess 45
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.).
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).
Apache
5.4 O arquivo .htaccess 46
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 seqencia 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
Apache
5.4 O arquivo .htaccess 47
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 validuser
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 pgina (Erro
interno no servidor)...
Apache
5.4 O arquivo .htaccess 48
5.5 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 poder ser facilmente interpretado como: Se o "atributo" especificado conter a "expresso", a "varivel"
ser criada e armazenar o valor verdadeiro. Veja abaixo:
SetEnvIf UserAgent ".*MSIE*." EXPLODER
<Directory /var/www>
Order deny,allow
allow from all
deny from env=EXPLODER
</Directory>
Se o Navegador (campo UserAgent 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).
Apache
5.5 Usando a diretiva SetEnvIf com Allow e Deny 49
permitido especificar as diretivas de acesso normais junto com especificao de variveis de ambiente, basta
separalos com espaos. Uma descrio completa dos cabealhos HTTP, contedo e parmetros aceitos por
cada um so descritos na RFC 2068.
5.6 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
casesensitive. 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>
Apache
5.6 A diretiva <Limit> 50
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 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>
Apache
5.6 A diretiva <Limit> 51
</Directory>
5.7 Diretiva <LimitExcept>
Esta diretiva semelhante a <Limit>, mas atinge todos os mtodos HTTP, menos os especificados.
Apache
5.7 Diretiva <LimitExcept> 52
6 Definindo documentos de erro personalizados
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
Documentos de erro 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, Section 11.15 como referncia).
O cdigo de erro 401 deve referirse 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 /cgibin/erros404.pl Direciona para um script em Perl que manda um email 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.
6 Definindo documentos de erro personalizados 53
ErrorDocument 500 "Erro Interno no servidor" Mostra na tela a mensagem "Erro Interno no servidor"
quando ocorrer o erro 500.
ErrorDocument 401 /obtendoacesso.html Direciona o usurio ao arquivo explicando como obter
acesso ao sistema.
ErrorDocument 503 http://www.debian.org/error.html Redireciona o usurio a URL especificada.
ErrorDocument 403 "Acesso negado" Mostra na tela a mensagem "Acesso negado" no caso de erros
403.
Apache
6 Definindo documentos de erro personalizados 54
7 Mdulos DSO
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
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 adicionado sem problemas atravs deste recurso.
Os mdulos so carregados atravs da diretiva LoadModule no arquivo de configurao. O formato o
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 o mdulo php3_module,
que deve ser carregado antes de qualquer mdulo de controle de CGI's). 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 a
seo 12.1 O arquivo 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
7 Mdulos DSO 55
o mdulo mod_auth carregado. Mais detalhes podem ser encontrados na seo 5.1 Autorizao. OBS: 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 estiver 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 do Apache, os mdulos marcados com "*" so
ativados por padro:
Apache
7 Mdulos DSO 56
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 dinmicamente configurados em massa.
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 BerkeleyDB)
Apache
7 Mdulos DSO 57
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 UserAgent HTTP (depreciado)
mod_log_refer Registro especializado do Referrer HTTP (depreciado)
mod_usertrack Registro de cliques de usurios atravs de Cookies HTTP
Outros
Apache
7 Mdulos DSO 58
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)
Apache
7 Mdulos DSO 59
8 Sistema de Log do Apache
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
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 as suas necessidades particulares de logging.
8.1 A diretiva AgentLog
AgentLog arquivo/pipe indica o nome do arquivo que registrar o nome do navegador que est acessando a
pgina (contedo do cabealho UserAgent). 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
8.2 A diretiva ErrorLog
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.
8 Sistema de Log do Apache 60
Exemplo:
ErrorLog /var/log/apache/errors.log
8.3 A diretiva 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. Veja a seo 0
A diretiva LogFormat para maiores detalhes.
Ao invs de especificar o formato, tambm possvel usar um apelido definido pela opo LogFormat (veja
0
A diretiva LogFormat), neste caso os parmetros definidos pelo LogFormat para "nome" sero atribudos a
diretiva CustomLog.
Exemplos:
CustomLog /var/log/apache/common.log "%h %l %u %t \"%r\" %>s %b"
Apache
8.3 A diretiva CustomLog 61
CustomLog /var/log/apache/common.log common
8.4 A diretiva 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 "%{Referer}i > %U" referer
CustomLog /var/log/apache/referer.log referer
Exemplo:
RefererLog /var/log/apache/referer.log
8.5 A diretiva 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.
Apache
8.4 A diretiva RefererLog 62
Exemplo:
RewriteLog "/usr/local/var/apache/logs/rewrite.log
8.6 A diretiva 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 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.
8.7 A diretiva 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 subprocesso 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
Apache
8.6 A diretiva RewriteLogLevel 63
8.8 A diretiva 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
8.9 A diretiva 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
8.10 A diretiva 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 ou o formato
padro do arquivo de log do Apache.
Se omitido, o arquivo no ser gerado
Exemplo:
Apache
8.8 A diretiva ScriptLogBuffer 64
TransferLog /var/log/apache/transferncias.log
8.11 A diretiva 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.
%{FOOBAR}e 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.
%{Foobar}i O contedo de Foobar: linhas de cabealho na requisio enviada ao servidor.
Apache
8.11 A diretiva LogFormat 65
%l O nome de login remoto enviado pelo identd (se fornecido).
%{Foobar}n O contedo de "FooBar" de outro mdulo.
%{Foobar}o O contedo de Foobar: linhas de cabealho na resposta.
%p A porta do servidor servindo a requisio.
%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).
%{format}t 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:
Apache
8.11 A diretiva LogFormat 66
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{UserAgent}i\" %T %v" full
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{UserAgent}i\" %P %T" debug
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{UserAgent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i > %U" referer
LogFormat "%{Useragent}i" agent
8.12 A diretiva 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.
Apache
8.12 A diretiva LogLevel 67
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.
8.13 A diretiva 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
8.14 A diretiva CookieLog
Especifica o arquivo que ser usado para registrar os cookies
OBS1: Caso o caminho do arquivo no for 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.
Apache
8.13 A diretiva Anonymous_LogEmail 68
Exemplo:
CookieLog /var/log/apache/cookies.log
8.15 Relatrio grfico de acesso ao sistema
Apache
8.15 Relatrio grfico de acesso ao sistema 69
Apndice A. O programa webalizer poder ser
instalado para gerar um relatrio grfico com a
estatsticas de visitas por ano/mes/dia/hora usando
os dados do access.log. Outra interessante
caracterstica so as estatsticas de cdigos http
(veja Apndice B, Licena de Publicao Livre
Esta uma traduo nooficial da Open Publication License verso 1.0, de 8 de junho de 1999, e no
substituto legal para a Licena original, disponvel em http://www.opencontent.org/openpub. Entretanto, esta
traduo poder auxiliar pessoas que falem Portugus a entender melhor a licena. permitido a qualquer
pessoa copiar e distribuir cpias desse documento de licena, desde que sem a implementao de qualquer
mudana.
OPEN PUBLIC LICENSE
Draft v1.0, 8 june 1999
I. Requisitos comuns s verses modificadas e no modificadas
Os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) podem ser reproduzidos
e distribudos no todo ou em parte, em qualquer meio fsico ou eletrnico, desde que os termos desta licena
estejam includos, e que esta licena ou uma incorporao dela por referncia (com quaisquer das opes
escolhidas pelo autor ou editor) estejam presentes na reproduo.
Apndice A. O programa webalizer poder ser instalado para gerar um relatrio grfico com a estatsticas de visitas por ano/mes/dia/hora usando os dados do access.log. Outra interessante caracterstica so as estatsticas de cdigos http (veja [if supportFields]><spanstyle='msoelement:fieldbegin'></span> REF _Ref15853235 \r \h <spanstyle='msoelement:fieldseparator'></span><![endif]Apndice B[if gte mso 9]><xml><w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600310035003800350033003200330035000000</w:data></xml><![endif][if supportFields]><span style='msoelement:fieldend'></span><![endif],[if supportFields]><span style='msoelement:fieldbegin'></span><spanstyle="msospacerun: yes"> </span>REF _Ref15853235 \h <span style='msoelement:fieldseparator'></span><![endif] Licena de Publicao Livre 70
A forma apropriada para uma incorporao por referncia deste livro :
Copyright 2002 Alfamdia Ltda. Este material somente poder ser distribudo se sujeito aos termos e
condies firmados na Licena de Livre Publicao (Open Publication License), verso 1.0 ou superior (a
verso mais atual encontrase disponvel em http://www.opencontent.org/openpub/).
Esta referncia, devidamente preenchida com os dados da publicao, deve ser seguida imediatamente com
quaisquer opes escolhidas pelos autores ou editor do documento (consultar a seo Termos opcionais).
permitida a redistribuio comercial de material licenciado pela Licena de Livre Publicao (Open
Publication License).
Qualquer publicao no formato livro padro (papel) requer obrigatoriamente a citao dos autores e editor
originais. Os nomes dos autores e do editor devem aparecer em todas as superfcies externas do livro. Em
todas as faces externas do livro, o nome do editor original deve estar impresso em tamanho to grande quanto
o ttulo do trabalho, e citado como proprietrio em relao quele ttulo.
II. Copyright
O copyright de todo trabalho protegido pela Licena de Livre Publicao (Open Publication License) pertence
aos autores ou proprietrios.
III. Escopo da licena
Os termos de licena a seguir aplicamse a todos os trabalhos protegidos pela Licena de Livre Publicao
(Open Publication License), a no ser que explicitamente indicado no trabalho.
Apache
Apndice A. O programa webalizer poder ser instalado para gerar um relatrio grfico com a estatsticas de visitas por ano/mes/dia/hora usando os dados do access.log. Outra interessante caracterstica so as estatsticas de cdigos http (veja [if supportFields]><spanstyle='msoelement:fieldbegin'></span> REF _Ref15853235 \r \h <spanstyle='msoelement:fieldseparator'></span><![endif]Apndice B[if gte mso 9]><xml><w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600310035003800350033003200330035000000</w:data></xml><![endif][if supportFields]><span style='msoelement:fieldend'></span><![endif],[if supportFields]><span style='msoelement:fieldbegin'></span><spanstyle="msospacerun: yes"> </span>REF _Ref15853235 \h <span style='msoelement:fieldseparator'></span><![endif] Licena de Publicao Livre 71
A mera adio de trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) ou partes
de trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) em uma mesma mdia
que contenha outros trabalhos ou programas no protegidos por essa licena no decorre em aplicao da
Licena de Livre Publicao (Open Publication License) para esses outros trabalhos. O trabalho resultante
deve explicitamente conter uma nota especificando a incluso do material protegido pela Licena de Livre
Publicao (Open Publication License) e o aviso de copyright apropriado.
APLICABILIDADE. Se alguma parte desta licena no puder ser aplicada em alguma jurisdio, as partes
restantes deste documento continuam sendo aplicadas.
AUSNCIA DE GARANTIA. Os trabalhos protegidos pela Licena de Livre Publicao (Open Publication
License) so fornecidos "como esto", sem garantias de qualquer tipo, explcita ou implcita, incluindo, mas
no limitado a, as garantias implcitas de comercializao e convenincia para um propsito particular, ou
garantia de noinfrao.
IV. Requisitos para trabalhos modificados
Todas as verses modificadas de documentos cobertos por esta licena, incluindo tradues, antologias,
compilaes e documentao parcial, deve seguir os requisitos abaixo:
A verso modificada deve ser indicada como tal.
As pessoas que fizerem as modificaes e as datas de modificao devem ser identificadas.
O reconhecimento dos autores e editor originais (se aplicvel) deve ser mantido de acordo com as prticas
acadmicas usuais de citao.
O local da verso nomodificada do documento deve ser indicado.
Os nomes originais dos autores no devem ser utilizados para indicar ou garantir seu endosso ao documento
resultante sem a autorizao expressa dos autores.
Apache
Apndice A. O programa webalizer poder ser instalado para gerar um relatrio grfico com a estatsticas de visitas por ano/mes/dia/hora usando os dados do access.log. Outra interessante caracterstica so as estatsticas de cdigos http (veja [if supportFields]><spanstyle='msoelement:fieldbegin'></span> REF _Ref15853235 \r \h <spanstyle='msoelement:fieldseparator'></span><![endif]Apndice B[if gte mso 9]><xml><w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600310035003800350033003200330035000000</w:data></xml><![endif][if supportFields]><span style='msoelement:fieldend'></span><![endif],[if supportFields]><span style='msoelement:fieldbegin'></span><spanstyle="msospacerun: yes"> </span>REF _Ref15853235 \h <span style='msoelement:fieldseparator'></span><![endif] Licena de Publicao Livre 72
V. Prticas recomendadas
Em adio aos requisitos desta licena, solicitado e extremamente recomendado aos redistribuidores que:
Se os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) estiverem sendo
distribudos em impressos ou CDROM, os autores sejam informados por email, ao menos trinta dias antes,
para que os autores tenham tempo de providenciar documentao atualizada. Esta notificao deve descrever
as modificaoes introduzidas no documento, se existirem.
Todas as modificaes substanciais (incluindo excluses) devem ser marcadas claramente no documento, ou
ento descritas em um anexo ao documento.
Finalmente, mesmo no sendo obrigatrio sob esta licena, considerado de bom tom oferecer uma cpia sem
nus de todo o material modificado (impresso e CDROM) para os autores originais.
VI. Termos opcionais
Os autores e editores de documentos protegidos pela Licena de Livre Publicao (Open Publication License)
podem escolher certas opes de licena simplesmente incluindo alguns pargrafos aps a cpia da licena ou
sua referncia. Estas opes so consideradas parte da licena e devem ser includas com ela (ou com a
referncia a ela) nos trabalhos derivados.
As opes que se aplicam a este trabalho so:
A: vedada a distribuio de verses com modificaes substanciais deste documento sem a expressa
permisso dos proprietrios do direito autoral.
B: vedada a distribuio deste trabalho ou qualquer derivado seu em qualquer formato de livro padro
(papel) sem a prvia autorizao dos proprietrios do direito autoral.
Apache
Apndice A. O programa webalizer poder ser instalado para gerar um relatrio grfico com a estatsticas de visitas por ano/mes/dia/hora usando os dados do access.log. Outra interessante caracterstica so as estatsticas de cdigos http (veja [if supportFields]><spanstyle='msoelement:fieldbegin'></span> REF _Ref15853235 \r \h <spanstyle='msoelement:fieldseparator'></span><![endif]Apndice B[if gte mso 9]><xml><w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600310035003800350033003200330035000000</w:data></xml><![endif][if supportFields]><span style='msoelement:fieldend'></span><![endif],[if supportFields]><span style='msoelement:fieldbegin'></span><spanstyle="msospacerun: yes"> </span>REF _Ref15853235 \h <span style='msoelement:fieldseparator'></span><![endif] Licena de Publicao Livre 73
Polticas de Publicao Livre
(O texto a seguir no considerado parte da licena.)
Os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) esto disponveis e
podem ser acessados na home page da Open Publication http://works.opencontent.org/ .
Os autores de trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) podem
incluir suas prprias licenas nesses trabalhos, desde que os termos dessa licena no sejam mais restritrivos
que os da Licena de Livre Publicao (Open Publication License).
Em caso de dvidas sobre a Licena de Livre Publicao (Open Publication License), contactar David Wiley
<dw2@opencontent.org> ou a lista de autores de publicaes <opal@opencontent.org> via
email.
Para se inscrever na lista de autores de publicaes livres (Open Publication Author's List), mande um email
para <opalrequest@opencontent.org> com a palavra subscribe no corpo da mensagem.
Para enviar mensagens para a lista de autores de publicaes livres (Open Publication Author's List), mande
um email para opal@opencontent.org ou simplesmente responda a uma mensagem postada.
Para se desinscrever na lista de autores de publicaes livres (Open Publication Author's List), mande um
email para opalrequest@opencontent.org com a palavra unsubscribe no corpo da mensagem.
Cdigos de retorno HTTP), onde possvel saber a quantidade de links quebrados existentes em nosso
servidor (estes podero ser detectados usando o pacote de anlise de sites linbot). O webalizer tambm
compatvel com os formatos de log do squid e proftpd. Na distribuio Debian ele pode ser instalado a partir
do pacote webalizer e gera um relatrio geral quando executado sem opes.
Apache
Apndice A. O programa webalizer poder ser instalado para gerar um relatrio grfico com a estatsticas de visitas por ano/mes/dia/hora usando os dados do access.log. Outra interessante caracterstica so as estatsticas de cdigos http (veja [if supportFields]><spanstyle='msoelement:fieldbegin'></span> REF _Ref15853235 \r \h <spanstyle='msoelement:fieldseparator'></span><![endif]Apndice B[if gte mso 9]><xml><w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600310035003800350033003200330035000000</w:data></xml><![endif][if supportFields]><span style='msoelement:fieldend'></span><![endif],[if supportFields]><span style='msoelement:fieldbegin'></span><spanstyle="msospacerun: yes"> </span>REF _Ref15853235 \h <span style='msoelement:fieldseparator'></span><![endif] Licena de Publicao Livre 74
9 Configurando o Apache como servidor proxy
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
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 interessante 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
9 Configurando o Apache como servidor proxy 75
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>
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.
Apache
9 Configurando o Apache como servidor proxy 76
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
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 para a rede externa, desta
forma, se uma requisio 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
Apache
9 Configurando o Apache como servidor proxy 77
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 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, IP's 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.
Apache
9 Configurando o Apache como servidor proxy 78
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 (veja 9.2 Redirecionamento de conexes no Apache).
9.1 Controlando o acesso ao servidor proxy
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>
Para explicaes sobre o processo de bloqueio acima, veja a seo 5.1 Autorizao.
9.2 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 redirecionalo a outra mquina e as respostas so
repassadas ao servidor web (para o cliente a mesma mquina esta atendendo a requisio, para voc o
processamento das requisies esta sendo distribudo internamente na rede).
Apache
9.1 Controlando o acesso ao servidor proxy 79
As seguintes diretivas so usadas para realizar o redirecionamento de conexes: ProxyPass e
ProxyPassReverse
ProxyPass [diretrio_da_url [outro_servidor:/diretrio] 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.focalinux.org e desejamos que a URL http://www.focalinux.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.focalinux.org/download/iniciante ser atendida por
http://192.168.1.54/iniciante.
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.focalinux.org/download/iniciante antes de ser retornada ao cliente.
Apache
9.1 Controlando o acesso ao servidor proxy 80
10 Virtual Hosts
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
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 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 o funcionamento deste recurso (praticamente
todos os navegadores atuais possuem este suporte).
As explicaes desta seo so baseadas na documentao do Apache.
10.1 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 site1 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
10 Virtual Hosts 81
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 wwwdata
Group wwwdata
</VirtualHost>
Apache
10 Virtual Hosts 82
<VirtualHost www.site2.com.br>
ServerName www.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>
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 que o nome do servidor retornado usando o valor em ServerName quando o cliente digita um
endereo qualquer.
OBS2: Utilize sempre que possvel endereos IP em configuraes crticas, assim os servios no sero to
vulnerveis a possveis falsificaes ou erros. Leia a seo 10.3Segurana no uso de IP's em Virtual Hosts.
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.
Apache
10 Virtual Hosts 83
10.2 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 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
Apache
10.2 Virtual hosts baseados em nome 84
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.
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
<VirtualHost 200.200.200.10>
VirtualDocumentRoot /var/www/%0
VirtualScriptAlias /var/www/%0/cgibin
TransferLog log/apache/site1/access.log
ErrorLog log/apache/site1/error.log
Apache
10.2 Virtual hosts baseados em nome 85
</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. Leia a seo 10.3Segurana no uso de IP's em Virtual Hosts.
OBS2: No permita que outros usurios a no ser o root e o dono do processo Apache (especificado pela
diretiva User) tenha 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.
10.3 Segurana no uso de IP's 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
Apache
10.3 Segurana no uso de IP's em Virtual Hosts 86
(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@cipsga.org.br
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@cipsga.org.br
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 (www.site1.com.br). Se ele falhar,
somente a seo <VirtualHost> correspondente ser desativada. Isto j uma melhoria sobre a primeira
Apache
10.3 Segurana no uso de IP's em Virtual Hosts 87
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.
1.
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 manipularem seu prprio domnio DNS, no h nada que
possa impedilo 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.
2.
Utilize endereos IP na diretiva <VirtualHost>. 3.
Use endereos IP na diretiva Listen. 4.
Use um endereo IP na diretiva BindAddress. 5.
Sempre utilize o parmetro ServerName em todas as diretivas <VirtualHost>, isto evita o retorno
incorreto de nomes (que pode evitar/revelar fraudes).
6.
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.
7.
Apache
10.3 Segurana no uso de IP's em Virtual Hosts 88
11 Uso de criptografia SSL
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
Esta seo uma referncia rpida para configurao e uso do mdulo apachessl 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
quanto 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 buscadas na documentao deste mdulo ou em sites especializados
( um assunto muito longo).
11.1 Servidor apache com suporte a ssl
Ao invs de utilizar o mdulo apachessl, voc poder usar o pacote apachessl, 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.
11 Uso de criptografia SSL 89
11.2 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
modsslmakecert 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 em
Usando pgp (gpg)para criptografia de arquivos, Section 17.5.
OBS No utilize acentos nos dados de seu certificado.
11.3 Exemplo de configurao do mdulo modssl
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
Apache
11.2 Gerando um certificado digital 90
# 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
# A linha abaixo fora o fechamento de conexes quando a
# conexo com o navegador Internet Explorer interrompida. Isto
Apache
11.2 Gerando um certificado digital 91
# 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 UserAgent ".*MSIE.*" nokeepalive ssluncleanshutdown
</VirtualHost>
</IfModule>
#################################################################################
# Adicionalmente podero ser especificadas as seguintes opes para modificar #
# o comportamento da seo SSL (veja mais detalhes na documentao do modssl) #
#################################################################################
# Formato e localizao do cache paralelo de processos da seo. O cache de seo
# feito internamente pelo mdulo mas esta diretiva acelera o processamento
Apache
11.2 Gerando um certificado digital 92
# de requisies paralelas feitas por modernos clientes navegadores. Por padro
# nenhum cache usado ("none").
SSLSessionCache dbm:/var/run/sslcache
# Localizao do arquivo de lock que o mdulo SSL utiliza para
# sincronizao entre processos. O padro nenhum.
SSLMutex file:/var/run/sslmutex
# Especifica o mtodo de embaralhamento de dados que ser utilizado
# durante o inicio 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
Apache
11.2 Gerando um certificado digital 93
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/xx509cacert .crt
AddType application/xpkcs7crl .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
# SSLv2, SSLv3 TLSv1 ou all. O mais compatvel com os navegadores atuais
# o "SSLv2". Por padro "all" usado.
Apache
11.2 Gerando um certificado digital 94
#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/sslmod.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).
11.4 Autorizando acesso somente a conexes SSL
Existem casos que precisa 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
Apache
11.4 Autorizando acesso somente a conexes SSL 95
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.
11.5 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 seo 2.1 Iniciando o servidor/reiniciando/recarregando a configurao. 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 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
Apache
11.5 Iniciando o servidor Web com suporte a SSL 96
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.keyCsenha
openssl rsa in server.keyCsenha 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.
Apache
11.5 Iniciando o servidor Web com suporte a SSL 97
12 Exemplo comentado de um arquivo de
configurao do Apache
Adaptado do Guia Foca GNU/Linux Avanado Captulo 11.
O exemplo abaixo foi retirado da distribuio Debian GNU/Linux, fiz sua traduo, modificaes e inclui
alguns comentrios sobre as diretivas para deixalo mais de acordo com o contedo abordado pelo guia e
mais autoexplicativo.
A configurao do Apache est distribuda nos arquivos httpd.conf, srm.conf e access.conf, e podem ser
usados como modelo para a construo da configurao de seu servidor.
12.1 O arquivo 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://www.metainfo.org/focalinux <gleydson@cipsga.org.br>
12 Exemplo comentado de um arquivo de configurao do Apache 98
#
# 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
# online 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.
#
# Configurao e nomes de arquivos de log: Se os nomes de arquivos que
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 99
# 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 usa a funcionalidade de um mdulo que foi construdo como
# um mdulo compartilhado, ser necessrio adicionar as linhas 'LoadModule'
# correspondente a sua localizao, assim as diretivas que os mdulos contm
# estaro disponveis _antes_ de serem usadas.
# Exemplo:
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 100
#
# 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
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 101
# IP's
# 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.
# No SCO (ODT 3) use "User nouser" e "Group nogroup"
# No HPUX voc pode no ser capaz de usar memria compartilhada como nobody, e
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 102
# sugerido que seja criado um usurio www e executar o servidor httpd como
# este usurio, adequando as permisses onde necessrias.
User wwwdata
Group wwwdata
# ServerAdmin: Seu endereo de email, onde os problemas com o servidor devem ser
# enviadas. Este endereo aparecer nas mensagens de erro do servidor.
ServerAdmin gleydson@cipsga.org.br
#
# 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
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 103
# 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 *
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 104
#
# 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 (estticamente 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
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
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 105
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
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 106
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
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 107
# 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 de o Apache gerar detalhes completos de status
# (ExtendedStatus On) ou apenas detalhes bsicos (ExtendedStatus Off) quando o
# manipulador (handler) "serverstatus" for usado. O padro Off.
#
ExtendedStatus on
#
# ErrorLog: A localizao do arquivo de log de erros.
# Se no estiver especificando a diretiva ErrorLog dentro de <VirtualHost>,
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 108
# 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
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 109
# diretiva CustomLog (veja abaixo).
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{UserAgent}i\" %T %v" full
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{UserAgent}i\" %P %T" debug
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{UserAgent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i > %U" referer
LogFormat "%{Useragent}i" 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.
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 110
#
#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
#
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 111
# 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
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 112
# 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
#
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 113
# 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 modificala no caso do diretrio de logs
# for 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 for diferente do nome real (por exemplo, se desejar usar
# www ao invs do nome real de seu servidor).
#
# Nota: Voc no pode simplesmente inventar nomes e esperar que funcionem. O nome
# que definir dever ser um nome DNS vlido para sua mquina.
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 114
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
# deixala 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: nocache com cada
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 115
# 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 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
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 116
# 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
# servidores esparsos para manipular requisies transientes (ex. requisies
# simultneas mltiplas de um navegador Netscape simples).
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 117
# 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,
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 118
# 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.
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 119
#
# 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
# VirtualHost: Permite o daemon responder a requisies para mais que um
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 120
# 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.comerror.log
#TransferLog /var/log/apache/host.some_domain.comaccess.log
#</VirtualHost>
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 121
# 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:
Apache
12 Exemplo comentado de um arquivo de configurao do Apache 122
# 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.comerror.log
# CustomLog logs/host.some_domain.comaccess.log common
#</VirtualHost>
#<VirtualHost _default_:*>
#</VirtualHost>
12.2 O arquivo srm.conf
# Neste arquivo so definidos o espao de nomes que os usurios visualizaro no
Apache
12.2 O arquivo srm.conf 123
# 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 for recebida.
#
Apache
12.2 O arquivo srm.conf 124
<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 um s um nome (como "index") para aumentar a performance do servidor.
#
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.shtml index.cgi
</IfModule>
Apache
12.2 O arquivo srm.conf 125
#
# 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
Apache
12.2 O arquivo srm.conf 126
# arquivo ou extenso de arquivos. Estes somente so mostrados para os
# diretrios classificados atravs da opo FancyIndexing.
#
AddIconByEncoding (CMP,/icons/compressed.gif) xcompress xgzip
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
Apache
12.2 O arquivo srm.conf 127
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
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
Apache
12.2 O arquivo srm.conf 128
# 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
Apache
12.2 O arquivo srm.conf 129
# 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, includo se ele for encontrado,
# e ento procurar pelo nome e incluir ele 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
#
Apache
12.2 O arquivo srm.conf 130
# 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.
# Uma falta de ateno neste ponto poder deixar este arquivo visvel
# em qualquer listagem de diretrios facilmente...
Apache
12.2 O arquivo srm.conf 131
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 binrios, tal
# como aplicativos ou fotos, o tipo mais adequado ao seu caso poder ser
# "application/octetstream" para evitar que navegadores tentem exibir
# aplicativos binrios como se fossem texto.
# Se desejar uma referncia rpida sobre tipos mime, consulte o arquivo
Apache
12.2 O arquivo srm.conf 132
# /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 xcompress Z
Apache
12.2 O arquivo srm.conf 133
AddEncoding xgzip 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
# as duas letras de abreviao do 'Idioma' no idntico as duas letras
# do 'Pas' para seu pas, como 'Danmark/dk' versus 'Danish/da'.
Apache
12.2 O arquivo srm.conf 134
#
# 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) GreekModern (el)
# Italian (it) Portugese (pt) Luxembourgeois* (ltz)
# Spanish (es) Swedish (sv) Catalan (ca) Czech(cz)
# Polish (pl) Brazilian Portuguese (ptbr) Japanese (ja)
#
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
Apache
12.2 O arquivo srm.conf 135
AddLanguage de .de
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
# AddCharset ISO2022JP .jis
AddLanguage pl .po
# AddCharset ISO88592 .isopl
AddLanguage pt .pt
AddLanguage ptbr .ptbr
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
# LanguagePriority: permite definir a prioridade para a exibio de
Apache
12.2 O arquivo srm.conf 136
# 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 ptbr 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.
#
# Por exemplo, o mdulo PHP 3.x (que no faz parte da distribuio do
# Apache veja http://www.php.net) tipicamente utiliza isto:
Apache
12.2 O arquivo srm.conf 137
#
#AddType application/xhttpdphp3 .php3
#AddType application/xhttpdphp3source .phps
#
# E para arquivos PHP 4.x use:
#
#AddType application/xhttpdphp .php
#AddType application/xhttpdphpsource .phps
AddType application/xtar .tgz
AddType image/bmp .bmp
# hdml
AddType text/xhdml .hdml
#
Apache
12.2 O arquivo srm.conf 138
# 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 cgiscript .cgi .sh .pl
#
# Para usar arquivos html gerados atravs do servidor
#
#AddType text/html .shtml
#AddHandler serverparsed .shtml
Apache
12.2 O arquivo srm.conf 139
#
# Descomente as seguintes linhas para ativar a caractersticas de arquivos
# sendasis HTTP do servidor Apache
#
#AddHandler sendasis asis
#
# Se desejar usar arquivos de mapas de imagens processadas no servidor, use
#
#AddHandler imapfile map
#
# Para ativar tipo de mapas, voc poder usar
#
#AddHandler typemap var
Apache
12.2 O arquivo srm.conf 140
</IfModule>
# Fim dos tipos de documentos
# Preferncias padres de exibio de caracteres (veja http://www.apache.org/info/csssecurity/).
AddDefaultCharset on
AddDefaultCharsetName iso88591
# Redirect permite dizer aos cliente 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 :
Apache
12.2 O arquivo srm.conf 141
# 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 /debianbr /var/www/debianbr/htdocs
Alias /debian /pub/mirror/debian
# ScriptAlias: Esta diretiva controla que diretrios contm scripts do servidor.
# Format: ScriptAlias fakename realname
Apache
12.2 O arquivo srm.conf 142
ScriptAlias /cgibin/ /usr/lib/cgibin/
#
# 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 /cgiscript/location
# Format: Action handlername /cgiscript/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.
#
#MetaDir .web
Apache
12.2 O arquivo srm.conf 143
#
# 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 /cgibin/missing_handler.pl
# N.B.: tambm possvel redirecionar a um script o documento usando includes
# do lado do servidor (serversideincludes).
#
Apache
12.2 O arquivo srm.conf 144
# 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 adicionalo 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 estiver ativo no servidor.
#
Apache
12.2 O arquivo srm.conf 145
<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.
#
BrowserMatch "Mozilla/2" nokeepalive
Apache
12.2 O arquivo srm.conf 146
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade1.0 forceresponse1.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 4\.0" forceresponse1.0
BrowserMatch "Java/1\.0" forceresponse1.0
BrowserMatch "JDK/1\.0" forceresponse1.0
</IfModule>
# Se o mdulo Perl est instalado, isto ser ativado.
<IfModule mod_perl.c>
Alias /perl/ /var/www/perl/
<Location /perl>
Apache
12.2 O arquivo srm.conf 147
Options +ExecCGI
SetHandler perlscript
PerlHandler Apache::Registry
</Location>
</IfModule>
12.3 O arquivo access.conf
# access.conf: Configurao de acesso Global
# Documentos online 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).
Apache
12.3 O arquivo access.conf 148
#
# 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>
Apache
12.3 O arquivo access.conf 149
# 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.
Apache
12.3 O arquivo access.conf 150
order allow,deny
allow from all
</Directory>
#
# O diretrio "/usr/lib/cgibin" deve ser modificado para o diretrio que
# possuem seus scripts CGI, caso tenha configurado o suporte a CGI's no
# servidor.
#
<Directory /usr/lib/cgibin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
Apache
12.3 O arquivo access.conf 151
</Directory>
#
# Permite ver relatrios de status e funcionamento do servidor web e
# processos filhos, atravs da URL http://servidor/serverstatus
# isto requer o mdulo status_module (mod_status.c) carregado no arquivo
# httpd.conf
#
#<Location /serverstatus>
# SetHandler serverstatus
# Order deny,allow
# Deny from all
# Allow from .meudominio.org
#</Location>
#
Apache
12.3 O arquivo access.conf 152
# Permite relatrio de configurao remota do servidor, atravs da URL
# http://servername/serverinfo
# Isto requer o mdulo info_module (mod_info.c) carregado no arquivo
# httpd.conf
#
#<Location /serverinfo>
# SetHandler serverinfo
# 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
Apache
12.3 O arquivo access.conf 153
Order allow,deny
Allow from all
</Directory>
# 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
Apache
12.3 O arquivo access.conf 154
#
<location /throttleinfo>
SetHandler throttleinfo
</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.
#
Apache
12.3 O arquivo access.conf 155
<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 somenteleitura. 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
Apache
12.3 O arquivo access.conf 156
Allow from all
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order deny,allow
Deny from all
</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 /cgibin/phf*>
Apache
12.3 O arquivo access.conf 157
# 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 a todos os usurios ao contedo da pgina
# do guia Foca GNU/Linux exceto os que possuem navegadores MSIE ;)
# Veja a seo sobre restries de acesso para detalhes sobre a diretiva de
# controle de acesso baseado no useragent
Apache
12.3 O arquivo access.conf 158
SetEnvIf UserAgent 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 ;)
</Directory>
# A diretiva abaixo somente permite acesso a leitura do arquivo
# hsuporfonte.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 adaptalo se no quiser se ver em apuros.
#
Apache
12.3 O arquivo access.conf 159
# A permisso do diretrio de nvel superior prevalece sobre seus
# subdiretrios no caso as permisses de /focalinux, a menos que
# sejam definidas opes de acesso especficas ao arquivo abaixo
<Location /focalinux/humor/hsuporfonte.txt>
AuthName "Piada de fonte de alimentao"
AuthType basic
AuthUserFile /home/gleydson/public_html/passwd1
Require validuser
# 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
Apache
12.3 O arquivo access.conf 160
allow from all
deny from all
</Location>
Apache
12.3 O arquivo access.conf 161
Apache
12.3 O arquivo access.conf 162
Apndice B. Licena de Publicao Livre
Esta uma traduo nooficial da Open Publication License verso 1.0, de 8 de junho de 1999, e no
substituto legal para a Licena original, disponvel em http://www.opencontent.org/openpub. Entretanto, esta
traduo poder auxiliar pessoas que falem Portugus a entender melhor a licena. permitido a qualquer
pessoa copiar e distribuir cpias desse documento de licena, desde que sem a implementao de qualquer
mudana.
OPEN PUBLIC LICENSE
Draft v1.0, 8 june 1999
I. Requisitos comuns s verses modificadas e no modificadas
Os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) podem ser reproduzidos
e distribudos no todo ou em parte, em qualquer meio fsico ou eletrnico, desde que os termos desta licena
estejam includos, e que esta licena ou uma incorporao dela por referncia (com quaisquer das opes
escolhidas pelo autor ou editor) estejam presentes na reproduo.
A forma apropriada para uma incorporao por referncia deste livro :
Copyright 2002 Alfamdia Ltda. Este material somente poder ser distribudo se sujeito aos termos e
condies firmados na Licena de Livre Publicao (Open Publication License), verso 1.0 ou superior (a
verso mais atual encontrase disponvel em http://www.opencontent.org/openpub/).
Apndice B. Licena de Publicao Livre 163
Esta referncia, devidamente preenchida com os dados da publicao, deve ser seguida imediatamente com
quaisquer opes escolhidas pelos autores ou editor do documento (consultar a seo Termos opcionais).
permitida a redistribuio comercial de material licenciado pela Licena de Livre Publicao (Open
Publication License).
Qualquer publicao no formato livro padro (papel) requer obrigatoriamente a citao dos autores e editor
originais. Os nomes dos autores e do editor devem aparecer em todas as superfcies externas do livro. Em
todas as faces externas do livro, o nome do editor original deve estar impresso em tamanho to grande quanto
o ttulo do trabalho, e citado como proprietrio em relao quele ttulo.
II. Copyright
O copyright de todo trabalho protegido pela Licena de Livre Publicao (Open Publication License) pertence
aos autores ou proprietrios.
III. Escopo da licena
Os termos de licena a seguir aplicamse a todos os trabalhos protegidos pela Licena de Livre Publicao
(Open Publication License), a no ser que explicitamente indicado no trabalho.
A mera adio de trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) ou partes
de trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) em uma mesma mdia
que contenha outros trabalhos ou programas no protegidos por essa licena no decorre em aplicao da
Licena de Livre Publicao (Open Publication License) para esses outros trabalhos. O trabalho resultante
deve explicitamente conter uma nota especificando a incluso do material protegido pela Licena de Livre
Publicao (Open Publication License) e o aviso de copyright apropriado.
APLICABILIDADE. Se alguma parte desta licena no puder ser aplicada em alguma jurisdio, as partes
restantes deste documento continuam sendo aplicadas.
Apache
Apndice B. Licena de Publicao Livre 164
AUSNCIA DE GARANTIA. Os trabalhos protegidos pela Licena de Livre Publicao (Open Publication
License) so fornecidos "como esto", sem garantias de qualquer tipo, explcita ou implcita, incluindo, mas
no limitado a, as garantias implcitas de comercializao e convenincia para um propsito particular, ou
garantia de noinfrao.
IV. Requisitos para trabalhos modificados
Todas as verses modificadas de documentos cobertos por esta licena, incluindo tradues, antologias,
compilaes e documentao parcial, deve seguir os requisitos abaixo:
A verso modificada deve ser indicada como tal.
As pessoas que fizerem as modificaes e as datas de modificao devem ser identificadas.
O reconhecimento dos autores e editor originais (se aplicvel) deve ser mantido de acordo com as prticas
acadmicas usuais de citao.
O local da verso nomodificada do documento deve ser indicado.
Os nomes originais dos autores no devem ser utilizados para indicar ou garantir seu endosso ao documento
resultante sem a autorizao expressa dos autores.
V. Prticas recomendadas
Em adio aos requisitos desta licena, solicitado e extremamente recomendado aos redistribuidores que:
Se os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) estiverem sendo
distribudos em impressos ou CDROM, os autores sejam informados por email, ao menos trinta dias antes,
para que os autores tenham tempo de providenciar documentao atualizada. Esta notificao deve descrever
as modificaoes introduzidas no documento, se existirem.
Apache
Apndice B. Licena de Publicao Livre 165
Todas as modificaes substanciais (incluindo excluses) devem ser marcadas claramente no documento, ou
ento descritas em um anexo ao documento.
Finalmente, mesmo no sendo obrigatrio sob esta licena, considerado de bom tom oferecer uma cpia sem
nus de todo o material modificado (impresso e CDROM) para os autores originais.
VI. Termos opcionais
Os autores e editores de documentos protegidos pela Licena de Livre Publicao (Open Publication License)
podem escolher certas opes de licena simplesmente incluindo alguns pargrafos aps a cpia da licena ou
sua referncia. Estas opes so consideradas parte da licena e devem ser includas com ela (ou com a
referncia a ela) nos trabalhos derivados.
As opes que se aplicam a este trabalho so:
A: vedada a distribuio de verses com modificaes substanciais deste documento sem a expressa
permisso dos proprietrios do direito autoral.
B: vedada a distribuio deste trabalho ou qualquer derivado seu em qualquer formato de livro padro
(papel) sem a prvia autorizao dos proprietrios do direito autoral.
Polticas de Publicao Livre
(O texto a seguir no considerado parte da licena.)
Os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) esto disponveis e
podem ser acessados na home page da Open Publication http://works.opencontent.org/ .
Apache
Apndice B. Licena de Publicao Livre 166
Os autores de trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) podem
incluir suas prprias licenas nesses trabalhos, desde que os termos dessa licena no sejam mais restritrivos
que os da Licena de Livre Publicao (Open Publication License).
Em caso de dvidas sobre a Licena de Livre Publicao (Open Publication License), contactar David Wiley
<dw2@opencontent.org> ou a lista de autores de publicaes <opal@opencontent.org> via email.
Para se inscrever na lista de autores de publicaes livres (Open Publication Author's List), mande um email
para <opalrequest@opencontent.org> com a palavra subscribe no corpo da mensagem.
Para enviar mensagens para a lista de autores de publicaes livres (Open Publication Author's List), mande
um email para opal@opencontent.org ou simplesmente responda a uma mensagem postada.
Para se desinscrever na lista de autores de publicaes livres (Open Publication Author's List), mande um
email para opalrequest@opencontent.org com a palavra unsubscribe no corpo da mensagem.
Apache
Apndice B. Licena de Publicao Livre 167
Apndice C. Cdigos de retorno HTTP
Este apndice pode ser uma interessante referncia para a programao e configurao da diretiva
ErrorDocument, etc.
2xx Sucesso
o 200 OK
o 201 Criado
o 202 Aceito
o 203 Informao noautoritativa *
o 204 Nenhum contedo
o 205 Contedo resetado *
o 206 Contedo parcial *
3xx Redirecionamento
o 300 Mltiplas escolhas
o 301 Movido Permanentemente
o 302 Movido Temporariamente
o 303 Veja outra *
Apndice C. Cdigos de retorno HTTP 168
o 304 No modificada
o 305 Use o Proxy (redirecionamento proxy) *
4xx Erros no Cliente
o 400 Requisio incorreta
o 401 No autorizado
o 402 Pagamento Requerido *
o 403 Bloqueado
o 404 No encontrada
o 405 Mtodo no permitido *
o 406 No aceitvel *
o 407 Autenticao via proxy requerida *
o 408 Tempo limite da requisio expirado *
o 409 Conflito *
o 410 Gone *
o 411 Tamanho requerido *
o 412 Falha na prcondio *
Apache
Apndice C. Cdigos de retorno HTTP 169
o 413 A requisio parece ser grande *
o 414 A URL requisitada muito longa *
o 415 Tipo de mdia no suportado
5xx Erros no Servidor
o 500 Erro Interno no Servidor
o 501 No implementado
o 502 Gateway incorreto
o 503 Servio no disponvel
o 504 Tempo limite no gateway *
o 505 Verso HTTP no suportada *
Os cdigos de erros marcados com "*" so suportados apenas pelo padro HTTP 1.1
Apache
Apndice C. Cdigos de retorno HTTP 170

Você também pode gostar