Ultima versione: 3.1.2-1

|
In breve |
|
|
Catalogo |
Sistema |
|
Categoria |
Gateway |
|
Volumi dell'utente |
sì |
|
Num. minimo memoria |
192M |
|
OS |
Linux |
|
Vincoli |
no |
L'appliance di INSSLR è un gateway a 7 layer per le richieste HTTP sicure. Converte le richieste in richieste HTTP non codificate. Può essere usato quando è necessario supportare HTTP sicuro sul lato client, ma l'infrastruttura di elaborazione di backend non supporta o non può supportare SSL, incluso:
Se configurato, INSSLR 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. Il client può contattare l'autorità di certificazione che ha emesso il certificato del server e confermare che il certificato è autentico prima di continuare. Il server può fare altrettanto.
Nella sua configurazione predefinita INSSLR opera come gateway di layer 7 per richieste HTTP sicure, fornendo anche un punto di ingresso con firewall per il traffico di rete in un'applicazione di CA AppLogic® che è possibile configurare con un indirizzo IP statico accessibile da Internet.
Quando configurato, è possibile utilizzare due appliance di INSSLR in modalità di failover per consentire un servizio ridondante. In questo caso, l'indirizzo IP di INSSLR (configurato mediante ip_addr) viene eseguito soltanto su uno dei nodi ed è trasferito automaticamente all'altra appliance di INSSLR in caso di guasto. In qualsiasi momento, soltanto un'appliance di INSSLR è attiva. Durante l'esecuzione in modalità di failover è possibile configurare INSSLR per l'esecuzione in diverse modalità:
Durante l'esecuzione in modalità ridondante, INSSLR offre un'interfaccia sul terminale CTL per:
INSSLR monitora costantemente lo stato dell'appliance di backend connessa al suo terminale di HTTP. I controlli di stato condotti da INSSLR possono includere una semplice connessione TCP o una richiesta HTTP più complessa (specificata sul limite di INSSLR). In caso di errore dell'appliance connessa, INSSLR segnala un errore al dashboard di griglia oppure, se è in modalità ridondante e configurato per farlo, esegue un failover all'appliance di backup di INSSLR.
Per supportare le applicazioni che devono apparire in un indirizzo IP singolo per più di un servizio, INSSLR può essere configurato per dirigere il traffico non HTTP direttamente a 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 |
192M |
2 G |
192 M |
|
Larghezza di banda |
1 Mbps |
2 Gbps |
200 Mbps |
La memoria predefinita per la versione di CA AppLogic® 2.7 è stata modificata a 128 MB. La memoria minima rimane 64 MB.
note
Terminali
|
name |
dir |
prot. |
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 ha l'aspetto di /?action=<active|passive|kill|status>. attivo/passivo rende l'appliance attiva o passiva. Nota: questa azione potrebbe non andare a buon fine (se l'altro nodo non è attivo e non è possibile completare il failover). In questo caso, non verrà restituito alcun errore. Spetta all'applicazione di chiamata controllare lo stato dell'appliance facendo una richiesta di /?action=status. lo stato restituisce lo stato corrente dell'appliance (attivo/passivo). viene eseguita una chiusura forzata dell'appliance che attiva l'altro nodo (se è eseguito). |
|
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: X-Forwarded-For: indirizzo IP di client remoto. Questo dovrebbe essere usato dagli script CGI sul lato server al posto dell'indirizzo IP remoto. X-Forwarded-Proto: https Questa intestazione è presente se il client si è connesso su HTTPS. Spetta all'applicazione di backend utilizzare questa intestazione per distinguere fra le connessioni HTTP e di HTTPS. |
|
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ò essere lasciato non connesso. |
|
aux |
out |
Qualsiasi |
Output per altri protocolli, se configurato - consultare le proprietà l3_accept_*. |
|
nfy |
out |
HTTP |
Invia notifiche quando si verifica un failover. Consultare anche fover_nfy_prefix. Questo terminale può essere lasciato non connesso. |
|
mon |
out |
CCE |
Invia le statistiche sull'utilizzo delle risorse e le prestazioni. |
Proprietà
|
Name |
Tipo |
Description |
|
ip_addr |
ip_owned |
indirizzo IP esterno del gateway. Questa proprietà non ha un valore predefinito e deve essere impostata. Predefinito: (vuoto) |
|
maschera di rete |
Indirizzo IP |
Maschera di rete. Questa proprietà non ha un valore predefinito e deve essere impostata. Predefinito: (vuoto) |
|
gateway |
Indirizzo IP |
Gateway predefinito per il traffico in uscita. Predefinito: (vuoto) |
|
dns1 |
Indirizzo IP |
Definisce il server DNS primario. Può essere lasciato vuoto se l'host remoto è specificato dal suo indirizzo IP; deve essere indicato negli altri casi. L'impostazione predefinita è vuota |
|
dns2 |
Indirizzo IP |
Definisce il server DNS secondario, che verrà usato se il server DNS primario non risponde. Predefinito è vuoto (non utilizzato). |
|
l7_accept |
stringa |
Questo specifica i generi di traffico HTTP 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_*. |
|
l3_accept_proto |
stringa |
Specifica quali protocolli dovrebbero essere inoltrati al terminale di AUX. Valori validi: nessuno, tcp, udp, raw, tutti. Se impostato su tcp o udp, la proprietà l3_accept_port può essere utilizzata per specificare la porta. Se impostata su raw. la proprietà di l3_accept_port specifica il numero di protocollo. Se impostata su tutto il traffico in entrata sull'interfaccia esterna, viene inoltrato al terminale AUX. La proprietà di l7_accept ha la precedenza su questo - se si imposta l7_accept su un valore diverso da nessuno, tutti gli http sono inoltrati al terminale di HTTP e il traffico rimanente è indirizzato ad AUX come specificato da questa proprietà. |
|
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 di aux; i protocolli nell'elenco possono essere specificati o come numeri di porta o come nomi di protocollo standard (ad es., ftp, smtp ecc. quando si specificano le porte tcp/udp o gre, tcp, ecc. usando i protocolli raw). È anche possibile specificare gli intervalli di porta (1024:10000, 0:1024). Se lasciato vuoto, sono inoltrate tutte le porte del protocollo specificato. 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. Separare le voci 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. Predefinito: OFF |
|
cert_file |
stringa |
Nome di file (relativo alla radice del volume di dati) del certificato server che questa istanza di gateway dovrebbe presentare al client. Nota: se si imposta l7_accept su HTTPS o entrambi, un certificato valido dovrà essere presente sul volume di dati configurato nella posizione specificata dalla proprietà. In caso contrario, non sarà possibile avviare INSSLR. Consultare la sezione Volumi riportata di seguito. Predefinito: server.pem. |
|
unsafe_ssl |
stringa |
Abilita l'uso di crittografie ssl non sicure per la compatibilità con i browser legacy. Il valore predefinito di disabilitato disattiva le crittografie di SSLv2 oltre a 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, tutte le crittografie di SSL disponibili sul sistema (incluso SSLv2) possono essere utilizzate per le sessioni di https. Predefinito: disabilitato |
|
keepalive |
int |
Specificare il tempo di keep-alive massimo tra INSSLR e il client. Valore specificato in secondi. Predefinito: 15 |
|
timeout |
int |
Specifica quanti secondi INSSLR attende per l'output dal server di backend. Se il server di backend non invia l'output per secondi di timeout, la connessione è chiusa. |
|
max_request_size |
int |
Dimensione massima (in MB) della richiesta di client. Aumenta se l'applicazione deve gestire grandi carichi client. 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 (consultare la documentazione di nginx per maggiori informazioni). È possibile aggiungere linee di configurazione multiple separate vicino;. Se impostata, questa proprietà deve avere una sintassi di nginx valida - cioè 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 INSSLR. Quando impostato su ask, i client devono presentare certificati, ma la connessione è stabilita anche se non è presente un certificato valido. Predefinito: OFF |
|
client_depth |
int |
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 contenente una sequenza di certificati dell'Autorità di certificazione in formato PEM. I nomi dei certificati elencati vengono inviati al client connesso. 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 codici montato o alla radice del montaggio di nfs fatto 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 INSSLR e, se il certificato deve essere revocato, INSSLR emette una risposta con errore di certificato SSL per il client. Analogamente a ca_list_client, il nome del 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à di healthcheck
|
name |
type |
description |
|
healthcheck_method |
Stringa |
Il metodo usato per l'healthcheck dei server Web di backend. |
|
healthcheck_url |
Stringa |
L'URL usato per eseguire l'healthcheck dei server Web di backend nei metodi di healthcheck http_get e http_head dei server Web. Può essere specificato come URL completo (http://host.name/file/to/check/for.php) o come percorso relativo (/file/to/check/for.php). Se specificato come URL, INSSLR 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, INSSLR usa il protocollo HTTP/1.0 e controlla il documento specificato da questa proprietà. |
|
healthcheck_agent |
Stringa |
La stringa usata come identificatore di agente per i metodi di healthcheck http_get e http_head. |
|
healthcheck_regexp |
Stringa |
Una stringa di test usata con la modalità di healthcheck di http_head e http_get. I valori abbreviati o comuni (ad esempio: "OK") potrebbero causare false corrispondenze positive. Questa stringa è un'espressione regolare di Perl. Per maggiori dettagli sulle espressioni regolari di Perl, andare qui. |
|
healthcheck_interval |
Int |
Intervallo tra gli healthcheck dei server Web di backend (specificati in secondi). |
|
healthcheck_timeout |
Int |
Il tempo massimo in secondi che un healthcheck può richiedere. Se il timeout è superato, il controllo è considerato non riuscito e viene concluso (viene avviato un nuovo controllo). Predefinito: 10 |
|
healthcheck_alert |
Int |
Numero di errori di healthcheck successivi prima che INSSLR avvii gli errori di dumping sul dashboard della griglia. Se impostato su 0, non sono riportati errori al dashboard (ma gli healthcheck rimangono abilitati). Non impostare a un livello troppo basso per evitare falsi positivi si avvia/arresta l'applicazione. Consultare anche fover_on_healthcheck, se INSSLR è eseguito in modalità ridondante e se si desidera passare al nodo di backup in caso di errore del server di backend. Predefinito: 3 |
Proprietà avanzate (usate negli scenari di failover)
|
fover_mode |
Stringa |
Modalità di failover. I valori possibili sono nessuno (nessun failover), simmetrico e asimmetrico. |
|
fover_local_ip |
ip_owned |
Indirizzo IP locale da utilizzare in modalità di failover per comunicare con l'altra appliance di INSSLR. Questo può essere qualsiasi IP disponibile, incluso un indirizzo privato riservato (come definito da rfc1918). Questo indirizzo è usato soltanto per monitorare lo stato dell'altra appliance di INSLLR. Questo dovrebbe essere impostato sullo stesso IP come la proprietà di fover_remote_ip sull'altra appliance di INSSLR. Lasciare questo campo vuoto se fover_mode è impostato su nessuno. |
|
fover_remote_ip |
ip_owned |
Indirizzo IP remoto dell'altra appliance di INSSLR utilizzata in modalità di failover. Importante: Questo dovrebbe essere impostato sullo stesso IP come la proprietà di fover_local_ip sull'altra appliance di INSSLR. Lasciare questo campo vuoto se fover_mode è impostato su nessuno. |
|
fover_netmask |
Indirizzo IP |
Maschera di rete per fover_local_ip. |
|
fover_nfy_prefix |
Stringa |
Prefisso Url che viene richiesto quando si verifica un failover. L'URL richiesto è http://nfy/fover_nfy_prefixfover_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 e va attraverso il terminale di nfy. |
|
fover_on_healthcheck |
Int |
Specificare se INSSLR dovrebbe eseguire un failover al nodo di backup quando un healthcheck sul terminale di HTTP non riesce. Se impostato su un valore diverso da zero, INSSLR esegue un failover dopo molti healthcheck successivi. Non impostare su un livello troppo basso per evitare falsi positivi si avvia/arresta l'applicazione. Consultare anche healthcheck_alert se si richiedono soltanto notifiche per gli errori. Predefinito: 0 (disabilita). |
Volumi
|
name |
description |
|
codice |
Un volume di dati di sola lettura (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:
Failover di applicazione
INSSLR rileva l'altro INSSLR in circa 10 secondi. Servono altri 10 secondi per eseguire il failover all'altra applicazione. Il tempo totale da quando si produce l'errore di applicazione a quando l'altra applicazione interviene è di circa 20 secondi.
Tasso di richiesta
INSSLR dirige non meno d 3000 transazioni (coppia richiesta/risposta) al secondo, in base alla dimensione del documento e alla larghezza di banda di rete disponibile.
Velocità effettiva di dati
INSSLR dirige non meno d 7 transazioni (coppia richiesta/risposta) al secondo, in base alla dimensione del documento e alla larghezza di banda di rete disponibile.
Connessioni concorrenti
Con la sua memoria predefinita, INSSLR supporta non meno d 500 richieste in sospeso in concorrenza. (Una richiesta pendente è una connessione TCP aperta dal client, su cui è presente una o più richieste HTTP non completate). Il valore massimo di connessioni concorrenti dipendono dalla memoria libera disponibile. Ciascuna memoria aggiuntiva di 16 MB aumenta il numero di transazioni http concorrenti di 500. Ad esempio, se viene eseguita la modalità ridondante e si vogliono servire 2000 connessioni concorrenti, servono 100 M + 3*= 148 M (la memoria minima quando viene eseguita una modalità ridondante è 100 M).
Quando viene eseguito in modalità ridondante (fover_mode non è none), INSSLR attiva le notifiche quando diventa attivo/passivo. Questo è fatto all'avvio del nodo attivo o quando si verifica un failover (ogni nodo invia una notifica che informa se è attivo/passivo).
INSSLR inviano due notifiche:
http://nfy/fover_nfy_prefixfover_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 usato per modificare la posizione dello script remoto chiamato o/e per aggiungere altri parametri. Esempi di valori di fover_nfy_prefix: /path/to/script.php?, /path/to/script.php?username=user&password=pass&.
Importante:
INSSLR esegue un cronjob ogni minuto controllando quanto segue:
Se si verifica una delle occorrenze di sopra, viene inviato un messaggio di errore al dashboard della griglia. Se più di un test non riesce, viene visualizzato un messaggio di sintesi di tutti gli errori sul dashboard della griglia. Gli errori sono inviati soltanto una volta all'ora al dashboard della griglia. Nei primi 5 minuti dall'avvio dell'appliance, gli errori non sono segnalati (per evitare falsi allarmi quando l'altro nodo nella replica non è avviato).
Per utilizzare SSL, occorre il certificato firmato e il codice privato con cui è stato codificato. Il tasto e il certificato dovrebbero essere in formato PEM e inclusi in un file singolo specificato dalla proprietà cert_file.
Generazione dei certificati di server
CA AppLogic® permette di generare certificati di server.
Per generare i certificati di server
openssl genrsa -out privkey.pem 2048
Per generare un codice protetto di trasmissione, usare il seguente. (Per utilizzare il codice con INSSLR è necessario un codice senza password, se si crea un codice protetto di trasmissione, occorre eliminare la password prima di usarla in INSSLR)
openssl genrsa -des3 -out privkey.pem 2048
Per generare una richiesta di certificato, procedere come segue:
openssl req -new -key privkey.pem -out server.csr
Dopo aver inviato il file .csr all'autorità di certificazione attendibile, verrà inviato un certificato firmato (file .crt) che è possibile utilizzare.
openssl req -new -x509 -key privkey.pem -out server.crt -days 1095
Uso dei certificati di server
A questo punto, è possibile mettere il certificato e il codice in un file e usarlo in INSSLR:
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
Se si ha un certificato esistente che vie eseguito in Apache, è possibile usarlo anche in INSSLR. Accertarsi che il codice non è protetto da password (vedere sopra) e mettere il codice privato e il certificato in un file, in quell'ordine.
Esempio:
cat privkey.pem server.csr > server.pem
Se si usa un certificato a catena, occorre includere il certificato intermedio fornito dal mittente. Introdurre il codice privato, il certificato e il certificato intermedio in un file in quell'ordine.
Esempio:
cat privkey.pem server.csr sf_issuing.crt > server.pem
Importante: Il codice di firma del server è la prova d'identità del tuo sito Web. È anche vulnerabile, perché non è codificato da una password (quindi l'appliance può leggerlo senza assistenza). Adottare le misure necessarie per proteggere il file di codice quando viene installato sul volume di dati. Non usare lo stesso volume di dati per altri scopi e non renderlo visibile a un server Web, ad esempio, per ospitare dati accessibili dal Web (pagine HTML, script e simili).
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 INSSLR.
Creazione di un'Autorità di certificazione
Se si dispone già di un'autorità di certificazione che serve per creare il certificato del server autofirmato, ignorare questa fase e usare quell'autorità di certificazione. Quando si creano gli strumenti dell'autorità certificata per l'applicazione in uso, è importante che l'ambiente sia sicuro.
Per creare un'autorità di certificazione
mkdir CA mkdir $CA/privato
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
Importante: Il codice privato per l'autorità di certificazione è la base di fiducia per l'applicazione, quindi + importante non perderla o fornirla ad altre parti.
Creazione di certificati di client firmati dall'autorità di certificazione
CA AppLogic® lascia creare certificati di client che sono firmati dall'autorità di certificazione.
Per creare certificati di client firmati dall'autorità di certificazione
openssl genrsa -out clientA_privkey.pem 2048
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
Si ricorda che:
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 INSSLR
Revoca dei certificati di client firmati da CA
Per revocare un certificato di client pubblicato da CA:
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):
In questo esempio "crl.pem" è il file che dovrebbe essere fornito a INSSLR 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 INSSLR
CA AppLogic® permette di creare i file di elenco dell'autorità di certificazione che sono usati da INSSLR.
Per creare il file identificato dalla proprietà ca_list_client
cat CA/private/CA_key.pem CA/CA_cert.pem > ca_list_client.pem
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 INSSLR mediante HTTPS, e se presenta un certificato di client, INSSLR aggiunge le seguenti intestazioni alla richiesta che emette al server di backend:
È responsabilità dell'applicazione fare uso di queste intestazioni o non. INSSLR trasmette semplicemente le informazioni senza verificarle (se non la correttezza della firma e della codifica).
Per consentire l'accesso di http(s) alla sua applicazione, connettere il terminale di HTTP direttamente all'appliance WEB.

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 e non mostrano la configurazione di rete (ip_addr, maschera di rete, gateway).
|
Proprietà |
Valore |
note |
|
l7_accept |
http/https/both |
Specifica quale protocollo l7 viene utilizzato. Nota: se gli http o entrambi sono specificati, il volume del codice deve 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 INSSLR per trasmettere il traffico HTTP al rispettivo terminale e utilizzare il terminale di AUX per altri servizi.

