Preparação para o exame 919 de System Administration Certification for Informix 11.70, Parte 8: Security

A segurança dos dados é sempre uma fonte de preocupação para administradores de bancos de dados. Este tutorial ajuda a entender como proteger seus dados, evitando a visualização não autorizada e a alteração dos dados ou objetos do banco de dados, incluindo como usar o recurso de auditoria de segurança do servidor de banco de dados para monitorar as atividades no banco de dados. Este tutorial é uma preparação para a Parte 8 do exame 919 de System Administration Certification for Informix® v11.70.

Yunming Wang, Advanced Support Engineer, IBM

Photo of Yunming WangYunming Wang trabalha na IBM como engenheiro de suporte avançado na equipe de Informix Advanced Problem Diagnostics (APD). Ele trabalha na Informix e na IBM desde 1998, focando em APIs de programação do Informix e do DB2 e em conectividade de bancos de dados. As áreas de especialização incluem ODBC, JDBC, OLEDB/.Net, ESQL/C e TCP/IP. Mais recentemente, participou de um projeto de dispositivo virtual IDS que lida com virtualização e tecnologia de computação em nuvem. Antes de fazer parte da Informix, era desenvolvedor de software. Ele concluiu o mestrado em engenharia da computação na Universidade do Arkansas em 1995.



Tim Steele, Advanced Support Engineer, IBM

Photo of Tim SteeleTim Steele é engenheiro de suporte avançado da IBM Informix e trabalha com Informix desde 2000. Ele é administrador de sistemas certificado pela IBM para Informix 11.70. Faz parte do hub australiano Follow The Sun (FTS), que fornece suporte técnico mundial do Informix, principalmente para situações críticas de sistema inativo.



16/Jul/2012

Antes de iniciar

Sobre esta série

Está pensando em obter uma certificação em System Administration for IBM Informix versão 11.70 (Exame 919)? Se estiver, você está no lugar certo. Esta série de tutoriais de preparação para a certificação de IBM Informix abrange todos os tópicos que você deverá entender antes de ler a primeira pergunta do exame. Mesmo se não estiver procurando certificação imediata, estes tutoriais são uma ótima fonte para começar a aprender sobre o que há de novo no IBM Informix 11.70.

Sobre este tutorial

Neste tutorial, você aprenderá a manter seus dados protegidos, evitando a visualização e alteração não autorizadas dos dados ou de outros objetos do banco de dados. O material fornecido aborda principalmente os objetivos presentes na Seção 8 do exame, denominada Security. Os tópicos cobertos neste tutorial incluem:

  • Segurança de conexão
  • Criptografia de rede
  • Auditoria
  • Controle de acesso discricionário

Objetivos

Após concluir este tutorial, você deve poder:

  • Conhecer os conceitos e usos de autenticação, autorização e criptografia
  • Permitir que usuários não cadastrados no S.O. acessem o banco de dados
  • Usar onaudit para configurar auditoria de segurança no servidor de banco de dados
  • Aproveitar conexões confiáveis e de contexto confiável para aprimorar a segurança
  • Usar os privilégios de uma função para proteger os dados
  • Configurar separação de função para impingir controle de acesso nos usuários do servidor de banco de dados

Pré-requisitos

Se ainda não fez isso, considere fazer o download e instalar uma cópia do IBM Informix 11.70. Um servidor do Informix pode ajudar a entender muitos dos conceitos que são testados no exame de certificação System Administration for IBM Informix V11.70.

Requisitos do sistema

Não é necessário ter uma cópia do IBM Informix para concluir este tutorial. No entanto, você aproveitará melhor o tutorial se fizer download da versão de teste gratuita do Informix Innovator-C Edition (consulte Recursos) para trabalhar com este tutorial.


Entendendo a segurança de conexões

A segurança da conexão com o banco de dados protege um servidor de banco de dados contra acesso não autorizado através de autenticação e processos de autorização. Um administrador de banco de dados pode configurar os mecanismos de autenticação do servidor Informix para atender a necessidades variadas, como diferentes métodos de segurança exigidos para conexões locais e remotas, acesso ao banco de dados para usuários sem contas no sistema operacional do computador host do servidor e instalação não raiz. Também é possível autorizar usuários autenticados a realizar certas ações do banco de dados ou acessar certos objetos dos quais precisam. Ao configurar a autenticação do Informix, um DBA deve considerar como os nomes de usuário e senhas são validados:

  • O usuário deve autenticar na máquina servidor?
  • Usuários não cadastrados no S.O. precisam se conectar aos bancos de dados Informix?
  • Quais são as políticas de segurança válidas no sistema?
  • Quais são os métodos de autenticação disponíveis?

No Informix 11.70, a autenticação pode ser configurada de diferentes maneiras:

  • Usando o S.O. para verificar se o usuário é legítimo. Esse mecanismo exige que um usuário tenha uma conta de usuário válida no S.O. do computador host do Informix e que tenha recebido privilégios de conexão do database system administrator (DBSA).
  • Usando um mecanismo de autenticação de definição própria suportado pelo servidor Informix, incluindo pluggable authentication modules (PAM) no UNIX e no Linux e autenticação por protocolo LDAP no Windows.
  • Usando usuários mapeados. Esse mecanismo, novidade no Informix 11.70, mantém a segurança enquanto reduz a dependência do administrador do sistema e os privilégios de nível raiz.
  • Usando conexão única (SSO) para que não seja necessário fornecer nome de usuário e senha após o usuário fazer login no sistema operacional do computador cliente com Kerberos.

É possível estabelecer conexões confiáveis através de objetos de banco de dados de contexto confiável para aumentar o desempenho do sistema e a segurança em um modelo de aplicativo de três camadas. O conceito de uma conexão confiável através de um objeto de contexto confiável é diferente de sistemas confiáveis devido à configuração do arquivo hosts.equiv ou .rhosts no UNIX ou Linux.

Entendendo o Pluggable Authentication Module

Pluggable authentication module (PAM) permite que administradores do sistema implementem diferentes mecanismos de autenticação para aplicativos diferentes com base nas necessidades de negócios. Verifique se o sistema operacional do servidor Informix suporta PAM.

O módulo PAM determina se um usuário pode autenticar-se através de senha, de uma resposta de segurança, ou de uma combinação de ambos. Os modos suportados pelo Informix 11.70 são o modo de senha e o modo de resposta de segurança. No modo senha, a senha do usuário é suficiente para satisfazer a autenticação. No modo de resposta de segurança, o servidor faz uma pergunta e o cliente envia uma resposta. O cliente tem acesso ao banco de dados apenas se a resposta for a esperada. Quando o servidor Informix está configurado para usar o módulo PAM para autenticação, a autenticação padrão é ignorada.

Para configurar um servidor Informix para usar PAM, o administrador do sistema deve saber:

  • O nome do módulo PAM, que está geralmente localizado no diretório /usr/lib/security, com parâmetros listados em /etc/pam.conf. No Linux, o arquivo /etc/pam.conf pode ser substituído por um diretório chamado /etc/pam.d, no qual há um arquivo para cada serviço PAM. Quando /etc/pam.d existe, o Linux ignora /etc/pam.conf.
  • Se o módulo PAM também fará uma pergunta além de aceitar a simples combinação de nome de usuário e senha.

