O httpd pode verificar as permissões do arquivo de chave privada usado com o certificado SSL?

2

É possível que o httpd falhe um configtest se existir um valor SSLCertificateKeyFile e aponte para um arquivo com outras permissões além do mínimo necessário para ler a chave? Eu tenho httpd executando como root inicialmente e mudando para um usuário diferente após a inicialização. O arquivo de chave privada deve ser de propriedade de root com o grupo root e permissões 400. Qualquer coisa mais permissiva deve causar um aviso ou falha na inicialização.

O cliente ssh tem um comportamento semelhante a este; se você tentar usar uma chave privada cujas permissões sejam muito abertas, ela falhará.

    
por Eric Rath 19.12.2011 / 23:16

2 respostas

0

Depende do tamanho da sua loja. Se for um requisito, você pode corrigir o apache para ter isso e pode tentar adicioná-lo ao autor. Mantenha o apache corrigido em um repositório local e distribua-o para os servidores locais.

Você também pode alterar os scripts de inicialização do apache para verificar a configuração e extrair os nomes dos arquivos que possuem as chaves SSL e verificar sua permissão.

A terceira opção seria criar um script systemtap que verifique quando o apache tenta abrir as chaves registra um erro e mata o apache.

4ª opção - use inotify e verifique quando as chaves são lidas, verifique se elas estão abertas pelo daemon do apache, registre um erro e então mate o apache.

    
por 19.12.2011 / 23:33
0

Pode ser mais simples implantar uma tarefa do cron assim:

1 * * * * chown -R root:root /etc/apache/keys; chmod -R 400 /etc/apache/keys/*

O Apache sempre será iniciado sem erros (a menos que você tenha apenas alterado as permissões nos arquivos SSL) e mesmo que alguém altere as permissões enquanto o Apache estiver em execução, elas serão alteradas novamente dentro de uma hora. Esse trabalho é de baixo impacto o suficiente, você poderia até tê-lo executado a cada minuto em um sistema de produção sem preocupações.

Se você implantar suas chaves SSL com o Puppet (ou semelhante), também poderá configurar o Puppet para impor a propriedade e as permissões para esses arquivos. Claro, então você tem que lidar com as chaves armazenadas no Puppet.

    
por 20.12.2011 / 00:25