SegurançA BáSica Do Apache
Upcoming SlideShare
Loading in...5
×
 

SegurançA BáSica Do Apache

on

  • 1,724 views

 

Statistics

Views

Total Views
1,724
Slideshare-icon Views on SlideShare
1,724
Embed Views
0

Actions

Likes
0
Downloads
23
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    SegurançA BáSica Do Apache SegurançA BáSica Do Apache Document Transcript

    • http://olinux.uol.com.br/artigos/250/print_preview.html Segurança básica do Apache Por: 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 última versã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 de ser, é 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 o usuário chamado www-data, e restringe-se bastante o acesso a este. Ou seja, só quem realmente necessita ter 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 uma lida. Um pouco antes disso, só que importante por questões tanto de velocidade quanto segurança, tem-se HostnameLookups. É recomendável que se deixe isto desligado, com a opção off . Ele não tentará resolver todos os nomes que requisitam uma página no site, evitando possíveis ataques massivos relativos a esses recursos. Deve-se preencher corretamente o campo ServerAdmin, em geral com o responsável pela manunteção do site/equipe de suporte. Isso deve ser feito pois quando houver algum problema no site, será reportado para tal. Ou seja, crie uma alias com essas características ou use um pronto (já falamos sobre a responsabilidade em 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 compartilhamento de 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ções começ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 que se 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ém ver conteúdo de um diretório, eu disse com excessões). Tire a permissão de leitura de tal (do diretório): use o comando chmod 411. Quando uma tentativa for efetivada, quem tentar acessar receberá a mensagem de 1 de 2 06-12-2009 12:40
    • http://olinux.uol.com.br/artigos/250/print_preview.html "Forbidden". Uma diretiva para ocultar arquivos, chama-se IndexIgnore (no src.conf). Você pode utilizar coringas a vontade, 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, pois descentraliza-se o local de administração e torna-se cada vez mais inviável o controle de acesso e funcionalidades 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 zeca AuthType Basic AuthName "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 por espaço). Depois vem tipo de autenticação básica, aí AuthName é um label qualquer que aparecerá no box quando você tentar acessar tal área, e AuthUserFile é o arquivo de senhas, onde ele irá procurar por ela na hora 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, os arquivos 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 reais do 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 de scripts devem ser bem testadas, e os próprios scripts também, pois são as maiores fontes de problemas de um 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, é o chamado 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 usar as 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 2 de 2 06-12-2009 12:40