Ultima versione: 1.0.1-2

|
In breve |
|
|
Catalogo |
Sistema |
|
Categoria |
Gateway |
|
Volumi dell'utente |
sì |
|
Num. minimo memoria |
192M |
|
OS |
Linux |
|
Vincoli |
no |
L'appliance di INSSLR2 è un gateway a 7 layer per le richieste HTTP sicure. Converte le richieste in richieste HTTP non codificate. È possibile utilizzare questa funzionalità per supportare una connessione HTTP protetta sul lato client.
Tuttavia, l'infrastruttura di elaborazione di backend non supporta o non può supportare SSL, incluso:
Se configurato, INSSLR2 supporta anche l'autenticazione di certificato di client. In caso di autenticazione mutua di SSL, sia il client che il server scambiano i loro certificati e i loro codici pubblici corrispondenti. Sia il client sia il server, prima di continuare, può contattare l'autorità di certificazione (CA, Certificate Authority) che ha emesso il certificato e confermare che il certificato è autentico.
Nella configurazione predefinita, INSSLR2 funge da gateway a 7 layer per le richieste di connessione HTTP protetta. Fornisce anche un punto di ingresso con firewall per il traffico di rete in un'applicazione. Può essere configurato con un indirizzo IP statico accessibile da Internet.
Quando configurato, è possibile utilizzare due appliance di INSSLR2 in modalità di failover per consentire un servizio ridondante. In questo caso, l'indirizzo IP di INSSLR2 viene eseguito soltanto su uno dei nodi e, in caso di guasto, viene trasferito automaticamente all'altra appliance di INSSLR2. Solo una delle appliance di INSSLR2 è attiva al momento. Durante l'esecuzione in modalità di failover, è possibile configurare INSSLR2 per l'esecuzione in diverse modalità:
Se il nodo primario non viene eseguito correttamente o viene interrotto, l'appliance di backup diventa attiva. Quando l'appliance primaria diventa nuovamente disponibile, riassume il controllo dell'indirizzo IP e diventa attiva. L'appliance primaria è quella con l'indirizzo IP più basso (confronto di stringa) nell'interfaccia fover.
Quando la prima appliance diventa nuovamente disponibile, non assume automaticamente il controllo dell'indirizzo IP.
Durante l'esecuzione in modalità ridondante, INSSLR2 offre un'interfaccia sul terminale CTL per:
INSSLR2 monitora costantemente lo stato dell'appliance di backend connessa al suo terminale di HTTP. I controlli dello stato condotti da INSSLR2 possono includere una semplice connessione TCP o una richiesta HTTP più complessa, se specificata sul limite di INSSLR2.
In caso di errore dell'appliance connessa, INSSLR2 segnala un errore al dashboard di griglia oppure, se è in modalità ridondante e configurato per farlo, esegue un failover all'appliance di backup di INSSLR2.
Per supportare le applicazioni che devono essere visualizzate in un indirizzo IP singolo per più di un servizio, configurare INSSLR2 per dirigere il traffico non HTTP direttamente su un terminale di output distinto. Per tali connessioni, l'appliance funge da firewall a 3 layer/router NAT.
Risorse
|
Risorsa |
Minimo |
Massimo |
Predefinito |
|
CPU |
0.05 |
4 |
0.05 |
|
Memoria |
192 MB |
2 G |
192M |
|
Larghezza di banda |
1 Mbps |
2 Gbps |
200 Mbps |
note
Terminali
|
Name |
Direzione |
Protocollo |
Description |
|
ctl |
in |
HTTP |
Riceve le notifiche che obbligano l'appliance a diventare primaria/backup. Questo terminale accetta le connessioni soltanto se fover_mode non è none. Una richiesta HTTP valida che rende l'appliance attiva o passiva è: /?action=<active|passive|kill|status> Se l'altro nodo non è attivo e non è possibile completare il failover, questa azione potrebbe non riuscire e nessun errore viene restituito. Spetta all'applicazione di chiamata controllare lo stato dell'appliance creando la richiesta seguente: /?action=status lo stato restituisce lo stato attivo o passivo corrente dell'appliance. viene eseguita una chiusura forzata dell'appliance. In questo modo l'altro nodo assume il controllo, se è in esecuzione. |
|
in |
in |
qualsiasi |
Accetta tutto il traffico in entrata Mediante la scheda Interfacce dell'editor di configurazione dell'applicazione, è possibile configurare l'interfaccia connessa al terminale. |
|
fover |
in |
raw |
Interfaccia di failover per la comunicazione reciproca tra due istanze INSSLR2. Mediante la scheda Interfacce dell'editor di configurazione dell'applicazione, è possibile configurare l'interfaccia connessa al terminale. |
|
HTTP |
out |
HTTP |
Le richieste HTTPS e/o HTTP ricevute sull'indirizzo IP esterno configurato sono reindirizzate all'http di output come richieste HTTP semplici sulla porta 80 HTTP standard. Oltre alle intestazioni HTTP fornite dal client, le richieste inoltrate contengono le seguenti intestazioni informative:
|
|
fs |
out |
nfs |
Consente un montaggio di nfs come posizione alternativa al volume del codice locale per l'archiviazione dei codici. Se il volume del codice locale e la connessione del terminale di fs sono forniti, l'appliance non viene avviata. Questo terminale può rimanere non connesso. |
|
aux |
out |
qualsiasi |
Output per altri protocolli, se configurato. Per ulteriori informazioni, fare riferimento alle proprietà l3_accept_*. |
|
nfy |
out |
HTTP |
Invia notifiche quando si verifica un failover. Consultare anche fover_nfy_prefix. Questo terminale può rimanere non connesso. |
|
mon |
out |
cce |
Invia le statistiche sull'utilizzo delle risorse e le prestazioni. |
Proprietà
|
Name |
Tipo |
Description |
|
dns1 |
Indirizzo IP |
Definisce il server DNS primario. Se l'host remoto è specificato dal relativo indirizzo IP, dns1 può rimanere vuoto. In caso contrario, è necessario specificare un valore per dns1. Predefinito: (vuoto) |
|
dns2 |
Indirizzo IP |
Definisce il server DNS secondario, che viene utilizzato se il server DNS primario non risponde. Predefinito: (vuoto) |
|
l7_accept |
enum |
Specifica il tipo di traffico HTTP da accettare per l'inoltro al terminale http. Valori validi: https, http, entrambi, nessuno. Se impostato su nessuno, tutto il traffico è reindirizzato soltanto alle proprietà di l3_accept_*. Predefinito: entrambe |
|
l3_accept_proto |
enum |
Specifica quali protocolli dovrebbero essere inoltrati al terminale di AUX. Valori validi: nessuno, tcp, udp, raw, tutti. Se impostata su raw, la proprietà l3_accept_port specifica il numero di protocollo. Se impostata su tutti, tutto il traffico in entrata sull'interfaccia esterna viene inoltrato al terminale aux. La proprietà l7_accept ha la precedenza su questa impostazione. Nota: se si imposta l7_accept su un valore diverso da nessuno, tutti gli http vengono inoltrati al terminale http e il traffico rimanente è indirizzato su aux, come specificato da questa proprietà. Predefinito: nessuno |
|
l3_accept_port |
Stringa |
Un elenco di protocolli separati da virgola o spazio che accettano e reindirizzano il protocollo specificato da l3_accept_proto al terminale aux. I protocolli nell'elenco possono essere specificati come numeri di porta o come nomi di protocollo standard, ad esempio ftp e smtp quando si specificano le porte TCP o UDP o gre e tcp, utilizzando i protocolli raw. È anche possibile specificare gli intervalli di porta come 1024:10000 o 0:1024. Se questo valore rimane vuoto, tutte le porte del protocollo specificato vengono inoltrate. Nota: se si imposta l3_accept_proto su raw, è necessario specificare tale proprietà che, in questo caso, indica il numero di protocollo. È possibile specificare più di un protocollo raw ma non è consentito alcun intervallo di protocolli, ad esempio 20:30. Predefinito: Tutto |
|
allowed_hosts |
Stringa |
Elenco di host e/o subnet che possono connettersi. Le voci multiple vanno separate usando spazi o virgole. Esempio di formato supportato: 192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0. Predefinito: 0.0.0.0/0 (tutto permesso) |
|
key_on_fs |
Stringa |
Indica se i codici sono memorizzati su un montaggio di nfs mediante il terminale di fs (on) o sul volume del codice locale (off). Valori validi: on e off Impostazione predefinita: OFF |
|
cert_file |
Stringa |
Nome di file, relativo alla radice del volume di dati, del certificato server che questa istanza di gateway deve presentare al client. Se si imposta l7_accept su https o entrambi, nella posizione specificata dalla proprietà deve essere presente un certificato valido sul volume di dati configurato. In caso contrario, non è possibile avviare INSSLR2. Per ulteriori informazioni, fare riferimento a Volumi. Predefinito: server.pem |
|
unsafe_ssl |
Stringa |
Abilita l'uso di crittografie ssl 'non sicure' per la compatibilità con i browser legacy. Il valore predefinito disabilitato disattiva le crittografie di SSLv2 oltre ad altre crittografie di SSLv3 e TLSv1 che non sono considerate sicure. Si raccomanda di lasciare questa proprietà su disabilitata se non so ha la necessità di supportare le sessioni di https per i browser legacy che funzionano soltanto con SSLv2. Quando impostato su abilitato, è possibile utilizzare tutte le crittografie di SSL disponibili sul sistema per le sessioni https. Ciò include SSLv2. Predefinito: disabilitato Questa proprietà veniva aggiunta nella versione 1.2.1. |
|
keepalive |
Numero intero |
Specifica il tempo di keep-alive massimo tra INSSLR2 e il client. Il tempo è specificato in secondi. Valore predefinito: 15 |
|
timeout |
Numero intero |
Specifica quanti secondi INSSLR2 attende per l'output dal server di backend. Se il server di backend non invia l'output per secondi di timeout, la connessione è chiusa. Valore predefinito: 300 |
|
max_request_size |
Numero intero |
Dimensione massima in MB della richiesta del client. Aumenta se l'applicazione deve gestire grandi carichi client. Valore predefinito: 10 |
|
adv_config |
Stringa |
Aggiungere configurazione raw da inserire in nginx conf nei blocchi di posizione per i listener http e https (qualunque sia abilitato). Ad esempio, per aggiungere intestazioni personalizzate, impostare adv_config a proxy_set_header myport $proxy_port;. Questo aggiunge un myport: 80 alla richiesta inviava al server di backend. adv_config può essere impostato su qualsiasi dichiarazione valida per un blocco di posizione. Per ulteriori informazioni, fare riferimento alla documentazione di nginx. È possibile aggiungere linee di configurazione multiple separate vicino;. Nota: se impostata, questa proprietà deve avere una sintassi di nginx valida, ovvero finire con ";" altrimenti l'appliance non verrà avviata. Predefinito: (vuoto) |
|
client_cert |
Stringa |
Abilita l'autenticazione di certificato client. Valori validi: on, ask e off Se impostato su on, l'autenticazione di certificato di client viene provocata e soltanto i client con certificati validi possono fare una richiesta valida a INSSLR2. Quando impostato su ask, i client devono presentare certificati, ma la connessione è stabilita anche se non è presente un certificato valido. Impostazione predefinita: OFF |
|
client_depth |
Numero intero |
La profondità di verifica da ottenere in un certificato di client a catena. Questa proprietà non ha effetto se client_cert non è impostato. Valori validi: da 1 a 9 Valore predefinito: 1 |
|
ca_list_client |
Stringa |
Un file che contiene una sequenza di certificati di CA nel formato PEM. I nomi dei certificati di CA elencati sono inviati al client sulla connessione. Questo informa il client del certificato client che dovrebbe inviare. Lo stesso elenco è usato per verificare il certificato client. Il nome di file è relativo alla radice del volume di codice montato o alla radice del montaggio di nfs creata mediante il terminale di fs e può contenere un percorso, ad esempio: path/to/keys/ca_list_client.pem. Predefinito: ca_list_client.pem. |
|
cert_revocation_list |
Stringa |
Un file contenente l'elenco di revoche di certificati (CRL) generato dall'Autorità di certificazione. Tale elenco identifica i certificati di client revocati dall'Autorità di certificazione. Viene cercato per ogni certificato di client presentato a INSSLR2 e, se il certificato deve essere revocato, INSSLR2 emette una risposta con errore di certificato SSL al client. Analogamente a ca_list_client, il nome di file è relativo alla radice del volume di codice montato o alla radice del montaggio di nfs creata mediante il terminale di fs e può contenere un percorso, ad esempio: path/to/keys/ca_list_client.pem. Predefinito: vuoto |
Proprietà del controllo di integrità
|
Name |
Tipo |
Description |
|
healthcheck_method |
Stringa |
Il metodo usato per l'healthcheck dei server Web di backend.
Predefinito: OFF |
|
healthcheck_url |
Stringa |
L'URL utilizzato per eseguire il controllo di integrità dei server Web di backend nei metodi di controllo di integrità http_get e http_head dei server Web. Può essere specificato come URL completo, ad esempio: http://host.name/file/to/check/for.php o come percorso relativo: /file/to/check/for.php. Se specificato come URL, INSSLR2 usa il protocollo HTTP/1.1 mentre esegue gli healthcheck usando il nome di host estratto da UR, in un host: intestazione. Questo permette l'utilizzo di host virtuali. Se specificato come percorso relativo, INSSLR2 usa il protocollo HTTP/1.0 e controlla il documento specificato da questa proprietà. Predefinito: / |
|
healthcheck_agent |
Stringa |
La stringa usata come identificatore di agente per i metodi di healthcheck http_get e http_head. Predefinito: INSSLR2-health-check |
|
healthcheck_regexp |
Stringa |
Una stringa di test usata con la modalità di healthcheck di http_head e http_get. È probabile che valori brevi o comuni, come OK, causino false corrispondenze positive. Questa stringa è un'espressione regolare Perl. Predefinito: ^HTTP\/1\.\d\s+200 |
|
healthcheck_interval |
Numero intero |
Intervallo tra i controlli di integrità dei server Web di backend. Questo valore è specificato in secondi. Valore predefinito: 60 secondi |
|
healthcheck_timeout |
Numero intero |
Il tempo massimo in secondi che un healthcheck può richiedere. Se il timeout viene superato, il controllo è considerato non riuscito e viene terminato. Viene avviato un nuovo controllo. Valore predefinito: 10 |
|
healthcheck_alert |
Numero intero |
Numero di errori di healthcheck successivi prima che INSSLR2 avvii gli errori di dumping sul dashboard della griglia. Se impostato su 0, non sono riportati errori al dashboard ma i controlli di integrità rimangono abilitati. Non impostare a un livello troppo basso per evitare falsi positivi si avvia/arresta l'applicazione. Se INSSLR2 è eseguito in modalità ridondante e se si desidera passare al nodo di backup in caso di errore del server di backend, fare riferimento a fover_on_healthcheck per ulteriori informazioni. Impostazione predefinita: 3 |
Proprietà avanzate utilizzate negli scenari di failover
|
Name |
Tipo |
Description |
|
fover_mode |
Stringa |
Modalità di failover. Valori validi: nessuno (nessun failover), simmetrico e asimmetrico Se impostato sul valore nessuno, INSSLR2 funziona semplicemente come un'appliance di INSSLR2 e non fornisce capacità di failover. Se impostato sul valore simmetrico, INSSLR2 viene eseguito in modalità di failover simmetrico. Si richiedono due appliance di INSSLR2, eseguite ambedue in modalità di failover simmetrico. Se impostato sul valore asimmetrico, INSSLR2 viene eseguito in modalità di failover asimmetrico. Si richiedono due appliance di INSSLR2, eseguite ambedue in modalità di failover asimmetrico. Nota: quando vengono eseguite in modalità di failover, entrambe le appliance devono avere fover_mode impostato sullo stesso valore. Predefinito: nessuno |
|
fover_remote_ip |
Indirizzo IP |
Indirizzo IP remoto dell'altra appliance di INSSLR2 utilizzata in modalità di failover. Nota: lasciarlo vuoto se fover_mode è impostato su nessuno. Predefinito: (vuoto) |
|
fover_nfy_prefix |
Stringa |
Prefisso Url che viene richiesto quando si verifica un failover. L'URL richiesto è: http://nfy/ fover_nfy_prefix fover_mode= fover_mode &state= <start|stop> &ip_addr= ip_addr &fover_local_ip= fover_local_ip &fover_remote_ip= fover_remote_ip &fover_netmask= fover_netmask and goes through the nfy terminal. Predefinito: ? |
|
fover_on_healthcheck |
Numero intero |
Specificare se INSSLR2 deve eseguire un failover al nodo di backup quando un controllo di integrità sul terminale HTTP non riesce. Se impostato su un valore diverso da zero, INSSLR2 esegue un failover dopo molti controlli di integrità successivi. Non impostarlo su un livello troppo basso per evitare falsi positivi quando si avvia o si arresta l'applicazione. Se si desidera ricevere delle notifiche esclusivamente per gli errori, fare riferimento a healthcheck_alert. Predefinito: 0 (disabilita). |
Volumi
|
Name |
Description |
|
codice |
Un volume di dati di sola lettura, chiamato segnaposto, che contiene, come minimo, il codice di firma del server SSL. Il file dovrebbe essere in formato di PEM. A meno che la proprietà di cert_file venga modificata per specificare un nome differente, il certificato dovrebbe trovarsi nella directory principale del volume di codici, nominata server.pem. |
I seguenti messaggi possono apparire nei file di log e nel log di sistema del controller di griglia quando l'appliance non riesce ad avviarsi:
INSSLR2 rileva l'errore di INSSLR2 in circa 10 secondi e richiede altri 10 secondi per eseguire il failover sull'altra applicazione. Il tempo totale trascorso dal verificarsi dell'errore dell'applicazione all'intervento dell'altra applicazione è pari a circa 20 secondi.
INSSLR2 indirizza non meno di 3000 transazioni (coppia richiesta/risposta) al secondo, in base alle dimensioni del documento e alla larghezza di banda di rete disponibile.
INSSLR2 indirizza non meno di 7 MB al secondo, in base alle dimensioni del documento e alla larghezza di banda di rete disponibile
Con la sua memoria predefinita, INSSLR2 supporta non meno di 500 richieste in sospeso contemporaneamente. Una richiesta in sospeso è una connessione TCP aperta dal client, su cui sono presenti una o più richieste HTTP non completate in corso.
Il valore massimo di connessioni simultanee dipende dalla memoria libera disponibile. Ciascuna memoria aggiuntiva di 16 MB aumenta il numero di transazioni http concorrenti di 500.
Ad esempio, se utilizza l'esecuzione in modalità ridondante e si vogliono servire 2000 connessioni simultanee, servono 100 M + 3*16 M= 148 M. La memoria minima quando viene si utilizza l'esecuzione in modalità ridondante è 100 M.
Quando viene eseguito in modalità ridondante (il valore fover_mode non è impostato su nessuno), INSSLR2 attiva le notifiche quando diventa attivo o passivo. Ciò avviene all'avvio del nodo attivo o quando si verifica un failover. Ogni nodo invia una notifica che informa se è attivo o passivo.
INSSLR2 invia due notifiche:
L'URL richiesto è:
http://nfy/ fover_nfy_prefix fover_mode= fover_mode &state= <start|stop> &ip_addr= ip_addr &fover_local_ip= fover_local_ip &fover_remote_ip= fover_remote_ip &fover_netmask= fover_netmask
fover_nfy_prefix può essere utilizzato per modificare la posizione dello script remoto chiamato e/o per aggiungere altri parametri.
Esempi di valori fover_nfy_prefix:
/path/to/script.php?, /path/to/script.php?username=user&password=pass&.
Note:
INSSLR2 esegue un cronjob ogni minuto controllando quanto segue:
Se si verifica una delle condizioni indicate sopra, viene inviato un messaggio di errore al dashboard della griglia. Se più di un test non riesce, sul dashboard della griglia viene visualizzato un messaggio di sintesi di tutti gli errori.
Ogni errore viene inviato al dashboard della griglia soltanto una volta all'ora. Nessun errore viene segnalato nei primi 5 minuti dopo l'avvio dell'appliance. Ciò previene eventuali falsi allarmi quando l'altro nodo nella replica non si è avviato.
Per utilizzare SSL, occorre il certificato firmato e il codice privato con cui è stato codificato. Il codice e il certificato devono essere in formato PEM e inclusi in un file singolo specificato dalla proprietà cert_file.
Generazione dei certificati di server
È possibile generare un certificato di server che possa essere firmato da un'autorità di certificazione (CA) attendibile dietro compenso o creare un certificato auto-firmato.
Attenersi alla seguente procedura:
openssl genrsa -out privkey.pem 2048
Inoltre, è possibile generare un codice protetto di trasmissione mediante il comando seguente. Tuttavia, se si crea un codice protetto di trasmissione, è necessario rimuovere la password prima di utilizzarlo in INSSLR2. INSSLR2 richiede un codice senza password.
openssl genrsa -des3 -out privkey.pem 2048
Eseguire il comando seguente:
openssl req -new -key privkey.pem -out server.csr
Dopo aver inviato il file .csr all'autorità di certificazione attendibile, viene restituito un certificato firmato (file .crt) che è possibile utilizzare.
Eseguire il comando seguente:
openssl req -new -x509 -key privkey.pem -out server.crt -days 1095
Uso dei certificati di server
Ora è possibile posizionare il certificato e il codice in un file e utilizzarlo in INSSLR2 eseguendo il comando seguente:
cat privkey.pem server.crt > server.pem
Se il codice è protetto da password, è possibile eliminare la password procedendo come segue:
openssl rsa -in key_with_pass.pem -out privkey.pem
Uso dei certificati di server apache+mod_ssl esistenti
INSSLR2 consente di utilizzare un certificato esistente che si impiega in Apache. Verificare che il codice non sia protetto da password utilizzando i passaggi descritti sopra, quindi posizionare il certificato privato e il codice in un unico file.
Ad esempio:
Se si usa un certificato a catena, occorre includere il certificato intermedio fornito dal mittente. Posizionare il codice privato, il certificato e il certificato intermedio in un unico file in questo ordine.
Ad esempio:
Importante: Il codice di firma del server è la prova d'identità del proprio sito Web. È anche vulnerabile, poiché non è codificato da una password per consentire all'appliance di leggerlo senza assistenza.
Quando si installa il codice sul volume di dati, applicare delle misure di protezione del file che contiene il codice. Non utilizzare lo stesso volume di dati per altri scopi e non renderlo visibile a un server Web. Ad esempio, per ospitare dati accessibili dal Web, come pagine HTML e script.
L'esempio seguente indica come creare la propria autorità di certificazione e utilizzarla per firmare i propri certificati tramite OpenSSL. Questo è stato testato usando OpenSSL 0.9.8b, la stessa versione installata in INSSLR2.
Creazione di un'Autorità di certificazione
Se si dispone già di un'autorità di certificazione utilizzata per creare il certificato del server autofirmato, ignorare questo passaggio e utilizzare tale autorità di certificazione. Quando si creano gli strumenti dell'autorità certificata per l'applicazione in uso, è importante che l'ambiente sia sicuro.
Importante: il codice privato per l'autorità di certificazione è la base di trust per l'applicazione. Non perderlo o fornirlo ad altre parti.
Attenersi alla seguente procedura:
openssl genrsa -des3 -out CA/private/CA_key.pem 2048
openssl req -new -key CA/private/CA_key.pem -x509 -days 365 -out CA/CA_cert.pem
Creazione di certificati di client firmati dall'autorità di certificazione
È possibile creare certificati di client firmati dall'autorità di certificazione.
Attenersi alla seguente procedura:
openssl genrsa -out clientA_privkey.pem 2048
Per creare un codice protetto da password, utilizzare lo switch -des3
openssl req -new -key clientA_privkey.pem -out clientA_request.csr
openssl x509 -req -days 365 -in clientA_request.csr -CA CA/CA_cert.pem -CAkey CA/private/CA_key.pem -CAcreateserial -out clientA.cer
Note:
Ad esempio:
openssl genrsa -out clientB_privkey.pem 2048
openssl req -new -key clientB_privkey.pem -out clientB_request.csr
openssl x509 -req -days 365 -in clientB_request.csr -CA CA/CA_cert.pem -CAkey CA/private/CA_key.pem -CAserial CA/CA_cert.srl -out clientB.cer
cat clientA_privkey.pem clientA.cer > clientA.pem
openssl pkcs12 -export -in clientA.cer -inkey clientA_privkey.pem -out clientA.p12
Creare i file di elenco di CA usati da INSSLR2
Revoca dei certificati di client firmati da CA
Per revocare un certificato di client pubblicato dall'autorità di certificazione, utilizzare il comando seguente:
openssl ca -config openssl.conf -revoke clientB.cer -crl_reason keyCompromise
Dove un esempio openssl.conf è mostrato di seguito e il parametro crl_reason è uno fra: unspecified, keyCompromise, CACompromise, affiliationChanged, superseded, cessationOfOperation, certificateHold o removeFromCRL. L'abbinamento della ragione è sensibile alle maiuscole e minuscole.
Per ri-generare l'elenco di revoca di certificato (CRL):
openssl ca -config openssl.conf -gencrl -out CA/crl.pem
In questo esempio, crl.pem è il file che deve essere fornito a INSSLR2 come proprietà di cert_revocation_list.
Un esempio di file di configurazione campione usato per gli esempi di sopra è:
####################################################################
[ ca ]
default_ca = CA_default # La sezione ca predefinita
####################################################################
[ CA_default ]
dir = ./CA # Dove viene tenuto tutto
certs = $dir/certs # Dove sono mantenuti i certificati pubblicati
crl_dir = $dir/crl # Dove i crl sono pubblicati
database = $dir/index.txt # file di indice del database.
#unique_subject = no # Impostato su 'no' per consentire la creazione di
# diversi ctificates con lo stesso oggetto.
new_certs_dir = $dir/newcerts # posto predefinito per i nuovi certificati.
certificate = $dir/cacert.pem # Il certificato di CA
serial = $dir/serial # Il numero di serie corrente
crlnumber = $dir/crlnumber # il numero crl corrente
# deve essere commentato per lasciare un V1 CRL
crl = $dir/crl.pem # Il CRL corrente
private_key = $dir/private/cakey.pem# Il codice privato
RANDFILE = $dir/private/.rand # file di numero privato casuale
default_days = 365 # tempo per certificare
default_crl_days= 30 # tempo prima del CRL successivo
default_md = sha1 # quale md usare.
preserve = no # mantieni ordine DN trasmesso
policy = policy_anything
[ policy_anything ]
countryName = facoltativo
stateOrProvinceName = facoltativo
localityName = facoltativo
organizationName = facoltativo
organizationalUnitName = facoltativo
commonName = fornito
emailAddress = fornito
Creare i file di elenco dell'autorità di certificazione usato da INSSLR2
È possibile creare i file di elenco dell'autorità di certificazione che sono utilizzati da INSSLR2.
Per creare il file identificato dalla proprietà ca_list_client:
cat CA/private/CA_key.pem CA/CA_cert.pem > ca_list_client.pem
Se si desidera, il certificato di server di INSSLR2, ad esempio server.pem, può essere creato allo stesso modo dei certificati client e firmato dall'autorità di certificazione creata. Non utilizzare una password per questo certificato.
Strumenti=>Opzioni=>Visualizza certificati=>Certificati personali=>Importa. Puntare il browser all'indirizzo IP di INSSLR2.
openssl s_client -host IP-address -port 443 -showcerts -ssl3 -cert clientA.cer -key clientA_privkey.pem -state
Intestazioni di certificato di client
Se un client si connette a INSSLR2 mediante HTTPS e presenta un certificato di client, INSSLR2 aggiunge le seguenti intestazioni alla richiesta restituita al server di backend:
È responsabilità dell'applicazione utilizzare o non utilizzare queste intestazioni. INSSLR2 trasmette semplicemente le informazioni senza verificarle, ad eccezione della correttezza della firma e della codifica.
Applicazioni Web
Per consentire l'accesso di http(s) alla sua applicazione, connettere il terminale di HTTP direttamente all'appliance WEB.

