2

Click here to load reader

SegurançA BáSica Do Apache

Embed Size (px)

Citation preview

Page 1: SegurançA BáSica Do Apache

Segurança básica do ApachePor: Elias Barenboim ( 23/12/2000 )

Instalação

Quebraremos um pouco a sequência para amenizarmos o clima e pegar algo um pouco mais específico:segurança básica do Apache.

Primeiramente, vamos instalar o apache. Todas distribuições vem com ele, só que vale a pena baixar a últimaversão, por questões de segurança e performace. Na Debian:

apt-get update; apt-get install apache

Redhat, vá na página da Redhat, procure pelo último rpm, baixe e:

rpm -i apache_versao. 1 .rpm

Para maior entendimento sobre o assunto, como outras opções de instalação ou dúvidas relacionadas a tais,leia nosso artigo de introdução sobre isso. Também uma referência interessante, como não podia deixar deser, é o próprio site do Apache .

Arrumando os detalhes

Os arquivos básicos de configuração são, access.conf, httpd.conf, srm.conf e encontram-se em /etc/apache/,isso na Debian.

Uma das mais importantes configurações é o usuário/grupo que rodará o servidor. É escolhido em geral ousuário chamado www-data, e restringe-se bastante o acesso a este. Ou seja, só quem realmente necessitater acesso a ele o utiliza, além dele só ter acesso as áreas estritamente relacionadas as suas tarefas web.Deve-se dar uma checada em User/Group no httpd.conf. Lá deve ser indicado corretamente o usuário/grupo(isso vem por padrão). Todos arquivos de configurações são comentados, ou seja, vale a pena você dar umalida.

Um pouco antes disso, só que importante por questões tanto de velocidade quanto segurança, tem-seHostnameLookups. É recomendável que se deixe isto desligado, com a opção off . Ele não tentará resolvertodos os nomes que requisitam uma página no site, evitando possíveis ataques massivos relativos a essesrecursos.

Deve-se preencher corretamente o campo ServerAdmin, em geral com o responsável pela manunteção dosite/equipe de suporte. Isso deve ser feito pois quando houver algum problema no site, será reportado paratal. Ou seja, crie uma alias com essas características ou use um pronto (já falamos sobre a responsabilidadeem cima de uma só pessoa que deve ser evitado, em artigos passados ).

A opção ServerRoot indica qual diretório deve-se conter os arquivos de configurações do servidor. Em geral,na debian vem como /etc/apache. Detalhe, se estiver usando NFS (ou algum outro tipo de compartilhamentode arquivos), dê uma olhada na documentação relativa ao assunto, podem acontecer problemas futuros.

Agora no srm.conf, temos DocumentRoot, que diz qual a "raiz" de seu servidor. Todas as requisiçõescomeçarão por ele. Links são permitidos, só que deve-se tomar cuidado com eles. Veja as diretivas UserDir,DirectoryIndex também, para ir se familiarizando com o servidor.

Entedendo um pouco mais os diretórios

Por padrão, o apache vem com indexação automática de diretórios (opção IndexOptions). Isso significa quese não houver um arquivo de index, como o index.html por padrão, ele listará o conteúdo do diretório.Tirando algumas excessões específicas, isso é uma falha de segurança (não tem utilidade você deixar alguémver conteúdo de um diretório, eu disse com excessões). Tire a permissão de leitura de tal (do diretório): useo comando chmod 411. Quando uma tentativa for efetivada, quem tentar acessar receberá a mensagem de

http://olinux.uol.com.br/artigos/250/print_preview.html

1 de 2 06-12-2009 12:40

Page 2: SegurançA BáSica Do Apache

"Forbidden".

Uma diretiva para ocultar arquivos, chama-se IndexIgnore (no src.conf). Você pode utilizar coringas avontade, por exemplo, poderiamos ter: IndexIgnore *jpg *htaccess*, por exemplo.

A diretiva Alias (access.conf) , permite que se "mapeie" outros diretórios, por exemplo, eu boto Alias /scripts/var/scripts/sitex2/, quando eu tentar acessar o /scripts, ele cairá diretamente no diretório que eu determinei.Às vezes, servidores grandes, tende-se a espalhar aliases para todos os lados, o que não é bom, poisdescentraliza-se o local de administração e torna-se cada vez mais inviável o controle de acesso efuncionalidades de cada localização.

Áreas Reservadas

Uma opção muito utilizada nos servidores são áreas reservadas de usuários. Isso é feito através dos arquivos.htaccess (você determina o nome dele, caso queira mudar, em AccessFileName no srm.conf).Exemplificando:

<<html>Directory /var/www/area_administrativa>require user zecaAuthType BasicAuthName "Acesso administrativo"AuthUserFile /var/www/senhas<<html>/Directory>

Troque pelos nomes que forem convenientes, zeca é um nome genérico (para por vários nomes separe porespaço). Depois vem tipo de autenticação básica, aí AuthName é um label qualquer que aparecerá no boxquando você tentar acessar tal área, e AuthUserFile é o arquivo de senhas, onde ele irá procurar por ela nahora de checar.

Vale ressaltar que você pode omitir as diretivas "Directory" e botar somente o conteúdo no diretório desejado(arquivo .htaccess). Isso existe para que cada usuário possa controlar acesso ao seu home (lembre-se, osarquivos de configuração do servidor só o administrador, você, deve ter acesso).

Para criar senhas, você deve utilizar o programa htpasswd (vem com apache), por exemplo, htpasswd -c/var/www/senhas zeca, e digitar a senha do zeca. A opção -c só é usada a primeira vez que for utilizado(para criar o arquivo), posteriormente deve ser omitida. Pode-se autenticar via banco de dados, senhas reaisdo sistema, pam (foge ao tema explicar como isso funciona agora, mas procure a documentação).

Deve-se setar diretórios específicos para execução de scripts, por exemplo, ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/, o que já vem por padrão na maioria dos lugares. Vale ressaltar que as permissões dos diretórios descripts devem ser bem testadas, e os próprios scripts também, pois são as maiores fontes de problemas deum servidor bem configurado (cuidado também com scripts de terceiros, pior ainda).

Uma opção que tem se tornado bem popular nos servidores de hoje em dia, com conteúdo dinâmico, é ochamado Server Side Include (SSI). Você deve associar sua extensão e dizer o que ela é, por exemplo:

AddType text/html .shtml AddHandler server-parsed .shtml

(server-parsed é que o servidor faz o parser). Para limitar essa opção genérica para o servidor, deve-se usaras diretivas

<<html>Location> e <<html>Directory>.

Bem, é isso, falamos um pouco de configuração do apache e segurança básica, espero que tenham gostado.

Copyright (C) 1999-2000 Linux Solutions

http://olinux.uol.com.br/artigos/250/print_preview.html

2 de 2 06-12-2009 12:40