O servidor Apache é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Em maio de 2010, o Apache serviu mais de 54,68% de todos os sites e mais de 66% dos milhões de sites mais movimentados. É a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos. Ao acessar qualquer site, há um servidor por trás daquele endereço responsável por disponibilizar as páginas e todos os demais recursos que você pode acessar. Assim, quando você envia um e-mail através de um formulário, coloca uma mensagem em um fórum de discussão, faz uma compra on-line, etc, um servidor Web (ou um conjunto de servidores) é responsável por processar todas essas informações. 1
Um servidor Web é um computador que processa solicitações HTTP (Hyper-Text Transfer Protocol), o protocolo padrão da Web. Quando você usa um navegador de internet para acessar um site, este faz as solicitações devidas ao servidor Web do site através de HTTP e então recebe o conteúdo correspondente. No caso do Apache, ele não só executa o HTTP, como outros protocolos, tais como o HTTPS (O HTTP combinado com a camada de segurança SSL - Secure Socket Layer), o FTP (File Transfer Protocol), entre outros. Motivos para usar apache: * Excelente performance * Segurança * Robustez * Compatibilidade com diversas plataformas Caracteristicas: Suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script, ASP, etc; Suporte a autorização de acesso podendo ser especificadas restrições de acesso separadamente para cada endereço/arquivo/diretório acessado no servidor; Autenticação requerendo um nome de usuário e senha válidos para acesso a alguma página/sub-diretório/arquivo Personalização de logs; Mensagens de erro; Suporte a virtual hosting (é possível servir 2 ou mais páginas com endereços/ portas diferentes através do mesmo processo ou usar mais de um processo para controlar mais de um endereço); 2
Permissão de execução: # chmod +x /etc/rc.d/rc.httpd Iniciar serviço: # /etc/rc.d/rc.httpd start Parar serviço: # /etc/rc.d/rc.httpd stop Reiniçiar serviço: # /etc/rc.d/rc.httpd restart Verificar serviço: # netstat -tunap (Procurar porta 80) ou Digite no browse: http://localhost ou http://ipdoservidor Se tudo ocorrer bem aparecerá a mensagem: It Works! Por padrão, os arquivos de configuração do Apache residem no diretório /etc/httpd. httpd.conf é o principal arquivo de configuração do Apache, possui diretivas que controlam a operação do daemon servidor. Um arquivo de configuração alternativo pode ser especificado através da opção "-f" da linha de comando. 3
Existem dois tipos de páginas que podem ser adicionadas ao Apache: a página raíz e sub-páginas. A página raíz é especificada através da diretiva DocumentRoot (/etc/httpd/httpd.conf) e será mostrada quando se entrar no domínio principal. Sub páginas são armazenadas abaixo do diretório da Página raíz. Elas podem ser um subdiretório da página principal em /var/www. O servidor Apache grava seus arquivos de log geralmente em /var/log/httpd, não é possível descrever os arquivos de logs usados porque tanto seus nomes como conteúdo podem ser personalizados no arquivo httpd.conf. Mesmo assim, os arquivos de logs encontrados na instalação padrão do Apache são os seguintes: access_log - Registra detalhes sobre o acesso as páginas do servidor. error_log - Registra detalhes saber erros de acesso as páginas ou erros internos do servidor. Criando pastas protegidas Edite o arquivo /etc/httpd/httpd.conf e no final dele coloque as seguintes linhas: <Directory /srv/httpd/htdocs/meusite> Options Indexes FollowSymlinks MultiViews AllowOverride AuthConfig Order allow,deny Allow from all </Directory> Agora vá na pasta que você quer proteger e crie um arquivo.htaccess com o seguinte conteúdo: AuthType Basic AuthName Site protegido! AuthUserFile /etc/httpd/senhas require valid-user 4
Criando sites protegidos Agora crie o arquivo /etc/httpd/senhas com o comando abaixo: # htpasswd -c -m /etc/httpd/senhas usuario A opção "-c" indica que deverá ser criado um arquivo (/etc/httpd/senhas), a opção "-m" indica a utilização de senhas criptografadas usando o algoritmo MD5, que garante maior segurança. Para adicionar novos usuários, execute o comando: # htpasswd -m /etc/httpd/senhas novousuario Permissões para páginas As opções de restrição podem tanto ser especificadas nas diretivas quanto nos arquivos.htaccess (ou outro nome de arquivo de controle de acesso especificado pela opção AccessFileName do arquivo de configuração do Apache). Cada diretiva de acesso é especificada entre <tags> e devem ser fechadas com </tag> (como na linguagem HTML). Exemplo de permissões Diretiva: Files <Files *.txt> Order deny,allow deny from all </Files> Bloqueia o acesso a todos os arquivos com a extensão.txt 5
Exemplo de permissões Diretiva: Location <Location /security> Order allow,deny </Location> Bloqueia o acesso de todos os usuários ao diretório /security da URL. 6