É necessário modificar a entrada do servidor no arquivo sqlhosts no servidor de banco de dados para ativar a autenticação por PAM. Se o aplicativo e o servidor estiverem em computadores separados ou em locais separados na mesma máquina, será necessário modificar o arquivo sqlhosts para o cliente e para o servidor.

Tablela 1 lista as configurações para serviços PAM em sqlhosts.

Tablela 1. Configurações para serviços PAM
OpçãoDescriçãoConfigurações
pam_servO nome do serviço PAM que o servidor de banco de dados está usando Geralmente os serviços PAM estão localizados no diretório /usr/lib/security, e os parâmetros são listados no arquivo /etc/pam.conf. No Linux, o arquivo /etc/pam.conf pode ser substituído por um diretório chamado /etc/pam.d, no qual há um arquivo para cada serviço PAM. Se /etc/pam.d existe, o Linux ignora /etc/pam.conf.
pamauthO método de autenticação que o serviço PAM usa. Com esse modo de autenticação, um aplicativo deve ser projetado para responder à pergunta corretamente antes de conectar-se ao servidor de banco de dados.pamauth=password usa a senha de solicitação de conexão para autenticação. A autenticação pamauth=challenge requer uma resposta correta a uma pergunta ou solicitação.

É necessário configurar a opção s como 4 para ativar os serviços PAM.

Lista 1 mostra uma entrada de sqlhosts que ativa autenticação PAM com pergunta.

Lista 1. Ativando autenticação PAM com pergunta
#Authentication mode: challenge 
ifxserver2 oltlitcp servermc portnum2 s=4, pam_serv=(pam_pass), pamauth=(challenge)

Lista 2 mostra outra entrada de sqlhosts que precisa apenas de uma senha.

Lista 2. Ativando autenticação PAM apenas com a solicitação de senha
#Authentication mode: password
ifxserver2 oltlitcp servermc portnum2 s=4, pam_serv=(pam_pass), pamauth=(password)

Quando os módulos PAM do sistema operacional ou de terceiros (bibliotecas compartilhadas) são carregados no encadeamento do usuário informix, o tamanho de pilha necessário para os módulos PAM é imprevisível. Para customizar o tamanho de pilha para módulos PAM, é possível configurar o parâmetro de configuração onconfig PAM_STACKSIZE com um valor maior, como mostra a Lista 3.

Lista 3. Configurando PAM_STACKSIZE no arquivo onconfig
PAM_STACKSIZE 64 # Stack size needed for the PAM modules (kilobytes)

No UNIX, o valor padrão de PAM_STACKSIZE é 32 KB. No Linux, o valor padrão é 128 KB mais o valor do parâmetro de configuração STACKSIZE.

Nem todos os produtos e ferramentas IBM Informix suportam PAM. O Centro de Informações do Informix contém mais informações sobre problemas de compatibilidade com módulos de autenticação (consulte Recursos).

Entendendo a autenticação LDAP no Windows

Assim como PAM é usado no UNIX e Linux, LDAP pode ser configurado no Windows para diferentes mecanismos de autenticação. É necessário criar um módulo de autenticação LDAP para uma autenticação LDAP específica.

O módulo de autenticação é um DLL que está geralmente localizado no diretório %INFORMIXDIR%\dbssodir\lib\security. Os parâmetros do módulo estão listados no arquivo %INFORMIXDIR%\dbssodir\pam.conf. O código fonte de um módulo de autenticação LDAP totalmente funcional e amostras dos arquivos de configuração necessários são incluídos no diretório %INFORMIXDIR%\demo\authentication.

Nem todos os produtos e ferramentas IBM Informix suportam PAM. O Centro de Informações do Informix contém mais informações sobre problemas de compatibilidade com módulos de autenticação (consulte Recursos).

Para que um módulo de autenticação LDAP funcione com o servidor Informix, é necessário ter disponíveis um servidor do LDAP e um sistema LDAP do lado do cliente. É possível usar IBM Directory Server ou openLDAP como sistema LDAP do lado do cliente.

Para usar o modelo do arquivo de configuração de PAM para configurar o módulo LDAP, copie o arquivo de modelo pam.conf_tmpl para %INFORMIXDIR%\dbssodir\etc, mude seu nome para pam.conf e customize.

Para configurar um servidor para usar um módulo de suporte de autenticação LDAP, é necessário editar o arquivo sqlhosts com o nome do módulo LDAP e o modo de autenticação. Lista 4 mostra um servidor Informix configurado para usar autenticação PAM de pergunta.

Lista 4. Usando autenticação PAM de pergunta
ifxserver1 onsoctcp servermc portnum1 s=4,pam_serv=(pam_chal),pamauth=(challenge)

Lista 5 mostra um servidor Informix configurado para usar autenticação PAM de senha.

Lista 5. Usando autenticação PAM de senha
ifxserver2 onsoctcp servermc portnum2 s=4,pam_serv=(pam_pass),pamauth=(password)

O Centro de Informações do Informix contém mais informações sobre como instalar e customizar o módulo de autenticação LDAP.

Mapeando usuários (UNIX ou Linux)

A partir da versão 11.70, o Informix pode permitir que usuários com autenticação externa acessem um servidor de banco de dados através do mapeamento para usuários e privilégios de grupo apropriados, independente de eles terem contas no sistema operacional do computador host do IBM Informix. Esse recurso está disponível apenas para sistemas UNIX ou Linux. Usuários externos que estão autenticados com SSO ou PAM podem ser mapeados para um dos seguintes:

  • Um par UID e GID definido no servidor de banco de dados mas não estabelecido como uma conta do S.O. do computador host
  • Uma conta de usuário do S.O. existente no computador host do servidor do banco de dados

Os usuários que obtêm acesso ao banco de dados usando mapeamento de usuário são chamados de usuários mapeados. Apenas um DBSA pode criar um usuário mapeado.

Quando o DBSA concede acesso ao servidor de banco de dados a usuários autenticados externamente, as permissões mapeadas para esses usuários são chamadas de propriedades de usuário substitutas. Propriedades de usuário substitutas incluem um ou mais dos seguintes:

  • ID do usuário
  • ID de grupo
  • Nome de usuário do S.O.
  • Nome do grupo
  • Diretório inicial

Essa funcionalidade de usuário mapeado pode ajudar DBSAs e administradores de sistema que não sabem antecipadamente quais usuários legítimos precisarão de acesso ao servidor de banco de dados.

Para mapear um usuário para propriedades de usuário substitutas, o DBSA executa o comando GRANT ACCESS TO no SQL.

O ato de permitir conexões ao servidor de banco de dados sem contas de usuário do S.O. correspondentes altera a configuração padrão do Informix. O parâmetro de configuração USERMAPPING deve ser configurado para que usuários mapeados acessem o banco de dados. O acesso é desativado ao criar uma instância do Informix ou ao realizar uma atualização.

