15.7. Nagios em Jail MAC
Anterior | Capítulo 15. Controle de acesso obrigatório | Próxima

## 15.7. Nagios em Jail MAC

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.

### 15.7.1. Criar uma Classe de Usuário Insegura

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

### 15.7.2. Configurar usuários

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

### 15.7.3. Crie o arquivo de contextos

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

### 15.7.4. Configuração do Inicializador

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

### 15.7.5. Testando a Configuração

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.

### Nota:

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)`.

Anterior | Acima | Próxima
15.6. Bloqueio do Usuário | Principal | 15.8. Solução de problemas do framework MAC

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>.