Como fazer com que os scripts de log canalizados do Apache não sejam executados como root?

1

A organização para a qual trabalho é muito voltada para a segurança. Existe uma separação entre o grupo de Administradores do Sistema que são responsáveis pelos sistemas operacionais (que, obviamente, possuem root) e aqueles de nós que mantêm os serviços que rodam nesses sistemas operacionais (dos quais eu seria um, e nós somos não ter acesso ao root, exceto restrito via sudo).

Atualmente, estou no processo de reprojetar como mantemos nossa configuração do Apache. A nova configuração será executada no RHEL, onde o antigo foi executado no Solaris.

De alguma forma, no Solaris, quando o log de canalização foi usado, os scripts para os quais o log foi canalizado são executados como o mesmo usuário do Apache, que é o webservd. No RHEL, no entanto, eles acabam sendo executados como root, onde eu preferiria que eles fossem executados como a conta do serviço apache (ou seja, o apache, a mesma conta em que os serviços Apahce são gerados).

Soluções que envolvem o uso de sudo na chamada de pipe não são suficientes; antes que eu tenha permissão para mover este QA passado, precisarei criar uma maneira de fazer com que você não possa fazer com que algo seja executado como root colocando-o no Apache arquivos de configuração. Eu suspeito que a solução envolve a concessão ao usuário do apache de alguns privilégios especiais (de modo que ele possa ligar às portas 80/443) e então usar isso em vez de root para iniciar o serviço.

Qualquer ajuda seria muito apreciada.

Adendo: Foi feito um pedido para mostrar como o log canalizado é chamado.

Esta é a linha relevante do arquivo de configuração:

CustomLog "||/httpd/scripts/syslog.py" qradar

O que acaba acontecendo é que o script em /httpd/scripts/syslog.py acaba sendo executado como root. Precisamos fazer isso não só não acontecer, mas também não é possível fazer.

    
por Glenn Lasher 24.06.2015 / 15:43

1 resposta

1

Se eu entendi corretamente, você simplesmente não quer executar o HTTP como root. Ou o Apache não escuta a porta 80 e usa o IPtables para redirecionar esses pacotes para um número de porta mais alto; ou diga ao Linux que portas < 1024 não são seguros. Veja a excelente resposta no link . Também aqui: link

Um kernel personalizado não é uma má ideia. Muitas pessoas notaram que a restrição 1024 é antiquada e, em termos de segurança, obsoleta. Uma resposta foi fornecida para uma pergunta semelhante na qual o kernel é corrigido para que PORT_SOCK seja alterado de 1024 para 24. link

    
por 24.06.2015 / 15:52