linux apache

Upload: leonardo-piccoli

Post on 14-Oct-2015

80 views

Category:

Documents


0 download

DESCRIPTION

Linux Apache

TRANSCRIPT

  • Apache

  • Table of Contents..............................................................................................................................................................................1

    1 Introduo................................................................................................................................................31.1 Verso......................................................................................................................................31.2 Um resumo da Histria do Apache..........................................................................................41.3 Enviando Correes/Contribuindo com o projeto...................................................................41.4 Caractersticas do Apache........................................................................................................51.5 Ficha tcnica............................................................................................................................51.6 Requerimentos.........................................................................................................................71.7 Arquivos de log criados pelo Apache......................................................................................7

    2 Instalao..................................................................................................................................................82.1 Iniciando o servidor/reiniciando/recarregando a configurao................................................82.2 Opes de linha de comando.................................................................................................102.3 Configurando a porta padro do Apache...............................................................................112.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....................................................................................................143.1 Pgina Raiz............................................................................................................................143.2 Subpginas...........................................................................................................................14

    4 Especificando opes/permisses para as pginas..............................................................................16

    5 Restries de Acesso..............................................................................................................................265.1 Autorizao............................................................................................................................265.2 Autenticao..........................................................................................................................34

    5.2.1 Criando um arquivo de Senhas..........................................................................................34

    Apache

    i

  • Table of Contents5 Restries de Acesso

    5.2.2 Autenticao atravs de usurios......................................................................................365.2.3 Autenticao usando grupos..............................................................................................39

    5.3 Usando autorizao e autenticao juntos.............................................................................415.3.1 Acesso diferenciado em uma mesma diretiva...................................................................43

    5.4 O arquivo .htaccess................................................................................................................455.5 Usando a diretiva SetEnvIf com Allow e Deny.....................................................................495.6 A diretiva .................................................................................................................505.7 Diretiva .........................................................................................................52

    6 Definindo documentos de erro personalizados....................................................................................53

    7 Mdulos DSO.........................................................................................................................................55

    8 Sistema de Log do Apache....................................................................................................................608.1 A diretiva AgentLog..............................................................................................................608.2 A diretiva ErrorLog................................................................................................................608.3 A diretiva CustomLog...........................................................................................................618.4 A diretiva RefererLog............................................................................................................628.5 A diretiva RewriteLog...........................................................................................................628.6 A diretiva RewriteLogLevel..................................................................................................638.7 A diretiva ScriptLog..............................................................................................................638.8 A diretiva ScriptLogBuffer....................................................................................................648.9 A diretiva ScriptLogLength...................................................................................................648.10 A diretiva TransferLog..............................................................................................................648.11 A diretiva LogFormat................................................................................................................658.12 A diretiva LogLevel...................................................................................................................678.13 A diretiva Anonymous_LogEmail.............................................................................................68

    Apache

    ii

  • Table of Contents8 Sistema de Log do Apache

    8.14 A diretiva CookieLog................................................................................................................688.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....................................................................................759.1 Controlando o acesso ao servidor proxy................................................................................799.2 Redirecionamento de conexes no Apache...........................................................................79

    10 Virtual Hosts...............................................................................................................................................8110.1 Virtual hosts baseados em IP.....................................................................................................8110.2 Virtual hosts baseados em nome................................................................................................8410.3 Segurana no uso de IP's em Virtual Hosts...............................................................................86

    11 Uso de criptografia SSL.............................................................................................................................8911.1 Servidor apache com suporte a ssl.............................................................................................8911.2 Gerando um certificado digital..................................................................................................9011.3 Exemplo de configurao do mdulo modssl..........................................................................9011.4 Autorizando acesso somente a conexes SSL...........................................................................9511.5 Iniciando o servidor Web com suporte a SSL...........................................................................96

    12 Exemplo comentado de um arquivo de configurao do Apache..........................................................9812.1 O arquivo httpd.conf..................................................................................................................9812.2 O arquivo srm.conf..................................................................................................................12312.3 O arquivo access.conf..............................................................................................................148

    Apache

    iii

  • Table of ContentsApndice B. Licena de Publicao Livre................................................................................................163

    Apndice C. Cdigos de retorno HTTP...................................................................................................168

    Apache

    iv

  • o:p 1

  • Apache

    o:p 2

  • 1 IntroduoAdaptado do Guia Foca GNU/Linux Avanado Captulo 11.

    O servidor web um programa responsvel por disponibilizar pginas, fotos, ou qualquer outro tipo de objetoao navegador do cliente. Ele tambm pode operar recebendo dados do cliente, processando e enviando oresultado, 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 poruma equipe de voluntrios (conhecida como Apache Group), buscando criar um servidor web com muitosrecursos 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 mundojuntos.

    Esta apostila documenta a configurao, personalizao, introduo aos mecanismos de autenticao econtrole 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 oassunto.

    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 degerenciamento do servidor, como personalizar algumas partes do servidor e programas teis de terceiros paraanlise e diagnstico do servidor web. No deixe tambm de ver o captulo 12 Exemplo comentado de umarquivo 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 paraverses 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 ApacheO Apache tem como base o servidor web NCSA 1.3 (National Center of Supercomputing Applications), quefoi desenvolvido por Rob McCool. Quando Rob deixou o NCSA, o desenvolvimento foi interrompido, assimmuitos desenvolvedores buscaram personalizar sua prpria verso do NCSA ou adicionar mais caractersticaspara atender s suas necessidades. Neste momento comea a histria do Apache com Brian Behlendorf e CliffSkolnick abrindo uma lista de discusso para interessados no desenvolvimento, conseguindo espao em umservidor doado pela HotWired e trocando patches, corrigindo problemas, adicionando recursos e discutindoidias 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 odesenvolvimento de seu servidor web, tendo como desenvolvedores Brandon Long e Beth Frank, que tambmse 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 (noobtendo o mesmo desempenho que em plataformas UNIX mas sendo melhorado gradativamente).

    1.3 Enviando Correes/Contribuindo com o projetoUm formulrio est disponvel na Web para o envio de correes/sugestes emhttp://www.apache.org/bug_report.html. Uma lista de anncios sobre o Apache est disponvel em 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 ApacheAbaixo esto algumas caractersticas que fazem desse servidor web o preferido entre os administradores desistemas:

    Suporte a scripts CGI usando linguagens como PHP, Perl, ASP, Shell Script, etc; Mdulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursossem necessidade de recompilao do programa;

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

    Suporte a virtual hosting, por nome ou endereo IP: possvel servir 2 ou mais pginas comendereos/portas diferentes atravs do mesmo processo, ou usar mais de um processo para controlarmais de um endereo;

    Suporte a servidor proxy ftp e http, com limite de acesso, caching (todas flexvelmenteconfigurveis). 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 ClienteNavegador.

    Suporte a tipos mime; Personalizao de logs.

    1.5 Ficha tcnicaUtilitrios:

    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 combase nos endereos IP's;

    ab: Apache Benchmarcking Ferramenta de medida de desempenho do servidor WebApache.

    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 dodaemon servidor. Um arquivo de configurao alternativo pode ser especificado atravs da opo "f" dalinha de comando;

    srm.conf: Contm diretivas que controlam a especificao de documentos que o servidor oferece aosclientes. O nome desse arquivo pode ser substitudo atravs da diretiva ResourceConfig no arquivo principalde configurao;

    access.conf: Contm diretivas que controlam o acesso aos documentos. O nome desse arquivo pode sersubstitudo 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 dasdiretivas 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 umarquivo de configurao do Apache.

    1.6 RequerimentosA mquina mnima para se rodar um servidor Apache para atender a uma rede padro 10MB/s um Pentium90, 24MB de memria RAM, um HD com um bom desempenho e espao em disco de acordo com o tamanhoprojetado de seu servidor web (considerando seu crescimento).

    Uma configurao mais rpida para redes 100MB/s teria como processador um Cyrix MX, AMD K6 ou IntelPentium MMX como plataforma mnima (Cyrix o recomendado pelo alto desempenho no processamento destrings), barramento de HD SCSI com uma boa placa controladora (Adaptec 19160 ou superior) com 64MBde RAM no mnimo.

    1.7 Arquivos de log criados pelo ApacheO servidor httpd grava seus arquivos de log geralmente em /var/log/apache, no possvel descrever osarquivos de log usados porque tanto seus nomes como contedo podem ser personalizados no arquivohttpd.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 paragerao de estatsticas de acesso com grficos mencionado na seo 0

    Relatrio grfico de acesso ao sistema.

    Apache

    1.6 Requerimentos 7

  • 2 InstalaoAdaptado 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 fordesejado entender melhor seu funcionamento ou consultar diretivas.

    2.1 Iniciando o servidor/reiniciando/recarregando aconfiguraoO Apache pode ser executado tanto como um servidor inetd ou como um daemon. A inicializao deprogramas pelo inetd uma boa estratgia quando voc precisa de um controle de acesso bsico (o fornecidopelo tcpd), e o servio pouco usado na mquina.

    A segurana de um servio iniciado pelo inetd pode ser substituda e melhorada por um firewall bemconfigurado, garantindo facilidades extras, como por exemplo um relatrio de trfego para a porta do servidorweb. Mesmo assim, se o servidor Apache estiver rodando como daemon e estiver ocioso, ele ser movidopara 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 funcionamentorecomendado para sites de grande trfego, onde ele freqentemente requisitado e considerado um serviocrtico.

    O mtodo padro para iniciar programas como daemons no Debian atravs dos diretrios /etc/rc?.d. Cadadiretrio 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 nossoprograma 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 seufuncionamento e reinicio.

    reload: Recarrega os arquivos de configurao do Apache, as alteraes entram em funcionamentoimediatamente.

    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 obinrio Apache. Da mesma forma, ele verifica os cdigos de sada do Apache e os transforma em mensagensde 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_statuscarregado).

    status: Mostra o status do processo do servidor Apache (requer o lynx e o mdulo mod_statuscarregado).

    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 .

    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 checagemda diretiva DocRoot).

    T executa a checagem de sintaxe nos arquivos de configurao do Apache (menos da diretivaDocRoot).

    2.3 Configurando a porta padro do ApacheUse a diretiva Port para configurar a porta padro que o Apache receber requisies por padro. A diretivaListen tambm usada para ajustar o endereo/portas alternativas (usadas tambm em Virtual Hosts) esubstituir as definies de Port (veja o captulo 2.4.1 Especificando endereos/portas adicionais (a diretivaListen) para mais detalhes).

    OBS:: Somente uma diretiva Port e um argumento podero ser especificados. Para mais controle sobre asportas do sistema use a diretiva Listen.

    2.4 Especificando as interfaces que o Apache atenderA diretiva BindAddress usada para especificar os endereos IP das interfaces ou endereos FQDN em que oApache responder s requisies. Mais de um endereo pode ser especificado, separados por espaos. Casono 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 desejarmais 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 servidorhttpd. 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 alternativasque o servidor web esperar por requisies externas. Esta diretiva muito usada na construo de VirtualHosts. Esta diretiva pode substituir completamente as diretivas Port e BindAddress. Podem ser usados onmero 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 exemploacima, o servidor httpd esperar por requisies vindas de 192.168.1.* na porta 80 e tambm 60000, erequisies 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 ApacheAdaptado 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 RaizA pgina raiz especificada atravs da diretiva DocumentRoot e ser mostrada quando se entrar no domnioprincipal, como http://www.focalinux.org. Na configurao padro do Apache, DocumentRoot aponta para odiretrio /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 nosrm.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 SubpginasSubpginas 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 Aliasno arquivo srm.conf. Caso seja um subdiretrio, as permisses de acesso de /var/www sero herdadas paraeste 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 sistemade 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 discolocal, 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 porpadro (veja o captulo 5 Restries de Acesso para maiores detalhes). Aps isto, faa o servidor httpd releros arquivos de configurao ou reinicilo. Aps isto, a pgina /home/focalinux/download/iniciante estaracessvel via http://www.focalinux.org/iniciante.

    OBS: Caso inclua uma / no diretrio que ser acessvel via URL, o endereo somente estar disponvel casovoc 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 aspginasAdaptado do Guia Foca GNU/Linux Avanado Captulo 11.

    As opes de restrio podem tanto ser especificadas nas diretivas , ou quanto nos arquivos .htaccess (ou outro nome de arquivo de controle de acesso especificado pela opoAccessFileName do arquivo de configurao do Apache). Cada diretiva de acesso especificada entre e devem ser fechadas com (como na linguagem HTML). As seguintes diretivas de acesso so vlidasno Apache:

    Directory: As restrio afetar o diretrio no disco especificado, conseqentemente a pginaarmazenada nele. Por exemplo:

    Order deny,allow

    deny from all

    allow from 10.1.0.1

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

    DirectoryMatch: Funciona como a diretiva mas trabalha com expresses regulares comoargumento. Por exemplo:

    4 Especificando opes/permisses para as pginas 16

  • Order deny,allow

    deny from all

    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 oscoringas ? e * como no shell. Tambm podem ser usadas expresses regulares especificando um "~" apsFiles e antes da expresso. Por exemplo:

    Order deny,allow

    deny from all

    Bloqueia o acesso a todos os arquivos com a extenso .txt

    Order deny,allow

    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 deexpresses regulares).

    FilesMatch: Permite usar expresses regulares na especificao de arquivos (equivalente a diretiva). Por exemplo:

    Order deny,allow

    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:

    Order allow,deny

    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 mas trabalha com expresses regulares. Por exemplo:

    Order deny,allow

    deny from all

    Bloquear URLs que contm a substring "/extra/data" ou "/special/data".

    O uso das diretivas e apropriada quando voc deseja trabalhar com permisses a nvelde diretrios/arquivos no disco local (o controle do proxy tambm feito via ), o uso da diretiva adequado para trabalhar com permisses a nvel de URL. A ordem de processamento dasdiretivas de acesso so processadas a seguinte:

    1. A diretiva (com exceo de ) e os arquivos .htaccess so processadossimultaneamente. As definies dos arquivos .htaccess substituem as de )

    Apache

    4 Especificando opes/permisses para as pginas 19

  • 2. Expresses regulares de , .

    3. e so processados simultaneamente.

    4. e 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 sejaespecificada.

    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 , e .

    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 no diretrioespecificado, o servidor formatar automaticamente a listagem ao invs de gerar uma resposta de acessonegado.

    MultiViews: Permite o uso da Negociao de contedo naquele diretrio. A negociao de contedopermite o envio de um documento no idioma requisitado pelo navegador do cliente.

    SymLinksIfOwnerMatch: O servidor somente seguir links simblicos se o arquivo ou diretrio alvotiver 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

  • , e .

    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 deconfigurao 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 sejamespecificadas opes separadas para o subdiretrio:

    Options Indexes FollowSymLinks

    Ao acessar o diretrio /var/www/focalinux, as permisses usadas sero de /var/www, ao menos que umadiretiva ou seja especificada:

    Options Indexes FollowSymLinks

    Apache

    4 Especificando opes/permisses para as pginas 21

  • Options Includes

    As opes e restries de acesso de /var/www/focalinux sero EXATAMENTE as especificadas no bloco dadiretiva e somente os includes sero permitidos. Para adicionar ou removeruma opo individual definidas por diretivas anteriores, podem ser usado os sinais "+" ou "", por exemplo:

    Options Indexes FollowSymLinks

    Options +Includes Indexes

    As opes Indexes e FollowSymLinks so definidas para o diretrio /var/www, ento as permisses dodiretrio /var/www/focalinux sero FollowSymLinks (do diretrio /web/docs) e Includes (adicionada) e oparmetro Indexes no ter efeito neste diretrio.

    permitido fazer um aninhamento das diretivas e :

    Apache

    4 Especificando opes/permisses para as pginas 22

  • Order allow,deny

    allow from all

    Order deny,allow

    deny from all

    Neste caso, somente os arquivos LEIAMEDONO.txt existentes no diretrio /var/www e seus subdiretriossero bloqueados.

    Se a diretiva for usada fora de uma estrutura , ela ter efeito em todos os arquivosdisponibilizados 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 tentarcarregar/recarregar o Apache. Um exemplo de diretiva incorreta:

    Apache

    4 Especificando opes/permisses para as pginas 23

  • Options Indexes FollowSymLinks

    Options +Includes Indexes

    O correto :

    Options Indexes FollowSymLinks

    Options +Includes Indexes

    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 desubdiretrios especficos separadamente caso precise de um nvel de acesso diferente. Veja tambm a seosobre arquivos OverRide (.htaccess) para detalhes sobre este tipo de arquivo.

    OBS4: A diretiva de acesso "" no afetar outros sistemas de arquivos montados dentro de seussubdiretrios. Caso uma diretiva de acesso padro no seja especificada para outros sistemas de arquivos, oacesso ser automaticamente negado.

    Apache

    4 Especificando opes/permisses para as pginas 25

  • 5 Restries de AcessoAdaptado 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 requerque seja passado nome e senha para garantir acesso a pgina. Os mtodos de Autorizao e Autenticaopodem ser combinados como veremos mais adiante.

    5.1 AutorizaoA restrio de acesso por autorizao (controlado pelo mdulo mod_access), permite ou no o acesso aocliente de acordo com o endereo/rede especificada. As restries afetam tambm os subdiretrios dodiretrio alvo. Abaixo um exemplo de restrio de acesso que bloqueia o acesso de qualquer host que fazparte do domnio .spammers.com.br a URL http://servidor/teste:

    Option Indexes

    Order allow,deny

    allow from all

    deny from .spammers.com.br

    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 sejaespecificada, o padro ser deny/allow. Note que a ordem de pesquisa de allow e deny a inversa daespecificada. A diretiva Order aceita os seguintes valores:

    o deny,allow Esta a padro, significa um servidor mais restritivo; a diretiva allow processadaprimeiro e somente depois a diretiva deny. Caso nenhuma diretiva allow e deny seja especificadas, ou noconferirem, PERMITE TUDO como padro.

    o allow,deny Significa um servidor mais permissivo, a opo deny processada primeiro e somentedepois a opo allow. Caso nenhuma diretiva allow e deny seja especificada, ou no conferirem, BLOQUEIATUDO como padro.

    o mutualfailure Somente permite o acesso se o usurio receber autorizao atravs da opo allowe 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 seusistema, desde que no estejam em sua lista negra :)

    ATENO: importante saber se a pgina ser permissiva ou restritiva para escolher a ordem mais adequadaao seu caso, tambm leve em considerao a possibilidade do processamento cair na diretiva de acessopadro, 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 algunsdomnios 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 ordemcorreta das diretivas de acesso).

    allow from: Especifica o endereo que ter acesso ao recurso especificado. A diretiva allow fromaceita 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 acessopermitido. 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 umamesma 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 dodomnio 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 FQDNou IP: www.dominio.com.br

    OBS4: Caso Order no seja especificado, deny,allow ser usado como padro (ou seja, permitir tudo comopadro).

    deny from: Especifica os endereos que NO tero acesso ao recurso especificado. As explicaesreferentes 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 firewallou cdigo de roteamento, pois ficar mais difcil um ataque baseado em DNS spoofing, aumentandoconsideravelmente a segurana de seu servidor web.

    ATENO: Caso receba erros 403 (acesso negado) sem bloquear a URL nas diretivas de acesso, significaque o servidor Web no tem permisses para acessar/abrir o diretrio da pgina. Certifiquese que o dono egrupo do processo Apache (especificado pela diretiva User e Group) possuem permisses de acesso quelediretrio.

    Abaixo alguns exemplos de permisses de acesso:

    Options SymLinksIfOwnerMatch Indexes MultiViews

    Order allow,deny

    allow from all

    Apache

    5 Restries de Acesso 29

  • Permite o acesso de qualquer usurio de qualquer lugar (allow from all), permite tambm a visualizao dalistagem 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 onome do link (SymLinksIfOwnerMatch).

    Options SymLinksIfOwnerMatch Indexes MultiViews

    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 foiespecificada, o padro "Order deny,allow" usado e permite TUDO como padro.

    Options Indexes

    Order deny,allow

    deny from all

    Esta regra acima no tem muita lgica pois restringe o acesso de todos os usurios ao diretrio /var/www, aomenos se esta for sua inteno...

    Apache

    5 Restries de Acesso 30

  • Options All

    Order allow,deny

    allow from all

    A regra acima permite o acesso a URL http://www.servidor.org/focalinux de qualquer host na Internet

    Order deny,allow

    deny from all

    Bloqueia o acesso a qualquer arquivo .htaccess do sistema

    Order deny,allow

    deny from all

    Bloqueia o acesso a qualquer arquivo leiamearm.txt, leiamealpha.txt, leiamem68k.txt, leiamesparc.txt eleiamepowerpc.txt fazendo uso de expresses regulares.

    Apache

    5 Restries de Acesso 31

  • Options Indexes

    Order mutualfailure

    allow from .dominio.com.br

    deny from lammer.dominio.com.br

    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.

    Options Indexes MultiViews

    Order allow,deny

    deny from .com .com.br

    allow from all

    Bloqueia o acesso ao diretrio /var/www de computadores pertencentes aos domnios .com e .com.br.

    Apache

    5 Restries de Acesso 32

  • Options None

    Order deny,allow

    allow from 192.168.1. .metainfo.org .debian.org

    deny from 200.200.123.

    A regra acima permite o acesso de mquinas da rede 192.168.1.*, do domnio *.metainfo.org e *.debian.org, oacesso 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 nemcom deny, ento o processamento cair na diretiva padro de deny,allow, que neste caso permite o acesso casonem allow e deny conferiram com o padro.

    Options None

    Order allow,deny

    allow from 192.168.1. .metainfo.org .debian.org

    deny from 200.200.123.

    Apache

    5 Restries de Acesso 33

  • A regra acima idntica a anterior somente com a mudana da opo Order. Bloqueia o acesso de mquinasda 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 comallow nem com deny, ento o processamento cair na diretiva padro de allow,deny que neste caso bloqueia oacesso.

    5.2 AutenticaoAtravs da autenticao (controlado pelo mdulo mod_auth) possvel especificar um nome e senha paraacesso 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 edbmmanage:

    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 usurioconvidado, 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 quedever 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 linhade comando atravs da opo "b" (isto um timo recurso para utilizao em shell scripts ou programas CGIde 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 tornandoimpossvel o acesso a pgina do usurio :)

    Note que esta senha foi cadastrada usando o algoritmo de criptografia Crypto (opo d). O algoritmo SHAtambm pode ser usado como alternativa, atravs da opo "s". Para modificar a senha do usurioconvidado, 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 ummelhor sistema ou para manter a compatibilidade com alguns scripts/programas que compartilhem o arquivode 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 senhasusando 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 deacesso individuais criptografadas usando um dos utilitrios da seo anterior. Para restringir o acesso aoendereo http://servidor.org/teste:

    AuthName "Acesso pgina do Foca Linux"

    AuthType basic

    AuthUserFile /home/gleydson/SenhaUsuario

    # AuthGroupFile /home/users/SenhaGrupo

    Require validuser

    Ao tentar acessar o endereo http://servidor/teste, ser aberta uma janela no navegador com o ttulo Enterusername for Acesso pgina do Foca Linux at servidor.org, a diretiva Require validuser definem que ousurio e senha digitados devem existir no arquivo especificado por AuthUserFile para que o acesso sejagarantido. Uma explicao de cada opo de acesso usado na autenticao:

    AuthName Ser o nome que aparecer na janela de autenticao do seu navegador indicando qualrea restrita est solicitando senha (podem existir vrias no servidor, bastando especificar vrias diretivas derestries).

    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 deautenticao pode ser Basic ou Digest

    o Basic Utiliza a codificao base64 para encodificao de nome e senha, enviando o resultado aoservidor. Este um mtodo muito usado e pouco seguro, pois qualquer sniffer instalado em um roteador podecapturar e descobrir facilmente seu nome e senha.

    o Digest Transmite os dados de uma maneira que no pode ser facilmente decodificada, incluindo acodificao da rea protegida (especificada pela diretiva AuthName) que possui a seqencia de login/senhavlida. A diferena deste mtodo que voc precisar de arquivos de senhas diferentes para cada reaprotegida especificada por AuthName (tambm chamada de Realm).

    AuthUserFile o arquivo gerado pelo utilitrio htpasswd que contm a senhacorrespondente ao usurio

    AuthGroupFile um arquivo texto que contm o nome do grupo, dois pontos (":") e o nome dosusurios que podem ter acesso ao recurso, separados por vrgulas. No exemplo acima ele se encontracomentado, 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 umadas 3 sintaxes:

    o Require user usurio1 usurio2 usurio3 Somente os usurios especificados so consideradosvlidos para ter acesso ao diretrio.

    o Require group grupo1 grupo2 grupo3 Somente os usurios dos grupos especificados so consideradosvlidos para terem acesso ao diretrio. Esta diretiva til quando deseja que somente alguns usurios dedeterminado 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 eAuthGroupFile 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 mensagensindicando o sucesso/falha no comando ao invs de cdigos de sada.

    Alguns exemplos para melhor assimilao:

    AuthName "Acesso a pgina do Foca Linux"

    AuthType basic

    AuthUserFile /home/gleydson/SenhaUsuario

    Require user gleydson

    As explicaes so idnticas a anterior, mas somente permite o acesso do usurio gleydson a URLhttp://servidor.org/teste, bloqueando o acesso de outros usurios contidos no arquivo AuthUserFile.

    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

    AuthName "Acesso a pgina do Foca Linux"

    AuthType basic

    AuthUserFile /home/gleydson/SenhaUsuario

    Require user gleydson

    Require user usuario1

    Require user usuario2

    As 2 especificaes acima so equivalentes e permite o acesso aos usurios gleydson, usuario1 e usuario2 apgina 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 doarquivo 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 quelegrupo 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 arquivocriado acima:

    AuthName "Acesso a pgina do Foca Linux"

    AuthType basic

    AuthUserFile /home/gleydson/SenhaUsuario

    AuthGroupFile /home/gleydson/SenhaGrupo

    Require group admins

    Agora somente os usurios pertencentes ao grupo admins (gleydson e usuario2) podero ter acesso aodiretrio /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, casocontrrio ser retornado um cdigo "500 Internal Server Error". Este tipo de erro caracterizado por tudoestar OK na sintaxe dos arquivos de configurao aps checagem com "apache t" e todas as diretivas decontrole 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 ondeusurios podem ter acesso via o servidor Web. Tais localizaes so /var/www, /home/"usuario"/public_htmle qualquer outro diretrio de acesso pblico que defina em seu sistema.

    recomendvel tambm ocultar estes arquivos atravs da diretiva evitando possveis riscos desegurana 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 . 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 deolhos curiosos...

    5.3 Usando autorizao e autenticao juntosOs mtodos de autorizao e autenticao podem ser usados ao mesmo tempo dentro de qualquer uma dasdiretivas de controle de acesso. As diretivas de autorizao so processadas primeiro (mod_access) e depoisas diretivas de autenticao (mod_auth). Segue um exemplo:

    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

    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 logine senha para acesso a pgina, digitando o login e senha corretos, o teste de autenticao ser completado comsucesso e o acesso ao diretrio /var/www autorizado.

    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

    No exemplo acima, usado o mtodo de autorizao com a opo Order mutualfailure e o mtodo deautenticao atravs de grupos. Primeiro verificado se o usurio pertence ao domnio .dominiolocal.com.bre se ele no est acessando da mquina lammer.dominiolocal.com.br, neste caso ele passa pelo teste deautorizao. Depois disso ele precisar fornecer o nome e senha vlidos, com o login pertencente aoAuthGroupFile, 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 precisarfornecer 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 oacesso externo ao mesmo recurso somente atravs de senha. Isto pode ser feito com o uso da diretiva Satisfyjunto ao bloco de autorizao/autenticao. Vamos tomar como base o exemplo anterior:

    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

    Note que o exemplo o mesmo com a adio da diretiva Satisfy any no final do bloco do arquivo. Quando aopo Satisfy no especificada, ela assumir "all" como padro, ou seja, o usurio dever passar no teste deautorizao e autenticao para ter acesso.

    A diferena do exemplo acima em relao ao da seo anterior se a mquina passar no teste de autorizaoela j ter acesso garantido. Caso falhe no teste de autorizao, ainda ter a chance de ter acesso a pginapassando na checagem de autenticao.

    Isto garante acesso livre aos usurios do domnio .dominiolocal.com.br. J os outros usurios, incluindoacessos vindos de lammer.dominiolocal.com.br que pode ser uma mquina com muito uso, poder ter acessoao recurso caso tenha fornecido um nome e senha vlidos para passar pelo processo de autenticao. Tenhaisto em mente... este tipo de problema comum e depende mais de uma poltica de segurana e condutainterna, 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:

    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

    ATENO PARA O DESCUIDO ACIMA!: Como o mtodo de autorizao NO especificado, assumidodeny,allow como padro, que permite o acesso a TODOS os usurios. O bloco acima NUNCA executar omtodo de autenticao por este motivo. A melhor coisa NO usar a opo Satisfy em casos que srequerem 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 deacesso/listagem controladas. A vantagem em relao a incluso direta de diretivas de acesso dentro doarquivo de configurao do Apache, que o controle de acesso poder ser definido pelo prprio webmaster dapgina, 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 nomomento de cada acesso ao diretrio que controla. O nome do arquivo OverRide pode ser definido atravs dadiretiva 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 podeconter 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 eXBitHack).

    Apache

    5.4 O arquivo .htaccess 46

  • OBS: No tem sentido usar a opo AllowOverride dentro da diretiva , ela ser simplesmenteignorada.

    Para acesso ao arquivo .htaccess do diretrio /var/www/focalinux, o Apache buscar os arquivos .htaccess naseqencia: /.htaccess, /var/.htaccess, /var/www/.htaccess, /var/www/focalinux/.htaccess, qualquer diretiva queno 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 nodiretrio raz e habilitar somente nos diretrios especificados pela diretiva no arquivo deconfigurao do Apache, evitando brechas de segurana na manipulao destes arquivos (esta uma boa idiaa no ser que se dedique 24 horas somente na administrao do seu servidor Web e conhea toda sua estruturahierrquica de segurana:

    AllowOverride none

    AllowOverride limit authconfig indexes

    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 paraoutros 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 dispensarexplicaes 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 (Errointerno 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 permitecontrolar 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

    Order deny,allow

    allow from all

    deny from env=EXPLODER

    Se o Navegador (campo UserAgent do cabealho http) usado para acessar a pgina for o Internet Explorer, avarivel EXPLODER ser criada e ter o valor verdadeiro (porque a expresso de SetEnvIf conferiu com aexpresso).

    Note o uso de "deny from env=VARIVEL". Neste caso se o navegador for o Internet Explorer, o acessoser 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, bastaseparalos com espaos. Uma descrio completa dos cabealhos HTTP, contedo e parmetros aceitos porcada um so descritos na RFC 2068.

    5.6 A diretiva Esta diretiva semelhante a mas trabalha com mtodos HTTP (como GET, PUT, POST, etc) aoinvs de diretrios. A diretiva pode ser usada dentro da diretiva de acesso , ,mas nenhuma diretiva de controle de acesso pode ser colocada dentro de .

    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 socasesensitive. Por exemplo:

    Option Indexes

    Order deny,allow

    allow from 192.168.1.0/24

    deny from all

    Apache

    5.6 A diretiva 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 somente ter efeito na diretiva se for especificada no arquivode configurao do servidor web. A diretiva simplesmente ignorada nos arquivos .htaccess...

    Este abaixo usado por padro na distribuio Debian para restringir para somente leitura o acesso aosdiretrios de usurios acessados via mdulo mod_userdir:

    AllowOverride FileInfo AuthConfig Limit

    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

    Order allow,deny

    Allow from all

    Order deny,allow

    Deny from all

    Apache

    5.6 A diretiva 51

  • 5.7 Diretiva Esta diretiva semelhante a , mas atinge todos os mtodos HTTP, menos os especificados.

    Apache

    5.7 Diretiva 52

  • 6 Definindo documentos de erro personalizadosAdaptado do Guia Foca GNU/Linux Avanado Captulo 11.

    Documentos de erro personalizados so definidos atravs da diretiva ErrorDocument. possvel especificarcdigos de erros que sero atendidos por certos documentos ou colocar esta diretiva dentro de blocos decontrole de acesso , ou para que tenham mensagens de erropersonalizadas, 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 casoaquele cdigo de erro seja encontrado:

    Para definir uma mensagem de erro padro para todo servidor web, basta colocar a diretiva ErrorDocumentfora 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 aoadministrador 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 oespecificado 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 obteracesso 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 erros403.

    Apache

    6 Definindo documentos de erro personalizados 54

  • 7 Mdulos DSOAdaptado do Guia Foca GNU/Linux Avanado Captulo 11.

    Os mdulos DSO permitem adicionar/remover caractersticas do Apache sem necessidade de recompilar todoo servidor web, assim interrompendo o servio para a atualizao dos arquivos. Mdulos de programasterceiros 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 oseguinte:

    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 quesejam 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 sobeo mdulo em caso de dvidas, os mdulos que acompanham o Apache so documentados em detalhes nomanual do Apache.

    Para usar uma caracterstica/diretiva/opo do Apache que dependa de um certo mdulo, obviamente vocdever carregar o mdulo correspondente (em caso de dvidas, leia a documentao sobre o mdulo). Veja aseo 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 mdulomod_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: Osuporte 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 carregadoatravs da diretiva IfModule:

    UserDir disabled root

    UserDir public_html

    Nas linhas acima, as diretivas UserDir somente sero executadas se o mdulo mod_userdir.c estiver carregadoatravs da diretiva LoadModule.

    Segue abaixo uma lista de mdulos padres que acompanham do Apache, os mdulos marcados com "*" soativados 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 ApacheAdaptado do Guia Foca GNU/Linux Avanado Captulo 11.

    O Apache bem flexvel na especificao do que ser registrado em seus arquivos de log, possibilitandoutilizar 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 aordem 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 AgentLogAgentLog arquivo/pipe indica o nome do arquivo que registrar o nome do navegador que est acessando apgina (contedo do cabealho UserAgent). possvel usar o pipe "|" para direcionar os erros para umprograma de formatao ou processamento. ATENO: Se um programa for usado como pipe, ele serexecutado sob o usurio que iniciou o apache. Revise o cdigo fonte do programa para ter certeza que nocontm falhas que possam comprometer a segurana de seu sistema.

    Exemplo:

    AgentLog /var/log/apache/agent.log

    8.2 A diretiva ErrorLogErrorLog 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 CustomLogPermite especificar onde os logs sero gravados para os arquivos de logs personalizados. Esta diretivatambm 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 opoLogFormat). 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 (veja0

    A diretiva LogFormat), neste caso os parmetros definidos pelo LogFormat para "nome" sero atribudos adiretiva 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 RefererLogRefererLog [arquivo/pipe] indica que arquivo/pipe registrar os campos Referer do cabealho HTTP. Estadiretiva 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 aseguinte:

    LogFormat "%{Referer}i > %U" referer

    CustomLog /var/log/apache/referer.log referer

    Exemplo:

    RefererLog /var/log/apache/referer.log

    8.5 A diretiva RewriteLogRewriteLog: [arquivo/pipe] indica o arquivo/pipe que registrar qualquer regravao de URL feita peloApache.

    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 diretivaRewriteLog 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 RewriteLogLevelRewriteLogLevel [num] especifica os detalhes que sero includos no registro da opo RewriteLog, osvalores 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 aoprocessamento e a quantidade de detalhes registrados no arquivo especificado por RewriteLog.

    8.7 A diretiva ScriptLogScriptLog [arquivo] especifica o nome do arquivo de log que receber as mensagens de erros gerados porscripts 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 nadiretiva "user".

    OBS: Esta opo somente recomendada como depuradora de scripts CGI, no para uso contnuo emservidores ativos.

    Exemplo:

    ScriptLog /var/log/apache/cgiscripts.log

    Apache

    8.6 A diretiva RewriteLogLevel 63

  • 8.8 A diretiva ScriptLogBufferScriptLogBuffer especifica o tamanho do cabealho PUT ou POST gravado no arquivo especificado porScriptLog. O valor padro 1024 bytes. Esta opo controlada pelo mdulos mod_cgi

    Exemplo:

    ScriptLogBuffer 512

    8.9 A diretiva ScriptLogLengthScriptLogLength: [tamanho] especifica o tamanho mximo do arquivo de log gerado pela opo ScriptLog. Ovalor padro 10385760 bytes (10.3MB). Esta opo controlada pelo mdulos mod_cgi

    Exemplo:

    ScriptLogLength 1024480

    8.10 A diretiva TransferLogTransferLog [arquivo/pipe] indica o arquivo que armazenar as transferncias entre o servidor http e ocliente. Ela cria o arquivo de log com o formato definido pela opo LogFormat mais recente ou o formatopadro 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 LogFormatLogFormat 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 especificaodo [nome] permite que voc utilize o formato especificado em uma opo CustomLog ou outra diretivaLogFormat, 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 umarequisio *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 LogLevelDefine 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 suarespectiva 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, asmensagens 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. recomendadoo uso de um nvel de no mnimo crit.

    8.13 A diretiva Anonymous_LogEmailSe 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 CookieLogEspecifica o arquivo que ser usado para registrar os cookies

    OBS1: Caso o caminho do arquivo no for especificado nas diretivas, ser assumido DocumentRoot comodiretrio 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 nopossa 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 serinstalado para gerar um relatrio grfico com a

    estatsticas de visitas por ano/mes/dia/hora usandoos 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, estatraduo poder auxiliar pessoas que falem Portugus a entender melhor a licena. permitido a qualquerpessoa copiar e distribuir cpias desse documento de licena, desde que sem a implementao de qualquermudana.

    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 reproduzidose distribudos no todo ou em parte, em qualquer meio fsico ou eletrnico, desde que os termos desta licenaestejam includos, e que esta licena ou uma incorporao dela por referncia (com quaisquer das opesescolhidas 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]> REF _Ref15853235 \r \h 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600310035003800350033003200330035000000 REF _Ref15853235 \h

  • A forma apropriada para uma incorporao por referncia deste livro :

    Copyright 2002 Alfamdia Ltda. Este material somente poder ser distribudo se sujeito aos termos econdies firmados na Licena de Livre Publicao (Open Publication License), verso 1.0 ou superior (averso mais atual encontrase disponvel em http://www.opencontent.org/openpub/).

    Esta referncia, devidamente preenchida com os dados da publicao, deve ser seguida imediatamente comquaisquer 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 (OpenPublication License).

    Qualquer publicao no formato livro padro (papel) requer obrigatoriamente a citao dos autores e editororiginais. Os nomes dos autores e do editor devem aparecer em todas as superfcies externas do livro. Emtodas as faces externas do livro, o nome do editor original deve estar impresso em tamanho to grande quantoo 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) pertenceaos 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]> REF _Ref15853235 \r \h 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F00520065006600310035003800350033003200330035000000 REF _Ref15853235 \h

  • A mera adio de trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) ou partesde trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) em uma mesma mdiaque contenha outros trabalhos ou programas no protegidos por essa licena no decorre em aplicao daLicena de Livre Publicao (Open Publication License) para esses outros trabalhos. O trabalho resultantedeve explicitamente conter uma nota especificando a incluso do material protegido pela Licena de LivrePublicao (Open Publication License) e o aviso de copyright apropriado.

    APLICABILIDADE. Se alguma parte desta licena no puder ser aplicada em alguma jurisdio, as partesrestantes deste documento continuam sendo aplicadas.

    AUSNCIA DE GARANTIA. Os trabalhos protegidos pela Licena de Livre Publicao (Open PublicationLicense) so fornecidos "como esto", sem garantias de qualquer tipo, explcita ou implcita, incluindo, masno limitado a, as garantias implcitas de comercializao e convenincia para um propsito particular, ougarantia 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) dev