Versão 2.0 1. INTRODUÇÃO SERVIDOR WEB + LOG DE ACESSO LABORATÓRIO DE REDES DE COMPUTADORES Responsável: Ana Luíza Cruvinel Data: 02/12/2014 Logs são muito importantes para a administração segura de sistemas, pois registram informações sobre o seu funcionamento e sobre eventos por eles detectados. Muitas vezes, os logs são o único recurso que um administrador possui para descobrir as causas de um problema ou comportamento anômalo. Para que os logs de um sistema sejam úteis para um administrador, eles devem estar com o horário sincronizado via NTP (Network Time Protocol), ser tão detalhados quanto possível, sem, no entanto gerar dados em excesso. Informações úteis são aquelas relacionadas a eventos de rede, tais como conexões externas e registros de utilização de serviços, arquivos transferidos via FTP (File Transfer Protocol- Protocolo de Transferência de Arquivos), acessos a páginas Web, tentativas de login sem sucesso, avisos de disco cheio. Para registrar estas informações, é necessário configurar o sistema da maneira apropriada. A forma de fazer isto geralmente varia para cada componente específico. Os logs são armazenados em disco, no próprio sistema onde são gerados. Neste tipo de armazenamento existe a possibilidade dos logs serem destruídos durante uma invasão do sistema. Em alguns sistemas, isso pode ser contornado através da instalação de um loghost centralizado. Um loghost centralizado é um sistema de coleta e armazenamento de logs de outros sistemas em uma rede, servindo como um arquivo de logs. Uma das vantagens de loghosts centralizados é que eles facilitam a análise dos logs e correlação de eventos ocorridos em sistemas diferentes. Um procedimento que deve ser utilizado é a rotação automática de logs. Quando utilizado, deve garantir que os logs sejam movidos para o armazenamento off-line antes que eles sejam removidos do sistema pela rotação, evitando assim a perda de registros. Alguns sistemas já vêm com a rotação automática habilitada em sua configuração, porém, ao instalar um destes sistemas, verifique se esta configuração está de acordo com os seus procedimentos de backup e armazenamento off-line de logs. Os logs não podem ser mantidos on-line por tempo indeterminado, pois ocupam muito espaço em disco. A melhor forma para resolver esta questão é transferir periodicamente os logs do disco para um dispositivo de armazenamento off-line. Os logs armazenados off-line devem ser mantidos por um período de tempo, pois podem ser necessários para auxiliar em eventuais investigações de segurança posteriores. O Comitê Gestor da Internet no Brasil recomenda que logs de conexões de usuários de provedores de acesso estejam disponíveis por pelo menos três anos. É aconselhável que os demais logs sejam mantidos no mínimo por seis meses. É importante que os logs armazenados on-line sejam incluídos no procedimento de backup dos seus sistemas. Os logs possibilitam o acompanhamento do que acontece com a sua rede e com os seus sistemas. Portanto, é importante que eles sejam monitorados com frequência para identificar com maior rapidez, que por ventura possam surgir. Recomendam-se algumas práticas no monitoramento de logs: Laboratório de Redes de Computadores Página 1
Adquira o hábito de examinar os logs, faça disso uma rotina de trabalho; Execute essa rotina ao menos uma vez por dia, mas saiba que sistemas muito importantes ou que geram muita informação podem precisar ter seus logs analisados com maior frequência; Busque perquirir as causas de qualquer registro que lhe pareça incorreto ou anômalo, por mais insignificante que ele aparente ser; Procure identificar o padrão de comportamento normal dos seus sistemas, para poder encontrar eventuais anomalias com maior rapidez. Quando estiver analisando logs, você deve certificar-se do time zone usado para registrar o horário dos eventos. Por exemplo, alguns softwares (como a Microsoft IIS, dependendo da configuração adotada) registram eventos com a hora de Greenwich (GMT), e não com a hora local. O falta de conhecimento do time zone em que estão os logs pode facilmente invalidar uma análise e levá-lo a conclusões equivocadas. À medida que você adquirir prática com a análise dos seus logs, você poderá escrever scripts ou pequenos programas para auxiliá-lo nesta tarefa, automatizando parte do processo. Estes scripts são úteis, por exemplo, para pré-processar os logs em busca de determinados conteúdos, para eliminar conteúdo repetitivo e para elaborar um resumo que pode ser enviado por e-mail para o administrador do sistema. A eliminação de padrões relacionados a eventos considerados normais pelo administrador é especialmente importante porque, além de reduzir o volume de logs a serem analisados, pode evidenciar alguma atividade incomum. 2. INSTALANDO SERVIDOR WEB E VIRTUAL HOST Passo 1: Instalação do httpd. No terminal do Linux - CentOS, digite: $ sudo su (Permite acesso ao usuário root) $ yum install httpd Passo 2: Criação do diretório de hospedagem do site, neste caso projeto2.com.br. $ mkdir /var/www/html/projeto2 (cria o diretório "projeto2" na pasta "html") $ cd /var/www/html/ projeto2 $ gedit index.html (cria uma página "index.html" para o projeto2 com o editor de texto gedit) Passo 3: Modificando o arquivo httpd.conf - instruções para o servidor localizar a página: $ cd /etc/httpd/conf (acessa o diretório conf, onde está localizado o arquivo httpd.conf) $ cp httpd.conf httpd.conf.bkp (cria um backup do arquivo httpd.conf) $ gedit httpd.conf (abre o arquivo httpd.conf no editor de textos Gedit) No GEDIT, digitar: Laboratório de Redes de Computadores Página 2
NameVirtualHost *:80 (provavelmente essa linha já estará digitada, nesse caso, basta descomentar" a mesma, retirando o "#") <VirtualHost *:80> DocumentRoot /var/www/html/projeto2 ServerName projeto2.com.br </VirtualHost> Passo 4: Modificando o arquivo hosts instruções de localização de domínio: $ cd /etc $ gedit hosts No GEDIT, digitar na última linha do arquivo : 192.168.11.142 projeto2.com.br (o IP informado deve ser o da máquina onde será hospedado o site) Passo 5: Ativando o httpd. $ service iptables stop (libera o firewall) $ service httpd start (inicia o serviço httpd) Após a ativação do httpd, a página hospedada deve estar funcionando. Abra um navegador e digite o endereço que foi configurado no arquivo hosts, neste caso projeto2.com.br, caso contrário o endereço não será encontrado. Caso ocorra algum problema, refaça todos os passos. 3. OBTENDO LOGS DE ACESSO No terminal do Linux-CentOS, digite: $ cd /var/log/httpd/ $ gedit access_log No Gedit, será aberto o arquivo que contém os log de acesso da página criada. No caso deste teste, foi gerado o seguinte arquivo: 1 2 3 4 5 192.168.11.116 - - [24/Nov/2014:17:43:52-0200] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; 192.168.11.116 - - [24/Nov/2014:17:55:26-0200] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; 192.168.11.142 - - [24/Nov/2014:18:06:19-0200] "GET / HTTP/1.1" 200 67 "-" "Mozilla/5.0 (X11; Linux x86_64; 192.168.11.116 - - [24/Nov/2014:18:06:34-0200] "GET / HTTP/1.1" 200 67 "-" "Mozilla/5.0 (X11; Linux x86_64; 192.168.11.116 - - [24/Nov/2014:18:11:31-0200] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; Laboratório de Redes de Computadores Página 3
Analisando os dados obtidos, pode-se observar que cada linha corresponde a um acesso realizado na página. A cada acesso realizado, o servidor salva informações como (exemplo da linha 1): IP da máquina que acessou o site: 192.168.11.116 Data e hora de acesso: 24/Nov/2014:17:43:52-0200 Tipo de requisição: GET / HTTP/1.1 Navegador: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0 4. CONFIGURANDO LOGS DE ACESSO As informações que aparecem no arquivo access_log podem ser configuradas de acordo com as necessidades do administrador da rede. Por padrão, os logs aparecem do seguinte modo: 192.168.11.116 - - [24/Nov/2014:18:11:31-0200] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; Cada parte dessa entrada de log é descrita abaixo: 192.168.11.116 ( % h ) - Este é o endereço IP do cliente (host remoto) que fez o pedido para o servidor. - ( % l ) - O "hífen" na saída indica que a peça de informação solicitada não está disponível. Neste caso, a informação que não está disponível no RFC 1413 é a identidade do cliente determinado pela máquina clientes. [24/Nov/2014:18:11:31-0200] ( % t ) - O tempo que o servidor de terminado o processamento do pedido. O formato é: o [Dia / mês / ano: hora: minuto: segundo zone] o dia = 2 * dígito o mês = 3 * carta o ano = 4 * dígitos o hora = 2 * dígitos o minuto = 2 * dígitos o segundo = 2 * dígitos o zone = (`+ ' `- ') 4 * dígitos " GET / HTTP/1.1" ( \ "% r \" ) - A linha de solicitação do cliente é dado entre aspas duplas. A linha de solicitação contém uma grande quantidade de informações úteis. Em primeiro lugar, o método utilizado pelo cliente é GET. Em segundo lugar o cliente utilizou o protocolo HTTP / 1.0. Laboratório de Redes de Computadores Página 4
" Mozilla/5.0 (X11; Linux x86_64; ( \ "% {User-agent} i \" ) - O User-Agent cabeçalho de solicitação HTTP. Esta é a informação de identificação que o navegador do cliente relatórios sobre si mesmo. Vários registros de acesso podem ser criados simplesmente especificando múltiplas CustomLog direto no arquivo de configuração. Por exemplo, as seguintes diretrizes criarão três logs de acesso. O primeiro contém a informação básica, enquanto que a segunda e terceira contém referer navegador e informações. Os dois últimos CustomLog linhas mostram como para imitar os efeitos dos ReferLog e AgentLog. LogFormat "%h %l %u %t \"%r\" %>s %b" common CustomLog logs/access_log common CustomLog logs/referer_log "%{Referer}i -> %U" CustomLog logs/agent_log "%{User-agent}i" Laboratório de Redes de Computadores Página 5