|
Proprietà |
Valore |
note |
|
l7_accept |
http/https/both |
Specifica quale protocollo l7 viene utilizzato. NOTA: 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 più di un servizio aggiuntivo
Se si hanno più servizi tcp/udp oltre all'HTTP, è possibile utilizzare INSSLR per trasmettere il traffico HTTP al rispettivo terminale di HTTP e usare AUX per alimentare il traffico restante a PS8, che alimenta il traffico desiderato ai server di backend.

|
Proprietà |
Valore |
note |
|
l7_accept |
http/https/both |
Specifica quale protocollo l7 viene utilizzato. Nota: se gli http o entrambi sono specificati, il volume del codice deve 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 di HTTP. |
Applicazioni Web ridondanti
Per fornire un'applicazione Web ridondante, è possibile copiare l'applicazione e usare INSSLR per fornire le funzionalità di failover per l'indirizzo IP esterno.
Applicazione Web di backup
Se si desidera soltanto un'applicazione di backup che notifica gli utenti dei tempi di inattività, si può usare INSSLR per creare un'applicazione di backup che richiede risorse minime.
Appliance in uso:
INSSLR sull'applicazione primaria:
|
Proprietà |
Valore |
note |
|
ip_addr |
1.2.3.4 |
Indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
maschera di rete |
255.255.255.0 |
Maschera di rete per l'indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
gateway |
1.2.3.254 |
Gateway per l'indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
fover_mode |
asymmetric |
Eseguito in modalità asimmetrica perché si desidera utilizzare l'applicazione di backup soltanto quando la primaria non funziona. |
|
fover_local_ip |
192.168.100.1 |
Indirizzo IP privato da usare per la comunicazione tra le appliance INSSLR nelle due applicazioni. L'indirizzo IP locale è inferiore a quello remoto e l'appliance sarà primaria fino a quando viene eseguita |
|
fover_remote_ip |
192.168.100.2 |
Indirizzo IP remoto da usare per la comunicazione tra le appliance INSSLR nelle due applicazioni. |
|
fover_netmask |
255.255.255.0 |
Maschera di rete per fover_local_ip. |
INSSLR sull'applicazione di backup:
|
Proprietà |
Valore |
note |
|
ip_addr |
1.2.3.4 |
Indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
maschera di rete |
255.255.255.0 |
Maschera di rete per l'indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
gateway |
1.2.3.254 |
Gateway per l'indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
fover_mode |
asymmetric |
Eseguito in modalità asimmetrica perché si desidera utilizzare l'applicazione di backup soltanto quando la primaria non funziona. |
|
fover_local_ip |
192.168.100.2 |
Indirizzo IP privato da usare per la comunicazione tra le appliance INSSLR nelle due applicazioni. |
|
fover_remote_ip |
192.168.100.1 |
Indirizzo IP remoto da usare per la comunicazione tra le appliance INSSLR nelle due applicazioni. |
|
fover_netmask |
255.255.255.0 |
Maschera di rete per fover_local_ip. |
Applicazione Web ridondante (applicazione singola)