Per un'applicazione Web scalabile con il terminale di HTTP connesso a un'appliance HALB.

Gli esempi di configurazione mostrano soltanto le proprietà impostate su valori non predefiniti.
|
Name |
Tipo |
Description |
|
17_accept |
http/https/both |
Specifica quale protocollo l7 viene utilizzato. Se https o entrambi sono specificati, il volume del codice dovrebbe contenere il certificato di SSL come specificato dalla proprietà di cert_file. |
Applicazioni Web con servizi aggiuntivi
Se si hanno più servizi nell'applicazione, oltre a HTTP, è possibile usare INSSLR2 per trasmettere il traffico HTTP al rispettivo terminale e utilizzare il terminale di AUX per altri servizi.

|
Proprietà |
Valore |
note |
|
17_accept |
http/https/both |
Specifica quale protocollo l7 viene utilizzato. Se https o entrambi sono specificati, il volume del codice dovrebbe contenere il certificato di SSL come specificato dalla proprietà di cert_file. |
|
l3_accept_proto |
tcp |
Reindirizza le porte TCP 25.110.143 al terminale di AUX. |
|
l3_accept_port |
25,110,143 |
Reindirizza le porte TCP 25.110.143 al terminale di AUX. |
Applicazioni Web con servizi aggiuntivi multipli
Se si dispone di più servizi tcp/udp oltre all'http, è possibile utilizzare INSSLR2 per trasmettere il traffico HTTP al rispettivo terminale HTTP e utilizzare aux per alimentare il traffico restante a PS8. PS8 alimenta quindi il traffico desiderato ai server di backend.