Eliminar a necessidade de uma conta no S.O. do host local para acesso ao servidor de banco de dados reduz o trabalho administrativo. Com usuários mapeados, o DBSA não precisa trabalhar em conjunto com o administrador do S.O. para garantir que todo usuário que tenha acesso ao Informix também tenha uma conta no S.O. No entanto, em muitos ambientes, pode haver outras considerações que façam com que o acesso do Informix ainda exija a presença de uma identidade do usuário no nível do S.O. do computador host.

Antes de começar a criação de um usuário mapeado, é necessário verificar o seguinte:

  • Você possui privilégios de DBSA para realizar esta tarefa.
  • Os usuários que serão mapeados para propriedades de usuário substitutas para o acesso ao Informix podem autenticar-se externamente com conexão única (SSO) ou Pluggable Authentication Module (PAM).
  • A instância do servidor Informix está configurada para aceitar autenticação por meio de PAM ou SSO.

Siga as etapas a seguir para criar um usuário mapeado.

  1. Altere o parâmetro USERMAPPING do arquivo onconfig para um de dois valores:
    • BASIC: sem privilégios administrativos do Informix, independente do UID ou GID para o qual o usuário é mapeado.
    • ADMIN: pode ter privilégios administrativos do Informix. Privilégios administrativos são concedidos apenas após a cláusula AUTHORIZATION da instrução GRANT ACCESS TO ser executada. Geralmente, se esse parâmetro for configurado para ADMIN, há apenas alguns usuários mapeados individuais que receberão privilégios administrativos.
  2. Especifique propriedades de usuário substituas com a instrução GRANT ACCESS TO. A instrução mapeia usuários autenticados externamente para as propriedades que permitem acesso do Informix. Para conceder privilégios administrativos a um usuário mapeado, é necessário incluir a palavra-chave AUTHORIZATION com o valor que designa a função que o usuário deve receber. Após executar a instrução GRANT ACCESS TO, novas linhas são adicionadas às tabelas de mapeamento de usuário no banco de dados SYSUSER.

Observação: Usuários mapeados podem acessar o Informix com as propriedades de usuário substitutas apenas se eles se autenticarem com SSO ou PAM.

Usando autenticação de conexão única

A conexão única (SSO) é um mecanismo de autenticação que elimina a necessidade de fornecer nome de usuário e senha após um usuário fazer login no sistema operacional do computador cliente. Com SSO, a autenticação para o DBMS e outros serviços com SSO ativado ocorre quando um usuário faz login pela primeira vez no computador cliente (ou domínio, no caso do Windows). A implementação do Kerberos valida as credenciais do usuário. A autenticação do Kerberos gera um sistema de chaves secretas que armazena credenciais de login. Quando uma ação do usuário tenta acessar um banco de dados do Informix, uma troca de chamados de concessão de chamado (TKTs) permite acesso ao banco de dados sem a solicitação de login.

A autenticação por SSO usa as duas seguintes normas de computação aberta:

Generic Security Services Application Programming Interface (GSSAPI)
Uma API definida pelo padrão RFC 2743 da Internet Engineering Task Force (IETF) para autenticação de cliente/servidor
Protocolo de segurança do Kerberos
RFC 1510 que define um mecanismo de troca de chave típica. Aplicativos podem usar o serviço Kerberos para autenticar seus usuários e trocar chaves criptográficas contendo credenciais.

Generic Security Services communications support module (GSSCSM) não funciona com módulos de senha e criptografia simples (SPWDCSM e ENCCSM). SSO implementado com GSSCSM suporta PAM e LDAP, mas não suporta autenticação mútua.

Para conexão única, o processo de login do usuário e autenticação deve empregar uma infraestrutura de rede Kerberos 5, incluindo um computador como centro de distribuição de chaves dedicado.

A seguir está o procedimento de alto nível para implementar SSO do Kerberos para o Informix:

  1. Configure os computadores na rede para funcionar com o protocolo de autenticação Kerberos 5. Isso requer a configuração de um computador seguro para hospedar o Key Distribution Center (KDC). Pode ser que sua rede já tenha sido configurada com um mecanismo Kerberos.
  2. Crie as principais de usuário cliente e principal de serviço Informix no KDC (consulte Recursos).
  3. Configure as informações de sqlhosts e GSSCSM no computador que está hospedando o servidor de banco de dados.
  4. Configure a chave principal de serviço do Informix e certifique-se de que esteja no computador que hospeda o servidor de banco de dados.
  5. Configure um programa de cliente de banco de dados que funcione com GSSCSM (consulte Recursos).

Para configurar uma instância do Informix para SSO, é necessário realizar as seguintes tarefas no Centro de Informações do Informix:

  1. Configurar informações de SQLHOSTS para SSO
  2. Configurar arquivo concsm.cfg para SSO
  3. Garantir que o arquivo keytab tenha a chave necessária (UNIX e Linux)
  4. Verificar se o Informix usa autenticação do Kerberos para SSO

Entendendo o contexto confiável

Em um modelo de aplicativo de três camadas, todos os usuários de banco de dados precisam fazer login na camada intermediária com seus IDs do usuário e senhas. Em seguida, a camada intermediária conecta-se ao servidor de banco de dados com um ID do usuário e senha diferentes. Usando um objeto de banco de dados de contexto confiável, é possível estabelecer conexões confiáveis de um aplicativo para o banco de dados para:

  • Aumentar a segurança do sistema
  • Aumentar o desempenho geral do sistema
  • Reduzir o gasto adicional com manutenção
  • Controlar privilégios do usuário
  • Preservar a capacidade de auditoria do acesso de usuário

Uma conexão confiável através de um objeto de contexto confiável também permite que o desenvolvedor de um aplicativo mantenha seu ID do usuário para acessar um banco de dados ou compartilhe uma única conexão de banco de dados com outros usuários.

Apenas um ID do usuário que tenha a função DBSECADM pode criar, alterar, renomear e eliminar objetos de contexto confiável.

Ao criar um objeto de contexto confiável, considere o seguinte:

  • Qual função e privilégios devem ser designados aos usuários de um objeto de contexto confiável
  • Quais localizações de cliente são confiáveis
  • Qual uso é necessário para autenticação

Um objeto de contexto pode obter qualquer um destes:

  • Atributos ou locais para definir uma conexão confiável
  • Requisitos de autenticação para usuários com conexão confiável
  • Funções para definir os privilégios de acesso de usuários de conexão confiável

Se uma solicitação de conexão confiável corresponder a todos os atributos de um objeto de contexto confiável, o sistema concede a conexão. Se a conexão contém um atributo que não corresponde ao objeto de contexto confiável, o sistema rejeita a solicitação.

