Dernière version : 1.0.1-2

|
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 INSSLR2 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 utiliser cette fonctionnalité pour prendre en charge les connexions HTTP sécurisées sur le client.
Toutefois, l'infrastructure de traitement d'arrière-plan ne peut pas prendre en charge SSL :
Si elle est configurée pour, INSSLR2 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 et/ou le serveur peuvent contacter l'autorité de certification (CA) qui a publié le certificat et confirmer son authenticité avant de continuer.
Dans sa configuration par défaut, INSSLR2 est utilisée comme une passerelle de couche 7 pour des demandes HTTP sécurisées. Elle fournit également un point d'entrée derrière un pare-feu pour le trafic réseau dans une application. Vous pouvez la configurer avec une adresse IP statique accessible via Internet.
Si vous effectuez la configuration nécessaire, vous pouvez utiliser deux appliances INSSLR2 en mode de basculement pour fournir un service redondant. Dans ce cas, l'adresse IP d'INSSLR2 ne s'exécute que sur l'un des noeuds et est automatiquement transférée vers l'autre appliance INSSLR2 en cas d'échec. Une seule appliance INSSLR2 est active à la fois. En mode de basculement, vous pouvez configurer INSSLR2 pour qu'elle s'exécute en plusieurs modes :
En cas d'échec ou d'arrêt du noeud principal, l'appliance de sauvegarde devient active. Lorsque l'appliance principale redevient disponible, elle reprend l'adresse IP et devient active. L'appliance principale est celle disposant de l'adresse IP la plus basse (comparaison de chaîne), telle que définie dans l'interface fover.
Lorsque la première appliance redevient disponible, elle ne reprend pas automatiquement l'adresse IP.
En cas d'exécution en mode redondant, INSSLR2 fournit une interface sur son terminal ctl pour :
INSSLR2 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 INSSLR2 peuvent inclure un simple test de connexion TCP ou une requête HTTP plus complexe spécifiée dans le périmètre d'INSSLR2.
En cas d'échec de l'appliance connectée, INSSLR2 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 INSSLR2 de sauvegarde.
Pour prendre en charge des applications qui doivent s'afficher à une adresse IP unique pour plusieurs services, configurez INSSLR2 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 |
Notes
Terminaux
|
Nom |
Direction |
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 demande HTTP valide qui rend l'appliance active ou passive est : /?action=<active|passive|kill|status> 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 la requête suivante : /?action=status La valeur status renvoie l'état actif ou passif actuel de l'appliance. La valeur kill effectue un arrêt forcé de l'appliance. Si l'autre noeud est en cours d'exécution, il prend le relais. |
|
in |
in |
indifférent |
Accepte tout trafic entrant. Vous pouvez configurer l'interface connectée au terminal à l'aide de l'onglet Interfaces de l'éditeur de Configuration de l'application. |
|
fover |
in |
raw |
Interface de basculement pour les communications internes entre deux instances INSSLR2. Vous pouvez configurer l'interface connectée au terminal à l'aide de l'onglet Interfaces de l'éditeur de Configuration de l'application. |
|
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 :
|
|
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 non connecté. |
|
aux |
sortie |
indifférent |
Sortie pour les autres protocoles, si configurée. Pour obtenir des informations supplémentaires, consultez les propriétés l3_accept_*. |
|
nfy |
sortie |
http |
Envoie des notifications en cas de basculement. Voir également fover_nfy_prefix. Ce terminal peut rester non connecté. |
|
MON |
sortie |
cce |
Envoie des statistiques de performances et d'utilisation des ressources. |
Propriétés
|
Nom |
Type |
Description |
|
dns1 |
Adr. IP |
Définit le serveur DNS principal. Si l'hôte distant est spécifié par son adresse IP, dns1 peut rester vide. Dans le cas contraire, vous devez spécifier une valeur pour dns1. Valeur par défaut : vide. |
|
dns2 |
Adr. IP |
Définit le serveur DNS secondaire à utiliser si le serveur DNS principal ne répond pas. Valeur par défaut : vide. |
|
l7_accept |
enum |
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_*. Valeur par défaut : both |
|
l3_accept_proto |
enum |
Spécifie les protocoles à renvoyer au terminal aux. Valeurs valides : none, tcp, udp, raw, all. 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, tout le trafic entrant sur l'interface externe est transféré vers le terminal aux. La propriété l7_accept à priorité sur celle-ci. Remarque : Si vous définissez l7_accept sur une autre valeur que none, tout le trafic http(s) est envoyé au terminal http et le trafic restant au terminal aux, comme spécifié par la propriété. Valeur par défaut : none |
|
l3_accept_port |
Chaîne |
Liste de protocoles séparés par une virgule ou un espace pour accepter et router le trafic selon le protocole spécifié par l3_accept_proto vers le terminal aux. Les protocoles de cette liste peuvent être spécifiés sous la forme de numéros de port ou de noms de protocole standard, comme FTP et SMTP lorsque vous spécifiez des ports TCP ou UDP, ou GRE et TCP lorsque vous utilisez des protocoles bruts. Vous pouvez également spécifier des plages de ports 1024:10000 ou 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. Si vous définissez l7_accept sur https ou both, un certificat valide doit être présent à l'emplacement spécifié sur le volume de données par cette propriété. Dans le cas contraire, un échec du démarrage de INSSLR2 se produit. Pour obtenir des informations supplémentaires, consultez la rubrique Volumes. 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 Désactivé désactive les chiffrements SSLv2 ainsi que certains autres chiffrements SSLv3 et TLSv1 qui ne sont pas considérés comme 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 peuvent être utilisés pendant les sessions HTTPS. Cela inclut le chiffrement SSLv2. Valeur par défaut : Désactivé Cette propriété a été ajoutée dans la version 1.2.1. |
|
keepalive |
Nombre entier |
Spécifie la durée maximum de maintien de la connexion entre INSSLR2 et le client. Le paramètre est spécifié en secondes. Valeur par défaut : 15 |
|
timeout |
Nombre entier |
Spécifie le nombre de secondes pendant lequel INSSLR2 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. Par défaut : 300 |
|
max_request_size |
Nombre entier |
Taille maximum en Mo d'une demande 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 nginx. Vous pouvez ajouter plusieurs lignes de configuration séparées par un point-virgule (;). Remarque : Si elle est définie, cette propriété doit avoir une syntaxe nginx valide (finir 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 INSSLR2. 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 |
Nombre 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 d'autorité de certification 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é à INSSLR2 et si un fichier révoqué est identifié, INSSLR2 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, tel que : path/to/keys/ca_list_client.pem. Valeur par défaut : vide |
Propriétés de contrôle de l'intégrité
|
Nom |
Type |
Description |
|
healthcheck_method |
Chaîne |
Méthode utilisée pour le contrôle de l'intégrité des serveurs Web principaux.
Valeur par défaut : off |
|
healthcheck_url |
Chaîne |
URL utilisée pour effectuer le contrôle de l'intégrité des serveurs Web d'arrière-plan 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, INSSLR2 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, INSSLR2 utilise le protocole HTTP/1.0 et vérifie le document spécifié par cette propriété. Valeur par défaut : / |
|
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. Valeur par défaut : INSSLR2-health-check |
|
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. Les valeurs courtes ou communes, comme OK, généreront probablement des faux positifs. Cette chaîne est une expression régulière Perl. Valeur par défaut : ^HTTP\/1\.\d\s+200 |
|
healthcheck_interval |
Nombre entier |
Intervalle entre les contrôles d'intégrité des serveurs Web d'arrière-plan. La valeur est spécifiée en secondes. Valeur par défaut : 60 secondes |
|
healthcheck_timeout |
Nombre 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 |
Nombre entier |
Nombre d'échecs successifs du contrôle de l'intégrité avant qu'INSSLR2 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. Si vous exécutez INSSLR2 en mode redondant et que vous souhaitez basculer vers le noeud de sauvegarde en cas d'échec du serveur d'arrière-plan, reportez-vous à fover_on_healthcheck pour plus d'informations. Par défaut : 3 |
Propriétés avancées utilisées dans les scénarios de basculement
|
Nom |
Type |
Description |
|
fover_mode |
Chaîne |
Mode de basculement. Valeurs valides : none (aucun basculement), symmetric et asymmetric Lorsqu'il est défini sur none, INSSLR2 fonctionne juste comme une appliance INSSLR2 et ne fournit aucune fonctionnalité de basculement. Lorsqu'il est défini sur symmetric, INSSLR2 est exécuté en mode de basculement symétrique. Vous devez disposer de deux appliances INSSLR2, exécutées en mode de basculement symétrique. Lorsqu'il est défini sur asymmetric, INSSLR2 est exécuté en mode de basculement asymétrique. Vous devez disposer de deux appliances INSSLR2, exécutées en mode de basculement asymétrique. Remarque : Lorsqu'elles s'exécutent en mode de basculement, les deux appliances doivent avoir fover_mode défini sur la même valeur. Valeur par défaut : none |
|
fover_remote_ip |
Adr. IP |
Adresse IP distante de l'autre appliance INSSLR2 utilisée en mode de basculement. Remarque : Si vous avez défini la propriété fover_mode sur none, laissez ce champ vide. Valeur par défaut : vide. |
|
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_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 et passe par le terminal nfy. Valeur par défaut : ? |
|
fover_on_healthcheck |
Nombre entier |
Spécifie si INSSLR2 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, INSSLR2 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. Si vous avez uniquement besoin des notifications en cas d'échecs, reportez-vous à healthcheck_alert. Valeur par défaut : 0 (désactivé). |
Volumes
|
Nom |
Description |
|
clé |
Volume de données en lecture seule nommé 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 :
INSSLR2 détecte l'échec de INSSLR2 dans les 10 secondes et requiert 10 autres secondes supplémentaires pour basculer vers l'autre application. La durée totale entre l'échec de l'application et la reprise du trafic sur l'autre application est d'environ 20 secondes.
INSSLR2 n'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.
INSSLR2 n'achemine pas moins de 7 Mo/seconde, en fonction de la taille de document et de la bande passante réseau disponible.
Avec sa mémoire par défaut, INSSLR2 prend en charge pas moins de 500 demandes en attente simultanément Une demande en attente étant une connexion TCP ouverte à partir du client, sur laquelle une ou plusieurs demandes 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 2 000 connexions simultanément, vous avez besoin de 100 Mo + 3*16= 148 Mo. La mémoire minimum requise pour l'exécution en mode redondant est de 100 Mo.
Lorsqu'elle est exécutée en mode redondant (fover_mode est défini), INSSLR2 déclenche des notifications lorsqu'elle devient active ou passive. Cela se produit lors du démarrage du noeud actif ou lors d'un basculement. Chaque noeud envoie une notification informant de son statut actif ou passif.
INSSLR2 envoie deux notifications :
L'URL demandée est la suivante :
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
Vous pouvez utiliser fover_nfy_prefix pour modifier l'emplacement du script distant invoqué et/ou ajouter des paramètres supplémentaires.
Exemples de valeurs pour fover_nfy_prefix :
/path/to/script.php?, /path/to/script.php?username=user&password=pass&.
Remarques :
INSSLR2 exécute un cronjob toutes les minutes pour vérifier les aspects suivants :
Si l'une des vérifications est vraie, un message d'erreur est envoyé au tableau de bord de grille. Si plusieurs tests échouent, un message reprenant toutes les erreurs est publié dans le tableau de bord de la grille.
Chaque erreur ne sera signalée dans le tableau de bord de la grille qu'une fois par heure. Aucune erreur n'est signalée durant les 5 premières minutes après le démarrage de l'appliance. Cela permet de n'obtenir aucune fausse alarme tant que 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é chiffré. 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
Vous pouvez générer un certificat de serveur qui peut être signé par une autorité de certification approuvée en payant des frais ou créer un certificat autosigné.
Procédez comme suit :
openssl genrsa -out privkey.pem 2048
Vous pouvez également générer une clé protégée par mot de passe à l'aide de la commande suivante. Toutefois, si vous créez une telle clé, vous devez supprimer le mot de passe avant de l'utiliser dans INSSLR2. INSSLR2 requiert une clé sans mot de passe.
openssl genrsa -des3 -out privkey.pem 2048
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.
Exécutez la commande suivante :
openssl req -new -x509 -key privkey.pem -out server.crt -days 1095
Utilisation des certificats de serveur
Vous pouvez placer le certificat et la clé dans un fichier et l'utiliser dans INSSLR2 en exécutant la commande suivante :
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
INSSLR2 vous permet d'utiliser le certificat existant utilisé dans Apache. Vérifiez que la clé n'est pas protégée par mot de passe en suivant les étapes mentionnées ci-avant, puis placez le certificat privé et la clé dans un fichier unique.
Par exemple :
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 unique dans cet ordre.
Par exemple :
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 peut le lire sans votre assistance.
Lorsque vous l'installez sur le volume de données, prenez des mesures pour protéger le fichier de clé. 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 INSSLR2.
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é.
Important : La clé privée pour l'autorité de certification est la base de l'approbation pour l'application. Ne la perdez pas et ne la fournissez à aucun autre parti.
Procédez comme suit :
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
Création de certificats clients signés par l'autorité de certification
Vous pouvez créer des certificats clients signés par une autorité de certification.
Procédez comme suit :
openssl genrsa -out clientA_privkey.pem 2048
Pour créer une clé protégée par mot de passe, utilisez le commutateur -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
Remarques :
Par exemple :
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 INSSLR2
Révocation des certificats clients signés par l'autorité de certification
Pour révoquer un certificat client publié par l'autorité de certification, exécutez la commande :
openssl ca -config openssl.conf -revoke clientB.cer -crl_reason keyCompromise
Dans laquelle un exemple de fichier openssl.conf est affiché 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) :
openssl ca -config openssl.conf -gencrl -out CA/crl.pem
Dans cet exemple, crl.pem est le fichier qui doit être fourni à INSSLR2 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 INSSLR2
Vous pouvez créer des fichiers de liste de l'autorité de certification utilisés par INSSLR2.
Pour créer un fichier identifié par la propriété ca_list_client :
cat CA/private/CA_key.pem CA/CA_cert.pem > ca_list_client.pem
Si vous le souhaitez, le certificat de serveur INSSLR2, tel que server.pem, peut également être créé de la même manière que les certificats de client et signés par l'autorité de certification créée. N'utilisez pas de mot de passe pour ce certificat.
Tools > Options > View Certificates > Your Certificates > Import. Faites pointer le navigateur sur l'adresse IP d'INSSLR2.
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 à INSSLR2 à l'aide de HTTPS et s'il présente un certificat client, INSSLR2 ajoute les en-têtes suivants à la requête renvoyée au serveur d'arrière-plan :
Il est de la responsabilité de l'application d'utiliser ou pas ces en-têtes. INSSLR2 transfère simplement ces informations sans effectuer aucune vérification, à l'exception de la signature et de l'exactitude du chiffrement.
Applications Web
Pour fournir un accès http(s) à votre application, connectez le terminal http directement à l'appliance WEB.

