[FUG-BR] Segurança no Apache
Leonardo Augusto
lalinden em gmail.com
Sexta Agosto 23 14:28:56 BRT 2013
2013/8/23 Nilton OS <jniltinho em gmail.com>:
> Em 23 de agosto de 2013 13:48, Patrick Tracanelli <
> eksffa em freebsdbrasil.com.br> escreveu:
>
>> O apache não roda como root. Ele roda como usuario e grupo declarados no
>> httpd.conf (por default www:www)
>>
>> No entanto ele INICIA como root pra fazer bind na tcp/80 e depois faz
>> setuid pro usuário configurado (por default www:www)
>>
>> Se voce quer um nível de segurança que impeça até mesmo esse binding como
>> root você tem que esquecer do Unix como você está acostumado, esquecer do
>> controle de acesso DAC que é o default do POSIX e assumir um comportamento
>> Trusted (TrustedBSD).
>>
>> Nesse caso você precisa usar o MAC Portacl (kldload mac_portacl), colocar
>> no MAC todas as portas do sistema como portas privilegiadas (seria o ideal
>> mas ao menos da 0-1023), e no DAC dizer que nenhuma porta é privilegiada
>> (modificando o portrange high e jogando pra 0). Nesse momento você esqueceu
>> o controle de acesso DAC e passou a usar o MAC
>>
>> Ai voce vai no MAC e diz que o usuário www pode fazer binding no socket 80
>> do protocolo tcp. Por exemplo:
>>
>> sysctl -w security.mac.portacl.rules=uid:80:tcp:80
>>
>> Pronto.
>>
>> Se você quiser pode até fazer o Root ter que pedir benção pro kernel antes
>> de ouvir em portas baixas (suser_exempt=0), mas por padrão apenas o acima
>> já atende.
>>
>> Apesar de eu acreditar que você não queira isso e ser algo mais simples,
>> como seu apache por algum motivo estranho estar rodando como UID 0, caso em
>> que voce avalia o motivo.
>>
>> Por último e fica a dica, mais importante que com que usuário o Apache
>> roda, é você prover isolamento de credenciais se seu ambiente for
>> configurado.
>>
>> Com o MPM ITK no Apache você pode facilmente fazer cada VirtualHost rodar
>> com um usuário diferente; pode fazer cada contexto Directory executar com
>> uma permissão diferente. Se seu ambiente for shared avalie isso antes de
>> pensar em ir pra MAC pois é um tremendo diferencial pra segurança. E ai
>> você pode ir pra outros componentes (MLS/LOMAC/BIBA/BSD_EXTENDED) pra
>> apoiar por MAC as credenciais atribuídas via DAC no sujeito rodando o
>> processo.
>>
>> Abraços.
>>
>> Em 23/08/2013, às 13:12, Leonardo de Souza <freebsd.leonardo em gmail.com>
>> escreveu:
>>
>> > Tem alguma maneira de fazer o apache iniciar automaticamente como usuario
>> > comum pelo /rc.conf. Ou seja para que eu tenha mais segurança em meu
>> > servidor apache não quero que ele rode como root.
>> > -------------------------
>>
>>
>
>
> Patrick Tracanelli, deu uma aula para esse humilde aprendiz.
>
> Obrigado
>
> --
> ..............................................................................
> *Nilton OS* | linuxpro.com.br <http://www.linuxpro.com.br>
>
> *"Não são os grandes homens que transformam o mundo, mas sim os fracos nas
> mãos de um grande Deus."*
Complicou tudo isso sim... ehehe
<fun>
MAC = aquele computador da apple ?
DAC = Digital analog converter ?
</fun>
[]´s
Mais detalhes sobre a lista de discussão freebsd