Dernière version : 3.1.2-1

|
Aperçu rapide |
|
|
Catalogue |
System (Système) |
|
Catégorie |
Passerelles |
|
Volumes d'utilisateur |
Oui |
|
Min. mémoire |
192 Mo |
|
SE |
Linux |
|
Contraintes |
non |
L'appliance INSSLR est une passerelle de couche 7 pour les requêtes HTTP sécurisées. Elle convertit les requêtes en requêtes HTTP non codées. Vous pouvez l'utiliser lorsque le protocole HTTP sécurisé est nécessaire côté client, mais que l'infrastructure de traitement principale ne prend pas en charge SSL ou est dans l'incapacité de le prendre en charge, notamment :
Si elle est configurée pour, INSSLR prend également en charge l'authentification des certificats client. En cas d'authentification mutuelle SSL, le client et le serveur échangent leurs certificats et leurs clés publiques correspondantes. Le client peut contacter l'autorité de certification qui a publié le certificat du serveur et confirmer que le certificat est authentique avant de continuer. Le serveur peut faire de même.
Dans sa configuration par défaut, INSSLR agit comme une passerelle de couche 7 pour les requêtes HTTP sécurisées et fournit également un point d'entrée derrière un pare-feu pour le trafic réseau dans une application CA AppLogic®, que vous pouvez configurer avec une adresse IP statique accessible via Internet.
Si vous effectuez la configuration nécessaire, vous pouvez utiliser deux appliances INSSLR en mode de basculement pour fournir un service redondant. Dans ce cas, l'adresse IP d'INSSLR (configurée via ip_addr) ne s'exécute que sur l'un des noeuds et est automatiquement transférée vers l'autre appliance INSSLR en cas d'échec. Dans tous les cas, une seule appliance INSSLR est active à la fois. En mode de basculement, vous pouvez configurer INSSLR pour qu'elle s'exécute en plusieurs modes :
En cas d'exécution en mode redondant, INSSLR fournit une interface sur son terminal ctl pour :
INSSLR surveille constamment l'état d'intégrité de l'appliance principale connectée à son terminal http. Les contrôles de l'état d'intégrité réalisés par INSSLR peuvent inclure un simple test de connexion TCP ou une requête HTTP plus complexe (spécifiée sur le périmètre d'INSSLR). En cas d'échec de l'appliance connectée, INSSLR renvoie une erreur dans le tableau de bord de grille ou, si elle est exécutée en mode redondant et configurée pour, elle bascule vers l'appliance INSSLR de sauvegarde.
Pour prendre en charge des applications qui doivent s'afficher à une adresse IP unique pour plusieurs services, vous pouvez configurer INSSLR pour diriger le trafic non HTTP de façon transparente vers un terminal de sortie distinct. Pour les connexions de ce type, l'appliance agit comme un routeur NAT/pare-feu de couche 3.
Ressources
|
Ressource |
Minimum |
Maximum |
Valeur par défaut |
|
UC |
0.05 |
4 |
0.05 |
|
Mémoire |
192 Mo |
2 Go |
192 Mo |
|
Bande passante |
1 Mbit/s |
2 Gbits/s |
200 Mbits/s |
La taille de la mémoire par défaut pour la version de 2.7 de CA AppLogic® est passée à 128 Mo. La mémoire minimum reste de 64 Mo.
Notes
Terminaux
|
name |
dir |
Protocole |
description |
|
ctl |
in |
HTTP |
Recevez les notifications lorsque l'appliance est forcée de passer d'appliance principale à appliance de sauvegarde. Ce terminal n'accepte des connexions que si fover_mode n'est pas none. Une requête HTTP valide se présente comme suit : /?action=<active|passive|kill|status>. actif/passif fait passer l'appliance à l'état actif ou passif. Remarque : Il se peut que cette action échoue (si l'autre noeud n'est pas actif et que le basculement ne peut pas s'effectuer). Aucune erreur n'est renvoyée dans ce cas. Il appartient à l'application appelante de vérifier l'état de l'appliance en effectuant une requête /?action=status. pour vérifier l'état actuel de l'appliance (actif/passif). La commande kill provoque l'arrêt de l'appliance et le basculement sur l'autre noeud (s'il est en cours d'exécution). |
|
http |
sortie |
HTTP |
Les requêtes HTTPS et/ou HTTP reçues sur l'adresse IP externe configurée sont dirigées vers la sortie HTTP comme de simples requêtes HTTP sur le port HTTP standard 80. En plus des en-têtes HTTP fournis par le client, les requêtes transférées contiennent également les en-têtes informatifs suivants : X-Forwarded-For : adresse IP du client distant. Les scripts CGI côté serveur doivent utiliser cet en-tête au lieu de l'adresse IP distante. X-Forwarded-Proto : https Cet en-tête est présent si le client s'est connecté sur HTTPS. C'est à l'application principale qu'il revient d'utiliser cet en-tête pour établir une distinction entre les connexions HTTP et HTTPS. |
|
fs |
sortie |
NFS |
Fournit un montage NFS comme emplacement alternatif au volume de clé local pour le stockage des clés. Si le volume de clé local et une connexion au terminal fs sont fournis, l'appliance ne parvient pas à démarrer. Ce terminal peut rester déconnecté. |
|
aux |
sortie |
Indifférent |
Sortie pour les autres protocoles, si configurée. Reportez-vous aux propriétés l3_accept_*. |
|
nfy |
sortie |
HTTP |
Envoie des notifications en cas de basculement. Voir également fover_nfy_prefix. Ce terminal peut rester déconnecté. |
|
MON |
sortie |
CCE |
Envoie des statistiques de performances et d'utilisation des ressources. |
Propriétés
|
Nom |
Type |
Description |
|
ip_addr |
ip_owned |
Adresse IP externe de la passerelle. Cette propriété n'ayant pas de valeur par défaut, elle doit être définie. Valeur par défaut : vide. |
|
netmask |
Adr. IP |
Masque de réseau. Cette propriété n'ayant pas de valeur par défaut, elle doit être définie. Valeur par défaut : vide. |
|
gateway |
Adr. IP |
Passerelle par défaut pour le trafic sortant. Valeur par défaut : vide. |
|
dns1 |
Adresse IP |
Définit le serveur DNS principal. Ce champ peut être laissé vide si l'hôte distant est spécifié par son adresse IP. Dans le cas contraire, il doit être spécifié. La valeur par défaut est vide. |
|
dns2 |
Adresse IP |
Définit le serveur DNS secondaire à utiliser si le serveur DNS primaire ne répond pas. La valeur par défaut est vide (non utilisé). |
|
l7_accept |
chaîne |
Indique les types de trafic HTTP à accepter pour le transfert vers le terminal HTTP. Valeurs valides : https, http, both, none. Si la valeur est définie sur none, tout le trafic est redirigé uniquement en fonction des propriétés l3_accept_*. |
|
l3_accept_proto |
chaîne |
Spécifie les protocoles à renvoyer au terminal aux. Valeurs valides : none, tcp, udp, raw, all. Si la valeur est définie sur tcp ou udp, la propriété l3_accept_port peut être utilisée pour spécifier le port. Si elle est définie sur raw, la propriété l3_accept_port spécifie le numéro de protocole. Si la valeur est définie sur all, le trafic entrant sur l'interface externe est transféré vers le terminal aux. La propriété l7_accept est prioritaire sur celle-ci. Si vous définissez l7_accept sur une autre valeur que none, tous le trafic http(s) est envoyé au terminal http. Le reste du trafic va vers aux comme spécifié par cette propriété. |
|
l3_accept_port |
chaîne |
Liste de protocoles séparés par une virgule (ou un espace) pour accepter et acheminer le protocole spécifié par l3_accept_proto vers le terminal aux. Les protocoles de la liste peuvent être spécifiés en tant que numéros de port ou noms de protocole standard (par exemple, ftp, smtp etc. lorsque les ports tcp/udp ou gre, tcp, etc. sont spécifiés lors de l'utilisation de protocoles bruts). Vous pouvez également spécifier des plages de ports (1024:10000, 0:1024). Si aucune valeur n'est spécifiée, tous les ports du protocole spécifié sont transférés. Remarque : Si vous définissez l3_accept_proto sur raw, vous devez spécifier cette propriété qui, dans ce cas, spécifie le nombre de protocoles. Vous pouvez spécifier plusieurs protocoles raw, mais pas de plage. Par exemple, 20:30 n'est pas autorisé. Valeur par défaut : all |
|
allowed_hosts |
Chaîne |
Liste des hôtes et/ou des sous-réseaux autorisés à se connecter. Séparez plusieurs entrées à l'aide d'espaces ou de virgules. Exemple de format pris en charge : 192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0. Valeur par défaut : 0.0.0.0/0 (tout autorisé) |
|
key_on_fs |
chaîne |
Indique si les clés sont stockées sur un montage nfs via le terminal fs (on) ou sur le volume de clés local (off). Valeurs valides : on et off Valeur par défaut : off |
|
cert_file |
chaîne |
Nom de fichier (relatif à la racine du volume de données) du certificat de serveur que cette instance de passerelle doit présenter au client. Remarque : Un certificat valide doit être présent sur le volume de données configuré (voir Volumes ci-dessous) à l'emplacement spécifié par cette propriété si l7_accept est défini sur https ou both. Dans le cas contraire, INSSLR ne parvient pas à démarrer. Valeur par défaut : server.pem. |
|
unsafe_ssl |
chaîne |
Activez l'utilisation des chiffrements SSL non sécurisés à des fins de compatibilité avec des navigateurs hérités. La valeur par défaut disable désactive les chiffrements SSLv2 ainsi que certains autres cryptages SSLv3 et TLSv1 qui ne sont pas considérés sécurisés. Il est recommandé de laisser cette propriété définie sur Disabled, sauf si vous devez prendre en charge des sessions HTTPS pour des navigateurs hérités qui fonctionnent uniquement avec SSLv2. Lorsque la valeur est Activé, tous les chiffrements SSL disponibles sur le système (y compris SSLv2) peuvent être utilisés pendant les sessions https. Valeur par défaut : disabled. |
|
keepalive |
Entier |
Spécifiez la durée maximum de maintien de la connexion entre INSSLR et le client. La valeur est spécifiée en secondes. Valeur par défaut : 15 |
|
timeout |
Entier |
Spécifie le nombre de secondes pendant lequel INSSLR patiente pour obtenir la sortie du serveur principal. Si le serveur principal n'envoie pas de sortie pour le délai d'expiration en secondes, la connexion est fermée. |
|
max_request_size |
Entier |
Taille maximum (en Mo) d'une requête client. Augmentez-la si votre application doit gérer des téléchargements de clients volumineux. Valeur par défaut : 10. |
|
adv_config |
chaîne |
Ajoutez une configuration brute à insérer dans nginx conf dans les blocs d'emplacement aussi bien pour les écouteurs http que https (quel que soit celui activé). Par exemple, pour ajouter des en-têtes personnalisés, définissez adv_config sur proxy_set_header myport $proxy_port ;. Cette opération ajoute myport : 80 à la requête envoyée au serveur principal. adv_config peut être défini sur une instruction valide pour un bloc d'emplacement. (Pour plus d'informations, consultez la documentation de nginx.) Vous pouvez ajouter plusieurs lignes de configuration séparées par un point-virgule (;). Si elle est définie, cette propriété doit avoir une syntaxe nginx valide (à savoir, se terminer par un point-virgule) faute de quoi l'appliance ne parvient pas à démarrer. Valeur par défaut : vide. |
|
client_cert |
chaîne |
Permet l'authentification du certificat client. Valeurs valides : on, ask et off Si elle est définie sur on, l'authentification du certificat client est forcée et seuls les clients disposant de certificats valides peuvent faire aboutir leur requête dans INSSLR. Lorsqu'elle est définie sur ask, les clients doivent présenter des certificats, mais la connexion est établie même si aucun certificat valide n'est présenté. Valeur par défaut : off |
|
client_depth |
Entier |
Ampleur de la vérification à effectuer dans un certificat client en chaîne. Cette propriété n'a aucun effet si client_cert n'est pas défini. Les valeurs valides sont comprises entre 1 et 9. Valeur par défaut : 1 |
|
ca_list_client |
chaîne |
Fichier contenant une séquence de certificats d'autorité de certification au format PEM. Les noms des certificats répertoriés sont envoyés au client lors de la connexion. Le client est ainsi informé du nom du certificat qu'il doit envoyer. La même liste est utilisée pour vérifier le certificat client. Le nom de fichier correspond à la racine du volume clé monté ou la racine du montage nfs via le terminal fs et peut contenir un chemin d'accès, par exemple, path/to/keys/ca_list_client.pem. Valeur par défaut : ca_list_client.pem. |
|
cert_revocation_list |
chaîne |
Fichier contenant la liste des révocations de certificat (CRL) telle que générée par l'autorité de certification. Cette liste identifie les certificats clients révoqués par l'autorité de certification. Elle est consultée chaque fois qu'un certificat client est présenté à INSSLR et si un fichier révoqué est identifié, INSSLR envoie une réponse Erreur de certificat SSL au client. Tout comme pour ca_list_client, le nom de fichier correspond à la racine du volume clé monté ou la racine du montage nfs effectué via le terminal fs et peut contenir un chemin d'accès. Par exemple, path/to/keys/ca_list_client.pem. Valeur par défaut : vide |
Propriétés de contrôle de l'intégrité
|
name |
type |
description |
|
healthcheck_method |
Chaîne |
Méthode utilisée pour le contrôle de l'intégrité des serveurs Web principaux. |
|
healthcheck_url |
Chaîne |
URL utilisée pour effectuer le contrôle de l'intégrité des serveurs Web principaux dans les méthodes de contrôle de l'intégrité http_get et http_head. Il peut s'agir d'une URL complète (http://host.name/file/to/check/for.php) ou d'un chemin d'accès relatif (/file/to/check/for.php). Si l'adresse spécifiée est une URL, INSSLR utilise le protocole HTTP/1.1 pendant l'exécution des contrôles d'intégrité à l'aide du nom d'hôte extrait d'UR, dans un en-tête "Host:". Elle permet l'utilisation d'hôtes virtuels. Si l'adresse spécifiée est un chemin d'accès relatif, INSSLR utilise le protocole HTTP/1.0 et vérifie le document spécifié par cette propriété. |
|
healthcheck_agent |
Chaîne |
Chaîne utilisée comme identificateur d'agent pour les méthodes de contrôle de l'intégrité http_get et http_head. |
|
healthcheck_regexp |
Chaîne |
Chaîne de test utilisée avec le mode de contrôle de l'intégrité http_head et http_get. Des valeurs courtes ou communes (p. ex. OK) généreront probablement des faux positifs. Cette chaîne est une expression régulière Perl. Vous trouverez davantage d'informations sur les expressions régulières Perl ici. |
|
healthcheck_interval |
Entier |
Intervalle (exprimé en secondes) entre les contrôles d'intégrité des serveurs Web principaux. |
|
healthcheck_timeout |
Entier |
Durée maximum en secondes du contrôle de l'intégrité. A l'issue de ce délai, le contrôle est considéré comme ayant échoué et se termine. (Un nouveau contrôle démarre.) Valeur par défaut : 10. |
|
healthcheck_alert |
Entier |
Nombre d'échecs successifs du contrôle de l'intégrité avant qu'INSSLR ne commence à signaler des erreurs dans le tableau de bord de grille. Si ce nombre est défini sur 0, aucune erreur n'est signalée au tableau de bord (mais les contrôles de l'intégrité sont toujours activés). Ne définissez pas une valeur trop basse afin d'éviter les faux positifs au démarrage ou à l'arrêt de votre application. Reportez-vous également à fover_on_healthcheck si vous exécutez INSSLR en mode redondant et que vous souhaitez basculer vers le noeud de sauvegarde en cas d'échec du serveur principal. Valeur par défaut : 3. |
Propriétés avancées (utilisées dans les scénarios de basculement)
|
fover_mode |
Chaîne |
Mode de basculement. Les valeurs possibles sont none (aucun basculement), symmetric et asymmetric. |
|
fover_local_ip |
ip_owned |
Adresse IP locale à utiliser en mode de basculement pour communiquer avec l'autre appliance INSSLR. Il peut s'agir de n'importe quelle adresse IP disponible, y compris une adresse privée réservée (telle que définie par rfc1918). Cette adresse est utilisée uniquement pour surveiller l'état de l'autre appliance INSLLR. Elle doit être définie sur la même adresse IP que la propriété fover_remote_ip sur l'autre appliance INSSLR. Si vous avez défini la propriété fover_mode sur none, laissez ce champ vide. |
|
fover_remote_ip |
ip_owned |
Adresse IP distante de l'autre appliance INSSLR utilisée en mode de basculement. Important : Elle doit être définie sur la même adresse IP que la propriété fover_local_ip sur l'autre appliance INSSLR. Si vous avez défini la propriété fover_mode sur none, laissez ce champ vide. |
|
fover_netmask |
Adr. IP |
Masque de réseau pour fover_local_ip. |
|
fover_nfy_prefix |
Chaîne |
Préfixe de l'URL demandé en cas de basculement. L'URL demandée est la suivante : 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 et traverse le terminal nfy. |
|
fover_on_healthcheck |
Entier |
Spécifiez si INSSLR doit basculer sur le noeud de sauvegarde en cas d'échec du contrôle de l'intégrité sur le terminal. Si la valeur est définie sur une valeur autre que zéro, INSSLR bascule après le nombre d'échecs de contrôle d'intégrité successifs spécifiés. Ne définissez pas une valeur trop basse afin d'éviter les faux positifs au démarrage ou à l'arrêt de votre application. Reportez-vous également à healthcheck_alert si vous avez uniquement besoin des notifications en cas d'échecs. Valeur par défaut : 0 (désactivé). |
Volumes
|
name |
description |
|
clé |
Volume de données en lecture seule (espace réservé) contenant au minimum la clé de signature de serveur SSL. Le fichier doit être au format PEM. A moins que le nom de la propriété cert_file ne soit modifié, le certificat doit se trouver dans le répertoire racine du volume clé, nommé server.pem. |
Les messages suivants peuvent s'afficher dans le fichier journal de l'appliance ou dans le journal système du contrôleur de grille lorsque l'appliance ne parvient pas à démarrer :
Basculement d'applications
INSSLR détecte l'échec de l'autre application INSSLR en 10 secondes environ. Le basculement vers l'autre application prend 10 secondes supplémentaires. La durée totale entre l'échec de l'application et la reprise du trafic sur l'autre application est d'environ 20 secondes.
Taux de requêtes
INSSLR achemine pas moins de 3000 transactions (paires requête/réponse) par seconde, en fonction de la taille de document et de la bande passante réseau disponible.
Débit des données
INSSLR achemine pas moins de 7 Mo/seconde, en fonction de la taille de document et de la bande passante réseau disponible.
Connexions simultanées
Avec sa mémoire par défaut, INSSLR prend en charge pas moins de 500 requêtes en suspens simultanément (une requête en suspens étant une connexion TCP ouverte à partir du client, sur laquelle une ou plusieurs requêtes HTTP sont en cours mais pas terminées). La quantité maximum de connexions simultanées dépend de la mémoire disponible. Chaque supplément de mémoire de 16 Mo augmente le nombre de transactions http simultanées de 500. Par exemple, en cas d'utilisation du mode redondant, si vous voulez pouvoir traiter 2000 connexions simultanément, vous avez besoin de 100 Mo + 3*= 148 Mo. (La mémoire minimum pour l'exécution en mode redondant est de 100 Mo.)
Lorsqu'il est exécuté en mode redondant (fover_mode est défini), INSSLR déclenche des notifications lorsqu'il devient actif ou passif et inversement. Cette notification apparaît au démarrage du noeud actif ou lors d'un basculement. (Chaque noeud envoie une notification indiquant qu'il est devenu actif/passif.)
INSSLR envoie deux notifications :
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
Vous pouvez utiliser fover_nfy_prefix pour modifier l'emplacement du script distant invoqué et éventuellement ajouter des paramètres supplémentaires. Exemples de valeurs fover_nfy_prefix : /path/to/script.php?, /path/to/script.php?username=user&password=pass&.
Important :
INSSLR exécute un cronjob toutes les minutes pour vérifier les aspects suivants :
Si l'une des vérifications est exacte, un message d'erreur est envoyé au tableau de bord de grille. Si plusieurs tests échouent, un message reprenant toutes les erreurs sera publié dans le tableau de bord de grille. Chaque erreur ne sera signalée au tableau de bord de grille qu'une fois par heure. Aucune erreur n'est signalée durant les 5 premières minutes suivant le démarrage d'appliance (pour empêcher de fausses alarmes lorsque l'autre noeud dans la réplication n'a pas démarré).
Pour utiliser SSL, vous avez besoin du certificat signé et de la clé privée avec laquelle il a été codé. La clé et le certificat doivent être au format PEM et utiliser un fichier unique spécifié par la propriété cert_file.
Génération de certificats de serveur
CA AppLogic® permet de générer des certificats de serveur.
Pour générer des certificats de serveur
openssl genrsa -out privkey.pem 2048
Pour générer une clé protégée par mot de passe, utilisez la commande suivante. (Pour utiliser la clé avec INSSLR, vous avez besoin d'une clé sans mot de passe, si vous créez une clé protégée par mot de passe, vous devez d'abord supprimer le mot de passe avant de l'utiliser dans INSSLR.)
openssl genrsa -des3 -out privkey.pem 2048
Pour générer une requête de certificat, exécutez la commande suivante :
openssl req -new -key privkey.pem -out server.csr
Après avoir envoyé le fichier .csr à votre autorité de certification approuvée, vous recevrez en retour un certificat signé (fichier .crt) que vous pouvez utiliser.
openssl req -new -x509 -key privkey.pem -out server.crt -days 1095
Utilisation des certificats de serveur
Vous pouvez maintenant placer le certificat et la clé dans un fichier et l'utiliser dans INSSLR :
cat privkey.pem server.crt > server.pem
Si votre clé est protégée par un mot de passe, vous pouvez supprimer ce dernier en exécutant la commande suivante :
openssl rsa -in key_with_pass.pem -out privkey.pem
Utilisation des certificats de serveur apache+mod_ssl existants
Si vous avez un certificat existant que vous utilisez dans Apache, vous pouvez aussi l'utiliser dans INSSLR. Veillez à ce que la clé ne soit pas protégée par mot de passe (voir ci-dessus) et placez la clé privée et le certificat dans un fichier dans cet ordre.
Exemple :
cat privkey.pem server.csr > server.pem
Si vous utilisez un certificat en chaîne, vous devriez également inclure le certificat intermédiaire fourni par son émetteur. Placez la clé privée, le certificat et le certificat intermédiaire dans un fichier en respectant cet ordre.
Exemple :
cat privkey.pem server.csr sf_issuing.crt > server.pem
Important : La clé de signature du serveur est la preuve de l'identité de votre site Web. Votre site est vulnérable aussi parce qu'il n'est pas chiffré par mot de passe (de sorte que l'appliance puisse le lire sans votre assistance). Prenez les mesures nécessaires pour protéger le fichier clé, lors de son installation sur le volume de données. N'utilisez pas le même volume de données à d'autres fins et ne le rendez pas visible pour un serveur Web, par exemple, pour héberger des données accessibles sur le Web (pages HTML, scripts, etc.).
L'exemple suivant décrit comment créer votre propre autorité de certification et l'utiliser pour signer vos propres certificats à l'aide d'OpenSSL. Il a été testé à l'aide d'OpenSSL 0.9.8b, la même version que celle installée dans INSSLR.
Création d'une autorité de certification
Si vous disposez déjà de votre propre autorité de certification pour créer des certificats de serveur auto-signés, vous pouvez ignorer cette étape et utiliser cette autorité de certification. Lors de la création des instruments de l'autorité approuvée pour votre application, veillez à ce que l'environnement soit sécurisé.
Création d'une autorité de certification
mkdir CA mkdir CA/private
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
Important : La clé privée pour l'autorité de certification constitue la base de la sécurité pour l'application. Ne la placez donc pas à une endroit inapproprié et ne la partagez pas avec des tiers.
Création de certificats clients signés par l'autorité de certification
CA AppLogic® vous permet de créer des certificats clients signés par l'autorité de certification.
Création de certificats clients signés par l'autorité de certification
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
Mise en garde :
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
Création des fichiers de liste de l'autorité de certification utilisés par INSSLR
Révocation des certificats clients signés par l'autorité de certification
Pour révoquer un certificat client publié l'autorité de certification :
Dans lequel un exemple de "openssl.conf" est fourni ci-dessous et le paramètre "crl_reason" est l'un des suivants : unspecified, keyCompromise, CACompromise, affiliationChanged, superseded, cessationOfOperation, certificateHold ou removeFromCRL. Reason n'est pas sensible à la casse.
Pour regénérer la liste de révocation des certificats (CRL) :
Dans cet exemple, "crl.pem" est le fichier qui doit être fourni à INSSLR en tant que propriété "cert_revocation_list".
Exemple de fichier de configuration utilisé pour les exemples ci-dessus :
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
####################################################################
[ CA_default ]
dir = ./CA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = sha1 # which md to use.
preserve = no # keep passed DN ordering
policy = policy_anything
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
Création des fichiers de liste de l'autorité de certification utilisés par INSSLR
CA AppLogic® permet de créer des fichiers de liste de l'autorité de certification utilisés par INSSLR.
Création du fichier identifié par la propriété 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
En-têtes de certificats client
Si un client se connecte à INSSLR à l'aide de HTTPS, et s'il présente un certificat client, INSSLR ajoute les en-têtes suivants à la requête envoyée au serveur principal :
Il appartient à l'application d'utiliser ces en-têtes ou non. INSSLR transfère simplement ces informations sans effectuer aucune vérification (à l'exception de la signature et de l'exactitude du codage).
Pour fournir un accès http(s) à votre application, connectez le terminal http directement à l'appliance WEB.

Si vous avez besoin d'une application Web évolutive, reliez le terminal http à une appliance HALB.

Les exemples de configuration ne répertorient que les propriétés définies sur des valeurs autres que celles par défaut et n'incluent pas la configuration réseau (ip_addr, netmask, gateway).
|
Propriété |
Value (Valeur) |
Commentaires |
|
l7_accept |
http/https/both |
Spécifie le protocole l7 utilisé. Remarque : Si https ou both est spécifié, le volume clé doit contenir le certificat SSL comme spécifié par la propriété cert_file. |
Applications Web avec des services supplémentaires
Si votre application dispose d'autres services que http, vous pouvez utiliser INSSLR pour transférer le trafic http vers son terminal http et utiliser le terminal aux pour les autres services.

|
Propriété |
Valeur |
Notes |
|
l7_accept |
http/https/both |
Spécifie le protocole l7 utilisé. Remarque : Si https ou both est spécifié, le volume clé doit contenir le certificat SSL comme spécifié par la propriété cert_file. |
|
l3_accept_proto |
tcp |
Redirigez les ports TCP 25, 110 et 143 vers le terminal aux. |
|
l3_accept_port |
25,110,143 |
Redirigez les ports TCP 25, 110 et 143 vers le terminal aux. |
Applications Web avec plusieurs services supplémentaires
Si vous avez plusieurs services tcp/udp et le service http, vous pouvez utiliser INSSLR pour transférer le trafic http vers son terminal http et utiliser le terminal aux pour acheminer le reste du trafic vers PS8, qui achemine le trafic désiré vers les serveurs principaux.

|
Propriété |
Value (Valeur) |
Commentaires |
|
l7_accept |
http/https/both |
Spécifie le protocole l7 utilisé. Remarque : Si https ou both est spécifié, le volume clé doit contenir le certificat SSL comme spécifié par la propriété cert_file. |
|
l3_accept_proto |
all |
Redirigez vers le terminal aux tout le trafic IP (à l'exception d'icmp) qui n'est pas transféré au terminal http. |
Applications Web redondantes
Si vous devez fournir une application Web redondante, vous pouvez copier l'application et utiliser INSSLR pour fournir des fonctionnalités de basculement à l'adresse IP externe.
Application Web de sauvegarde
Si vous souhaitez uniquement une application de sauvegarde pour notifier les indisponibilités aux utilisateurs, vous pouvez utiliser INSSLR pour créer une application de sauvegarde qui requiert des ressources minimales.
Appliances en cours d'utilisation :
INSSLR sur l'application principale :
|
Propriété |
Valeur |
Notes |
|
ip_addr |
1.2.3.4 |
Adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
netmask |
255.255.255.0 |
Masque de réseau de l'adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
gateway |
1.2.3.254 |
Passerelle de l'adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
fover_mode |
asymmetric |
S'exécute en mode asymétrique car l'application de sauvegarde ne doit servir que lorsque la principale est arrêtée. |
|
fover_local_ip |
192.168.100.1 |
Adresse IP privée à utiliser pour la communication entre les appliances INSSLR dans les deux applications. L'adresse IP locale est inférieure à l'adresse distante de sorte que cette appliance est donc la principale et le reste tant qu'elle est en cours d'exécution. |
|
fover_remote_ip |
192.168.100.2 |
Adresse IP distante à utiliser pour la communication entre les appliances INSSLR dans les deux applications. |
|
fover_netmask |
255.255.255.0 |
Masque de réseau pour fover_local_ip. |
INSSLR sur l'application de sauvegarde :
|
Propriété |
Valeur |
Notes |
|
ip_addr |
1.2.3.4 |
Adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
netmask |
255.255.255.0 |
Masque de réseau de l'adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
gateway |
1.2.3.254 |
Passerelle de l'adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
fover_mode |
asymmetric |
S'exécute en mode asymétrique car l'application de sauvegarde ne doit servir que lorsque la principale est arrêtée. |
|
fover_local_ip |
192.168.100.2 |
Adresse IP privée à utiliser pour la communication entre les appliances INSSLR dans les deux applications. |
|
fover_remote_ip |
192.168.100.1 |
Adresse IP distante à utiliser pour la communication entre les appliances INSSLR dans les deux applications. |
|
fover_netmask |
255.255.255.0 |
Masque de réseau pour fover_local_ip. |
Application Web redondante (application unique)

Si vous souhaitez que votre application s'exécute en mode redondant sans créer de nouvelle application, vous pouvez simplement doubler les appliances qu'elle contient et les exécuter en mode redondant. Dans la mesure où cela implique d'utiliser (au moins) deux serveurs Web et deux appliances de base de données, ils sont tout utilisés en mode normal (moyennant leur modularité), mais chacun d'eux peut pour traiter l'application seule au cas d'échec des autres appliances. Si vous avez besoin d'une plus grande modularité, vous pouvez ajouter davantage d'appliances Web et de base de données. Dans cet exemple, la moitié des appliances (in1, sw1, web1, db1) s'exécutent dans un groupe de basculement et le reste (in2, sw2, web2, db2) dans un autre groupe de basculement pour que l'application puisse résister à une panne brutale du serveur. Cette application fournit de la redondance à très faible coût étant donné que toutes les appliances (à l'exception d'une appliance INSSLR et d'une appliance HALB qui requièrent très peu de ressources) sont dans un état actif et qu'aucune dépense n'est effectuée pour une application de sauvegarde qui s'exécute en cas d'échec de la principale.
in1
|
Propriété |
Valeur |
Notes |
|
ip_addr |
1.2.3.4 |
Adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
netmask |
255.255.255.0 |
Masque de réseau de l'adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
gateway |
1.2.3.254 |
Passerelle de l'adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
fover_mode |
symmetric |
S'exécute en mode symétrique. |
|
fover_local_ip |
192.168.100.1 |
Adresse IP privée à utiliser pour la communication entre les appliances INSSLR dans les deux applications. |
|
fover_remote_ip |
192.168.100.2 |
Adresse IP distante à utiliser pour la communication entre les appliances INSSLR dans les deux applications. |
|
fover_netmask |
255.255.255.0 |
Masque de réseau pour fover_local_ip. |
in2
|
Propriété |
Valeur |
Notes |
|
ip_addr |
1.2.3.4 |
Adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
netmask |
255.255.255.0 |
Masque de réseau de l'adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
gateway |
1.2.3.254 |
Passerelle de l'adresse IP publique de l'application. Doit être identique pour l'application primaire et celle de sauvegarde. |
|
fover_mode |
symmetric |
S'exécute en mode symétrique. |
|
fover_local_ip |
192.168.100.2 |
Adresse IP privée à utiliser pour la communication entre les appliances INSSLR dans les deux applications. |
|
fover_remote_ip |
192.168.100.1 |
Adresse IP distante à utiliser pour la communication entre les appliances INSSLR dans les deux applications. |
|
fover_netmask |
255.255.255.0 |
Masque de réseau pour fover_local_ip. |
db1
|
Nom de propriété |
Valeur |
Notes |
|
auto_create |
1 |
Crée la base de données si les volumes sont vides. |
|
server_id |
1 |
Master server 1 (doit être différent sur l'application distante) |
|
rpl_mode |
master_and_slave |
maître et esclave |
db2
|
Nom de propriété |
Valeur |
Notes |
|
auto_create |
1 |
Crée la base de données si les volumes sont vides. |
|
server_id |
2 |
Master server 1 (doit être différent sur l'application distante) |
|
rpl_mode |
master_and_slave |
maître et esclave |
Application Web redondante (deux applications identiques)

Vous pouvez exécuter deux applications identiques sur la même grille (mais sur des serveurs distincts pour que seule application soit affectée en cas d'échec de l'un des serveurs), ou sur des grilles différentes, pour autant que l'adresse IP que vous utilisez soit accessible par les deux grilles. L'exemple ci-dessous présente une application qui utilise une appliance de base de données qui s'exécute également en mode redondant pour qu'en cas d'échec d'une application, l'autre application prenne le relais sans perdre de données.
Appliances en cours d'utilisation :
Les requêtes client arrivent sur la passerelle in1. Cette dernière envoie les requêtes à l'équilibreur de charge web_lb, qui les transmet à un des serveurs Web web1 et web2. Les serveurs Web accèdent à la base de données db. L'appliance de base de données se connecte à l'application distante (qui est une copie identique, la seule différence étant l'ID de serveur de la base de données et la configuration réseau) pour répliquer la base de données. L'application distante se connecte à l'appliance de base de données via la passerelle repl_in qui est configurée pour n'autoriser la connexion que de la passerelle repl_out de l'application distante. Les appliances de base de données des deux applications s'exécutent dans une configuration maître-maître afin que leurs données soient toujours identiques.
Exemple de configuration de propriétés (les propriétés qui ne figurent pas dans les tableaux ci-dessous doivent être définies sur leurs valeurs par défaut) :
L'accès Web à la base de données est disponible à l'aide de la passerelle admin sur le port 8080.
in1
|
Propriété |
Valeur |
Notes |
|
ip_addr |
1.2.3.4 |
Adresse IP publique de l'application. Elle doit être identique pour les deux applications. |
|
netmask |
255.255.255.0 |
Masque de réseau pour l'adresse IP publique de l'application. Il doit être identique pour les deux applications. |
|
gateway |
1.2.3.254 |
Passerelle pour l'adresse IP publique de l'application. Elle doit être identique pour les deux applications. |
|
fover_mode |
symmetric |
S'exécute en mode symétrique. |
|
fover_local_ip |
192.168.100.1 |
Adresse IP privée à utiliser pour la communication entre les appliances INSSLR dans les deux applications. Modifiez-la en 192.168.100.2 sur l'application distante. |
|
fover_remote_ip |
192.168.100.2 |
Adresse IP distante à utiliser pour la communication entre les appliances INSSLR dans les deux applications. Modifiez-la en 192.168.100.1 sur l'application distante. |
|
fover_netmask |
255.255.255.0 |
Masque de réseau pour fover_local_ip. |
db
|
Nom de propriété |
Valeur |
Notes |
|
auto_create |
1 |
Crée la base de données si les volumes sont vides. |
|
error_log_filename |
db.error |
Nom de fichier journal d'erreurs qui doit être stocké sur le volume de données des journaux. |
|
error_log_level |
error |
Niveau de journalisation des erreurs |
|
server_id |
1 |
Serveur maître 1. Il doit être différent sur la deuxième application. |
|
rpl_mode |
master_and_slave |
maître et esclave |
Important : Seule une des applications doit être active. L'autre s'exécute simplement pour le basculement et est utilisée en cas d'échec de l'application active.
INSSLR prend en charge HTTP 1.0 et HTTP 1.1, mais si le client s'identifie lui-même comme MSIE, la prise en charge de HTTP 1.1 est désactivée pour cette connexion (afin d'éviter les bogues dans certaines versions de MSIE).
Si le client n'est pas MSIE, INSSLR prend en charge HTTP 1.1 pour le client (y compris la prise en charge de requêtes multiples par session TCP), même si le serveur principal ne prend en charge que HTTP 1.0.
INSSLR ne prend en charge qu'une seule adresse IP externe. Par conséquent, vous ne pouvez utiliser qu'un seul certificat SSL.
Logiciels tiers et libres utilisés au sein de l'appliance
INSSLR utilise les packages tiers libres suivants en plus des packages tiers libres utilisés par sa classe de base LUX6.
|
Logiciel |
Version |
Modifié |
Licence |
Notes |
|
PyXML |
0.8.4-19 |
Non |
MIT, Python, ZPLv1.0 et BSD |
N/D |
|
heartbeat |
3.0.4-1 |
Non |
LGPLv2 et GPLv2+ |
N/D |
|
heartbeat-libs |
3.0.4-1 |
Non |
LGPLv2 et GPLv2+ |
N/D |
|
iptables |
1.4.7-5.1.el6_2 |
Non |
GPLv2 |
N/D |
|
libgcrypt |
1.4.5-9.el6_2.2 |
Non |
GPLv2 |
N/D |
|
libgpg-error |
1.7-4 |
Non |
LGPLv2.1 |
N/D |
|
lighttpd |
1.4.18-1 |
Non |
BSD |
N/D |
|
nginx |
0.7.62-1 |
Oui |
BSD |
N/D |
|
sudo |
1.7.4p5-13.el6_3 |
Non |
BSD |
N/D |
|
telnet |
0.17-47 |
Non |
BSD |
N/D |
|
Copyright © 2013 CA.
Tous droits réservés.
|
|