|
Proprietà |
Valore |
note |
|
17_accept |
http/https/both |
Specifica quale protocollo l7 viene utilizzato. Se https o entrambi sono specificati, il volume del codice dovrebbe contenere il certificato di SSL come specificato dalla proprietà di cert_file. |
|
l3_accept_proto |
tutti |
Reindirizzare al terminale aux tutto il traffico IP, eccetto icmp, che non è trasmesso al terminale http. |
Applicazioni Web ridondanti
Per fornire un'applicazione Web ridondante, copiare l'applicazione e utilizzare INSSLR2 per fornire le funzionalità di failover per l'indirizzo IP esterno.
Nota: se due appliance di INSSLR2 nella stessa applicazione sono configurate per l'esecuzione in modalità ridondante, viene visualizzato un messaggio di avviso quando si configura lo stesso indirizzo IP su due interfacce diverse. Ignorare l'errore.
Applicazione Web di backup
Se si desidera un'applicazione di backup che notifica gli utenti sui tempi di inattività, è possibile utilizzare INSSLR2 per creare un'applicazione di backup che richiede risorse minime.
Appliance in uso:
INSSLR2 sull'applicazione primaria
|
Proprietà |
Valore |
note |
|
fover_mode |
asymmetric |
Eseguito in modalità asimmetrica per utilizzare l'applicazione di backup soltanto quando la primaria non funziona. |
|
fover_remote_ip |
192.168.100.2 |
Indirizzo IP remoto utilizzato per la comunicazione tra le appliance di INSSLR2 nelle due applicazioni. |
INSSLR2 sull'applicazione di backup
|
Proprietà |
Valore |
note |
|
fover_mode |
asymmetric |
Eseguito in modalità asimmetrica per utilizzare l'applicazione di backup soltanto quando la primaria non funziona. |
|
fover_remote_ip |
192.168.100.1 |
Indirizzo IP remoto utilizzato per la comunicazione tra le appliance di INSSLR2 nelle due applicazioni. |
Nota: mediante la scheda Interfacce dell'editor di configurazione dell'applicazione, è possibile configurare gli attributi dell'interfaccia connessa al terminale fover. Ad esempio, le proprietà di fover_local_ip e fover_netmask.
Applicazione Web ridondante in un'applicazione singola
Per eseguire l'applicazione in modalità ridondante senza creare una nuova applicazione, è possibile raddoppiare le appliance ed eseguirle in modalità ridondante. Poiché ciò implica l'utilizzo di almeno due server Web e di due appliance di database nella modalità normale, tutti vengono utilizzati, fornendo la scalabilità. Tuttavia, ciascuno di loro è in grado di servire l'applicazione da solo se l'altra appliance non funziona.
Per aumentare la scalabilità, è possibile aggiungere ulteriori appliance Web e database. In questo esempio, metà delle appliance (in1, sw1, web1, db1) è eseguita in un gruppo di failover e le rimanenti (in2, sw2, web2, db2) sono eseguite in un altro gruppo di failover per consentire all'applicazione di continuare a funzionare dopo un crash del server. Questa applicazione fornisce la ridondanza a un costo molto basso quando tutte le appliance (tranne che per l'appliance di INSSLR2 e di HALB che richiedono risorse molto basse) sono in stato attivo e nessuna risorsa viene spesa per un'appliance di backup che viene eseguita solamente quando la primaria non funziona.

