26/11/15

RACF - Resource Access Control Facility

O RACF (RESOURCE ACCESS CONTROL FACILITY ) é um software de segurança que permite o controle de acessos e proteção de recursos, garantindo a segurança e integridade do ambiernte. Suas principais funções são:

Autenticação - Realizado em 2 passos. O primeiro é identificar o usuário que está acessando, e o segundo é autenticá-lo, para isso é usado um ID e uma senha. Pode-se ainda usar certificado digital e cartões de acesso.

Autorização - O RACF controla a interação do ambiente com os usuários, autorizando o tipo de acesso (leitura e/ou gravação) a cada recurso e/ou datasets.

Auditoria - Através da log, onde é gravada todo tipo de registro de acesso aos recursos, autorizado ou não.

O RACF armazena suas informações em um banco de dados, sendo consultado a todo instante que o RACF recebe um pedido de consulta. Pode-se ainda ter um banco secundário, mudando-o a qualquer instante, sem precisar parar o produto ou realizando um IPL.

Banco de Dados RACF

O banco de dados RACF armazena informações sobre usuários, grupos, conjuntos de dados e outros recursos. Os registros do banco de dados que descrevem esses objetos são chamados de perfis. O banco de dados RACF tem diferentes tipos de perfis. Um perfil que protege um único recurso, como por exemplo uma transação ou tecla criptográfica é chamado de perfil discreto. Um perfil que protege vários recursos é chamado de perfil genérico. O banco de dados RACF também utiliza perfis de usuários e do grupo.

Nota: Os perfis RACF não devem ser confundidos com os perfis do Tivoli Secureway User Adminstration. Para obter mais informações sobre os perfis do Tivoli SecureWay User Administration, consulte Perfis de Usuário e de Grupo.

Segmentos RACF

Os segmentos dos perfis RACF são extensões opcionais do perfil base que contém informações sobre um determinado aplicativo ou função de gerenciamento. Por exemplo, se o usuário precisa executar o Customer Information Control System (CICS), seu perfil de usuário requer um segmento CICS. Os perfis de usuários podem exigir vários segmentos adicionais para acomodar as atividades necessárias para um usuário.

Autenticação do Usuário

Ao iniciar sessão no sistema operacional, o usuário deve especificar um ID do usuário e senha válidos. O RACF também oferece suporte a alternativas para senhas tradicionais. Por exemplo, o RACF oferece suporte a passtickets. O passticket pode ser gerado pelo RACF ou por outra função autorizada e pode ser utilizado somente se estiver em um determinado sistema dentro de um período de tempo limitado. Ao autenticar um usuário, o RACF verifica o seguinte:

* Se o usuário está definido no RACF
* Se o usuário forneceu uma senha ou uma alternativa válidas, como por exemplo um passticket
* Se o UID (ID do usuário) e o GID (ID do grupo) são válidos no UNIX OS/390
* Se o ID do usuário está no status de revogação, o que impede que um usuário definido pelo RACF entre no sistema ou acesse determinados grupos
* Se o usuário tem autorização para utilizar o sistema nesse dia e hora
* Se o usuário tem autorização para acessar o terminal

Autorização de Recursos

Quando o usuário solicita acesso a um recurso, o gerenciador de recurso do sistema emite um pedido do RACF para verificar se o usuário tem autorização para acessar o recurso. O RACF verifica o perfil que contém informações sobre o recurso solicitado no banco de dados do RACF. O RACF passa essas informações ao gerenciador de recurso do sistema. Com base nessas informações, o gerenciador de recurso do sistema concede ou nega o pedido.

Atributos do Usuário RACF

Os usuários com funções de job diferentes exigem tipos de acesso a recursos diferentes. Os atributos do usuário do RACF podem fornecer a um usuário direitos de acesso especiais aos recursos. Os atributos do usuário também determinam o que um usuário pode fazer com o banco de dados do RACF. A seguir são fornecidos alguns exemplos de atributos básicos do usuário RACF:

ESPECIAL -- Este atributo de usuário é válido para um administrador RACF que tem direito de utilizar todos os comandos do RACF e definir qualquer tipo de perfil no banco de dados RACF. O atributo ESPECIAL do RACF permite que o usuário gerencie o conteúdo do banco de dados do RACF, mas não oferece acesso especial aos outros recursos do OS/390 além do que um usuário comum teria.

OPERAÇÕES -- Este atributo de usuário fornece ao usuário acesso a todos os conjuntos de dados e a algumas classes de recursos adicionais no sistema. O atributo também permite que o usuário aloque conjuntos de dados para qualquer outro usuário no sistema. Por motivos de segurança, esse atributo deve ser fornecido somente a IDs do usuário temporários, abertos em situações de emergência.

