Oracle Automatic Storage Management Cluster File System (ACFS) estende a funcionalidade do ASM para suportar não apenas Oracle Database files como executables, database data files, trace files, alert log files para citar alguns, mas também arquivos de clientes como textos, vídeos, áudios e arquivos de imagem.
Oracle ACFS security fornece políticas refinadas para usuários e groups para acesso aos filesystems e diretórios aplicadas através de domínios de segurança, bem como a funcionalidade de encriptação para proteger o conteúdo de arquivos protegidos por domínio armazenados em um sistema de arquivos ACFS.
No nível mais alto, os seguintes passos precisam ser realizados para habilitar a segunça e a encriptação para um filesystem ACFS:
Alguns dos passos acima listados podem ser feitos usando GUI Oracle 12c Release 2 ASM Configuration Assistant (ASMCA), enquanto alguns restantes serão realizados via linha de comando usando acfsutil, especificament os “sec commands”.
Nós devemos inicializar a segurança do filesystem como o primeiro passo antes de configurar um filesystem ACFS.
Um usuário pre-existente do Sistema operacional é designado a ser o administrador de segurança inicial do ACFS e também especificamos o grupo de administradores de segurança.
Se for requerido, o administrador do ACFS pode criar administradores de segurança adicionais.
Opcionalmente, a encriptação do filesystem ACFS também é inicializada com a segurança marcando o box "Configure Encryption" e as senhas dos domínios de segurança são armazenadas em uma wallet, que será criada durante o processo de inicialização de segurança.
Será necessário especificar uma senha para o administrador de segurança, um por vez com o comando acfsutil sec.
Como usuário root, execute o comando acfsutil sec init para configurar e armazenar as credenciais de segurança em uma wallet e também identificar um usuário de sistema operacional que será o primeiro administrador de segurança. Isso em que ser executado uma única vez para o cluster inteiro e pode ser executado de qualquer node no cluster.
Isso precisa ser feito antes de executar qualquer comando relacionado aos comandos de gerenciamento do domínio de segurança.
Note que o usuário root não é designado como administrador de segurança e não é possível rodar nenhum comando “acfsutil sec” – somente o administrador de segurança, que foi inicializado anteriormente, quem pode rodar estes comandos.
Este comando cria três domínios de segurança
SYSTEM_logs – este domínio é para proteger a segurança do ACFS relacionado aos log files armazenados no diretório /mount_point/.Security/realm/logs.
SYSTEM_SecurityMetaData – este domino de segurança protegre os arquivos de metadados XML Oracle ACFS armazenados no diretório /mount_point/.Security/backup/.
SYSTEM_BackupOperators- este domínio de segurança nos habilita a autorizar usuários que podem backupear arquivos do dominio de segurança e seus diretórios
Depois que a segurança foi inicializada, você pode habilitar a encriptação. Você deve iniciar o Sistema de encriptação como primeiro passo para encriptar um filesystem Oracle ACFS.
# /sbin/acfsutil encr init
Nós podemos habilitar encriptação para diretórios e arquivos pelo acfsutil que pode ser executado ou pleo root ou pelo administrador de segurança. Neste exemplo, nós estamos habilitando a encriptação recursivament em todos os arquivos no diretório /confidential/topsecret.
/sbin/acfsutil encr on -r /confidential/topsecret -m /confidential
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
Execute o comando acfsutil sec realm create para criar um domínio de segurança para o filesystem /confidential.
Note que nós estamos habilitando a encriptação para o filesystem /confidential .
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm create myrealm1 -m /confidential -e
on -a AES -k 128
ACFS Security administrator password:
[oracle@host02 topsecret]$ /sbin/acfsutil sec rule create myrule1 -m /confidential -t
username gavin -o DENY
ACFS Security administrator password:
Criar um conjunto de regras de segurança e uma regra existe a um conjunto de regras.
[oracle@host02 topsecret]$ /sbin/acfsutil sec ruleset create myruleset1 -m /confidential
ACFS Security administrator password:
[oracle@host02 topsecret]$ /sbin/acfsutil sec ruleset edit myruleset1 -m /confidential
-a myrule1
ACFS Security administrator password:
[oracle@host02 topsecret]$ /sbin/acfsutil sec realm add myrealm1 -m /confidential -l
ALL:myruleset1 -f -r /confidential/topsecret
ACFS Security administrator password:
[oracle@host02 topsecret]$ /sbin/acfsutil sec info -m /confidential -n myrealm1
ACFS Security administrator password:
Realm status: ENABLED
Users present in realm 'myrealm1' are as follows :
Groups present in realm 'myrealm1' are as follows :
Filters present in realm 'myrealm1' are as follows :
ALL : myruleset1
Encryption status : ON
Encryption algorithm : AES
Encryption key length : 128
Realm description : ''
[root@host02 topsecret]# /sbin/acfsutil sec info -m /confidential
acfsutil sec info: ACFS-10662: Current user 'root' does not have security
administrator privileges.
acfsutil sec info: ACFS-10606: User 'root' is not a security administrator.
Nós agora estamos conectados com o usuário de sistema operacional gavin e vamos tentar acessar qualquer arquivo que está armazenado em um filesystem ACFS com segurança habilitada /confidential/topsecret.
[gavin@host02 ~]$ cd /confidential/topsecret/
[gavin@host02 topsecret]$ ls -l
ls: cannot open directory .: Permission denied
[gavin@host02 topsecret]$ cd ..
[gavin@host02 confidential]$ ls -l
total 116
drwx------. 2 root root 65536 May 4 11:30 lost+found
drwxr-xr-x. 2 oracle dba 20480 May 4 13:02 topsecret
[root@host02 topsecret]# pwd
/confidential/topsecret
[root@host02 topsecret]# ls -l
ls: cannot open directory .: Permission denied
Nós podemos usar o comando acfsutil encr info para visualizar as configurações de encriptação no nivel de diretório assim como para arquivos individuais localizados naquele diretório.
[oracle@host02 topsecret]$ /sbin/acfsutil encr info -m /confidential -r
/confidential/topsecret
Path: /confidential/topsecret
Encryption status: ON
Algorithm: AES 128-bits
Key length: 16 bytes
Path: /confidential/topsecret/secret1.txt
Encryption status: ON
Algorithm: AES 128-bits
Key length: 16 bytes
Próximo, edite a regra de segurança myrule1 e mude de DENY para ALLOW para o usuário de sistema operacional gavin.
[oracle@host02 ~]$ acfsutil sec rule edit myrule1 -m /confidential -t
username gavin -o ALLOW
ACFS Security administrator password:
Conecte-se novamente com o usuário de Sistema operacional gavin e agora note que Podemos visualizar o conteúdo não somente do filesystem ACFS /confidential/topsecret mas também do arquivo secret1.txt localizado neste diretório. Anteriormente isso não era possível, mas agora a regra de segurança basicamente ALLOW juntamente com a regra do comando ALL que dá ao usuário gavin permissões completas ao filesystem ACFS seguro.
[root@host02 trace]# su – gavin
[gavin@host02 ~]$ cd /confidential/topsecret/
[gavin@host02 topsecret]$ ls -l
total 4
-rw-r--r--. 1 oracle dba 13 May 4 13:06 secret1.txt
[gavin@host02 topsecret]$ vi secret1.txt
[gavin@host02 topsecret]$ cat secret1.txt
TOP SECRET!!
[oracle@host02 ~]$ acfsutil sec realm add myrealm1 -m /confidential -l
READ:myruleset1
ACFS Security administrator password:
[oracle@host02 ~]$ exit
Verifique os usuários que fazem parte do domínio de segurança e os filtros presentes para um particular conjunto de regras que é parte do mesmo domínio de segurança.
Users present in realm 'myrealm1' are as follows :
root
oracle
gavin
Groups present in realm 'myrealm1' are as follows :
Filters present in realm 'myrealm1' are as follows :
READ : myruleset1
Encryption status : ON
Encryption algorithm : AES
Encryption key length : 128
Novamente, reconecte-se com o usuário de Sistema operacional gavin e agora note que enquanto o usuário pode ler o conteúdo do arquivo secret1.txt, ele não pode realizar qualquer outra operação como renomear, editar o arquivo ou mesmo criar um novo arquivo no diretório.
[root@host02 bin]# su - gavin
[gavin@host02 ~]$ cd /confidential/topsecret/
[gavin@host02 topsecret]$ cat secret1.txt
TOP SECRET!!
[gavin@host02 topsecret]$ mv secret1.txt secretnew.txt
mv: cannot move `secret1.txt' to `secretnew.txt': Permission denied
[gavin@host02 topsecret]$ touch xyz
touch: cannot touch `xyz': Permission denied
[oracle@host02 topsecret]$ scp -rp secret1.txt oracle@host01:/home/oracle
secret1.txt 0% 0 0.0KB/s --:-- ETA
secret1.txt: Permission denied
[oracle@host02 topsecret]$ cd ..
[oracle@host02 confidential]$ echo "TOP SECRET" > not_a_secret_file.txt
[oracle@host02 confidential]$ scp -rp not_a_secret_file.txt oracle@host01:/home/oracle
not_a_secret_file.txt 100% 11 0.0KB/s 00:00
Resumo Oracle ACFS fornece segurança baseada em domínios para um filesystem Oracle ACFS, e fornece um refinado controle de acesso em cima do controle de acesso fornecido pelo sistema operacional. A encriptação do Oracle ACFS habilita aos usuários a criptografar os dados armazenados no disco, e isso protege os dados em um filesystem ACFSe previne acessos não-autorizados aos dados em caso de perda ou roubo.
Y V Ravi Kumar é um Oracle ACE Director e Oracle Certified Master (OCM) com 18 anos de experiência em instituições financeiras, serviços financeiros e seguros (BFSI) e atuou em diversos papeis como Senior Database Architect e Production DBA. Ele também é OCP em Oracle 8i, 9i, 10g, 11g & 12c e Certificado em Golden Gate, RAC, Performance Tuning& Oracle Exadata. Ele continua motivando muitos DBAs e ajudando a Oracle Community publicando suas dicas /ideias/sugestões/soluções em seu blog. Ele escreveu 40+ artigos OTN sobre Oracle Exadata, Oracle RAC e Oracle GoldenGate para a OTN em Espanhol, OTN em Português e OTN em inglês e 19 artigos para a TOAD World, 2 Artigos para o UKOUG, 3 Artigos para OTech Magazine e 2 Artigos para a Redgate. Ele é membro do AllIndia Oracle UserGroup (AIOUG) e frequente Oracle speaker in @NYOUG, @OTN, AIOUG, Sangam e IOUG. Ele desenha, projeta e implementa Core Banking System (CBS) Databases para o Central Banks em dois países – India e Mahe, Seychelles. Ele é Co-Founder do OraWorld (www.oraworld.com). Leia mais sobre o seu perfil na LaserSoft.
Rodrigo Mufalani é um Oracle ACE e Oracle Certified Master (OCM), com mais de 14 anos de experiência, começou com o Oracle 8i, OCP DBA nas versões 10g, 11g e 12c além de Oracle Certified Specialist em RAC e Exadata. Seu foco principal é Performance & Tuning e RAC. É palestrante regular em Oracle User Groups como: OTN LAD TOUR. Atualmente trabalha na eProseed (Luxemburgo). Twitter @mufalani/ blog www.mufalani.com.br/blog
Gavin Soorma é um Oracle ACE Director, Oracle Certified Master (10g,11g and 12c), Oracle Certified Specialist (GoldenGate, Exadata 11g, Exadata Database Machine 2014) and Oracle OCP (8i to 12c).
Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.