[FUG-BR] Segurança no Apache
Leonardo Augusto
lalinden em gmail.com
Sexta Agosto 23 19:08:27 BRT 2013
2013/8/23 Marcelo Gondim <gondim em bsdinfo.com.br>:
> 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
> -------------------------
eheh tava zuando.. muito boa a resposta, que não vale apenas para
apache, e sim para qualquer daemon que da bind em porta tcp,
interessante..
E está é de parabéns por mostrar as possibilidades acerca do tema.
[]´s
Mais detalhes sobre a lista de discussão freebsd