Pour une application Web évolutive, connectez le terminal HTTP à une appliance HALB par l'intermédiaire d'un crochet.

Les exemples de configuration ne reprennent que les propriétés définies sur des valeurs autres que celles par défaut.
|
Nom |
Type |
Description |
|
17_accept |
http/https/both |
Spécifie le protocole l7 utilisé. 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 INSSLR2 pour transférer le trafic http vers son terminal http et utiliser le terminal aux pour les autres services.

|
Propriété |
Valeur |
Notes |
|
17_accept |
http/https/both |
Spécifie le protocole l7 utilisé. 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 des services supplémentaires multiples
Si vous avez plusieurs services TCP/UDP et HTTP, vous pouvez utiliser INSSLR2 pour transférer le trafic HTTP vers son terminal HTTP et utiliser le terminal aux pour transférer le trafic restant à PS8. PS8 transfère alors le trafic restant aux serveurs d'arrière-plan.

|
Propriété |
Valeur |
Notes |
|
17_accept |
http/https/both |
Spécifie le protocole l7 utilisé. 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 |
Redirige vers le terminal aux tout le trafic IP, à l'exception d'icmp, qui n'est pas transféré au terminal http. |
Applications Web redondantes
Pour fournir une application Web redondante, copiez l'application et utiliser INSSLR2 pour fournir des fonctionnalités de basculement à l'adresse IP externe.
Remarque : Si deux appliances INSSLR2 dans la même application sont configurées pour s'exécuter en mode redondant, un message d'avertissement s'affiche lorsque vous configurez la même adresse IP sur deux interfaces différentes. Ignorez cette erreur.
Application Web de sauvegarde
Si vous souhaitez uniquement une application de sauvegarde pour notifier les indisponibilités aux utilisateurs, vous pouvez utiliser INSSLR2 pour créer une application de sauvegarde qui requiert des ressources minimales.
Appliances en cours d'utilisation :
INSSLR2 sur l'application principale :
|
Propriété |
Valeur |
Notes |
|
fover_mode |
asymmetric |
S'exécute en mode asymétrique car l'application de sauvegarde ne doit servir que lorsque la principale est hors service. |
|
fover_remote_ip |
192.168.100.2 |
Adresse IP distante utilisée pour les communications entre les appliances INSSLR2 dans les deux applications. |
INSSLR2 sur l'application de sauvegarde :
|
Propriété |
Valeur |
Notes |
|
fover_mode |
asymmetric |
S'exécute en mode asymétrique car l'application de sauvegarde ne doit servir que lorsque la principale est hors service. |
|
fover_remote_ip |
192.168.100.1 |
Adresse IP distante utilisée pour les communications entre les appliances INSSLR2 dans les deux applications. |
Remarque : Vous pouvez configurer les attributs de l'interface connectée au terminal fover à l'aide de l'onglet Interfaces dans l'éditeur Configuration de l'application. Par exemple, les propriétés fover_local_ip et fover_netmask.
Application Web redondante dans une application unique
Pour exécuter votre application en mode redondant sans créer une application, vous pouvez doubler les appliances et les exécuter en mode redondant. Dans la mesure où cela implique d'utiliser deux serveurs Web et deux appliances de base de données au minimum, ils sont tous utilisés en mode normal et fournissent ainsi la modularité attendue. Toutefois, chacun d'entre eux peut servir l'application seule en cas d'échec de l'autre appliance.
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 à un arrêt brutal du serveur. Cette application fournit de la redondance à très faible coût étant donné que toutes les appliances (à l'exception d'une appliance INSSLR2 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 |
|
fover_mode |
symmetric |
S'exécute en mode symétrique. |
|
fover_remote_ip |
192.168.100.2 |
Adresse IP distante utilisée pour les communications entre les appliances INSSLR2 dans les deux applications. |
in2
|
Propriété |
Valeur |
Notes |
|
fover_mode |
symmetric |
S'exécute en mode symétrique. |
|
fover_remote_ip |
192.168.100.1 |
Adresse IP distante utilisée pour les communications entre les appliances INSSLR2 dans les deux applications. |
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 |
Serveur maître 1. Il 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 |
1 |
Master server 1 (doit être différent sur l'application distante) |
|
rpl_mode |
master_and_slave |
Maître et esclave |
Application Web redondante comprenant deux applications identiques.
Vous pouvez exécuter deux applications identiques sur la même grille, mais sur des serveurs distincts ou sur des grilles différentes, si l'adresse IP est accessible à partir des deux grilles. En cas d'échec d'un serveur, cela permet de n'affecter qu'une application.
Remarque : Si deux appliances INSSLR2 dans la même application sont configurées pour s'exécuter en mode redondant, un message d'avertissement s'affiche lorsque vous configurez la même adresse IP sur deux interfaces différentes. Ignorez cette erreur.
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. En cas d'échec d'une application, l'autre application prend le relais sans perdre de données.

Appliances en cours d'utilisation :
Les demandes client arrivent sur la passerelle insslr. Cette dernière envoie les demandes à l'équilibreur de charge web_lb, qui les transmet à un des serveurs Web, web1 ou web2.
Les serveurs Web accèdent à la base de données db. L'appliance de base de données se connecte à l'application distante. Pour permettre la réplication des données, l'application distante est une copie identique, la seule différence étant l'ID de serveur de la base de données et la configuration réseau.
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é
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.
insslr
|
Propriété |
Valeur |
Notes |
|
fover_mode |
symmetric |
S'exécute en mode symétrique. |
|
fover_remote_ip |
192.168.100.2 |
Adresse IP distante à utiliser pour la communication entre les appliances INSSLR2 dans les deux applications. Modifiez-la en 192.168.100.1 sur l'application distante. |
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 seulement pour le basculement et est utilisée en cas d'échec de l'application active.
Remarques :
INSSLR2 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 |
N/D |
|
|
heartbeat |
3.0.4-1 |
Non |
N/D |
|
|
heartbeat-libs |
3.0.4-1 |
Non |
N/D |
|
|
iptables |
1.4.7-5.1.el6_2 |
Non |
N/D |
|
|
libgcrypt |
1.4.5-9.el6_2.2 |
Non |
GPLv2 |
N/D |
|
libgpg-error |
1.7-4 |
Non |
N/D |
|
|
lighttpd |
1.4.18-1 |
Non |
N/D |
|
|
nginx |
0.7.62-1 |
Oui |
N/D |
|
|
sudo |
1.7.4p5-13.el6_3 |
Non |
N/D |
|
|
telnet |
0.17-47 |
Non |
N/D |
|
Copyright © 2013 CA.
Tous droits réservés.
|
|