AUDITOR -- Este atributo de usuário é válido para um usuário responsável pela auditoria do banco de dados RACF, além de logs e integridade do sistema. O atributo AUDITOR fornece ao usuário o direito de observar todos os perfis do banco de dados RACF e alterar os atributos de auditoria do sistema e de perfis individuais.

REVOGAR -- Este atributo de usuário fornece uma forma de impedir que um usuário definido para RACF utilize o sistema. O atributo REVOGAR pode ser disparado quando o usuário digita uma senha incorreta muitas vezes, ou não inicia sessão no sistema por um determinado número de dias. Esse atributo também pode ser válido quando um administrador revoga o perfil do usuário.

Comandos do RACF

Os Comandos usados no RACF são divididos por tipos, ou seja, para cada tipo de definição há um grupo específico.

Comandos de Função
DEFINE
ALTER
LIST
DELETE

Comandos de Usuário
ADDUSER
ALTUSER
LISTUSER
DELUSER

Comandos de Grupo
ADDGROUP
ALTGROUP
LISTGROUP
DELGROUP

Comandos de Dataset
ADDSD
ALTDSD
LISTDSD
DELDSD

Comandos para Recurso Geral
RDEFINE
RALTER
RLIST
RDELETE
Para cada tipo de recurso existe uma variedade de comandos para se controlar os acessos. Existem varias maneiras de se executar os comandos:

1) Pelo TSO, digitando comandos na tela principal do ISPF, ou na tela 6
RDEFINE FACILITY BPX.SUPERUSER UACC(NONE)
PERMIT BPX.SUPERUSER CLASS(FACILITY) ID(JANE) ACCESS(READ)
SEARCH MASK(FZPRKD) CLASS(DATASET)
Existe o commando HELP, que pode ser consultado a qualquer hora, seguido do comando que vc deseja saber mais informações, ou limitar a somente a SINTAX do comando em si.

2) Por batch, utilizando o programa IKJEFT01:
TSOBAT01 EXEC PGM=IKJEFT01
SYSTSPRT DD SYSOUT=*
SYSPRINT DD SYSOUT=*
SYSUADS DD DSN=SYS1.UADS,DISP=SHR
SYSLBC DD DSN=SYS1.BRODCAST,DISP=SHR
SYSTSIN DD *