Duas etapas são necessárias para estabelecer uma conexão confiável por meio de um objeto de banco de dados de contexto confiável:

  1. Crie um objeto de banco de dados de contexto confiável com a instrução CREATE TRUSTED CONTEXT. É necessário ter a função de administrador de segurança de banco de dados (DBSECADM) para executar essa instrução. Certifique-se de que os seguintes requisitos sejam verdadeiros:
    • Cada cláusula ATTRIBUTES, DEFAULT ROLE, ENABLE e WITH USE é especificada apenas uma vez.
    • Cada nome de atributo e valor correspondente é exclusivo.

    O exemplo na Lista 6 cria um objeto de contexto confiável chamado appserver de modo que o usuário atual john em uma conexão confiável baseada em appserver pode ser alternado para dois usuários diferentes: joe e bob. Quando o usuário atual john for alternado para o usuário joe, não é necessária autenticação, mas é necessária autenticação ao alternar para o usuário bob.

    Lista 6. Estabelecendo uma conexão confiável através de um objeto de banco de dados de contexto confiável
    CREATE TRUSTED CONTEXT appserver 
        USER john
        DEFAULT ROLE MANAGER
        ENABLE
        ATTRIBUTES (ADDRESS '9.26.113.204')
        WITH USE FOR joe WITHOUT AUTHENTICATION,
            bob WITH AUTHENTICATION;
  2. Crie uma conexão confiável no aplicativo de banco de dados. Para criar conexões confiáveis, é necessário usar um aplicativo que conecta ao servidor Informix usando TCP/IP. Protocolos de comunicação local não são suportados. Certifique-se de que os seguintes requisitos sejam verdadeiros:
    • O objeto de contexto confiável está ativado.
    • O ID do usuário possui privilégios CONNECT para o banco de dados.
    • O ID do usuário corresponde ao ID do usuário principal no objeto de contexto confiável.
    • A solicitação de conexão se origina de um local confiável que está definido no objeto de contexto confiável.

    As seguintes APIs podem ser usadas para solicitar conexões confiáveis:

    • IBM Informix ESQL/C
    • IBM Informix JDBC Driver
    • IBM Informix ODBC Driver
    • IBM Data Server Driver para JDBC e SQLJ
    • IBM Data Server Provider para .NET

    O exemplo na Lista 7 cria uma conexão confiável em ESQL/C ao incluir a palavra-chave TRUSTED na instrução CONNECT existente.

    Lista 7. Incluindo a palavra-chave TRUSTED
    EXEC SQL CONNECT TO 'database_name' TRUSTED;

Há regras específicas para alternar usuários em uma conexão confiável.


Usando criptografia de rede

Criptografia é o processo de transformar dados em um formato ininteligível para evitar o seu uso não autorizado. Criptografia de rede é a criptografia de dados em trânsito entre cliente e servidor e entre dois servidores.

Dados não criptografados são chamados de texto simples porque estão em um formato que pode ser entendido. Os dados criptografados são chamados de texto cifrado porque está em um formato secreto e incompreensível. Texto simples não criptografado pode ser convertido para texto cifrado criptografado pelo uso de um algoritmo criptografia-decriptografia ou cifra. Cifras podem ser divididas em categorias com base no tipo de chave de criptografia usada no algoritmo criptográfico:

Criptografia de chave privada
Uma única chave é usada para criptografia e decriptografia. Também chamada de criptografia simétrica.
Criptografia de chave pública
A chave usada para criptografia é diferente daquela usada para decriptografia. Também chamada de criptografia assimétrica.

O Informix suporta apenas criptografia simétrica para dados de rede.

É possível configurar o servidor Informix com uma das duas opções de criptografia de rede a seguir:

  • Communication support modules (CSMs) integrados, que são uma criptografia de dados completa com uma biblioteca de criptografia padrão.
  • Secure Sockets Layer (SSL), que é um protocolo de comunicação que usa criptografia para comunicação de dados através de uma conexão segura e confiável de ponta a ponta.

SSL é uma alternativa mais usada que os CSMs do IBM Informix. É possível usar o SSL para comunicação criptografada com clientes DRDA e SQLI, mas CSMs podem ser usadas apenas para conexões com clientes SQLI.

Também é possível configurar CSMs com conexões SSL. No entanto, não há benefício extra da funcionalidade de criptografia de CSMs redundante que envolva configuração adicional.

É possível configurar Pluggable Authentication Module (PAM) e generic security services communications support module (GSSCSM), que usa o protocolo de segurança Kerberos 5 para conexão única (SSO), com conexões SSL.

Entendendo a criptografia CSM

A opção de criptografia communication support modules (CSMs) no Informix oferece criptografia de dados completa com uma biblioteca de criptografia padrão e muitas opções configuráveis. Um código de autenticação de mensagem (MAC) é transmitido junto com os dados criptografados para garantir sua integridade. É possível usar os CSMs para criptografar as transmissões de dados, incluindo consultas distribuídas, através da rede.

CSMs têm as seguintes restrições:

  • Um CSM de criptografia não pode ser usado com um CSM de senha simples ao mesmo tempo.
  • Não é possível usar CSM sobre uma conexão multiplexada.
  • Replicação corporativa e clusters de alta disponibilidade não podem usar uma conexão configurada com CSM.
  • Conexões criptografadas e conexões não criptografadas não podem ser combinadas na mesma porta.

