[FUG-BR] Segurança no Apache

MarceloMF marcelomf em gmail.com
Sexta Agosto 23 14:54:47 BRT 2013


São modelos de acesso[0]. Exemplos:
DAC ~ Grupos/Usuários(passwd/groups)
MAC ~ SELinux
RBAC ~ GRSecurity

Como o Patrick disse, o apache sobe como root, dropa privilégios e passa a
realizar o IPC[1]. Hoje isso é bem comum em vários daemons.

[]s

[0] http://www.webune.com/forums/differences-between-mac-dac-and-rbac.html
[1]
http://stackoverflow.com/questions/6003545/examples-of-inter-process-communicationipc


Em 23 de agosto de 2013 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>
>
> []´s
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>



-- 
Att, Marcelo M. Fleury
Blog - http://marcelomf.blogspot.com/
Slides - http://www.slideshare.net/marcelomf/
"A graça da vida está em querer melhorar o mundo"


Mais detalhes sobre a lista de discussão freebsd