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.
Configurare BIND9 Domain Name System in Oracle Cloud Infrastructure
Introduzione
OraStage è un'azienda leader nel settore energetico, specializzata in soluzioni di energia rinnovabile e tecnologie energetiche innovative, l'azienda ha annunciato una decisione strategica per migrare i propri carichi di lavoro su Oracle Cloud Infrastructure (OCI) per migliorare prestazioni, scalabilità e sicurezza.
Tenendo conto delle esigenze e delle condizioni specifiche che OraStage ha delineato, l'azienda richiede una soluzione ibrida DNS (Domain Name System) nel cloud, e tramite ibrido qui significa utilizzare il proprio sistema DNS Berkeley Internet Name Domain versione 9 (BIND9) in aggiunta al servizio DNS OCI, dove l'architettura finale che si sta cercando di creare è mostrata nella seguente immagine.
OraStage Requisiti DNS:
-
L'azienda ha diversi domini interni e sottodomini, tutti devono essere risolti dal proprio DNS BIND9 in OCI, dove OraStage gestirà tutte le zone e i record correlati. Uno di questi domini è
orastage.com
che useremo in questo tutorial. Pertanto, qualsiasi query aorastage.com
deve essere inoltrata al proprio BIND9. -
In alcuni casi devono ancora risolvere i domini nativi OCI (
oraclevcn.com
,oraclecloud.com
e così via) e questa operazione verrà eseguita utilizzando i componenti DNS privati OCI: viste private, endpoint e regole di inoltro e endpoint di ascolto. -
Tutte le query devono essere ispezionate da un'istanza del firewall pfSense.
-
Per evitare un singolo punto di errore, OraStage prevede di utilizzare un altro server DNS e sfruttare il load balancer OCI per distribuire le query tra il DNS primario e quello secondario.
Questa serie di esercitazioni ti guiderà passo dopo passo per raggiungere i requisiti descritti sopra, costruendo l'intera soluzione da zero. È possibile accedere facilmente a ciascun tutorial dall'elenco seguente:
-
Esercitazione 1: Configura BIND9 DNS in OCI. Scopri come installare e configurare BIND9 su un'istanza di computazione, rendendolo il server DNS locale per due ambienti di test in OCI. Questi ambienti saranno costituiti da server "Frontend" e "Backend", ciascuno ospitato in una rete spoke separata. Il server BIND9 gestirà tutte le query DNS dirette a
orastage.com
. -
Esercitazione 2: Implementa High Availability su BIND9 scenario DNS in OCI. Questa esercitazione si concentra sull'aggiunta di un server BIND9 secondario e sulla configurazione di un load balancer di rete (NLB) per distribuire il traffico DNS tra entrambi i server. Le query DNS su
orastage.com
verranno indirizzate all'IP NLB, che bilancierà il carico tra i server BIND9 primari e secondari. Se un server non è più disponibile, la risoluzione DNS continuerà senza interruzione del servizio. -
Esercitazione 3: Utilizza DNS OCI per risolvere i domini nativi. Concentrandosi solo su uno specifico caso d'uso, in cui utilizziamo componenti DNS nativi in OCI, nel caso in cui sia necessario risolvere domini nativi come
oraclevcn.com
eoraclecloud.com
. BIND9 DNS non viene utilizzato in questa esercitazione. -
Esercitazione 4: aggiunta della sicurezza all'architettura DNS mediante il firewall pfSense. Concentrarsi sull'installazione di un firewall pfSense nella VCN hub in OCI ed eseguire la configurazione di rete necessaria per instradare tutto il traffico East-West, incluse le query DNS (eseguite nelle esercitazioni precedenti) attraverso il firewall da ispezionare.
Panoramica di BIND9
BIND9 (Berkeley Internet Name Domain versione 9) è uno dei pacchetti software server DNS (Domain Name System) più utilizzati e maturi al mondo. È sviluppato e mantenuto dall'Internet Systems Consortium (ISC). BIND9 funge da spina dorsale per gran parte dell'infrastruttura DNS di Internet, fornendo servizi DNS robusti e affidabili per distribuzioni sia su piccola che su larga scala.
La flessibilità, la robustezza e l'ampio set di funzionalità di BIND9 lo rendono adatto a una vasta gamma di applicazioni DNS, dalle piccole reti interne ai più grandi servizi DNS pubblici su Internet.
Caratteristiche principali di BIND9
-
Supporto del protocollo DNS: supporta tutte le principali funzioni e protocolli DNS, inclusi IPv4 e IPv6, DNSSEC (DNS Security Extensions) e TSIG (Transaction SIGnature).
-
DNSSEC (DNS Security Extensions): offre funzioni di sicurezza avanzate per proteggere l'integrità e l'autenticità dei dati DNS, prevenendo attacchi quali avvelenamento della cache e spoofing.
-
Scalabilità e prestazioni: adatto a distribuzioni DNS di piccole e grandi dimensioni, con funzionalità per gestire carichi di query elevati e zone di grandi dimensioni in modo efficiente.
-
Flessibilità e personalizzazione:
- Altamente configurabile con ampie opzioni per ottimizzare il comportamento DNS, la gestione delle zone e l'elaborazione delle query.
- Supporta vari tipi di zone, tra cui le zone master (primaria), slave (secondaria) e stub.
-
DNS dinamico: supporta il DDNS (Dynamic DNS), che consente aggiornamenti in tempo reale ai record DNS senza riavviare il server.
-
Controllo accesso e sicurezza:
- Implementa le liste di controllo dell'accesso (ACL, Access Control List) per limitare l'accesso ai servizi DNS e gestire gli utenti che possono eseguire query o aggiornare le zone.
- Supporta le viste per fornire risposte diverse alle query DNS in base all'origine della query.
-
Registrazione e monitoraggio:
- Ampie funzionalità di registrazione per tenere traccia di query, aggiornamenti e prestazioni del server.
- Integrazione con strumenti di monitoraggio per garantire alta disponibilità e risoluzione rapida dei problemi.
-
Inserimento nella cache: fornisce efficaci meccanismi di inserimento nella cache per migliorare le prestazioni e ridurre il carico sui server DNS autorevoli inserendo nella cache le risposte DNS.
-
Trasferimenti aree: supporta i trasferimenti di zona sicuri tra i server DNS utilizzando AXFR (trasferimento di zona completo) e IXFR (trasferimento di zona incrementale).
Casi d'uso comuni di BIND9
-
Server DNS autorevole: ospita i record DNS per i domini, fornendo risposte autorevoli alle query DNS.
-
Server DNS ricorsivo: risolve le query DNS per i client eseguendo query ricorsive su altri server DNS.
-
Inoltro del server DNS: inoltra le query DNS ad altri server DNS, spesso utilizzati insieme all'inserimento nella cache.
-
Server DNS secondario (Slave): gestisce le copie dei dati di zona da un server primario, fornendo ridondanza e bilanciamento del carico.
Installazione e configurazione di BIND9
-
Installazione: è possibile installare BIND9 su vari sistemi operativi, tra cui Linux, UNIX e Windows. È disponibile tramite package manager sulla maggior parte delle distribuzioni Linux o può essere compilato da una fonte.
-
Configurazione: il file di configurazione principale è
named.conf
, in cui gli amministratori definiscono le zone, i controlli dell'accesso, le opzioni di log e altre impostazioni. I file di zona contengono i record DNS effettivi per ogni dominio.
Usa BIND9 su OCI
Esistono diversi motivi per cui alcuni clienti potrebbero scegliere di utilizzare e gestire i propri DNS (ad esempio BIND9) invece di utilizzare i servizi DNS gestiti da Oracle Cloud Infrastructure (OCI):
-
Personalizzazione e flessibilità:
-
Configurazioni avanzate: le soluzioni DNS personalizzate come BIND9 offrono un'ampia configurabilità, consentendo ai clienti di personalizzare le impostazioni DNS per soddisfare requisiti specifici che potrebbero non essere supportati dai servizi gestiti.
-
Funzioni specializzate: alcune organizzazioni hanno bisogno di funzioni avanzate come la registrazione di query specifiche, il controllo dettagliato dell'accesso o i record DNS personalizzati che i servizi gestiti potrebbero non fornire.
-
-
Considerazioni sui costi:
-
Gestione dei costi: il DNS autogestito può essere più conveniente, soprattutto per le organizzazioni con un traffico DNS significativo, in quanto può evitare costi variabili associati ai servizi gestiti.
-
Spese prevedibili: il funzionamento dei propri server DNS può comportare costi più prevedibili, in quanto devono solo gestire i costi dell'infrastruttura anziché pagare per l'uso del DNS gestito.
-
-
Controllo e sicurezza:
-
Controllo completo: le organizzazioni potrebbero preferire il controllo completo sulla propria infrastruttura DNS, inclusa la possibilità di implementare criteri di sicurezza personalizzati, log dettagliati e controlli dell'accesso con filtro.
-
Privacy dei dati: per ambienti altamente sensibili o regolamentati, mantenere il traffico DNS interno alla propria rete può essere un requisito di sicurezza per garantire la privacy dei dati e la conformità alle normative.
-
-
Prestazioni e affidabilità:
-
Ottimizzazione delle prestazioni: il DNS autogestito consente alle organizzazioni di ottimizzare le prestazioni configurando l'inserimento nella cache, il bilanciamento del carico e le risposte DNS specifiche della geolocalizzazione in base alle loro esigenze.
-
Affidabilità: gestendo i propri server DNS, le organizzazioni possono implementare configurazioni ad alta disponibilità e misure di ridondanza in linea con i propri requisiti di affidabilità specifici.
-
-
Integrazione con l'infrastruttura esistente:
-
Sistemi legacy: le organizzazioni con sistemi legacy potrebbero disporre di un'infrastruttura DNS esistente profondamente integrata con altri sistemi e processi, semplificando la gestione del proprio DNS.
-
Integrazioni personalizzate: il DNS autogestito consente una perfetta integrazione con altre applicazioni personalizzate o di terze parti che richiedono configurazioni o interazioni DNS specifiche.
-
-
Requisiti normativi e di conformità:
- Richieste di conformità: alcuni settori hanno severi requisiti normativi che richiedono il controllo su tutti gli aspetti della loro infrastruttura IT, incluso il DNS, per rispettare gli standard legali e di conformità.
-
Apprendimento ed Expertise:
- Sviluppo delle competenze: alcune organizzazioni preferiscono mantenere competenze e conoscenze interne sulla gestione DNS, che possono essere preziose per la risoluzione dei problemi e l'ottimizzazione della loro infrastruttura IT complessiva.
-
Come evitare il blocco dei fornitori:
- Evitare il lock-in: gestendo il proprio DNS, le organizzazioni possono evitare di essere vincolate all'ecosistema di un fornitore specifico, offrendo loro maggiore flessibilità per cambiare provider o migrare carichi di lavoro senza una riconfigurazione significativa.
Sebbene i servizi DNS gestiti da OCI offrano facilità d'uso, scalabilità e riduzione del sovraccarico di gestione, questi fattori evidenziano perché alcune organizzazioni potrebbero scegliere di gestire la propria infrastruttura DNS.
Obiettivi per l'impostazione di BIND9 in OCI
-
Introduzione a BIND9 e OCI
- Scopri cos'è BIND9 e il suo ruolo nella gestione DNS.
- Ottieni una panoramica di Oracle Cloud Infrastructure (OCI) e dei relativi componenti chiave rilevanti per questa impostazione.
-
Prerequisiti e impostazione iniziale
- Identificare e raccogliere i prerequisiti necessari per l'impostazione.
- Impostare un'istanza OCI (Virtual Machine) per l'hosting del server BIND9.
-
Configurazione dell'ambiente OCI
- Configura le impostazioni di rete di base in OCI, ovvero con regole e gateway di instradamento, per stabilire una comunicazione appropriata tra tutti i server e i client correlati e le liste di sicurezza per consentire il traffico DNS.
-
Installazione di BIND9 nell'istanza OCI
- Accedi all'istanza OCI tramite SSH.
- Installare i pacchetti e le dipendenze necessari per BIND9.
-
Configurazione di BIND9
- Configurare i file di configurazione BIND9 principali (
named.conf
). - Impostare i file di zona per inoltrare le ricerche DNS.
- Configurare i file di configurazione BIND9 principali (
-
Avvio e gestione del servizio BIND9
- Avviare il servizio BIND9 e configurarlo per l'avvio al boot.
- Verificare che il servizio BIND9 sia in esecuzione correttamente.
-
Test del server DNS
- Utilizza gli strumenti della riga di comando (ad esempio, dig, host) per testare la risoluzione DNS.
- Assicurarsi che le ricerche future siano configurate e operative correttamente.
-
Protezione del server BIND9
- Implementare le procedure ottimali per la protezione del server BIND9, inclusi i controlli dell'accesso.
-
Conclusione e risorse aggiuntive
- Riassumere ciò che viene fatto.
- Fornire risorse e riferimenti aggiuntivi per ulteriore apprendimento.
Obiettivi
-
Alla fine di questa esercitazione, avrai un server DNS BIND9 funzionale in esecuzione su Oracle Cloud Infrastructure (OCI). Comprenderai le basi del DNS e il funzionamento di BIND9, consentendoti di configurare, gestire e proteggere un server BIND9 in un ambiente cloud. Inoltre, avrai le conoscenze necessarie per risolvere i problemi e gestire l'impostazione DNS BIND9 in OCI. Questo tutorial ti aiuterà anche ad aumentare le tue competenze nell'operare vari componenti OCI all'interno dei servizi di networking e computazione.
-
L'obiettivo principale di questa esercitazione è consentire a FE-VM (
fe.orastage.com
) di eseguire una query su BE-VM (be.orastage.com
) e viceversa, con Primary-DNS (primary-dns.orastage.com
) che funge da server DNS affidabile.
Architettura finale
Prerequisiti
-
Accesso a una tenancy OCI e autorizzazioni per gestire la rete e i servizi di computazione necessari.
-
Comprensione di base dell'instradamento e della sicurezza della rete OCI e relative funzionalità: rete cloud virtuale (VCN), tabella di instradamento, gateway di instradamento dinamico (DRG), lista di sicurezza e bastion.
-
Conoscenza di base di Ubuntu Linux e DNS in generale.
-
Sono necessarie tre reti cloud virtuali (VCN, Virtual Cloud Network) con una subnet privata in ciascuna.
- DNS-VCN: ospiterà il server DNS primario. Oltre a un DNS secondario e a un load balancer di rete.
- VCN frontend: ospiterà uno dei client. Oltre a un inoltro DNS OCI.
- VCN backend: ospiterà l'altro client. Oltre a un inoltro DNS OCI.
Task 1: Impostazione dei componenti della rete di instradamento e sicurezza
Task 1.1: Crea VCN
-
Assicurarsi di disporre delle seguenti VCN già create.
- DNS-VCN (
10.0.0.0/16
) contenente la subnet DNS-Private (10.0.0.0/24
). - VCN frontend (
10.1.0.0/16
) contenente FE-Private-Subnet (10.1.0.0/24
). - VCN backend (
10.2.0.0/16
) contenente BE-Private-Subnet (10.2.0.0/24
).
- DNS-VCN (
-
Clicca sul menu hamburger (≡) dall'angolo in alto a sinistra.
- Fare clic su Networking.
- Fare clic su Reti cloud virtuali.
-
Possiamo vedere le VCN in atto, ogni VCN ha una sola subnet privata e la tabella di instradamento e la lista di sicurezza predefinite collegate ad essa.
Task 1.2: Creare un gateway di instradamento dinamico (DRG)
DRG è un router virtuale che fornisce un percorso per il traffico privato da una rete VCN a un'altra, tra una VCN e una rete on premise o anche una VCN con altre reti di ambienti cloud. Pertanto, si tratta di un componente potente e critico per ogni ambiente di rete OCI. In questo tutorial, lo useremo per stabilire la connettività tra più VCN nella stessa area.
-
Clicca sul menu hamburger (≡) dall'angolo in alto a sinistra.
- Fare clic su Networking.
- Fare clic su Gateway di instradamento dinamico.
-
Fare clic su Crea gateway di instradamento dinamico.
- Immettere un nome per il DRG.
- Fare clic su Crea gateway di instradamento dinamico.
-
Creazione del DRG riuscita.
Task 1.3: collegare VCN al DRG
-
Nella pagina dei dettagli del DRG creare collegamenti di rete cloud virtuale. Per creare, fare clic su Crea collegamento a rete cloud virtuale.
-
Collegamento DNS-VCN:
-
Collegamento VCN frontend:
-
Collegamento VCN backend:
-
-
Collegamento di tutti i VCN riuscito. Per impostazione predefinita, questi collegamenti utilizzeranno la tabella di instradamento DRG generata automaticamente che consente a ogni collegamento di apprendere in modo dinamico gli instradamenti ad altre VCN.
-
Tutti i VCN devono essere in grado di connettersi tra loro. Quindi, dobbiamo facilitare la comunicazione tra loro utilizzando alcune regole di rotta e di sicurezza. Nel Task 1.4, nel Task 1.5 e nel Task 1.6:
- Consentire l'accesso SSH per eseguire il login alle istanze.
- Consenti il traffico DNS dove è necessario.
- Il traffico ping deve essere consentito dove è necessario.
- Fornire l'accesso a Internet in uscita dove necessario.
- Assicurati che ogni istanza di computazione sia in grado di raggiungere l'altra tramite il DRG.
Task 1.4: Configurare l'instradamento e la sicurezza per la rete DNS-VCN
-
Questa operazione deve essere eseguita a livello di subnet. Passare alla pagina VCN e fare clic su DNS-VCN.
-
Fare clic sulla subnet privata.
-
Fare clic su Tabella di instradamento, che è una tabella di instradamento assegnata.
-
Assicurarsi di aggiungere le regole riportate di seguito.
0.0.0.0/0
- Gateway NAT: per avere accesso unidirezionale a Internet, installare pacchetti/patch, se necessario. In questa esercitazione è necessario disporre di questo accesso per installare il pacchetto BIND9 sul server DNS primario.10.1.0.0/16
: DRG: instrada il traffico destinato a VCN frontend nel gateway DRG.10.2.0.0/16
- DRG: instrada il traffico destinato alla VCN backend nel gateway DRG.
-
Se non viene creato un gateway NAT, eseguire la procedura per crearne uno prima di aggiungere la regola di instradamento nel passo precedente.
- Vai alla pagina dei dettagli della DNS-VCN e fai clic su Gateway NAT.
- Fare clic su Crea gateway NAT.
-
Immettere le informazioni riportate di seguito.
- Immettere un nome per un gateway NAT.
- Selezionare Indirizzo IP pubblico temporaneo.
- Fare clic su Crea gateway NAT.
Creazione del gateway NAT riuscita.
-
Man mano che abbiamo terminato la parte di instradamento per la subnet DNS-VCN, facciamo ora la sicurezza. Andare alla pagina Dettagli subnet e fare clic sulla lista di sicurezza assegnata.
-
Assicurarsi di consentire il traffico in entrata.
- Traffico SSH da qualsiasi luogo (porta 22).
- Traffico DNS da Frontend-VCN e VCN backend (TCP/porta 53 e UDP/porta 53).
-
Assicurarsi di consentire tutto il traffico in uscita.
Task 1.5: Configura instradamento e sicurezza per VCN frontend
-
Questa operazione deve essere eseguita a livello di subnet. Passare alla pagina VCN e fare clic su VCN frontend.
-
Fare clic sulla subnet privata.
-
Fare clic su Tabella di instradamento, che è una tabella di instradamento assegnata.
-
Assicurarsi di aggiungere le regole riportate di seguito.
0.0.0.0/0
- Gateway NAT: per avere un accesso unidirezionale a Internet, è necessario farlo qui affinché FE-VM** sia in grado di utilizzare il servizio Bastion OCI, anche l'uso del gateway di servizi possa eseguire il job.10.0.0.0/16
- DRG: instrada il traffico destinato alla DNS-VCN nel gateway DRG.10.2.0.0/16
- DRG: instrada il traffico destinato alla VCN backend nel gateway DRG.
-
Se non viene creato un gateway NAT, attenersi alla procedura descritta nel task 1.4 per crearne uno prima di aggiungere la regola di instradamento nel passo precedente.
-
Dopo aver terminato la parte di instradamento per la VCN frontend, facciamo ora la sicurezza. Andare alla pagina Dettagli subnet e fare clic sulla lista di sicurezza assegnata.
-
Assicurarsi di consentire il traffico in entrata.
- Traffico SSH da qualsiasi luogo (porta 22).
- Ping del traffico dalla VCN backend (ICMP, tipo 8), questa regola sarà necessaria durante la fase di test.
-
Assicurarsi di consentire tutto il traffico in uscita.
Task 1.6: Configurare l'instradamento e la sicurezza per la rete VCN backend
-
Questa operazione deve essere eseguita a livello di subnet. Passare alla pagina VCN e fare clic su VCN backend.
-
Fare clic sulla subnet privata.
-
Fare clic su Tabella di instradamento, che è una tabella di instradamento assegnata.
-
Assicurarsi di aggiungere le regole riportate di seguito.
0.0.0.0/0
- Gateway NAT: per avere un accesso unidirezionale a Internet, è necessario che sia disponibile qui affinché BE-VM sia in grado di utilizzare il servizio Bastion OCI, anche l'uso del gateway di servizi possa eseguire il job.10.0.0.0/16
- DRG: instrada il traffico destinato alla DNS-VCN nel gateway DRG.10.1.0.0/16
: DRG: instrada il traffico destinato a VCN frontend nel gateway DRG.
-
Se non viene creato un gateway NAT, attenersi alla procedura descritta nel task 1.4 per crearne uno prima di aggiungere la regola di instradamento nel passo precedente.
-
Man mano che abbiamo terminato la parte di instradamento per la VCN backend, facciamo ora la sicurezza. Andare alla pagina Dettagli subnet e fare clic sulla lista di sicurezza assegnata.
-
Assicurarsi di consentire il traffico in entrata.
- Traffico SSH da qualsiasi luogo (porta 22).
- Ping del traffico dalla VCN frontend (ICMP, tipo 8), questa regola sarà necessaria durante la fase di test.
-
Assicurarsi di consentire tutto il traffico in uscita.
-
I componenti di rete di base sono ora pronti (VCN, subnet, tabelle di instradamento, DRG ed elenchi di sicurezza). Ora, l'architettura dovrebbe apparire come mostrato nella seguente immagine.
Task 2: eseguire il provisioning di un'istanza di OCI Compute
Eseguire il provisioning di un'istanza di computazione in cui verrà configurato BIND9.
Task 2.1: Genera coppia di chiavi SSH
Questa operazione deve essere eseguita prima di creare l'istanza. Le chiavi SSH verranno utilizzate per eseguire l'autenticazione nelle istanze di computazione Linux. È possibile generare i tasti utilizzando il tool PuTTYgen in un computer Windows o l'utility ssh-keygen in qualunque sistema. In questa esercitazione verrà utilizzato ssh-keygen in OCI Cloud Shell.
-
Fare clic su Cloud Shell.
-
Eseguire il comando
ssh-keygen
per generare una coppia di chiavi. -
Passare alla directory
.ssh
predefinita utilizzando il comandocd .ssh
e copiare il contenuto del file di chiave pubblicaid_rsa.pub
. Verrà utilizzato nel task 2.2.
Task 2.2: Esegui provisioning dell'istanza di computazione DNS primaria
-
Clicca sul menu hamburger (≡) dall'angolo in alto a sinistra.
- Fare clic su Compute.
- Fare clic su Istanze.
-
Fare clic su Crea istanza.
-
Immettere un nome per l'istanza.
-
Selezionare Ubuntu 20.04 come sistema operativo dell'istanza.
-
In Rete primaria, immettere le informazioni riportate di seguito.
- Selezionare DNS-VCN.
- Selezionare una subnet privata.
-
Assegnare all'istanza un indirizzo IP privato
10.0.0.10
. -
Incollare la chiave pubblica generata nel task 2.1.
-
Scorrere la pagina fino in fine e fare clic su Mostra opzioni avanzate.
-
Fare clic su Agente Oracle Cloud.
- Selezionare il plugin Bastion, poiché in seguito verrà utilizzato il bastion per accedere all'istanza.
- Fare clic su Crea.
-
Creazione dell'istanza di computazione DNS primario riuscita.
-
L'aspetto dell'architettura deve essere quello illustrato nella seguente immagine.
Nei task successivi, verrà installato e configurato BIND9 nell'istanza DNS primario.
Task 3: installare e configurare BIND9
Task 3.1: accedere all'istanza di computazione DNS primaria utilizzando il bastion
-
Prima di tutto, dobbiamo stabilire l'accesso tramite SSH all'istanza di computazione per installare e configurare BIND9. Tuttavia, poiché abbiamo creato l'istanza in una subnet privata, non possiamo accedervi direttamente da qualsiasi luogo in quanto non dispone di un IP pubblico e per questo motivo utilizzeremo un altro servizio OCI.
OCI Bastion è un servizio gestito che funge da intermediario, consentendo l'accesso sicuro alle risorse all'interno di una rete privata. È particolarmente utile per l'uso amministrativo che richiede l'accesso a risorse non esposte alla rete Internet pubblica. È possibile considerarla come Jump Server as a service.
- Fare clic su Identità e sicurezza.
- Fare clic su Bastion.
-
Fare clic su Crea bastion.
-
Immettere le informazioni riportate di seguito.
- Immettere un nome di divisione.
- Selezionare la VCN (DNS-VCN) e la relativa subnet.
- La lista di inclusione dei blocchi CIDR è l'intervallo consentito di IP da cui dovremmo connetterci al bastion. Qui abbiamo utilizzato
0.0.0.0/0
per questa implementazione, possiamo essere più specifici se vogliamo scegliendo l'indirizzo IP pubblico da cui ci stiamo connettendo. - Fare clic su Crea bastion.
-
Bastion creato. Dobbiamo creare una sessione che ci consenta di connetterci a una risorsa di destinazione (DNS primario) per un periodo di tempo specifico (il valore predefinito è di 3 ore).
-
Immettere le informazioni riportate di seguito.
- Tipo di sessione: selezionare Sessione SSH gestita.
- Nome sessione: immettere un nome per la sessione.
- Nome utente: immettere il nome utente. Per l'istanza Ubuntu Linux, il nome utente predefinito è ubuntu.
- Istanza di computazione: selezionare l'istanza DNS primario creata nel task 2.2.
- Incollare la stessa chiave pubblica generata nel task 2.1.
- Fare clic su Crea sessione.
-
Dopo aver creato la sessione, fare clic sui tre punti e sul comando Copia SSH.
Il comando dovrebbe essere simile al seguente:
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-milan-1.amaaaaaaldij5aiaa6buxxxxxxxxxxxxxxxxxxrlnywmo3n2pty5wpf7fq@host.bastion.eu-milan-1.oci.oraclecloud.com" -p 22 ubuntu@10.0.0.10
-
Aprire OCI Cloud Shell.
- Passare alla directory
.ssh
utilizzando il comandocd .ssh
. - Incollare il comando SSH. Assicurarsi di sostituire
<privateKey>
con il nome file della chiave privataid_rsa
.
- Passare alla directory
-
Login riuscito.
Task 3.2: installare BIND9
Dopo aver effettuato l'accesso all'istanza, verrà installato BIND9 e si verificherà che sia attivo e in esecuzione.
-
Eseguire i comandi seguenti.
sudo apt update sudo apt install bind9 bind9utils bind9-doc bind9-host
-
Eseguire il comando
sudo systemctl status named
per controllare lo stato del servizio BIND9. Attivo (in esecuzione). -
Eseguire il comando
sudo systemctl enable named
per abilitare il servizio in modo che venga avviato automaticamente dopo il reboot.
Task 3.3: modificare il nome dominio completamente qualificato (FQDN) dell'istanza
-
Per modificare il nome FQDN dell'istanza, accedere al file hosts con il comando
sudo vi /etc/hosts
e aggiungere la riga seguente.10.0.0.10 primary-dns.orastage.com primary-dns
-
Per verificare la modifica, eseguire il comando
hostname -f
per visualizzare il nuovo nome FQDN.
Task 3.4: configurare il file named.conf.options
-
Aggiungere la configurazione.
-
Aggiungere le righe seguenti alla fine del file
/etc/bind/named.conf.options
e salvare il file.recursion yes; notify yes; allow-query { any; }; allow-query-cache { any; }; allow-recursion { any; }; forwarders { 8.8.8.8; }; auth-nxdomain no; # conform to RFC1035 listen-on { localhost; any; }; allow-transfer { any; };
-
Riavviare il servizio BIND9.
-
Controllare lo stato del servizio.
-
Task 3. 5: utilizzare netstat
per visualizzare lo stato delle porte TCP/UDP
net-tools è un pacchetto di utility della riga di comando che fornisce una raccolta di strumenti di rete essenziali per il sistema operativo Linux.
-
Eseguire il comando
sudo apt install net-tools
per installare gli strumenti di rete. Ciò è necessario per poter utilizzare il comandonetstat
. -
Eseguire il comando
sudo netstat -antu
per controllare le porte/i protocolli di ascolto dell'istanza. Come si può vedere nella seguente immagine, per l'IP10.0.0.10
, TCP/port 53 e UDP/port 53 devono essere aperti.
Task 3.6: configurare il file named.conf.local
-
Aggiungere le seguenti righe alla fine del file
/etc/bind/named.conf.local
.zone "orastage.com" { type master; allow-transfer { any; }; file "/var/lib/bind/db.orastage.com"; };
Task 3.7: configurare il file db.orastage.com
-
Il file
db.orastage.com
non esiste ancora. Per creare, eseguire il comandosudo vi /var/lib/bind/db.orastage.com
e aggiungere il contenuto seguente al file.$TTL 1D @ IN SOA primary-dns.orastage.com. admin.orastage.com. ( 329 ; serial 604800 ; refresh (1 week) 86400 ; retry (1 day) 2419200 ; expire (4 weeks) 604800 ; minimum (1 week) ) IN NS primary-dns.orastage.com. primary-dns IN A 10.0.0.10 fe IN A 10.1.0.5 be IN A 10.2.0.5
Task 3.8: configurare il file 50-cloud-init.yaml
-
Accedere al file
/etc/netplan/50-cloud-init.yaml
e aggiungere le righe seguenti.nameservers: addresses: [10.0.0.10] search: [orastage.com]
-
Eseguire il comando
sudo netplan apply
per rendere effettive le modifiche.
Task 3.9: Disabilitare il firewall iptables
-
Disabiliteremo temporaneamente iptables solo per questo tutorial per evitare qualsiasi tipo di problema di connettività durante la fase di test.
-
Eseguire il comando
sudo su
per passare all'utente root. -
Per salvare un backup delle regole firewall esistenti, eseguire il comando
iptables-save > /root/firewall_rules.backup
. -
Eseguire il comando seguente per eliminare tutte le regole e consentire tutto il traffico attraverso il firewall.
iptables -F iptables -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
-
Al termine del task 6, eseguire il comando
iptables-restore < /root/firewall_rules.backup
per ripristinare le regole del firewall. -
Dopo aver cancellato le regole, dovremmo assicurarci che questa modifica sia persistente dopo il riavvio. Pertanto, eseguire il comando
apt install iptables-persistent
per installare il pacchetto. -
Eseguire il comando
iptables-save > /etc/iptables/rules.v4
. -
Per visualizzare le regole iptables, eseguire il comando
iptables -L
, che deve essere vuoto.
-
Task 3.10: Riavvia BIND9
-
Eseguire il comando seguente per riavviare il servizio.
sudo systemctl restart named
Task 3.11: Test
-
Eseguire più test in cui viene eseguita una query sui nomi di dominio aggiunti al file
db.orastage.com
e verificare se la query risponde localmente.-
Dominio
orastage.com
:host -a orastage.com
. -
Dominio
Primary-DNS
:host -a primary-dns.orastage.com
. -
Dominio
FE-VM
:host -a fe.orastage.com
. -
Dominio
BE-VM
:host -a be.orastage.com
.
-
Task 4: configurare gli endpoint e le regole di inoltro OCI
Ogni VCN OCI dispone di un resolver predefinito che può essere utilizzato per risolvere i nomi host nella stessa VCN, nelle diverse VCN, nelle reti on premise o anche nei nomi host pubblicati pubblicamente su Internet. In questo task, nel resolver verranno utilizzati due componenti per soddisfare i requisiti di inoltro delle query all'istanza BIND9 DNS primario, che sono:
- Endpoint di inoltro: consente al resolver DNS di eseguire una query su un DNS remoto come definito nelle regole di inoltro.
- Regola di inoltro: consente di controllare la modalità di gestione delle query DNS quando le viste private del risolutore non rispondono alla query. A quale server DNS remoto verranno inoltrate le query a
orastage.com
e in quale endpoint di inoltro?
Task 4.1: Configurare l'endpoint e la regola di inoltro per la VCN frontend
Creare un endpoint e una regola di inoltro nella VCN frontend in modo da puntare alle query orastage.com
da FE-VM all'istanza DNS primario.
-
Passare alla VCN frontend e fare clic su Risolutore DNS.
-
Fare clic su Crea endpoint.
-
Immettere le informazioni riportate di seguito.
- Nome: immettere un nome per l'endpoint.
- Subnet: selezionare la subnet privata della VCN.
- Tipo di endpoint: selezionare Inoltro.
- Indirizzo IP di inoltro: immettere
10.1.0.6
. - Fare clic su Crea endpoint.
-
Creazione dell'endpoint di inoltro (FWD) riuscita.
-
Fare clic su Regole e su Gestisci regole.
-
Immettere le informazioni riportate di seguito.
- Condizione regola: selezionare Domini.
- Domini: immettere il dominio
orastage.com
. - Endpoint di origine: selezionare l'endpoint di inoltro.
- Indirizzo IP di destinazione: immettere l'IP dell'istanza BIND9
10.0.0.10
.
-
Creazione della regola di inoltro riuscita.
Task 4.2: Configurare l'endpoint e la regola di inoltro per la VCN backend
Creare un endpoint e una regola di inoltro nella VCN backend in modo da puntare le query orastage.com
da BE-VM all'istanza DNS primario.
- Passare alla VCN backend e fare clic su Risolutore DNS.
-
Fare clic su Crea endpoint.
-
Immettere le informazioni riportate di seguito.
- Nome: immettere un nome per l'endpoint.
- Subnet: selezionare la subnet privata della VCN.
- Tipo di endpoint: selezionare Inoltro.
- Indirizzo IP di inoltro: immettere
10.2.0.6
. - Fare clic su Crea endpoint.
-
Creazione dell'endpoint di inoltro (FWD) riuscita.
-
Fare clic su Regole e su Gestisci regole.
-
Immettere le informazioni riportate di seguito.
- Condizione regola: selezionare Domini.
- Domini: immettere il dominio
orastage.com
. - Endpoint di origine: selezionare l'endpoint di inoltro.
- Indirizzo IP di destinazione: immettere l'IP dell'istanza BIND9
10.0.0.10
.
-
Creazione della regola di inoltro riuscita.
-
L'aspetto dell'architettura deve essere quello illustrato nella seguente immagine.
Task 5: eseguire il provisioning delle istanze client per eseguire query DNS
Task 5.1: creare l'istanza di computazione FE-VM
-
Clicca sul menu hamburger (≡) dall'angolo in alto a sinistra.
- Fare clic su Compute.
- Fare clic su Istanze.
-
Fare clic su Crea istanza.
-
Immettere un nome per l'istanza.
-
Selezionare Oracle Linux 8 come sistema operativo dell'istanza.
-
In Rete primaria, immettere le informazioni riportate di seguito.
- Selezionare VCN frontend.
- Selezionare la subnet privata.
-
Assegnare all'istanza un indirizzo IP privato
10.1.0.5
. -
Incollare la chiave pubblica generata nel task 2.1.
-
Scorrere la pagina fino in fine e fare clic su Mostra opzioni avanzate.
-
Fare clic su Agente Oracle Cloud.
-
Selezionare il plugin Bastion, poiché verrà utilizzato il bastion per accedere all'istanza e fare clic su Crea.
-
Creazione dell'istanza di computazione FE-VM riuscita.
Task 5.2: creare l'istanza di computazione BE-VM
-
Fare clic su Istanza e Crea istanza.
-
Immettere un nome per l'istanza.
-
Selezionare Oracle Linux 8 come sistema operativo dell'istanza.
-
In Rete primaria, immettere le informazioni riportate di seguito.
- Selezionare VCN backend.
- Selezionare la subnet privata.
-
Assegnare all'istanza un indirizzo IP privato
10.2.0.5
. -
Incollare la chiave pubblica generata nel task 2.1.
-
Scorrere la pagina fino in fine e fare clic su Mostra opzioni avanzate.
-
Fare clic su Agente Oracle Cloud.
-
Selezionare il plugin Bastion, poiché verrà utilizzato il bastion per accedere all'istanza e fare clic su Crea.
-
Creazione dell'istanza di computazione VM-BE riuscita.
-
L'architettura è completata.
Nota: nei task successivi verrà eseguito il test di più scenari e verrà verificato che l'impostazione funzioni come previsto.
Task 6: Esegui test e convalida
Task 6.1: accedere all'istanza di computazione FE-VM utilizzando bastion e test
-
Il computer client FE-VM deve essere in grado di risolvere
be.orastage.com
.- Fare clic su Identità e sicurezza.
- Fare clic su Bastion.
-
Fare clic su Crea bastion.
-
Immettere le informazioni riportate di seguito.
- Nome bastion: immettere un nome per il bastion.
- Configura networking: selezionare la VCN (VCN frontend) e la relativa subnet.
- La lista di inclusione dei blocchi CIDR è l'intervallo consentito di IP da cui dobbiamo connetterci al bastion. Qui abbiamo utilizzato
0.0.0.0/0
per questa implementazione, possiamo essere più specifici se vogliamo scegliendo l'indirizzo IP pubblico da cui ci stiamo connettendo. - Fare clic su Crea bastion.
-
Bastion creato. È necessario creare una sessione per connettersi a una risorsa di destinazione (FE-VM) per un periodo di tempo specifico (l'impostazione predefinita è 3 ore).
-
Immettere le informazioni riportate di seguito.
- Tipo di sessione: selezionare Sessione SSH gestita.
- Nome sessione: immettere un nome.
- Nome utente: immettere il nome utente. Per l'istanza Oracle Linux, l'utente predefinito è
opc
. - Istanza di computazione: selezionare l'istanza FE-VM creata nel task 5.
- Incollare la stessa chiave pubblica generata nel task 2.1.
- Fare clic su Crea sessione.
-
Dopo aver creato la sessione, fare clic sui tre punti e sul comando Copia SSH.
Il comando dovrebbe essere simile al seguente:
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-milan-1.amaaaaaaldij5aiaskfyan4yj7yx3bmm57rckmvvawikppba5mxxzo2q7dka@host.bastion.eu-milan-1.oci.oraclecloud.com" -p 22 opc@10.1.0.5
- Aprire la cloud shell e passare alla directory
.ssh
utilizzando il comandocd .ssh
. - Incollare il comando SSH e assicurarsi di sostituire
<privateKey>
con il nome file della chiave privataid_rsa
. - Immettere sì e fare clic su Invio.
- Aprire la cloud shell e passare alla directory
-
Eseguire il test delle query
orastage.com
da FE-VM abe.orastage.com
. È possibile convalidare l'impostazione utilizzando metodi diversi.- Eseguire il comando
host
. - Eseguire il comando
ping
. - Eseguire il comando
dig
.
- Eseguire il comando
Come mostrato nel test precedente, è possibile recuperare l'indirizzo IP del dominio BE-VM e il ping sta funzionando con il nome host, questo significa che il test è riuscito.
Task 6.2: accedere all'istanza di computazione BE-VM utilizzando bastion e test
-
Il computer client BE-VM deve essere in grado di risolvere
fe.orastage.com
.- Fare clic su Identità e sicurezza.
- Fare clic su Bastion.
-
Fare clic su Crea bastion.
-
Immettere le informazioni riportate di seguito.
- Nome bastion: immettere un nome per il bastion.
- Configura networking: selezionare la VCN (VCN backend) e la relativa subnet.
- La lista di inclusione dei blocchi CIDR è l'intervallo consentito di IP da cui dobbiamo connetterci al bastion. Qui abbiamo utilizzato
0.0.0.0/0
per questa implementazione, possiamo essere più specifici se vogliamo scegliendo l'indirizzo IP pubblico da cui ci stiamo connettendo. - Fare clic su Crea bastion.
-
Bastion creato. È necessario creare una sessione per connettersi a una risorsa di destinazione (VM_BE) per un periodo di tempo specifico (l'impostazione predefinita è 3 ore).
-
Immettere le informazioni riportate di seguito.
- Tipo di sessione: selezionare Sessione SSH gestita.
- Nome sessione: immettere un nome.
- Nome utente: immettere il nome utente. Per l'istanza Oracle Linux l'utente predefinito è
opc
. - Istanza di computazione: selezionare l'istanza BE-VM creata in STEP 06.
- Incollare la stessa chiave pubblica generata nel task 2.1.
- Fare clic su Crea sessione.
-
Dopo aver creato la sessione, fare clic sui tre punti e sul comando Copia SSH.
Il comando dovrebbe essere simile al seguente:
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-milan-1.amaaaaaaldij5aia73xclnp6h6i2mjnpsuer2bnz4cblejfemnr6uk7pafla@host.bastion.eu-milan-1.oci.oraclecloud.com" -p 22 opc@10.2.0.5
- Aprire la cloud shell e passare alla directory
.ssh
utilizzando il comandocd .ssh
. - Incollare il comando SSH e assicurarsi di sostituire
<privateKey>
con il nome file della chiave privataid_rsa
. - Immettere sì e fare clic su Invio.
- Aprire la cloud shell e passare alla directory
-
Eseguire il test delle query
orastage.com
da BE-VM afe.orastage.com
. È possibile convalidare l'impostazione utilizzando metodi diversi.- Eseguire il comando
host
. - Eseguire il comando
ping
. - Eseguire il comando
dig
.
- Eseguire il comando
Come mostrato nel test precedente, è possibile recuperare l'indirizzo IP del dominio FE-VM e il ping sta funzionando utilizzando il nome host, il che significa che il test ha esito positivo.
Passi successivi
In questa esercitazione, abbiamo creato una piccola architettura DNS BIND9 con componenti di base; configurazione di server e client in Oracle Cloud Infrastructure. In questo segmento, hai ottenuto insight sull'instradamento e sulla sicurezza della rete OCI, gestendo diversi componenti come tabelle di instradamento, DRG, liste di sicurezza, bastion e altro ancora. Hai anche imparato a installare e configurare un DNS BIND9 funzionale in un ambiente OCI.
Nella prossima esercitazione: Esercitazione 2: Implementare l'alta disponibilità su BIND9 Domain Name System in Oracle Cloud Infrastructure, miglioreremo questa impostazione incorporando il livello di alta disponibilità nella nostra architettura, che è fondamentale per ridurre i tempi di inattività e migliorare la user experience.
Conferme
- Autore - Anas abdallah (esperto di cloud networking)
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 un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Configure BIND9 Domain Name System in Oracle Cloud Infrastructure
G13019-03
Copyright ©2025, Oracle and/or its affiliates.