Para ativar a criptografia de dados com CSMs no servidor Informix, são necessárias as seguintes etapas de alto nível:

  1. Localize o arquivo concsm.cfg para inserir entradas para descrever os CSMs usados para criptografia de dados. O arquivo oncsm.cfg fica em $INFORMIXDIR/ect por padrão, mas é possível colocá-lo em qualquer lugar no host e configurar a variável de ambiente INFORMIXCONCSMCFG para o nome do caminho completo no novo local.

    Crie um arquivo oncsm.cfg se ele não existir. É possível usar os exemplos em $INFORMIXDIR/ect/concsm.example.

  2. Inclua uma entrada no arquivo concsm.cfg para o CSM que você usará. A entrada especifica as bibliotecas e opções de criptografia a serem usadas. É necessário especificar quais cifras e modo devem ser usados nas opções de criptografia. Cada entrada deve seguir as seguintes restrições:
    • Os seguintes caracteres não podem fazer parte dos nomes de caminho da biblioteca:
      • = (sinal de igual)
      • " (aspas duplas)
      • , (vírgula)
    • Espaços em branco não podem ser usados, a menos que sejam parte de um nome do caminho.
    • O limite de tamanho é de 1.024 bytes.

    É possível especificar os seguintes tipos de opções de criptografia:

    • Cifras DES e AES para uso durante a criptografia
    • Modos para uso durante a criptografia
    • Arquivos-chave de código de autenticação de mensagem (MAC)
    • Níveis MAC
    • Frequência de alternância para cifras e chaves

    É possível usar um dos seguintes métodos para especificar opções de criptografia.

    Chamar um arquivo de parâmetros de criptografia em concsm.cfg
    Esse é o método mais simples. Lista 8 mostra um arquivo de parâmetro de criptografia com estas instruções: usar todas as cifras disponíveis para essa conexão; alternar a cifra sendo usada a cada 120 minutos; renegociar a chave secreta a cada 60 minutos.
    Lista 8. Chamando o arquivo de parâmetros de criptografia
    ENCCSM_CIPHERS all 
    ENCCSM_SWITCH 120,60 
    ENCCSM_MAC medium 
    ENCCSM_MACFILES /usr/informix/etc/MacKey.dat

    Lista 9 ilustra uma linha no arquivo concsm.cfg para especificar criptografia com um arquivo de parâmetro chamado encrypt.txt:

    Lista 9. Especificando criptografia com o arquivo encrypt.txt.
    ENCCSM("usr/informix/lib/cms/iencs11a.so","config=/usr/lib/encrypt.txt")
    Usar tags de criptografia em concsm.cfg
    Lista 10 mostra uma entrada usando tags de criptografia no arquivo oncsm.cfg que usa todas as cifras disponíveis exceto as Blowfish e que não usa cifras no modo ECB.
    Lista 10. Usando tags de criptografia em concsm.cfg
    ENCCSM("INFORMIXDIR/lib/csm/iencs11a.so","cipher[allbut:<ecb,bf>]")
  3. Gere um arquivo-chave de MAC que contenha as chaves de criptografia a serem usadas para criptografar mensagens. O mesmo arquivo-chave do MAC é necessário para ativar a criptografia de dados entre o cliente e o servidor Informix. O arquivo-chave de MAC padrão é o arquivo integrado fornecido pelo IBM Informix. Esse arquivo oferece verificação limitada de mensagens (alguma validação da mensagem recebida e confirmação de que ela veio de um cliente ou servidor IBM Informix). Um arquivo-chave de MAC gerado no local realiza uma verificação mais eficiente. Arquivos-chave podem ser gerados com o utilitário GenMacKey. Lista 11 gera um arquivo-chave de MAC chamado IfxMacKey.dat.

    Lista 11. Criando um arquivo-chave de MAC
    cd $INFORMIXDIR/etc 
    GenMacKey -o IfxMacKey.dat

    Se o nome do arquivo-chave não for especificado, GenMacKey usará o nome padrão MacKey.dat. É necessário transferir o arquivo-chave de MAC gerado para a máquina cliente remota usando cópia segura ou FTP seguro. O utilitário GenMacKey prioriza cada um dos arquivos-chave MAC com base no horário de criação. O arquivo-chave integrado possui a menor prioridade. Se não houver arquivos-chave de MAC presentes, o arquivo integrado é usado por padrão. No entanto, ao usar um arquivo-chave de MAC, o arquivo integrado padrão é desativado.

  4. Ative o CSM na coluna de opções do arquivo sqlhosts ou no registro. O formato da opção de CSM no arquivo sqlhosts é csm=(nome,opções). O valor do nome deve corresponder a uma entrada de nome no arquivo concsm.cfg. Opções de CSM definidas no arquivo sqlhosts substituem as opções especificadas no arquivo concsm.cfg. Não é possível especificar opções de criptografia CSM no arquivo sqlhosts. Se a opção de CSM não for especificada, o servidor de banco de dados usará a política de autenticação padrão para o servidor do banco de dados. Tablela 2 mostra as opções de CSM disponíveis.

    Observação: A opção s=7 foi descontinuada e não é necessária para o CSM de conexão única (SSO).

Tablela 2. Opções de CSM para o arquivo sqlhosts
OpçãoSignificadoDescriçãoConfigurações
pPasswordEssa opção está disponível como parte do CSM de senha simples, que oferece criptografia de senha
  • p=0 senha não é obrigatória (padrão)
  • p=1 senha é obrigatória
cServiço de confidencialidadeOs dados transmitidos e recebidos pelo usuário autenticado por SSO são criptografados e podem ser visualizados apenas pelo usuário que fez login com as credenciais autorizadas. Essa opção está disponível como parte do CSM de serviços de segurança genéricos, que suporta conexão única (SSO).
  • c=1 ativa o serviço (padrão)
  • c=0 desativa o serviço
iServiço de integridadeGarante que os dados trocados entre o usuário e o DBMS não sejam alterados durante a transmissão. Essa opção está disponível como parte do CSM de serviços de segurança genéricos, que suporta conexão única (SSO).
  • i=1 ativa o serviço (padrão)
  • i=0 desativa o serviço

Lista 12 mostra que o servidor do Informix ids1170fc4_encrypt está configurado para usar CSM ENCCSM, conforme especificado no arquivo oncsm.cfg.

Lista 12. Usando o arquivo ENCCSM
Ids1170fc4_encrypt onsoctcp idshost.informix.ibm.com 9889 csm=(ENCCSM)

Onde ENCCSM é o nome especificado para o CSM no arquivo oncsm.cfg.

Entendendo criptografia SSL

O protocolo secure sockets layer (SSL) é um protocolo de comunicação que usa criptografia para proporcionar privacidade e integridade para a comunicação de dados através de uma conexão confiável, segura e de ponta a ponta entre dois pontos em uma rede.

O protocolo SSL oferece as seguintes vantagens em relação aos communication support modules (CSMs) do Informix:

  • SSL é uma alternativa mais usada que os CSMs do IBM Informix.
  • SSL pode ser usado para comunicação criptografada com clientes DRDA e SQLI.

É possível usar o protocolo SSL para todos os tipos de conexões, incluindo conexões de cliente a servidor e entre servidores.

SSL usa certificados digitais para trocar chaves para criptografia e autenticação de servidor. A entidade confiável que emite um certificado digital é chamada de autoridade de certificação (CA). A CA emite um certificado apenas por um tempo limitado. Quando a data de expiração é atingida, é necessário adquirir outro certificado digital.

SSL usa um algoritmo simétrico (chave secreta ou privada) para a criptografia de dados, mas usa um algoritmo assimétrico (chave pública) para a troca de chaves secretas no algoritmo simétrico.

Geralmente, o estabelecimento de uma nova conexão SSL envolve duas etapas:

  1. Hand shake para estabelecer uma conexão segura pelo cliente que está validando o certificado digital recebido do servidor
  2. Troca de cifras: o cliente gera uma chave simétrica aleatória e a envia ao servidor

Quando essas duas etapas forem realizadas, o cliente e o servidor criptografam dados pela duração da sessão.

Informix usa um keystore, que é um banco de dados protegido, para armazenar chaves SSL e certificados digitais. O cliente e o servidor devem ter o keystore. O keystore do servidor armazena seu certificado digital e o certificado de CA de raiz de todos os outros servidores aos quais o Informix está conectado. O keystore do servidor deve estar localizado no diretório INFORMIXDIR/ssl e deve ter o nome server_name.kdb, no qual server_name é o valor especificado no parâmetro de configuração DBSERVERNAME. O keystore em um cliente Informix armazena os certificados CA de raiz de todos os servidores aos quais o cliente está se conectando. A senha do keystore é opcional no cliente.

Cada instância do Informix deve ser seu próprio keystore, e o keystore é protegido por uma senha que o Informix precisa saber para poder recuperar o certificado digital para comunicações por SSL.

É possível usar o IBM Global Security Kit (GSKit) para gerar as chaves necessárias para executar o SSL. O GSKit é instalado junto com o servidor e o cliente do Informix (CSDK) para fornecer bibliotecas e utilitários para comunicação por SSL. O GSKit inclui a interface da linha de comandos GSKCapiCmd para gerenciar chaves, certificados e solicitações de certificado.

