Segurança em Home Page Prof. Roberto Amaral Segurança de servidor da Web Apache é o servidor mais popular de http e fornece muitos mecanismos de segurança predefinidos, incluindo – Controle de acesso de rede baseado em host – Controle sobre se e onde usuários locais podem executar scripts – Controle sobre se e como usuários locais podem anular sua configurações Contorlando acesso : access.conf Controle de acesso de rede baseado em host – # Controle de quem pode obter material desse servidor – Order allow, deny – Allow from all Sendo que : • Allow – A diretiva que controla que hosts podem concectar-se e oferece quatro opções : all, none ou lista • Deny – Controla que hosts não pode se conectar e oferece quatro opções : all, none ou lista • Order – Controla a ordem em que as regras allow/deny são aplicadas e oferece três ecolhar : allow, deny, mutual-failure Usando estas diretivas Em conjunto, pode-se aplicar controle de acesso de varias maneiras: – Inclusiva – Nomeia-se explicitamente todos os hosts autorizados – Exclusivamente – Nomeia-se explicitamente todos os hosts não autorizados – Inclusiva e exclusiva – Mistura e combina ambos os casos acima. Triagem inclusiva permitindo explicitamente hosts autorizados – # Controle de quem pode obter material desse servidor • Order allow, deny • Allow from 200.198.103.143 • Deny from all Triagem exclusive bloqueando explicitamente hosts indesejáveis – # Controle de quem pode obter material desse servidor • Order allow, deny • Allow from All • Deny from 200.198.103.145 Adicionando controle de acesso de diretório Alem das medidas vistas anteriormente, podese também adicionar proteção adicional de senha e controle de acesso no nível de diretório com htpasswd, e permitir que seus usuários façam o mesmo em uma base por diretório. htpasswd O sistema htpasswd oferece controle de acesso nos níveis de usuário e grupo via três arquivos de configuração. Cada arquivo cumpre uma função diferente no processo. – .htpasswd – Banco de dados de senha – .htgroup – arquivo de grupo htpasswd – .htaccess – arquivo de acesso htpasswd. Armazena as regras de acesso (allow, deny), a localização de arquivos de configuração, o método de autenticação e assim por diante. Autenticação simples baseada em usuário Como a autenticação de grupo não esta envolvida, você precisa segui os passos: 1. Criar um novo banco de dados de .htpasswd 2. Criar um novo arquivo .htaccess Criando um banco de dados .htpasswd Para criar m novo banco de dados de senha .htpasswd, emita o comando htpasswd mais a opção –c, o nome de arquivo de senha e o nome de usuário, assim: $ /usr/sbin/htpasswd –c .htpasswd orelha Arquivo Usuário Cirando um novo arquivo .htaccess O arquivo .htaccess armazena suas regras de acesso e varias informações de configuração. Para criá-lo, pode-se utilizar qualquer editor de texto. Cirando um novo arquivo .htaccess Eis o arquivo .htaccess para o diretório da Web de orelha. – AuthUserFile /home/orelha/public_html/.htpasswd – AuthGroupFile /dev/null – AuthName orelha – AuthType Basic – – <Limit GET POST> – Require user orelha – </Limit> Cirando um novo arquivo .htaccess O arquivo consiste em cinco diretivas: – AuthUser File – Aponta para a localização do banco de dados ;htpasswd – AuthGroupFile – Aponta para a localização de seu arquivo de acesso de grupo. Normalmente .htgroup. – AuthName – Arqmazena uma string de texto definida pelo usuário para exibir quando a caixa de diálogo de autenticação aparecer. – AuthType – Identifica o método de autenticação. – Limit – Controla que usuários tem acesso permitido, que tipo de acesso eles podem obter (como GET, PUT e POST) e a ordem em que essas regras são enviadas. Cirando um novo arquivo .htaccess Quatro diretivas internas de diretiva Limit oferecem controle de acesso mais refinado. – Require – Especifica quais usuários ou grupos podem acessar o diretório protegido por senha. – Allow – Controla que hosts podem acessar o diretório protegido – Deny – especifica quais hosts são proibidos de acessar o diretório protegido – Order – controla a ordem em que o servidor avaliará regras de acesso. Autenticação de http baseada em grupo Deve-se criar um arquivo .htgroup Designar um grupo O arquvo é dividido em dois campos. O primeiro identifica o grupo e o segundo armazena sua lista de usuários. Depois de criar .htgroup, editar .htaccess e especificar a localização de .htgroup: Autenticação de http baseada em grupo AuthUserFile /home/orelha/public_html/.htpasswd AuthGroupFile /home/orelha/public_html/.htgroup AuthName orelha AuthType Basic <Limit GET POST> Require user orelha </Limit> Autenticação de http baseada em grupo Especificar regras de acesso para o grupo patetas – AuthUserFile /home/orelha/public_html/.htpasswd – AuthGroupFile /home/orelha/public_html/.htgroup – AuthName orelha – AuthType Basic – – <Limit GET POST> – require group patetas – </Limit> Fraquezas na autenticação de http básica Autenticação de http básica é um excelente correção para proteger com senha diretórios de mas: – .htpasswd – protege estritamente contra abordagens externas. Ele não protege diretórios locais da Web contra usuários locais que podem acessar esses diretórios diretamente, via o sistema de arquivos ou por outros serviços, sem utilizar um cliente de Web. – Por padrão, o sistema de htpasswd não fornece nenhum mecanismo de broqueio de senha e portanto convida ataques apoiados, reiterativos ou de forca bruta. Os invasores podem tentar quantos nomes e senha quiserem. Fraquezas na autenticação de http básica é recomendável não armazenar arquivos .htpasswd nos diretorios que eles protegem invasores podem fazer um sniffing de trafego de autenticacao Configuração httpd.conf <Directory /var/www/html/wesley> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS PROPFIND> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS PROPFIND> Order deny,allow Deny from all </LimitExcept> </Directory>