FreeBSD Handbook/Administração/MAC/Módulo bsdextended
FreeBSD Handbook | ||
---|---|---|
Anterior | Capítulo 16. Mandatory Access Control | Próxima |
16.7 O Módulo bsdextended do MAC
Nome do módulo: mac_bsdextended.ko
Linha para configuração do kernel: options MAC_BSDEXTENDED
Opção para carga no boot: mac_bsdextended_load="YES"
O módulo mac_bsdextended(4) ativa um firewall no sistema de arquivos. A política deste módulo fornece uma extensão ao modelo de permissões padrão do sistema de arquivos. Ela permite que o administrador crie um conjunto de regras como num firewall para proteger arquivos, utilitários e diretórios na hierarquia do disco. Quando um acesso a um objeto do sistema de arquivos é solicitado a lista de regras é verificada até que uma regra que bata com a solicitação seja encontrada ou que as regras cheguem ao fim. Este comportamento pode ser alterado por uma opção do sysctl(8), a security.mac.bsdextended.firstmatch_enabled. De maneira similar a outros módulos de firewall do FreeBSD, um arquivo de regras de controle de acesso pode ser criado e apontado por uma variável pelo rc.conf(5) para ser lido no boot.
A lista de regras deve ser carregada com o utilitário ugidfw(8), que tem sintaxe semelhante a do ipfw(8). Mais ferramentas podem ser escritas usando as funções da biblioteca libugidfw(3).
Deve se tomar um cuidado extremo ao se trabalhar com este módulo. O uso incorreto pode bloquear acessos a certas partes do sistema de arquivos.
16.7.1 Exemplos
Depois que o módulo mac_bsdextended(4) foi carregado, o seguinte comando pode ser usado para listar a configuração atual de regras:
# ugidfw list 0 slots, 0 rules
Como esperado, não há regras definidas. Isso significa que tudo ainda está completamente acessível. Para criar uma regra que bloqueará todo o acesso a usuários mas não afetará o root, simplesmente use o seguinte comando:
# ugidfw add subject not uid root new object not uid root mode n
Nota: Em versões anteriores ao FreeBSD 5.3 o parâmetro add não existe. Nestes casos o set deve ser usado. Veja um comando exemplificado abaixo.
Isso é uma péssima idéia, já que bloqueará a mais simples execução de comandos a todos os usuários, como um simples ls. Uma lista de regras mais razoável seria:
# ugidfw set 2 subject uid user1 object uid user2 mode n # ugidfw set 3 subject uid user1 object gid user2 mode n
Isso irá bloquear todo e qualquer acesso, incluindo listagens de diretórios, ao diretório do user2 pelo usuário de nome user1.
Ao invés de user1 poderia ter sido passado not uid user2, o que implicaria nas mesmas restrições de acesso acima para todos os usuários que não o user2, ao invés de apenas um.
Nota: O usuário root não seria afetado por estas mudanças.
Isso deve dar uma idéia geral de como o módulo mac_bsdextended(4) pode ser usado para ajudar a fortalecer um sistema de arquivos. Para mais informações veja as páginas de manual mac_bsdextended(4) e ugidfw(8).
Anterior | Índice | Próxima | |
Planejando a Configuração de Segurança | Topo | O Módulo ifoff do MAC
|