Siga as etapas a seguir para configurar o IDS para usar SSL.

  1. Configure Informix ONCONFIG.
    1. Configure o nome e aliases do servidor para conexões SSL.
    2. Configure VPs de criptografia usando o parâmetro onconfig VPCLASS. Por exemplo, insira VPCLASS encrypt, num=3. Se VPCLASS não estiver configurado, o IDS iniciará um VP de criptografia por padrão.
    3. Configure encadeamentos de pesquisas para conexão SSL usando o parâmetro onconfig NETTYPE. Se os encadeamentos de pesquisas não estiverem configurados, o IDS iniciará um. Por exemplo, insira NETTYPE socssl,3,50,NET.
    4. Configure SSL_KEYSTORE_LABEL para o certificado digital do servidor no keystore. Por exemplo, insira SSL_KEYSTORE_LABEL myssllabel. Se não estiver configurado, o servidor usará o rótulo padrão no keystore para comunicação SSL.
  2. Configure ou crie um arquivo $INFORMIXDIR/etc/conssl.cfg. Esse arquivo é requerido apenas para clientes SQLI, incluindo aplicativos dbaccess, dbimport e esql. O arquivo contém os nomes qualificados completos de arquivo do keystore do cliente e do arquivo stash do cliente.

    A seguir estão listados os parâmetros de configuração do cliente no arquivo conssl.cfg e suas descrições.

    SSL_KEYSTORE_FILE
    É o nome qualificado completo do arquivo do keystore que armazena os certificados de CA de raiz de todos os servidores aos quais o cliente se conecta.
    SSL_KEYSTORE_STH
    É o nome qualificado completo do arquivo stash que contém a senha do keystore criptografada.

    Lista 13 mostra exemplos.

    Lista 13. Inserindo parâmetros de configuração do cliente
    SSL_KEYSTORE_FILE /u/keystores/clikeydb.kdb 
    SSL_KEYSTORE_STH /u/keystores/clikeydb.sth

    Se conssl.cfg não existir, a localização padrão do keystore do cliente e arquivo stash será $INFORMIXDIR/etc/client.kdb e $INFORMIXDIR/etc/client.sth.

  3. Configure sqlhosts para configurar um nome de servidor para usar o protocolo onsocssl SSL. É necessário atualizar informações de conexão no arquivo sqlhosts (UNIX) ou no registro de SQLHOSTS (Windows) para incluir informações sobre conexões SSL. Use o protocolo onsocssl para conexões SQLI do Informix e o protocolo drsocssl para conexões DRDA.

    Tablela 3 mostra um exemplo de um arquivo sqlhosts configurado para conexões SSL e não SSL.

Tablela 3. Exemplo de arquivo sqlhosts configurado para conexões SSL
Nome do servidorProtocoloNome do hostNome do servidor
sf_ononsoctcpsanfranciscosf_serv
oak_ononsocssloaklandoak_serv
sac_ondrsocsslsacramentosac_serv
  1. Crie um keystore de servidor. Para configurar um keystore e seu arquivo stash de senha e certificado digital, use o utilitário iKeyman, a interface da linha de comandos GSKCmd ou a interface da linha de comandos GSKCapiCmd. O utilitário iKeyman e a ferramenta GSKCmd requerem JRE 1.6 ou posterior. A ferramenta GSKCapiCmd é parte do GSKit (consulte Recursos) e não requer Java.

    Crie o keystore e o arquivo stash no diretório INFORMIXDIR/ssl usando o código na Lista 14.

    Lista 14. Criando o keystore e arquivo stash
    $INFORMIXDIR/ssl/servername.kdb
    $INFORMIXDIR/ssl/servername.sth

    No qual servername é o valor do parâmetro onconfig DBSERVERNAME.

    Recomenda-se alterar as permissões no keystore e no arquivo stash para 664/informix:informix, conforme mostra a Lista 15.

    Lista 15. Alterando permissões no keystore e arquivo stash
    gsk8capicmd -keydb -create -db oak_on.kdb -pw mypasswd -type cms -stash
    gsk8capicmd -cert -create -db oak_on.kdb -pw mypasswd -label myssllabel 
                -size 1024 -default_cert yes

    Importante: Se DBSA configurar o servidor de banco de dados para usar uma versão diferente do GSKit, o comando gsk8capicmd, que é específico de uma versão, deve ser substituído com o comando da versão diferente do GSKit, como gsk7capicmd.

    Exporte o certificado para um arquivo ASCII (a ser exportado para um keystore do cliente), como mostra a Lista 16.

    Lista 16. Exporte o certificado
    gsk8capicmd -cert -extract -db oak_on.kdb -format ascii -label myssllabel 
                -pw mypasswd -target myssllabel.cert
  2. Importe o certificado do servidor usando GSKit para criar o keystore do cliente, como mostra a Lista 17.
    Lista 17. Importando o certificado do servidor
    gsk8capicmd -keydb -create -db clikeydb.kdb -pw mypasswd -type cms -stash
    gsk8capicmd -cert -add -db clikeydb.kdb -pw mypasswd -label myssllabel 
                -file myssllabel.cert -format ascii

    Altere as permissões no keystore e arquivo stash para 664/informix:informix. Um INFORMIXDIR que contém CSDK ou I-Connect deve ter acesso de leitura público. Se o INFORMIXDIR contém apenas IDS, é possível usar apenas permissões 600 ou 640.

  3. Para inicializar o servidor, faça o seguinte:
    1. Mova o servidor e os keystores do cliente para o local especificado (conforme descrito nas etapas anteriores).
    2. Inicialize o servidor. Toda a comunicação entre cliente e servidor na porta configurada com SSL será criptografada usando o protocolo SSL.

Usando auditoria

A auditoria cria um registro de atividades selecionadas realizadas pelos usuários. Ela se baseia na noção de eventos de auditoria e máscaras de auditoria. A auditoria precisa ser configurada no servidor Informix. Também pode ser desativada quando não for necessária.

Usando eventos de auditoria

Qualquer atividade do servidor de banco de dados que pode alterar ou revelar dados ou a configuração de auditoria é considerada um evento. É possível usar o recurso de auditoria segura do servidor de banco de dados para auditar e manter registro dos eventos quando eles sucedem ou falham, ou quando a atividade é tentada. Cada evento de auditoria é identificado por um código de quatro letras. Há mais de 150 eventos que podem ser auditorados. A seguir estão alguns códigos de evento comuns:

  • ACTB é tabela de acesso.
  • UPRW é atualização da linha atual.
  • STEX é explicação de conjunto.
  • RDRW é ler linha.
  • DLRW é excluir linha.

Usando máscaras de auditoria

Máscaras de auditoria especificam os eventos que o servidor de banco de dados deve auditar. É possível incluir qualquer evento em uma máscara. As máscaras são associadas a IDs do usuário, de modo que as ações especificadas realizadas por um ID do usuário são registradas. As máscaras globais _default, _require e _exclude são especificadas para todos os usuários no sistema. Tablela 4 lista quatro tipos de máscaras de auditoria.

Tablela 4. Tipos de máscaras de auditoria
Tipo de máscaraNome da máscara
Máscaras do usuário individualNome de usuário
Máscara padrão_default
Máscaras globais_require e _exclude
Máscaras modelo_maskname

Máscaras do usuário

As máscaras globais sempre são aplicadas a ações do usuário realizadas durante uma sessão em que a auditoria esteja ativada. As máscaras são aplicadas na seguinte ordem:

  1. Uma máscara do usuário individual (ou, se não houver, a máscara _default)
  2. A máscara _require
  3. A máscara _exclude

