Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Utilizzare Oracle SQL Firewall con Oracle Data Safe
Introduzione
Oracle SQL Firewall fornisce protezione in tempo reale contro gli attacchi comuni ai database limitando l'accesso al database solo alle istruzioni o alle connessioni SQL autorizzate per un utente designato.
La console unificata Oracle Data Safe è stata estesa per gestire e monitorare i database Oracle SQL Firewall per Oracle Database 23ai. Gli amministratori possono utilizzare Oracle Data Safe per raccogliere le attività SQL degli account di database, monitorare lo stato di avanzamento della raccolta, creare criteri SQL Firewall con regole di lista di consenso (contesti consentiti e istruzioni SQL consentite) dalle attività SQL raccolte e abilitare i criteri SQL Firewall.
Quando un criterio firewall è abilitato, Oracle Data Safe raccoglie automaticamente i log delle violazioni del firewall dal database e li memorizza in Oracle Data Safe. Questi log sono quindi disponibili per l'analisi e il reporting online nella flotta di database.
Destinatari
Amministratori del database e amministratori della sicurezza di Oracle Cloud Infrastructure (OCI).
Obiettivo
Comprendere come utilizzare Oracle SQL Firewall con Oracle Data Safe con un caso d'uso semplice.
Caso d'uso: autorizzare l'istruzione SQL "Select on View" e bloccare qualsiasi altra istruzione SQL per l'utente designato APP_USER
.
APP_OWNER
: proprietario delle tabelle e delle viste dell'applicazione.APP_USER
: è necessario accedere all'applicazione.
Prerequisiti
-
Provisioning di Oracle Database 23ai in OCI. In questa esercitazione è stato utilizzato il database creato in un'istanza di OCI Compute.
-
Aggiungi Oracle Database 23ai pluggable database (PDB) -
FREEPDB1
come destinazione in Oracle Data Safe. In questa esercitazione è stata utilizzata la procedura guidata dell'istanza di computazione per la registrazione. Vedere Oracle Data Safe - Registrazione del database di destinazione. -
Qualsiasi strumento Oracle Database per il test di Oracle SQL Firewall. Si sta utilizzando Oracle SQL Developer per eseguire istruzioni SQL. Per ulteriori informazioni, vedere Oracle SQL Developer.
Nota: ignorare il task 1 se si dispone già dell'istanza di Oracle Database 23ai.
Task 1: creare l'istanza di computazione Oracle Database 23ai
-
Andare a OCI Console, andare a Computazione, Istanze, quindi fare clic su Crea istanza. Immettere i dettagli riportati di seguito per creare un'istanza.
-
Crea il database Oracle Database 23ai. Connettersi all'istanza di computazione utilizzando il comando riportato di seguito.
ssh -i <private-ssh-key> opc@<publicip-computeinstance>
-
Passare all'utente root e aggiornare il sistema con il software più recente quando si lavora su una VM.
sudo su yum update
-
Abilita il repository per sviluppatori Oracle Linux 8.
yum config-manager --set-enabled ol8_developer
-
Scarica Oracle Database 23ai Free RPM e installalo come root.
yum -y install oracle-database-preinstall-23c
-
Per eseguire un'installazione basata su RPM, scaricare il file
oracle-database-free-23c-1.0-1.el8.x86_64.rpm
.wget https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23c-1.0-1.el8.x86_64.rpm
-
Installare Oracle Database eseguendo il comando seguente.
yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
-
Configura Oracle Database 23ai. Lo script di configurazione imposta un container database (FREE) che include un pluggable database
FREEPDB1
e prepara il listener alla porta predefinita1521
. Eseguire lo script di configurazione del servizio./etc/init.d/oracle-free-23c configure
-
Impostare le variabili di ambiente su
bash_profile
con le impostazioni riportate di seguito.#Oracle Database environment variables export ORACLE_SID=FREE export ORACLE_HOME=/opt/oracle/product/23c/dbhomeFree export ORAENV_ASK=NO export PATH=$ORACLE_HOME/bin:$PATH
-
Eseguire il comando seguente affinché il database venga avviato automaticamente all'avvio dell'istanza.
systemctl enable oracle-free-23c
-
Controllare se il firewall Linux è abilitato. Per disabilitarlo, utilizzare i comandi seguenti.
systemctl status firewalld systemctl stop firewalld systemctl disable firewalld
Task 2: abilitare lo stato del firewall SQL nel database di destinazione tramite Oracle Data Safe
-
Nell'indicatore di percorso nella parte superiore della pagina fare clic su Database Oracle, Data Safe, Centro sicurezza e Firewall SQL.
-
Per impostazione predefinita, SQL Firewall verrà disabilitato in un nuovo database di destinazione 23ai. Fare clic sul database e abilitarlo.
Task 3: Creare utenti e oggetti di esempio
-
Connettersi al database
FREEPDB1
con Oracle SQL Developer da parte dell'utente sys come sysdba. -
Creare gli utenti e gli oggetti di esempio.
-- APP_OWNER who is the owner of the tables and views of the application -- APP_USER who needs to access to the application Create user app_owner identified by QAZxswedc123##; Grant connect, resource, unlimited tablespace to app_owner; Create user app_user identified by QAZxswedc123##; Grant connect, resource, select any table to app_user; -- Sample table created in appuser_test schema CREATE TABLE "APP_OWNER"."DEMO_EMPLOYEES" ( "USERID" NUMBER(4,0), "FIRSTNAME" VARCHAR2(25 BYTE), "LASTNAME" VARCHAR2(35 BYTE), "EMAIL" VARCHAR2(35 BYTE) ) ; Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (73,'Craig','Hunt','Craig.Hunt@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (74,'Fred','Stewart','Fred.Stewart@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (75,'Julie','Reed','Julie.Reed@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (76,'Ruby','James','Ruby.James@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (77,'Alice','Harper','Alice.Harper@oracledemo.com'); Commit; Create view APP_OWNER.DEMO_EMPLOYEES_VIEW as select * from APP_OWNER.DEMO_EMPLOYEES;
Task 4: creazione e avvio di una collection SQL
-
Nell'indicatore di percorso nella parte superiore della pagina fare clic su Data Safe, Security Center, SQL Firewall, Dettagli configurazione e fare clic su Crea e avvia raccolta SQL.
-
Immettere l'utente del database come
APP_USER
e abilitare il livello di raccolta SQL conUser issued SQL commands
, quindi fare clic su Crea e avvia raccolta SQL.La richiesta di lavoro CREATE SQL COLLECTION inizierà a raccogliere le istruzioni SQL.
Task 5: Esegui istruzione SQL autorizzata
-
Connettersi a
APP_USER@FREEPDB1
con Oracle SQL Developer. -
Eseguire l'istruzione SQL autorizzata.
select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
-
È possibile visualizzare gli approfondimenti sulla raccolta SQL dalla console di Oracle Data Safe. Nell'indicatore di percorso nella parte superiore della pagina fare clic su Data Safe, Security Center, SQL Firewall, Dettagli configurazione, Dettagli raccolta SQL e Insight raccolta SQL.
Task 6: Arrestare la raccolta SQL
-
Nell'indicatore di percorso nella parte superiore della pagina fare clic su Data Safe, Security Center, SQL Firewall, Dettagli configurazione, Dettagli raccolta SQL e STOP.
Task 7: Genera criterio firewall
-
Nell'indicatore di percorso nella parte superiore della pagina fare clic su Data Safe, Security Center, SQL Firewall, Dettagli configurazione, Dettagli raccolta SQL e Genera criterio firewall.
È possibile visualizzare le istruzioni SQL uniche consentite e il criterio è in stato
INACTIVE
.
Task 8: Distribuzione e applicazione del criterio
-
Nell'indicatore di percorso nella parte superiore della pagina fare clic su Data Safe, Security Center, SQL Firewall, dettagli della configurazione, dettagli della raccolta SQL, dettagli dei criteri firewall e Distribuisci e applica.
-
Selezionare i dettagli riportati di seguito e fare clic su Distribuisci e applica.
- Ambito di applicazione:
All
- Azione sulle violazioni:
Block and log violations
- Audit per le violazioni:
On
Lo stato del criterio è
ACTIVE
. - Ambito di applicazione:
Task 9: eseguire il test di Oracle SQL Firewall
-
Connettersi come
APP_USER@FREEPDB1
con Oracle SQL Developer.select * from APP_OWNER.DEMO_EMPLOYEES_VIEW; select * from APP_OWNER.DEMO_EMPLOYEES;
-
È possibile osservare la violazione di Oracle SQL Firewall per la seconda query che non si trova nella raccolta SQL.
Task 10: verificare il dashboard e i report sulle violazioni di Oracle SQL Firewall
-
È possibile visualizzare il dashboard Oracle SQL Firewall per la vista flotta delle violazioni e delle raccolte SQL di Oracle SQL Firewall. Nell'indicatore di percorso nella parte superiore della pagina fare clic su Data Safe, Security Center, SQL Firewall, Dettagli configurazione, Dettagli raccolta SQL e Genera criterio firewall.
-
Possiamo vedere il riepilogo delle violazioni. Nell'indicatore di percorso nella parte superiore della pagina fare clic su Data Safe, Security Center, SQL Firewall, Report sulle violazioni e Tutte le violazioni.
Collegamenti correlati
Riconoscimenti
-
Autore - Alex Kovuru
-
Contributore: Indira Balasundaram
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare Oracle Help Center.
Use Oracle SQL Firewall with Oracle Data Safe
F91608-02
May 2024