Per fare in modo che l'applicazione operi in modalità ridondante senza creare una nuova applicazione, è sufficiente raddoppiare le appliance ed eseguirle in modalità ridondante. Dato che ciò implica l'utilizzo (almeno) di due server Web e di due appliance di database, nella modalità normale sono usati tutti (e forniscono la scalabilità), ma ciascuno di loro è in grado di servire l'applicazione da solo se l'altra appliance non funzionasse. Per aumentare la scalabilità, è possibile aggiungere più appliance di Web e database. In questo esempio, metà delle appliance (in1, sw1, web1, db1) sono eseguite in un gruppo di failover e le altre (in2, sw2, web2, db2) sono eseguite in un altro gruppo di failover in modo che l'applicazione possa continuare a funzionare in caso di crash del server. Questa applicazione consente ridondanza a un costo molto basso come tutte le appliance (tranne un INSSLR e una appliance di HALB che richiedono risorse molto basse) sono in stato attivo e nessuna risorsa viene spesa per un'appliance di backup che corre solamente quando il fondamento non riesce.
in1
|
Proprietà |
Valore |
note |
|
ip_addr |
1.2.3.4 |
Indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
maschera di rete |
255.255.255.0 |
Maschera di rete per l'indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
gateway |
1.2.3.254 |
Gateway per l'indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
fover_mode |
simmetrico |
Eseguito in modalità simmetrica. |
|
fover_local_ip |
192.168.100.1 |
Indirizzo IP privato da usare per la comunicazione tra le appliance INSSLR nelle due applicazioni. |
|
fover_remote_ip |
192.168.100.2 |
Indirizzo IP remoto da usare per la comunicazione tra le appliance INSSLR nelle due applicazioni. |
|
fover_netmask |
255.255.255.0 |
Maschera di rete per fover_local_ip. |
in2
|
Proprietà |
Valore |
note |
|
ip_addr |
1.2.3.4 |
Indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
maschera di rete |
255.255.255.0 |
Maschera di rete per l'indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
gateway |
1.2.3.254 |
Gateway per l'indirizzo IP pubblico dell'applicazione, deve essere lo stesso per l'applicazione primaria e di backup. |
|
fover_mode |
simmetrico |
Eseguito in modalità simmetrica. |
|
fover_local_ip |
192.168.100.2 |
Indirizzo IP privato da usare per la comunicazione tra le appliance INSSLR nelle due applicazioni. |
|
fover_remote_ip |
192.168.100.1 |
Indirizzo IP remoto da usare per la comunicazione tra le appliance INSSLR nelle due applicazioni. |
|
fover_netmask |
255.255.255.0 |
Maschera di rete per fover_local_ip. |
db1
|
Nome di 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 |
DB2
|
Nome di proprietà |
Valore |
note |
|
auto_create |
1 |
Creare il database se i volumi sono vuoti. |
|
server_id |
2 |
Server master1, dovrebbe essere differente sull'applicazione remota |
|
rpl_mode |
master_and_slave |
master e slave |
Applicazione Web ridondante (due applicazioni identiche)