Quando um usuário inicia o acesso a um banco de dados, o servidor do banco de dados verifica se existe uma máscara individual com o mesmo nome que a conta usada pelo usuário. Se existir, o servidor de banco de dados lê primeiro as instruções de auditoria nela e ignora a máscara _default. Se não houver uma máscara do usuário individual, o servidor do banco de dados lê e aplica as instruções de auditoria da máscara _default.

Máscaras modelo

É possível criar máscaras de auditoria modelo para ajudar a configurar auditoria para situações recorrentes ou para vários tipos de usuários. Os nomes das máscaras modelo começam com sublinhado (_).

Usando instruções de auditoria

As máscaras e seus eventos são chamados de instruções de auditoria. É possível selecionar qualquer nível desde instruções de auditoria mínimas, nas quais nenhum evento é auditorado, até instruções máximas, nas quais todos os eventos do servidor de banco de dados relevantes para a segurança são auditorados para todos os usuários. O utilitário onaudit é usado para toda a criação e manutenção de máscaras de auditoria.

Auditoria seletiva no nível de linha

Com Informix 11.70, é possível configurar a auditoria de modo que eventos do nível de linha apenas das tabelas selecionadas sejam registrados na trilha de auditoria. Nas liberações anteriores, apenas a auditoria completa era possível. A auditoria seletiva no nível de linha pode compactar os registros de auditoria para que eles sejam mais fáceis de gerenciar, o que pode melhorar o desempenho do servidor de banco de dados.

Informix 11.70 inclui a nova propriedade do nível de tabela AUDIT, que pode ser especificada com os comandos CREATE TABLE ou ALTER TABLE, como mostra a Lista 18. A propriedade AUDIT controla a auditoria na tabela específica.

Lista 18. Exemplos dos comandos CREATE e ALTER TABLE
CREATE TABLE {existing syntax} | with AUDIT;
ALTER TABLE {existing syntax} | add AUDIT;
ALTER TABLE {existing syntax} | drop AUDIT;

O utilitário onaudit suporta uma opção (o sinalizador -R) que pode ser executada para ativar a auditoria seletiva no nível de linha. É possível iniciar a auditoria seletiva no nível de linha ao começar a auditoria dos bancos de dados, ou quando o utilitário de auditoria já estiver em execução.

Entendendo o processo de auditoria

Quando a auditoria é ligada, o servidor de banco de dados gera registros de auditoria para cada evento que as instruções de auditoria especificam. O servidor armazena os registros de auditoria em um arquivo chamado arquivo de auditoria. (A trilha de auditoria pode conter mais de um arquivo de auditoria.)

Os administradores de auditoria devem especificar e manter a configuração de auditoria, que inclui as seguintes informações:

  • O modo de auditoria
  • O comportamento do servidor de banco de dados quando encontra um erro ao gravar registros de auditoria na trilha de auditoria
  • Para UNIX, o diretório no qual a trilha de auditoria está localizada
  • Para UNIX, o tamanho máximo de um arquivo de auditoria antes que o servidor inicie automaticamente outro arquivo

Configuração de auditoria

Siga estas instruções para configurar a auditoria.

  1. Ligue ou desligue a auditoria. A auditoria é ligada ou desligada por meio do utilitário onaudit.
  2. Especifique modos de auditoria. ADTMODE no arquivo ADTCFG configura o tipo e nível das auditorias.
  3. Use o arquivo ADTCFG. Parâmetros de configuração no arquivo ADTCFG especificam as propriedades da configuração de auditoria. Esses parâmetros de configuração são ADTERR, ADTMODE, ADTPATH e ADTSIZE. O nome do caminho do arquivo ADTCFG padrão é $INFORMIXDIR/aaodir/adtcfg para UNIX e %INFORMIXDIR%\aaodir\adtcfg para Windows.
  4. No UNIX, determine as propriedades dos arquivos de auditoria. Os arquivos de auditoria estão localizados em um diretório especificado por meio do parâmetro onconfiguration ADTPATH. A convenção de nomenclatura usada para arquivos de auditoria é dbservername.integer, no qual dbservername é o nome do servidor de banco de dados conforme definido no arquivo onconfig, e integer é o próximo número inteiro disponível após o número definido no arquivo ADTLOG.

Configurando auditoria em um servidor Informix

A configuração da auditoria em um servidor Informix requer as seguintes etapas de alto nível:

  1. Use o utilitário onaudit para incluir eventos de auditoria nas máscaras de auditoria. O comando na Lista 19 mostra como os eventos de auditoria Update Audit Mask e Delete Audit Mask são incluídos na máscara _default por seus códigos de quatro letras.
    Lista 19. Incluindo eventos
     $ onaudit -m -u _default -e +UPAM,DRAM
  2. Confirme suas configurações de máscara de auditoria em Lista 20.
    Lista 20. Confirme as configurações de máscara de auditoria
    $ onaudit -o -u _default 
    _default - UPAM,DRAM
  3. Especifique um diretório para a trilha de auditoria no UNIX. O servidor de banco de dados armazena arquivos de auditoria em um diretório do sistema de arquivos. É possível especificar o diretório com o utilitário onaudit, como mostra a Lista 21.
    Lista 21. Usando o utilitário onaudit
    $ onaudit -p /work/audit
  4. Verifique a configuração da auditoria usando o comando $ onaudit -c. Os resultados da configuração são mostrados na Lista 22.
    Lista 22. Verificando a configuração da auditoria
    Onaudit -- Audit Subsystem Configuration Utility 
    Current audit system configuration: 
            ADTMODE = 0
            ADTERR  = 0 
            ADTPATH = /usr/informix/aaodir 
            ADTSIZE = 50000 
            Audit file = 0
            ADTROWS = 0
  5. Configure o nível da auditoria e ligue-a. AAO ou DBSSO configura o nível de auditoria no sistema. Para começar a auditar todas as sessões, insira $ onaudit -l 1. A seguir são apresentadas opções de nível de auditoria adicionais:
  • 0 = auditoria desativada
  • 1 = auditoria ligada, inicia a auditoria para todas as sessões
  • 3 = auditoria ligada, audita ações DBSSO
  • 5 = auditoria ligada, audita ações do administrador do servidor de banco de dados
  • 7 = auditoria ligada, audita DBSSO e ações do administrador do servidor de banco de dados

Quando a auditoria é ligada, o nível de auditoria é registrado em online.log e o adt VP é iniciado, como mostra a Lista 23.

Lista 23. Nível de auditoria registrado
14:43:19 Dynamically added 1 adt VP
14:43:19 Audit Mode changed to 1 

54 4da833a8 0 1 IO Idle 9adt* adt vp 0

Configurando opções adicionais com auditoria

É possível configurar opções adicionais com auditoria.

Modo de erro

O servidor do banco de dados pode realizar uma destas duas funções quando um erro ocorre ao gravar na trilha de auditoria:

  • Modo de erro de continuação
  • Dois níveis de severidade de modo de erro de interrupção

Configurando auditoria seletiva no nível de linha

O comando na Lista 24 continua auditando todas as tabelas que possuem o sinalizador AUDIT e para de auditar todas as demais tabelas.

