Panoramica #
L' Elastic Load Balancer ( ELB ) di AWS distribuisce il traffico web su più istanze EC2 , Elastic Container Service ( ECS ) e indirizzi IP. L'ELB è inoltre in grado di bilanciare il traffico tra diverse zone di disponibilità per garantire un'elevata disponibilità. Tuttavia, l'utilizzo dell'ELB di AWS presenta alcune limitazioni , tra cui:
- Metodi di bilanciamento del carico limitati. Per impostazione predefinita, ELB usa solo il round robin algoritmo e ha capacità limitate di cambio di contenuto.
- Poiché ELB è progettato per gestire il traffico da Internet alle istanze in un Virtual Private Cloud(VPC), non è adatto per il bilanciamento del carico tra risorse locali.
In questo articolo discuteremo di come sostituire i servizi di bilanciamento del carico con un'alternativa migliore, RELIANOID ADC. Per avere un confronto dettagliato tra AWS ELB e RELIANOID, fare riferimento a questo articolo AWS e RELIANOID confronto.
Prerequisiti #
Assicurati di soddisfare questi requisiti prima di provare a trasferire le configurazioni da AWSELB a RELIANOIDè un ADC completo di tutte le funzionalità.
- A RELIANOID Il nodo ADC deve essere installato sul PC, bare metal, ambiente virtuale oppure deve essere attivo ZVNcloud conto. Richiedi una valutazione per la distribuzione in sede.
- È necessario avere accesso all'interfaccia grafica Web. Se non lo fai, segui questo veloce Guida all'installazione.
- È necessario essere un utente attivo di AWS ELB e avere familiarità con i concetti che discuteremo nella sezione seguente.
- Bisogna essere in grado di creare un server virtuale nel file RELIANOID bilanciatore del carico. Ecco una guida rapida: Configurazione del server virtuale di livello 4 e livello 7.
Note:
RELIANOID ha un modello in Mercato AWS. Lo schieramento di RELIANOID su AWS è semplice e dovrebbe avvenire con pochi clic.
Concetti di base #
Ascoltatore: Un listener controlla il traffico in entrata di livello 7 e lo inoltra al gruppo target necessario. Di solito, un ascoltatore sarà configurato per il controllo HTTP or HTTPS traffico sui porti 80 or 443 rispettivamente. I principali ascoltatori Layer 7 utilizzati da RELIANOID Gli ADC lo sono HTTP and HTTPS.
Target gruppo: Un gruppo target è un cluster di istanze EC2 che lavorano insieme per fornire un servizio. Tutte queste istanze all'interno di un gruppo target devono avere lo stesso codice dell'applicazione che elabora le richieste dei client. Un gruppo target è lo stesso di a Servizio quando si utilizza RELIANOID ADC.
Controlli sanitari: I controlli dello stato monitorano il funzionamento e la reattività di un servizio su ciascuna istanza EC2. Quando il servizio o un'istanza EC2 si interrompe, i controlli di integrità noteranno la mancata risposta e il sistema di bilanciamento del carico reindirizzerà il traffico alle istanze integre. RELIANOID utilizza una serie di plugin chiamati Farmguardian per monitorare lo stato di salute dei server back-end e dei loro servizi.
Tipi di bilanciamento del carico: AWS ELB fornisce tre tipi di sistemi di bilanciamento del carico. Questi includono Applicazione, Reti and Classici - Classic bilanciatori di carico. Il classico sistema di bilanciamento del carico sta diventando deprecato, lasciando solo il Reti and Applicazione bilanciatori di carico da utilizzare. RELIANOID I bilanciatori di carico ADC Layer 7 hanno un HTTP profile mentre i bilanciatori del carico di rete hanno un L4xNAT profilo.
Gruppo di sicurezza: Un gruppo di sicurezza è un insieme di regole firewall che monitorano e controllano il traffico in entrata e in uscita. RELIANOID L'ADC ha un file integrato IPDS modulo con criteri impostati per filtrare qualsiasi traffico non valido verso il bilanciamento del carico e bloccare anche tutti i tentativi di accesso non autorizzato. È possibile creare regole firewall accedendo al file WAF opzione all'interno di IPDS modulo.
ACM: Il servizio ACM consente a un amministratore di distribuire e gestire certificati SSL/TLS da utilizzare all'interno di risorse connesse interne su AWS. Per gestire i certificati SSL interni all'interno di RELIANOID bilanciatore del carico, accedervi tramite LSLB >> certificati SSL. Oppure puoi creare un certificato SSL autofirmato personalizzato tramite il Let's Encrypt programma incorporato nel file RELIANOID bilanciamento del carico.
Istanze o obiettivi EC2: Si tratta di server virtuali Linux downstream che ospitano il codice dell'applicazione che elabora le richieste ricevute dal web. Questi server virtuali sono chiamati backend quando si utilizza RELIANOID ADC.
Esempi di configurazioni: certificati SSL #
Per crittografare i dati trasmessi tra i client e il bilanciatore di carico, è necessario installare un certificato SSL per garantire la sicurezza della comunicazione tra gli host. Le informazioni sensibili, come le credenziali di accesso e i numeri di carta di credito, devono essere trasmesse tramite un protocollo di trasporto sicuro.
In questa sezione parleremo dell'installazione dei certificati SSL su RELIANOID ADC con riferimento ad AWS ACM.
Configurazione di un certificato SSL autofirmato per l'utilizzo su AWS #
Uno dovrebbe seguire questi passaggi per installare un certificato SSL sull'ELB.
- Per generare un file CSR per le tue istanze EC2, dovrai accedere alla console Linux di tale istanza.
- Dopo esserti connesso all'istanza EC2, vai alla directory: /etc/pki/tls/privato/
- Genera una nuova chiave privata, RSA a 2048 bit utilizzando il seguente comando: sudo openssl genrsa -out custom.key
- Genera un certificato fornendo la precedente chiave privata generata usando il comando: openssl req -new -x509 -nodes -sha1 -days 365 -extensions v3_ca -custom.key -out custom.crt
- Compila i dettagli necessari richiesti dal certificato SSL.
- Cantoni: Inserisci 2 codici paese ISO.
- Stato / Provincia: Inserisci la provincia in cui si trova la tua azienda.
- Città: Inserisci il nome della città in cui ti trovi.
- Nome comune: Inserisci un nome di dominio completo FQDN, ad esempio www.relianoid.com
- frase di accesso o password: Puoi ignorare la creazione di una password per questo esempio. Nel frattempo, il certificato generato sarà nel formato *.pem formato del file.
- Compilare entrambi i certificati in un bundle PKCS12 utilizzando il comando:openssl pkcs12 -inkey custom.key -in custom.crt -export -out custom.p12
- Supponendo che AWS CLI sia già installato, di solito è necessario caricare il certificato generato (custom.crt) e la chiave privata (custom.key) in AWS Certificate Manager utilizzando il comando: aws acm import-certificate — file certificato://custom.crt — file chiave privata://custom.key — regione us-east-2
- Questo certificato sarà ora disponibile nella procedura guidata di creazione sotto l'opzione "Scegli un certificato da ACM (consigliato)".
Configurazione di un certificato SSL autofirmato da utilizzare su RELIANOID ADC #
- Per generare un certificato SSL personalizzato per il tuo RELIANOID Istanza ADC, individuare la seguente directory utilizzando la riga di comando dell'appliance.
- Genera una chiave privata senza passphrase usando il comando:
- Genera una richiesta di firma del certificato (CSR) per la chiave privata utilizzando il comando:
- Compila i dettagli necessari.
- Nome e Cognome: Un nome descrittivo per identificare il CSR.
- Cantoni: Il codice ISO del paese in cui ti trovi.
- Nome comune: Un nome di dominio completo. (FQDN), ad esempio www.example.com
- Divisione: Dipartimento, e questo potrebbe essere salute, IT o sicurezza.
- Località: La città in cui ti trovi.
- Stato: Lo stato in cui si trova la tua organizzazione.
- Organizzazione: Il nome legale della tua organizzazione, ad es RELIANOID SL.
- Indirizzo email: Inserisci il tuo indirizzo email. Non è un must che dovrebbe essere uno per il nome di dominio.
- Genera a Certificato autofirmato utilizzando sia la chiave privata che il certificato CSR. Per questo esempio, il certificato autofirmato avrà una durata di 1 anno e il formato di output sarà in .PEM. Usa il seguente comando.
- Questo certificato sarà disponibile per l'uso all'interno del LSLB >> certificati SSL .
cd /usr/local/zevenet/config/certificates
openssl genrsa -out custom.key 2048
openssl req -new -key custom.key -out custom.csr
openssl x509 -in custom.csr -outform PEM -out custom.pem -req -signkey custom.key -days 365
Per saperne di più sui certificati SSL su RELIANOID ADC, fare riferimento a queste risorse:
Configurazioni di esempio: Web Application Firewall #
Come funzionalità di sicurezza, un WAF protegge un'applicazione web filtrando e bloccando il traffico dannoso. Un WAF viene in genere distribuito davanti a un bilanciatore di carico ed è progettato per proteggere le applicazioni web da vari attacchi dannosi come cross-site scripting (XSS) , SQL injection e altri attacchi, inclusi quelli presenti nella Top 10 di OWASP.
Ispezionando il traffico HTTP in entrata e analizzandolo rispetto a un insieme di regole o policy di sicurezza, il WAF bloccherà tutto il traffico ritenuto non sicuro. RELIANOID ADC offre funzionalità di sicurezza più avanzate come la blacklist IP, una policy RBL, protezione DoS, ecc.
In questa sezione, descriveremo come proteggersi da SQL Injection in AWS e simulare configurazioni simili con RELIANOID ADC.
Configurazioni AWS #
Per abilitare la protezione contro le iniezioni SQL , è necessario disporre di almeno una o due istanze EC2 posizionate dietro un bilanciatore di carico Elastic. Su queste istanze EC2 deve essere ospitata l'applicazione web che si desidera proteggere.
- All'interno della console Web di AWS, cerca WAF e scudoe fai clic sul collegamento visualizzato.
- Clicca sul ACL Web elemento del menu.
- Seleziona la regione da cui proverrà il tuo traffico, ad esempio Europa (Francoforte).
- Clicca su Crea ACL web pulsante.
- Sotto Aggiungi regole e gruppi di regole, Fare clic sul Aggiungi regole freccia a discesa.
- Seleziona Aggiungi gruppi di regole gestite. Troverai più gruppi di regole gestiti, inclusi Controllo dei robot, Elenco di reputazione IP di Amazon, Database SQL, ecc.
- Seleziona database SQL attivando il pulsante di commutazione Aggiungi all'ACL Web.
- Scorri verso il basso e fai clic su Aggiungi regola pulsante.
- Nelle Azione predefinita per le regole che non corrispondono, lascia l'opzione come Consentire.
- Clicca su Avanti pulsante.
- Nelle Imposta la priorità della regola utilizzare questa sezione per aggiungere priorità a una regola, quindi fare clic sul pulsante Avanti.
- Nelle Configura le metriche sezione, non c'è niente da cambiare, quindi fai clic sul pulsante, Avanti.
- Nelle Esamina e crea ACL web sezione, fare clic su Crea ACL web pulsante.
- Dopo aver creato correttamente un Web ACL, fare clic sull'ACL appena creato.
- Fare clic sulla scheda con Risorse AWS associate.
- Aggiungi il bilanciatore del carico dell'applicazione che desideri proteggere. Dopo aver aggiunto le risorse, la tua regola verrà impostata per bloccare qualsiasi iniezione nel database sql.
RELIANOID configurazioni #
Per abilitare la protezione contro le iniezioni SQL, è necessario prima creare un set di regole WAF.
- Vai su IPDS nel menu laterale e fai clic per espanderlo.
- Clicca sul WAF opzione per espanderlo.
- Clicca sul I set di regole opzione.
- Clicca sul Crea set di regole WAF pulsante.
- Assegna a Nome che identifica facilmente questo set di regole.
- Lasciare il Copia set di regole campo come –Nessun set di regole–.
- Clicca su APPLICA pulsante per salvare le modifiche.
- Nelle Impostazioni globali, attiva il Controlla il corpo della richiesta opzione.
- Cambia l'azione predefinita in Nega: taglia la richiesta e non eseguire le regole rimaste
- Clicca su APPLICA pulsante per salvare le modifiche.
Impostazione delle regole #
- Clicca sul Regole scheda per aggiungere nuove regole.
- Clicca sul Nuova regola pulsante.
- Seleziona il tipo di regola come Action.
- Seleziona il Fase as Corpo della richiesta ricevuto.
- Seleziona il Risoluzione as Nega: taglia la richiesta e non eseguire le regole rimaste.
- Aggiungi una descrizione alla regola per identificare facilmente di cosa si tratta
- Clicca su APPLICA pulsante per salvare le modifiche.
Aggiunta di condizioni #
- Fare clic sulla regola appena creata per aggiungere condizioni. Inizia facendo clic sul Crea condizione pulsante.
- Nelle Variabili campo, selezionare REQUEST_BODY e fare clic sul Aggiungi variabile pulsante.
- Nelle Trasformazione selezionare l'opzione, nessuna.
- Nelle Operatore sezione, selezionare detectSQLi
- Clicca su APPLICA pulsante per creare la nuova condizione.
Regole di abilitazione per una farm #
- Clicca sul Farms scheda per aggiungere questa regola a un server virtuale di destinazione (Farm) nel servizio di bilanciamento del carico.
- Nelle Impostazioni della fattoria, trascina e rilascia l'allevamento selezionato da Aziende agricole disponibili a Aziende abilitate.
- Nell'angolo in alto a destra, ci sono Azione. Fare clic sul pulsante di riproduzione verde per avviare la regola. In questo momento, la regola WAF bloccherà qualsiasi sql injection incorporata nel corpo della richiesta, principalmente attraverso la ricerca o i moduli di accesso.
Per ulteriori risorse sul WAF, fare riferimento a questi articoli:
Risorse addizionali #
Utilizzo del programma Let's encrypt per generare automaticamente un certificato SSL.
Bilanciamento del carico Datalink/Uplink Con RELIANOID ADC.
Bilanciamento del carico DNS con RELIANOID ADC.
Protezione dagli attacchi DDoS.
Monitoraggio di applicazioni, integrità e rete in RELIANOID ADC.



