FreeBSD Handbook/Administração/MAC/Nagios num Jail MAC
FreeBSD Handbook | ||
---|---|---|
Anterior | Capítulo 16. Mandatory Access Control | Próxima |
16.14 Nagios num jail MAC
A demonstração a seguir implementará um ambiente seguro usando vários módulos do MAC com políticas apropriadamente configuradas. Isso é apenas um teste e não deve ser considerada a resposta completa às lamentações de todos. Isso é apenas uma implementação de política nunca utilizada e que pode ser desastrosa num ambiente de produção.
Antes de começar o processo, a opção multilabel deve estar configurada em cada sistema de arquivos, como comentado no início deste capítulo. Não fazer isso resultará em erros. Verifique também que os ports net-mngt/nagios-plugins, net-mngt/nagios e www/apache13 estejam instalados, configurados e operando corretamente.
16.14.1 Criando uma Classe de Usuário Insegura
Comece o procedimento adicionando a seguinte classe de usuário ao arquivo /etc/login.conf:
insecure:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin :manpath=/usr/share/man /usr/local/man:\ :nologin=/usr/sbin/nologin:\ :cputime=1h30m:\ :datasize=8M:\ :vmemoryuse=100M:\ :stacksize=2M:\ :memorylocked=4M:\ :memoryuse=8M:\ :filesize=8M:\ :coredumpsize=8M:\ :openfiles=24:\ :maxproc=32:\ :priority=0:\ :requirehome:\ :passwordtime=91d:\ :umask=022:\ :ignoretime@:\ :label=biba/10(10-10):
Adicione a seguinte linha à classe de usuário default:
:label=biba/high:
Uma vez feito isso, o seguinte comando deve ser executado para reconstruir a base de dados:
# cap_mkdb /etc/login.conf
16.14.2 Configuração de Boot
Não reinicie a máquina ainda, apenas adicione as linhas a seguir ao arquivo /boot/loader.conf de modo que os módulos necessários sejam carregados durante a inicialização do sistema:
mac_biba_load="YES" mac_seeotheruids_load="YES"
16.14.3 Configurando os Usuários
Coloque o usuário root na classe default com o comando:
# pw usermod root -L default
Todas as contas de usuário que não são root ou usuários do sistema irão agora precisar de uma classe de login. A classe de login será necessária pois, caso contrário, usuários não terão permissão de acessar comandos comuns como vi(1). O script em sh a seguir deve fazer o trabalho:
# for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \ /etc/passwd`; do pw usermod $x -L default; done;
Coloque os usuários nagios e www na classe insecure criada:
# pw usermod nagios -L insecure # pw usermod www -L insecure
16.14.4 Crie o Arquivo de Contextos
Um arquivo de contextos deve ser então criado. O seguinte exemplo deve ser colocado no /etc/policy.contexts
# This is the default BIBA policy for this system. # System: /var/run biba/equal /var/run/* biba/equal /dev biba/equal /dev/* biba/equal /var biba/equal /var/spool biba/equal /var/spool/* biba/equal /var/log biba/equal /var/log/* biba/equal /tmp biba/equal /tmp/* biba/equal /var/tmp biba/equal /var/tmp/* biba/equal /var/spool/mqueue biba/equal /var/spool/clientmqueue biba/equal # For Nagios: /usr/local/etc/nagios /usr/local/etc/nagios/* biba/10 /var/spool/nagios biba/10 /var/spool/nagios/* biba/10 # For apache /usr/local/etc/apache biba/10 /usr/local/etc/apache/* biba/10
Esta política reforçará a segurança definindo restrições no fluxo de informações. Nesta configuração específica, usuários, root e outros, nunca devem ter permissão de acesso ao Nagios. Os arquivos de configuração e processos que são parte do Nagios estarão completamente contidos em si mesmos ou em um jail.
Este arquivo deve ser então carregado no nosso sistema com o seguinte comando:
# setfsmac -ef /etc/policy.contexts /
Nota: O layout do sistema de arquivos acima pode ser diferente, dependendo do ambiente, contudo a execução deve ser feita em casa sistema de arquivos distinto.
O /etc/mac.conf necessita das seguintes modificações na seção main:
default_labels file ?biba default_labels ifnet ?biba default_labels process ?biba default_labels socket ?biba
16.14.5 Habilitando a Rede
Adicione a seguinte linha no /boot/loader.conf:
security.mac.biba.trust_all_interfaces=1
E a seguinte linha à configuração da placa de rede no arquivo rc.conf. Se a configuração principal da conexão com a Internet é feita via DHCP, isso terá que ser configurado manualmente a cada boot do sistema.
maclabel biba/equal
16.14.6 Testando a Configuração
Assegure-se de que o servidor web e o Nagios não vão ser iniciados no boot e reinicie o sistema. Certifique-se de que o usuário root não pode acessar nenhum dos arquivos no diretório de configuração do Nagios. Se o root puder executar um ls(1) no /var/spool/nagios, então alguma coisa está errada. O correto é obter a mensagem de erro “permission denied”.
Se tudo parece correto, Nagios, Apache e Sendmail podem ser então iniciados de maneira a se adequarem à política de segurança. Os seguintes comandos farão isso:
# cd /etc/mail && make stop && \ setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \ setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart
Certifique-se por todos os meios de que tudo está funcionando corretamente. Se não estiver, cheque os arquivos de log ou as mensagens de erro. Use o comando sysctl(8) para desabilitar o módulo mac_biba(4) e tente iniciar tudo novamente, de maneira normal.
Nota: O usuário root pode mudar o estado da política de seguraça e editar os arquivos de configuração sem medo. O seguinte comando lançará um novo shell para o qual a segurança estará mais fraca:
# setpmac biba/10 csh
Para evitar que isso aconteça, force que o usuário esteja num intervalo via login.conf(5). Se o comando setpmac(8) tentar rodar um comando fora do intervalo do compartimento, será obtido um erro e o comando não será executado. Neste caso, configurando o root para biba/high(high-high).
Anterior | Índice | Próxima | |
O Módulo LOMAC do MAC | Topo | Amarração de Usuários
|