Lista 24. Comando para auditoria seletiva no nível de linha
$ onaudit -R 1 

Options: 
0 = Auditing row-level events on all tables (0 is the default value) 
1 = Selective row-level auditing is enabled for tables set with the AUDIT flag. 
2 = Selective row-level auditing is enabled for tables set with the AUDIT flag. 
    The primary key, if an integer data type, is included in the audit records.

Desligando a auditoria

Para interromper a auditoria, configura-se o nível de auditoria como 0, como em $ onaudit -l 0.

Usando o utilitário onshowaudit

A trilha de auditoria (ou arquivos de auditoria) é acessada usando o utilitário onshowaudit. É possível usar o comando $ onshowaudit para extrair informações de um usuário particular, servidor de banco de dados ou ambos, o que possibilita isolar um subconjunto particular de dados de uma trilha de auditoria potencialmente grande. O servidor de banco de dados não audita a execução do utilitário onshowaudit. Lista 25 mostra os resultados do comando onshowaudit.

Lista 25. Comando para utilitário onshowaudit
ONSHOWAUDIT Secure Audit Utility
INFORMIX-SQL Version 11.70.FC4
ONLN|2011-10-06 15:28:25.000|fido|11647|abc1170tcp|informix
|0:RDRW:stores_demo:106:2097230:309::
Program Over.

A opção -f path especifica o diretório e nome dos arquivos de auditoria, como mostra a Lista 26.

Quando -f é omitido do comando, onshowaudit procura pelos arquivos de auditoria no diretório ADTPATH especificado no arquivo ADTCFG. O diretório de auditoria e nome do arquivo devem seguir níveis mínimos de segurança. O diretório deve ser de propriedade do usuário informix, pertencer ao grupo AAO e não permitir acesso público (permissão 0770). Os arquivos devem ter permissões comparáveis (permissão 0660). Os arquivos não devem ser links simbólicos para outros locais. O diretório pode ser um link simbólico. Caso o diretório de auditoria e os arquivos não sejam seguros, o utilitário onshowaudit retorna uma mensagem de erro e não exibe os resultados da auditoria.

Lista 26. Comando mostrando o arquivo de log de auditoria /work/aaodir/ol_lx_rama.7 e resultados
$ onshowaudit -I -f /work/aaodir/ol_lx_rama.7

ONSHOWAUDIT Secure Audit Utility
INFORMIX-SQL Version 11.70.FC4
ONLN|2011-10-06 15:28:25.000|fido|11647|abc1170tcp|informix
|0:RDRW:stores_demo:106:2097230:309:: 
Program Over.

O comando na Lista 27 mostra apenas os registros relacionados a usr1 no arquivo de log de auditoria /work/aaodir/ol_lx_rama.7.

Lista 27. Mostrando apenas registros de usr1
onshowaudit -I -f /work/aaodir/ol_lx_rama.7 -u usr1

O comando onshowaudit também pode preparar os dados extraídos com delimitadores, para que possam ser carregados em um banco de dados, como mostra Lista 28.

Lista 28. Comando mostrando onshowaudit com delimitadores e resultados
$ onshowaudit -I -l -f /work/aaodir/ol_lx_rama.7 

ONSHOWAUDIT Secure Audit Utility 
INFORMIX-SQL Version 11.70.FC4 
ONLN|2011-10-06 15:28:25.000|fido|11647|abc1170tcp|informix|0|RDRW|stores_demo
|106|||2097230|309|||| 
Program Over.

Usando controle de acesso discricionário

O controle de acesso discricionário verifica os privilégios de um usuário para realizar uma operação em particular.

Gerenciando privilégios

As etapas a seguir podem ser usadas para definir e conceder privilégios a uma função padrão:

  1. Selecione uma função existente no banco de dados atual para usar como função padrão, ou crie a função que deseja usar como padrão. Use a instrução de nome da função CREATE ROLE para criar uma função no banco de dados atual.
  2. Use a instrução GRANT para conceder privilégios à função.
  3. Conceda a função ao usuário e defina a função como usuário padrão ou função PUBLIC usando a sintaxe GRANT DEFAULT ROLE rolename TO username ou GRANT DEFAULT ROLE rolename TO PUBLIC.

Use a instrução REVOKE DEFAULT ROLE para desassociar uma função padrão com um usuário.

Um usuário deve usar a instrução SET ROLE DEFAULT para alterar qualquer outra função atual para a função padrão.

Definindo funções padrão

Administradores podem definir uma função padrão para designar a usuários individuais ou ao grupo PUBLIC para um banco de dados em particular. A função padrão é aplicada automaticamente quando um usuário estabelece uma conexão com o banco de dados. Cada usuário possui os privilégios concedidos a ele individualmente e os privilégios da função padrão. Um usuário pode alternar da função individual atual para a função padrão com a instrução SET ROLE DEFAULT. Quando diferentes funções padrão são atribuídas a um usuário e a PUBLIC, a função padrão do usuário tem precedência. Quando uma função padrão não é atribuída a um usuário, ele possui apenas os privilégios concedidos individualmente e os privilégios públicos.

Separando funções

A separação de funções impinge tarefas administrativas separadas por pessoas que executam e auditam o servidor de banco de dados. Quando INF_ROLE_SEP não está configurado, o usuário informix pode realizar todas as tarefas administrativas. Configure a variável de ambiente INF_ROLE_SEP para um valor inteiro diferente de zero para implementar a separação de função.

Configurando a permissão para criar bancos de dados

Use o parâmetro de configuração DBCREATE_PERMISSION para dar a usuários especificados a permissão de criar bancos de dados e evitar que outros usuários façam o mesmo. Se o parâmetro de configuração DBCREATE_PERMISSION não for configurado, qualquer usuário poderá criar um banco de dados. O usuário informix sempre tem permissão de criar bancos de dados. Siga as etapas a seguir para configurar a permissão para criar bancos de dados.

  • Adicione DBCREATE_PERMISSION informix ao arquivo onconfig para restringir a capacidade de criar bancos de dados ao usuário informix.
  • Como opção, inclua diversas instâncias de DBCREATE_PERMISSION no arquivo onconfig para conceder a usuários adicionais a permissão de criar bancos de dados. Por exemplo, para conceder a permissão a usuários chamados watson e jay, inclua DBCREATE_PERMISSION watson, jay no arquivo onconfig:

Conclusão

Este tutorial foca nos conceitos de auditoria de banco de dados do IBM Informix. Ele informa o que você precisa saber sobre auditoria antes de realizar o exame de certificação Informix System Administration. Agora você deve entender melhor as operações de auditoria do Informix e deve poder:

  • Conhecer os conceitos e usos de autenticação, autorização e criptografia
  • Permitir que usuários não cadastrados no S.O. acessem o banco de dados
  • Usar onaudit para configurar auditoria de segurança no servidor de banco de dados
  • Aproveitar conexões confiáveis e de contexto confiável para aprimorar a segurança
  • Usar os privilégios de uma função para proteger os dados
  • Configurar separação de função para impingir controle de acesso nos usuários do servidor de banco de dados

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=824861
ArticleTitle=Preparação para o exame 919 de System Administration Certification for Informix 11.70, Parte 8: Security
publish-date=07162012