È possibile eseguire due applicazioni identiche sulla stessa griglia (ma su server distinti in modo che il guasto di un server influisce soltanto su una delle applicazioni), o su griglie differenti, purché l'indirizzo IP usato sia accessibile dalle due griglie. L'esempio di seguito mostra un'applicazione che usa un'appliance di database che è ance eseguita in modalità ridondante in modo che, in caso di guasto di un'applicazione, l'altra può intervenire senza perdita di dati.
Appliance in uso:
La richiesta del client arriva sul gateway in1. 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 di db si connette all'applicazione remota (che è una copia identica, l'unica differenza è il server_id del db e l'installazione di rete) per replicare il database. L'applicazione remota si connette all'appliance di db mediante repl_in gateway che è configurato per permettere la connessione soltanto da repl_out gateway dell'applicazione remota. Le appliance di db nelle due applicazioni sono eseguite nella configurazione master-master in modo che abbiamo sempre dati identici.
Esempio di configurazione di proprietà (le proprietà che non sono elencate dovrebbero essere lasciate ai loro valori predefiniti):
L'accesso Web a db è disponibile mediante il gateway di admin sulla porta 8080.
in1
|
Proprietà |
Valore |
note |
|
ip_addr |
1.2.3.4 |
Indirizzo IP pubblico dell'applicazione, deve essere lo stesso per entrambe le applicazioni. |
|
maschera di rete |
255.255.255.0 |
Maschera di rete per l'indirizzo IP pubblico dell'applicazione, deve essere lo stesso per entrambe le applicazioni. |
|
gateway |
1.2.3.254 |
Gateway per l'indirizzo IP pubblico dell'applicazione, deve essere lo stesso per entrambe le applicazioni. |
|
fover_mode |
simmetrico |
Eseguito in modalità simmetrica. |
|
fover_local_ip |
192.168.100.1 |
Indirizzo IP privato da usare per la comunicazione tra le appliance INSSLR nelle due applicazioni. Modificarlo su 192.168.100.2 sull'applicazione remota. |
|
fover_remote_ip |
192.168.100.2 |
Indirizzo IP remoto da usare per la comunicazione tra le appliance INSSLR nelle due applicazioni. Modificarlo su 192.168.100.1 sull'applicazione remota. |
|
fover_netmask |
255.255.255.0 |
Maschera di rete per fover_local_ip. |
db
|
Nome di 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: Soltanto una delle applicazioni è attiva in qualsiasi momento, l'altra è eseguita per il failover ed è usata quando l'applicazione attiva non riesce.
INSSLR supporta HTTP 1.0 e HTTP 1.1, ma se il client si identifica come MSIE, il supporto di HTTP 1.1 viene disattivato per quella connessione (per evitare i bug in alcune versioni di MSIE).
Se il client non è MSIE, INSSLR supporta HTTP 1.1 per il client (incluse le richieste multiple per capacità di sessione TCP), anche se il server di back-end supporta soltanto HTTP 1.0.
INSSLR supporta un IP esterno singolo e pertanto è possibile usare un unico certificato SSL.
Software open source e di terze parti utilizzato all'interno dell'appliance
INSSLR utilizza i seguenti pacchetti open source di terze parti oltre ai pacchetti open source di terze parti utilizzati dalla loro classe di base LUX6.
|
Software |
Versione |
Modificato |
License |
note |
|
PyXML |
0.8.4-19 |
No |
MIT e Python e ZPLv1.0 e BSD |
N/A |
|
heartbeat |
3.0.4-1 |
No |
LGPLv2 e GPLv2 |
N/A |
|
heartbeat-libs |
3.0.4-1 |
No |
LGPLv2 e GPLv2 |
N/A |
|
iptables |
1.4.7-5.1.el6_2 |
No |
GPLv2 |
N/A |
|
libgcrypt |
1.4.5-9.el6_2.2 |
No |
GPLv2 |
N/A |
|
libgpg-error |
1.7-4 |
No |
LGPLv2.1 |
N/A |
|
lighttpd |
1.4.18-1 |
No |
BSD |
N/A |
|
nginx |
0.7.62-1 |
Sì |
BSD |
N/A |
|
sudo |
1.7.4p5-13.el6_3 |
No |
BSD |
N/A |
|
telnet |
0.17-47 |
No |
BSD |
N/A |
|
Copyright © 2013 CA.
Tutti i diritti riservati.
|
|