/*

3) Pelos paineis do RACF

CLASSES

O bando de dados do RACF armazena as informações sobre os usuários grupos e recursos. Um conjunto de profiles de um mesmo tipo se torna uma classe. Quando é definido as profiles dos usuários, não se aloca ela na classes de DATASET e sim de USER, pois as profiles armazenam informações semelhantes como NOME do usuário, OWNER, AUTHORITY, etc, assim como não se cria uma profile de DATASET na classe de DASD. Existem várias classes ja pré-definidas no ambiente como USER, DATASET e GROUP, mas pode-se ativar as outras classes de acordo com a necessidade. As classes ficam armazenadas na CDT (Class Descriptor Table). Se usa o comando SETROPTS para se fazer a manutenção das classes.

SETROPTS CLASSACT()

Algumas classes que podem ser ativadas são:

TAPEVOL Classe de segurança para Fitas
SDSF Classe de segurança da sysout do SDSF
OPERCMDS Classe de segurança para controlar quem pode dar comandos de operador
PROGRAM Classe de segurança para programas

Pode ser ver quais classes estão ativas com o comando:

SETROPTS LIST

Pode se incluir novas classes, de acordo com a instalação de novos produtos (utilizando os comandos RDEFINE e RALTER), porém deve-se seguir as definições e particularidades do software descrita no manual do software a ser instalado.

PROFILES

Profile (ou perfil), são informações referentes aos recursos protegidos pelo RACF. Ele protege basicamente 2 tipos de recursos: Dataset ou Recursos (Resources). Tudo o que não for um dataset, é um recurso. Os recursos se resumem a DASD, fitas, programas, terminais, entre outros.

Essas informações ficam armazenadas em profiles, que são nada mais que perfis. Os profiles de Dataset contem informações como, aonde está localizado o dataset (DASD ou Fita). As profiles de Recursos contém informações genéricas. Cada recurso que é definido no RACF, é criado uma profile, porém pode-se usar uma única profile para progeter mais de um único recurso.

Discrete - Tem relação de 1 para 1 com o recurso ( 1 profile para cada recurso). Ex: Se cria uma única profile para proteger um único arquivo ‘GP.PROD.AGENCIA’

Generic Tem relação de 1 para N . Uma profile controla acesso a vários recursos, onde os nomes contem padrões ou caracteres que o RACF usa para associar uns aos outros. Esse tipo de profile contém uma lista de usuários autorizados e qual tipo de acesso cada um possui. Ex: Se cria uma profile para proteger todos os dataset que tenham ´GP.PROD´ no inicio do nome, e ainda o usuário A so pode ler enquanto o usuário B pode alterar. Grouped - Pode não conseguir criar um padrão de nome nos recursos para se criar apenas uma profile. No caso se usa uma profile grouped, aonde se agrupa vários recursos e/ou datasets sem padrão no nome, como ocorre no generic.

Ex: Uma profile para vários datasets ´GP.PROD.G0001´, ´BZ.DESA.CONTA´, ´BANANA.SPLIT´ .

1) Profile de Usuário

Para cada usuário, se cria um user profile na classe USER . O profile consiste em segmentos e opcionalmente outras informações relacionadas ao usuário ou ao recurso que o utiliza.

User ID -> é o nome do profile, RACF permite apenas a criação de um unico identifier para cada usuário. O tamanho máximo do usuário é 8 caracteres, mas o tamanho máximo permitido pelo TSO é 7. O ID é unico e não pode ser repetido.

Owner -> O owner do profile tem a autoridade para muda-lo. Todo profile no RACF precisa de um owner.

Password -> Campo criptografado. Não é possivel descriptografar a senha, se a senha for esquecida, o administrador pode por uma senha temporaria e o usuário pode muda-la no próximo logon.

Atributos -> Esse campo contém atributos extraordinários. Os Atributos SPECIAL, OPERATIONS e AUDITOR devem ser dado apenas a algumas pessoas.

Groups -> um user ID pertence no minino au seu proprio grupo, mas pode fazer parte de outros grupos

1.1) Atributos de Usuário

Atributos de usuário são acessos especiais no ambiente, que podem ser assinadas ao usuario quando conectadas algum grupo especifico. Quando um atributo é aplicado no sistema inteiro, e especificado em niveis é chamado atributo de usuário. Quando um atributo é aplicado apenas em um grupo especifico é chamado de group-related user attribute. Atributos de usuario é especificado com os comandos ADDUSER ou ALTUSER e armazenados na profile do usuário sem levar em consideraçao o grupo no qual o usuario esta conectado. Entretanto, atributos que se espefica com o comando CONNECT são validos apenas para o grupo.

Os atributos de usuários são:

SPECIAL Um usuario que tem SPECIAL pode executar todos os comandos RACF, e so é usado por administradores. Este atributo da o controle total sobre todos os profiles do banco de dados do RACF. Ainda se pode atribuir o SPECIAL num nivel de grupo. Quando se faz isso, apenas se tem acesso as profiles de quem esta dentro do grupo.

AUDITOR Este atributo é dado para os usuários que são responsáveis por auditar o RACF. Ainda se pode atribuir o AUDITOR num nivel de grupo. Quando se faz isso, apenas se tem acesso as profiles de quem esta dentro do grupo.

OPERATIONS Tem acesso total nas classes DATASET, DASDVOL, GDASDVOL, PSFMPL, TAPEVOL, VMBATCH, VMCMD, VMMDISK, VMNODE e VMRDR . Ainda se pode atribuir o OPERATIONS num nivel de grupo. Quando se faz isso, apenas se tem acesso aos recursos de acesso ao grupo.

REVOKE Não deixa o usuario entrar no sistema. Pode ser usado tambem em um grupo. Pode tambem ser programada a inclusão do REVOKE ou ate a retirada com o comando RESUME.
CLAUTH Permite criar profiles dentro de uma classe
RESTRICTED Não deixa o usuário receber acesso temporaio com os comandos de ADDUSER e ALTUSER.
PROTECTED Não revoga o acesso
WHEN Especifica uma data (dia da semana, hora do dia) que o usuario pode usar o sistema.

Quando se define um usuário é essencial que o nome do default group seja definido. Cada usuário criado precisa no minimo estar associado ao seu próprio grupo, mas pode estar associado a varios grupos. Além disso é necessário ter um owner no profile do usuário. Normalmente o default group é escolhido como o owner.

1.2) Segmentos do Usuário

Quando se cria um usuario no RACF, tambem se cria o seu perfil no banco de dados. Um perfil de usuário consistem em segmentos, que são os diversos softwares do ambiente no qual o usuário precisa de acesso para trabalhar.

-> CICS
-> DCE
-> DFP
-> LANGUAGE
-> LNOTES
-> NDS
-> NETVIEW
-> OMVS
-> OPERPARM
-> OVM
-> TSO
-> WORKATTR

As informações referentes a cada segmento ficam no profile de cada usuário do RACF

USERID - identificação do usuário (ID)
NAME - Nome do usuário
OWNER - Owner do profile do usuário
DFLTGRP - Grupo padrão do usuário
AUTHORITY - Autoridade do Usuário no grupo padrão
PASSWORD - senha do usuário (criptografado)
PWD PHRASE - Opcionalmente frase-senha (criptografado)
REVOKE - Data que o RACF bloqueia o acesso desse ID no sistema
RESUME -Data que o RACF libera o acesso no sistema
UACC - Universal access authority para recursos que o usuário criar
WHEN - Dia da semana e as horas do dia que o usuario pode usar o ambiente
ADDCATEGORY - Categoria de segurança do usuário
SECLEVEL - Nivel de Segurança do usuário
CLAUTH - Classes que o usuário pode criar profiles
SPECIAL - indica se o usuário tem o atributo SPECIAL
AUDITOR - indica se o usuário tem o atributo AUDITOR
OPERATIONS - indica se o usuário tem o atributo OPERATIONS
ADSP - Indica que todos os dataset que o usuario criar serão protegidos pelo RACF
GRPACC - Indica que os usuarios de outro grupo tem acesso aos dataset do outros usuários
MODEL - Qual foi o ID modelo criado para este ID
OIDCARD - Indica que o usuario deve indicar um ID card quando logar
SECLABEL - Label default de segurança
CERTNAME - O nome da profile na classe DIGTCERT que está relacioanda a este ID
CERTLABL - O label certificado associado ao profile da Classe DIGTCERT que está relacionado a este ID

1.3) Como Adicionar uma Profile de Usuário

Por comandos no TSO:
ADDUSER  NAME(‘NOME DO USUARIO’) DFLTGRP() OWNER() PASSWORD()
Pelas telas do RACF:

- Na tela principal do RACF escolher a opção “USER PROFILES AND YOUR OWN PASSWORD”
- Colocar opção 1 add e colocar o ID que será criado no campo USER
- Preencher os campos : OWNER ( user ID ), USER NAME ( nome do usuário ) e DEFAULT GROUP ( grupo )
- Preencher os campos de USER ATTRIBUTES com YES conforme necessidade:

As opções são: GROUP ACCESS, SPECIAL, ADSP, OPERATIONS, OIDCARD, AUDUTOR, etc

A mensagem Profile Added no canto superior direito da tela.

1.4) Senha

Para se resetar a senha no caso de esquecimento ou violação pode ser emitir o comando no TSO:

Usuário IBMUSER:

 - Caso a senha esteja violada - A senha vai ser alterada para ibmuser
ALU ibmuser PASS(ibmuser)

- Caso a senha não esteja violada - A senha vai ser alterada para ibmuser
ALU ibmuser RESUME PASS(ibmuser)

Menu  Utilities  Compilers  Options  Status  Help                            
                                                                                
                            ISPF Primary Option Menu                            
                                                                                
0  Settings      Terminal and user parameters            User ID . : ADCDA     
1  View          Display source data or listings         Time. . . : 16:07     
2  Edit          Create or change source data            Terminal. : 3278      
3  Utilities     Perform utility functions               Screen. . : 1         
4  Foreground    Interactive language processing         Language. : ENGLISH   
5  Batch         Submit job for language processing      Appl ID . : ISR       
6  Command       Enter TSO or Workstation commands       TSO logon : ISPFPROC  
7  Dialog Test   Perform dialog testing                  TSO prefix: ADCDA     
9  IBM Products  IBM program development products        System ID : ADCD      
10 SCLM          SW Configuration Library Manager        MVS acct. : ACCT#     
11 Workplace     ISPF Object/Action Workplace            Release . : ISPF 5.6  
M  More          Additional IBM Products                                       
                                                                                
                                                                                
      Enter X to Terminate using log/list defaults                              
                                                                                
                                                                                
Option ===> 6

Menu  List  Mode  Functions  Utilities  Help                                 
                                                                                
                               ISPF Command Shell                               
Enter TSO or Workstation commands below:                                       
                                                                                
===>                                                                           
                                                                                
                                                                                
                                                                                
Place cursor on choice and press enter to Retrieve command                     
                                                                                
=> ALU ibmuser PASS(ibmuser)                                                   
=> ALU ibmuser RESUME PASS(ibmuser)                                            
=>
=>
=>
=>
=>
=>
=>
=>

Ou pelas telas do RACF:

- opção 4 PASSWORD e colocando o USER ID no campo USER
- Preencher o campo de senha ou de frase-senha

Grupos RACF

Cada usuário RACF é membro de no mínimo um grupo RACF. Um usuário que pertence a um grupo é chamado de conectado ao grupo. Os grupos RACF podem ter várias finalidades. As mais comuns são as seguintes:

* Grupos de proteção de recursos permitem que você proteja conjuntos de dados. Existem dois tipos de conjuntos de dados: conjuntos de dados do usuário e conjuntos de dados do grupo. O qualificador de primeiro nível para obter acesso a um conjunto de dados do usuário é o ID do usuário. Para todos os outros conjuntos de dados, o qualificador de primeiro nível é definido como um grupo do RACF. Por exemplo, para proteger um conjunto de dados CICS41.LOADLIB, você precisa definir um grupo com o nome CICS41. A seguir, você pode definir os perfis de conjuntos de dados RACF que começam com CICS41, para sua proteção.

* Grupos administrativos podem ser utilizados para informações. Uma forma comum de utilizar esses grupos é criar uma estrutura que emule a organização dos departamentos e divisões da sua empresa. Em seguida, conecte os usuários pertencentes a um departamento ao grupo correspondente. Quando você precisar saber quem trabalha em um determinado departamento, pode descobrir listando o grupo que representa o departamento.

* Grupos funcionais são os grupos que representam funções de trabalho ou responsabilidades e são utilizados para fornecer direitos de acesso aos usuários. Por exemplo, se sua empresa tem a função de contador, crie o grupo RACF CONTA para representar essa função. Em seguida, conecte todos os contadores a esse grupo, supondo que eles tenham os mesmos requisitos de acesso. Após isso, digite o grupo CONTA em todas as listas de acesso para os recursos aos quais os contadores precisam ter acesso.

Os atributos de usuário ESPECIAL, OPERAÇÕES e AUDITOR podem ser concedidos a um usuário através de sua conexão a um grupo. Quando recebidos através de um grupo, esses atributos são denominados GRUPO-ESPECIAL, GRUPO-OPERAÇÕES, etc. Um usuário com um desses atributos pode utilizar o atributo somente para acessar recursos de propriedade do grupo.

2.1) Como Adicionar um Grupo

Pela tela do TSO:
ADDGROUP  OWNER() SUPGROUP()
Ou pelas telas do RACF:

- Opção 3 GROUP PROFILES AND USER-TO-GROUP CONNECTIONS
- Opção 1 para Adicionar, coloque o nome do grupo na opção GROUP NAME.
- Preencha o campo OWNER, e SUPERIOR GROUP.
- O Profile foi adicionado! Uma mensagem de Profile Added vai aparecer no canto direito esquerdo da tela.

2.2) Como Alterar um Grupo

Pela Tela do TSO:
ALTGROUP  OWNER() SUPGROUP() TERMUACC|NOTERMUACC

Podendo também se fazer pelas telas do RACF:

- Opção 3 GROUP PROFILES AND USER-TO-GROUP CONNECTIONS
- Opção 2 CHANGE, coloque o nome do grupo no campo GROUP NAME
- Altere as informações desejadas: Owner, Superior Group, etc.
- O grupo foi alterado. Uma mensagem de Profile Changed vai aparecer no canto direito esquerdo da tela.

2.3) Conectando um Usuário em um Grupo

Pela tela do TSO:
CONNECT  GROUP()

Ou pelas telas do RACF:

- Opção 4 CONNECT, colocando o grupo no qual o usuario será conectado
- Preencha o campo USER com o nome do usuario que vc deseja conectar, o OWNER, qual o UACC que o usuário terá nos arquivos do grupo e a autoridade no grupo.
- Preencha os campos conforme a necessidade mudando de NO pra YES: Group Access, ADSP, Revoke, Resume, etc.
- Usuário foi conectado ao grupo! Uma mensagem de User Connected vai aparecer no canto direito esquerdo da tela.

Clique Aqui


2 comentários:

  1. Perfeito esse post!!! Vai me ajudar bastante!! Procurei varios documentos para entender melhor o funcionamento do RACF, consegui alguns redbooks na pagina da ibm, mas enormes...seu post vai direto ao ponto!! Muito obrigada!
    Fiz uma pergunta sobre se era possivel criar novos usuarios no hercules, mas minha pergunta ja foi respondida no seu blog! Obrigada!!!

    ResponderEliminar
    Respostas
    1. Fico feliz do nosso blog ter conseguido te ajudar Rafaela Silva, este foi o motivo de eu ter criado o blog em compartilhar o conhecimento;

      Eliminar