in1
|
Proprietà |
Valore |
note |
|
fover_mode |
simmetrico |
Eseguito in modalità simmetrica. |
|
fover_remote_ip |
192.168.100.2 |
Indirizzo IP remoto utilizzato per la comunicazione tra le appliance di INSSLR2 nelle due applicazioni. |
in2
|
Proprietà |
Valore |
note |
|
fover_mode |
simmetrico |
Eseguito in modalità simmetrica. |
|
fover_remote_ip |
192.168.100.1 |
Indirizzo IP remoto utilizzato per la comunicazione tra le appliance di INSSLR2 nelle due applicazioni. |
db1
|
Nome della proprietà |
Valore |
note |
|
auto_create |
1 |
Creare il database se i volumi sono vuoti. |
|
server_id |
1 |
Server master 1. Deve essere diverso sull'applicazione remota |
|
rpl_mode |
master_and_slave |
Master e slave |
DB2
|
Nome della proprietà |
Valore |
note |
|
auto_create |
1 |
Creare il database se i volumi sono vuoti. |
|
server_id |
1 |
Server master1, dovrebbe essere differente sull'applicazione remota |
|
rpl_mode |
master_and_slave |
Master e slave |
Applicazione Web ridondante con due applicazioni identiche
È possibile eseguire due applicazioni identiche sulla stessa griglia, ma su server separati o su griglie diverse, se l'indirizzo IP è accessibile da ambedue le griglie. In questo modo l'errore di un server influisce solo su una delle applicazioni.
Nota: se due appliance di INSSLR2 nella stessa applicazione sono configurate per l'esecuzione in modalità ridondante, viene visualizzato un messaggio di avviso quando si configura lo stesso indirizzo IP su due interfacce diverse. Ignorare l'errore.
L'esempio riportato di seguito mostra un'applicazione che utilizza un'appliance di database anch'essa eseguita in modalità ridondante. In caso di guasto di un'applicazione, l'altra può intervenire senza alcuna perdita di dati.

