Sistema Operacional Linux > Servidor Web (Apache) www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito
Introdução O Apache é o serviço web (http) mais popular do mundo, sendo responsável pela hospedagem de mais da metade de todas as páginas publicadas na Internet; Através do módulo mod_ssl provê segurança e criptografia com suporte integrado ao protocolo HTTPS (via SSL); Foi criado em 1995 por Rob McCool. 2
Topologia do Laboratório 3
1. Instalação do Serviço APACHE root@webserver:/# apt-get install apache2 A primeira etapa consiste na instalação do pacote apache2 para que o Linux possa ser configurado como servidor web na LAN (intranet) ou na Internet. Essa tarefa é simples e rápida através do APT (Debian). 4
2. Configurações Gerais do Servidor Web DirectoryIndex index.htm default.htm index.php (...) Include ports.conf (...) <Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> /etc/apache2/apache2.conf <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> (...) IncludeOptional sites-enabled/*.conf O Apache é modular e sua configuração envolve diferentes arquivos que ficam armazenados em /etc/apache2. Em /etc/apache2/apache2.conf são realizadas as configurações básicas do servidor web, inclusive o vínculo com outros arquivos. 5
3. Configurações de Escuta do Serviço Web Listen 80 /etc/apache2/ports.conf #Listen 192.168.0.1:80 #Listen 203.0.113.1:80 #Listen [2001:db8:cafe::1]:80 <IfModule mod_ssl.c> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule> No arquivo /etc/apache2/ports.conf são configuradas as interfaces (através do IP) e portas que irão responder requisições HTTP. O Apache, por padrão, reponde requisições vindas na porta 80 de todas as interfaces, mas pode ser personalizado para aceitar requisições IPv4 ou IPv6 em outras portas. 6
4. Configurações Específicas do Site <VirtualHost *:80> ServerAdmin webmaster@nome.com.br ServerName nome.com.br ServerAlias www.nome.com.br DocumentRoot /var/www/nome.com.br/public_html ErrorLog /var/www/nome.com.br/logs/error.log CustomLog /var/www/nome.com.br/logs/access.log combined ErrorDocument 404 /error.htm <Directory /var/www/nome.com.br/public_html> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost> /etc/apache2/sites-available/nome.com.br.conf iremos criar os diretórios posteriormente o arquivo deve existir no diretório-raíz As configurações dos sites ficam em /etc/apache2/sites-available. Para ambientes que irão hospedar múltiplos sites, é recomendada a criação de um arquivo (.conf) com o nome do domínio pelo qual cada site irá responder. 7
5. Ativação do Site root@webserver:/# a2ensite nome.com.br.config root@webserver:/# ls -l /etc/apache2/sites-enabled lrwxrwxrwx 1 root root 38 Mai 14 23:49 nome.com.br.conf ->../sites-available/nome.com.br.conf Assim como a ferramenta a2ensite é utilizada para ativar e publicar um site, a ferramenta a2dissite pode ser utilizada para remover o link simbólico. A partir do(s) arquivo(s) do(s) site(s) no diretório /etc/apache2/sites-available, a ferramenta a2ensite deve ser utilizada para ativar e publicar o(s) site(s) através da criação de um link simbólico no diretório /etc/apache2/sites-enabled. 8
6. Criação de Diretórios p/ Hospedagem de Páginas e Logs root@webserver:/# mkdir /var/www/nome.com.br root@webserver:/# mkdir /var/www/nome.com.br/public_html root@webserver:/# mkdir /var/www/nome.com.br/logs root@webserver:/# chmod 755 R /var/www/nome.com.br Respeitando os caminhos informados na configuração anterior, devem ser criados os diretórios para armazenamento da página web. O diretório-raíz da hospedagem deve conter o arquivo padrão index.htm para exibir algo aos clientes. 9
7. Inicialização do Serviço Web root@webserver:/# service apache2 start * Starting web server apache2 * Quando um novo serviço é instalado no Debian, ele passa a ser automaticamente inicializado em caso de boot do servidor. A ferramenta update-rc.d pode ser utilizada para remover/adicionar serviços no processo de inicialização automática. Por fim, depois de configurado o servidor, basta iniciar o serviço para validar todas as configurações realizadas anteriormente. A partir de agora o site hospedado no servidor pode ser acessado através de navegadores. 10
Servidor Web (Apache) > Diretório Protegido www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito
1. Autenticação de Diretórios Protegidos <VirtualHost *:80> (...) <Directory /var/www/nome.com.br/public_html/private> AuthName "ACESSO RESTRITO" AuthType Basic AuthUserFile /etc/apache2/passwd.apache require valid-user </Directory> /etc/apache2/sites-available/nome.com.br.conf diretório restrito arquivo de usuários autorizados Para solicitar autenticação dos usuários que tentem acessar o conteúdo de um determinado diretório protegido, é necessário especificar o diretório em questão e suas configurações no arquivo /etc/apache2/sites-available/xxx.conf. 12
2. Criação do Arquivo de Usuários Autorizados root@webserver:/# touch /etc/apache2/passwd.apache root@webserver:/# htpasswd /etc/apache2/passwd.apache shbbrito root@webserver:/# mkdir /var/www/nome.com.br/public_html/private root@webserver:/# service apache2 reload Por fim, é necessário criar um arquivo com a relação de usuários e senhas que podem ter acesso ao diretório protegido. Aproveitamos para criar o diretório restrito /var/www/nome.com.br/public_html/private e reiniciar o serviço. 13
www.labcisco.com.br ::: shbbrito@labcisco.com.br