26.7. Evitando problemas de segurança

Um servidor Web exposto à Internet pública requer um esforço administrativo contínuo. É inevitável que sejam levantadas questões de segurança, relacionadas tanto ao software como à configuração incorreta acidental. Aqui vão algumas dicas sobre como lidar com elas.

26.7.1. Software atualizado

Se forem encontradas vulnerabilidades no software do Apache, um aviso de segurança será emitido pelo SUSE. Ele contém instruções para a correção de vulnerabilidades, que devem ser aplicadas o mais rápido possível. As notificações de segurança do SUSE estão disponíveis nas seguintes localizações:

26.7.2. Permissões de DocumentRoot

Por padrão, no SUSE Linux, o diretório de DocumentRoot /srv/www/htdocs e o diretório CGI /srv/www/cgi-bin pertencem ao usuário e grupo Root. Não mude essas permissões. Se os diretórios fossem graváveis para todos, qualquer usuário poderia colocar arquivos neles. Esses arquivos seriam então executados pelo Apache com as permissões de wwwrun, que poderiam dar ao usuário acesso não desejado a recursos do sistema de arquivos. Use os subdiretórios de /srv/www para colocar os diretórios de DocumentRoot e CGI para seus hosts virtuais e certifique-se de que esses diretórios e arquivos pertencem ao usuário e grupo Root.

26.7.3. Acesso ao sistema de arquivos

Por padrão, o acesso a todo o sistema de arquivos é negado em /etc/apache2/httpd.conf. Nunca sobregrave essas diretivas, mas habilite o acesso especificamente a todos os diretórios que o Apache deverá ler (consulte Seção 26.2.1.2.3, “Configuração básica do host virtual” para obter detalhes). Nesse processo, verifique se nenhum arquivo crítico (como arquivos de senhas ou de configuração do sistema) possam ser lidos de um ponto externo.

26.7.4. Scripts CGI

Os scripts interativos em Perl, PHP, SSI ou qualquer outra linguagem de programação podem essencialmente executar comandos arbitrários e, portanto, apresentam um problema geral de segurança. Os scripts a serem executados a partir do servidor devem ser instalados somente a partir de fontes em que o administrador do servidor confia. Permitir que os usuários executem seus próprios scripts, em geral não é uma boa prática. Outra recomendação é realizar auditorias de segurança para todos os scripts.

Para facilitar ao máximo a administração de scripts, costuma-se limitar a execução dos scripts CGI a diretórios específicos em vez de permiti-los globalmente. As diretivas ScriptAlias e Option ExecCGI são usadas para configuração. A configuração padrão do SUSE Linux não permite a execução de scripts CGI a partir de qualquer lugar.

Como todos os scripts CGI são executados como o mesmo usuário, pode haver conflito entre scripts diferentes. O módulo suEXEC permite executar scripts CGI para outro usuário e grupo.

26.7.5. Diretórios do usuário

Ao habilitar os diretórios do usuário (com mod_userdir ou mod_rewrite), você não deve permitir os arquivos .htaccess, o que permitiria aos usuários sobregravar as configurações de segurança. Se isso não for possível, ao menos limite o envolvimento do usuário usando a diretiva AllowOverRide. No SUSE Linux, os arquivos .htaccess são habilitados por padrão, mas o usuário não tem permissão de sobregravar nenhuma diretiva Option ao usar mod_userdir (consulte o arquivo de configuração /etc/apache2/mod_userdir.conf).