Esta seção demonstra as etapas necessárias para implementar o sistema de monitoramento de rede Nagios em um ambiente MAC. Isso é um exemplo que ainda exige que o administrador teste se a política implementada atende aos requisitos de segurança da rede antes de usar em um ambiente de produção.
Este exemplo requer que o multilabel
seja definido em cada sistema de arquivos. Ele também assume que o net-mgmt/nagios-plugins, net-mgmt/nagios e www/apache22 estão todos instalados, configurados e funcionando corretamente antes de tentar a integração na estrutura MAC.
Comece o procedimento adicionando a seguinte classe de usuário ao /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):
Em seguida, adicione a seguinte linha a seção de classe de usuário padrão:
:label=biba/high:
Salve as edições e rode o seguinte comando para reconstruir o banco de dados:
#
cap_mkdb /etc/login.conf
Configure o usuário root
para a classe padrão usando:
#
pw usermod root -L default
Todas as contas de usuário que não são root
agora exigirão uma classe de login. A classe de login é necessária, caso contrário, os usuários terão acesso recusado aos comandos comuns. O seguinte script sh
deve resolver:
#
for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \
/etc/passwd`; do pw usermod $x -L default; done;
Em seguida, altere as contas nagios
e www
para a classe insegura:
#
pw usermod nagios -L insecure
#
pw usermod www -L insecure
Um arquivo de contexto deve agora ser criado como /etc/policy.contexts
:
# This is the default BIBA policy for this system. # System: /var/run(/.*)? biba/equal /dev/(/.*)? biba/equal /var biba/equal /var/spool(/.*)? biba/equal /var/log(/.*)? biba/equal /tmp(/.*)? biba/equal /var/tmp(/.*)? biba/equal /var/spool/mqueue biba/equal /var/spool/clientmqueue biba/equal # For Nagios: /usr/local/etc/nagios(/.*)? biba/10 /var/spool/nagios(/.*)? biba/10 # For apache /usr/local/etc/apache(/.*)? biba/10
Essa política impõe segurança ao definir restrições no fluxo de informações. Nesta configuração específica, os usuários, incluindo O root
, nunca devem ter permissão para acessar o Nagios. Arquivos de configuração e processos que fazem parte do Nagios serão completamente auto-contidos ou presos.
Este arquivo será lido depois da execução do setfsmac
em cada sistema de arquivos. Este exemplo define a política no sistema de arquivos raiz:
#
setfsmac -ef /etc/policy.contexts /
Em seguida, adicione estas edições a seção principal do /etc/mac.conf
:
default_labels file ?biba default_labels ifnet ?biba default_labels process ?biba default_labels socket ?biba
Para finalizar a configuração, adicione as seguintes linhas ao /boot/loader.conf
:
mac_biba_load="YES" mac_seeotheruids_load="YES" security.mac.biba.trust_all_interfaces=1
E a seguinte linha para a configuração da placa de rede armazenada em /etc/rc.conf
. Se a configuração de rede principal for feita via DHCP, talvez seja necessário configurá-la manualmente após cada inicialização do sistema:
maclabel biba/equal
Primeiro, certifique-se de que o servidor Web e o Nagios não iniciarão na inicialização e reinicialização do sistema. Assegure-se de que o root
não possa acessar nenhum dos arquivos no diretório de configuração do Nagios. Se o root
puder listar o conteúdo de /var/spool/nagios
, algo está errado. Em vez disso, um erro “permission denied” deve ser retornado.
Se tudo parecer bem, o Nagios, o Apache e o Sendmail agora poderão ser iniciados:
#
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
Verifique novamente para garantir que tudo esteja funcionando corretamente. Caso contrário, verifique os arquivos de log em busca de mensagens de erro. Se necessário, use o sysctl(8) para desativar o módulo de política de segurança mac_biba(4) e tente iniciar tudo novamente.
O usuário root
ainda pode alterar a aplicação de segurança e editar seus arquivos de configuração. O comando a seguir permitirá a degradação da política de segurança para um nível inferior para um shell recém executado:
#
setpmac biba/10 csh
Para impedir que isso aconteça, force o usuário a um intervalo usando login.conf(5). Se o setpmac(8) tentar executar um comando fora do intervalo do compartimento, um erro será retornado e o comando não será executado. Nesse caso, defina root como biba/high(high-high)
.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.