Appliance in uso:
Le richieste del client arrivano sul gateway di insslr. Il gateway inoltra le richieste all'utilità di bilanciamento del carico Web, che indirizza la richiesta a uno dei server Web, web1 o web2.
I server Web accedono al database di db. L'appliance db si connette all'applicazione remota. Per replicare il database, l'applicazione remota è una copia identica in cui l'unica differenza è rappresentata dal server_id del db e dall'installazione di rete.
L'applicazione remota si connette all'appliance db mediante repl_in gateway che è configurato per consentire la connessione soltanto dal gateway repl_out dell'applicazione remota. Le appliance db nelle due applicazioni sono eseguite nella configurazione master-master per garantire che abbiano sempre dati identici.
Esempio di configurazione delle proprietà
Le proprietà che non sono elencate devono essere lasciate ai loro valori predefiniti. L'accesso Web a db è disponibile mediante il gateway di admin sulla porta 8080.
insslr
|
Proprietà |
Valore |
note |
|
fover_mode |
simmetrico |
Eseguito in modalità simmetrica. |
|
fover_remote_ip |
192.168.100.2 |
Indirizzo IP remoto da usare per la comunicazione tra le appliance INSSLR2 nelle due applicazioni. Modificarlo su 192.168.100.1 sull'applicazione remota. |
db
|
Nome della proprietà |
Valore |
note |
|
auto_create |
1 |
Creare il database se i volumi sono vuoti. |
|
error_log_filename |
db.error |
Nome di file log degli errori che deve essere archiviato sul volume di dati di log. |
|
error_log_level |
errore |
Livello di registrazione errori |
|
server_id |
1 |
Server master 1, questo dovrebbe essere differente sulla seconda applicazione |
|
rpl_mode |
master_and_slave |
Master e slave |
Importante: solo una delle applicazioni è attiva in qualsiasi momento, l'altra è eseguita per il failover ed è usata quando l'applicazione attiva non riesce.
Note:
INSSLR2 utilizza i seguenti pacchetti open source di terze parti oltre ai pacchetti open source di terze parti utilizzati dalla classe di base LUX6.
|
Software |
Versione |
Modificato |
License |
note |
|
PyXML |
0.8.4-19 |
No |
N/A |
|
|
heartbeat |
3.0.4-1 |
No |
N/A |
|
|
heartbeat-libs |
3.0.4-1 |
No |
N/A |
|
|
iptables |
1.4.7-5.1.el6_2 |
No |
N/A |
|
|
libgcrypt |
1.4.5-9.el6_2.2 |
No |
GPLv2 |
N/A |
|
libgpg-error |
1.7-4 |
No |
N/A |
|
|
lighttpd |
1.4.18-1 |
No |
N/A |
|
|
nginx |
0.7.62-1 |
Sì |
N/A |
|
|
sudo |
1.7.4p5-13.el6_3 |
No |
N/A |
|
|
telnet |
0.17-47 |
No |
N/A |
|
Copyright © 2013 CA.
Tutti i diritti riservati.
|
|