[FUG-BR] Segurança no Apache

Marcelo Gondim gondim em bsdinfo.com.br
Sexta Agosto 23 17:59:58 BRT 2013


Em 23/08/13 17:06, Patrick Tracanelli escreveu:
>
> Em 23/08/2013, às 14:28, Leonardo Augusto <lalinden em gmail.com> escreveu:
>
>> 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>
> Po foi o melhor que deu pra responder hehehe :(
>
> Como eu não sei se a dúvida é o simples (www:www), trusted ou outra coisa, tentei responder os 3, o simples, o trusted e o outro (isolamento) hehehe. Provavelmente é o primeiro caso ne? :(
>
>
Po Patrick assim você acaba com o cérebro do Carabina rsrsrsrsrs o mac 
BIBA é bem interessante HaHaHaHaH lembro dele no curso SEE.

[]'s
Gondim


Mais detalhes sobre a lista de discussão freebsd