Última versión: 1.0.1-2

|
Vista rápida |
|
|
Catálogo |
Sistema |
|
Categoría |
Puertas de enlace |
|
Volúmenes de usuario |
yes |
|
Memoria mín. |
192 MB |
|
SO |
Linux |
|
Restricciones |
no |
El dispositivo INSSLR2 es una puerta de enlace de 7 niveles para solicitudes de HTTP seguras. Convierte las solicitudes en solicitudes HTTP no codificadas. Se puede utilizar esta funcionalidad para que sea compatible con HTTP seguro en el lado del cliente.
Sin embargo, la infraestructura de procesamiento de back-end no es compatible con SSL, incluidas las siguientes características:
Si se configura, INSSLR2 también es compatible con la autenticación de certificados de cliente. En caso de autenticación SSL mutua, tanto el cliente como el servidor intercambian sus certificados y las claves públicas correspondientes. El cliente se puede poner en contacto con la autoridad certificadora (CA) que emitió el certificado del servidor y confirmar que el certificado sea auténtico antes de continuar.
En su configuración predeterminada, INSSLR2 actúa como puerta de enlace de 7 niveles para solicitudes HTTP seguras. También proporciona un punto de entrada de cortafuegos para el tráfico de red en una aplicación. Esto se puede configurar con una dirección IP estática accesible desde Internet.
Si se configuran, se pueden usar dos dispositivos INSSLR2 en modo de conmutación por error para proporcionar un servicio redundante. En este caso, la dirección IP de INSSLR2 se ejecuta solamente en uno de los nodos y se transfiere automáticamente al otro dispositivo INSSLR2 en caso de error. Solamente uno de los dispositivos de INSSLR2 está activo durante un tiempo. Al ejecutarse en modo de conmutación por error se puede configurar INSSLR2 de modo que se ejecute en varios modos:
Si el nodo primario produce un error o se detiene, el dispositivo de copia de seguridad se activará. Cuando el dispositivo primario vuelva a estar disponible, asumirá la dirección IP y se activará. El dispositivo primario es el que tiene la dirección IP más baja (comparación de cadenas), como se haya establecido en la interfaz de fover.
Cuando el primer dispositivo vuelve a estar disponible, no asume automáticamente la dirección IP.
Al ejecutarse en modo redundante, INSSLR2 proporciona una interfaz en su terminal ctl para:
INSSLR2 constantemente controla el estado del dispositivo de back-end conectado a su terminal http. Los controles de estado realizados por INSSLR2 pueden incluir una comprobación de la conexión TCP sencilla o una solicitud HTTP más compleja (especificada en el límite de INSSLR2).
En caso de error del dispositivo conectado, INSSLR2 comunica un error al cuadro de mandos del grid o, si está en modo redundante y configurado para hacerlo, hace una conmutación por error al dispositivo INSSLR2 de respaldo.
Para ser compatible con aplicaciones que tienen que aparecer en una sola dirección IP para más de un servicio, se puede configurar INSSLR2 para dirigir tráfico no HTTP de forma transparente a un terminal de salida aparte. Para este tipo de conexiones, el dispositivo actúa como un enrutador de cortafuegos/NAT de capa 3.
Recursos
|
Recurso |
Mínimo |
Máximo |
Predeterminado |
|
CPU |
0.05 |
4 |
0.05 |
|
Memoria |
192 MB |
2 GB |
192 MB |
|
Ancho de banda |
1 Mbps |
2 Gbps |
200 Mbps |
Notas
Terminales
|
Nombre |
Dirección |
Protocolo |
Descripción |
|
ctl |
in |
http |
Recibe notificaciones que obliga al dispositivo a convertirse en primario/copia de seguridad. Este terminal acepta conexiones solamente si fover_mode no está establecido como "none". Una solicitud HTTP que hace que el dispositivo se convierta en activo o pasivo: /?action=<active|passive|kill|status> Si el otro nodo no está activo y no se puede completar la conmutación por error, es posible que esta acción no se realice correctamente y que no se devuelva ningún error. La aplicación que llama es la encargada de comprobar el estado del dispositivo; para ello realiza la siguiente solicitud: /?action=status el estado devuelve el estado activo o pasivo actual del dispositivo. kill fuerza el apagado del dispositivo. lo que hace que el otro nodo entre en funcionamiento (si se está ejecutando). |
|
in |
in |
Cualquiera |
Acepta todo el tráfico de entrada. Se puede configurar la interfaz conectada a este terminal utilizando la ficha Interfaces del editor de configuración de la aplicación. |
|
fover |
in |
raw |
Interfaz de conmutación por error para la intercomunicación entre dos instancias de INSSLR2. Se puede configurar la interfaz conectada a este terminal utilizando la ficha Interfaces del editor de configuración de la aplicación. |
|
http |
Saliente |
http |
Las solicitudes HTTPS o HTTP recibidas en la dirección IP externa configurada se dirigen al http de salida como solicitudes HTTP sin formato a través del puerto HTTP 80 estándar. Además de los encabezados HTTP proporcionados por el cliente, las solicitudes reenviadas también contienen los siguientes encabezados informativos:
|
|
fs |
Saliente |
nfs |
Proporciona un montaje NFS como una ubicación alternativa al volumen de claves local para almacenar claves. Si se proporcionan tanto el volumen de clave local como una conexión de terminal fs, el dispositivo genera un error al iniciarse. Este terminal puede permanecer desconectado. |
|
aux |
Saliente |
Cualquiera |
Salida para los otros protocolos, si se ha configurado. Para obtener información adicional, consulte las propiedades l3_accept_*. |
|
nfy |
Saliente |
http |
Envía notificaciones cuando se produce una conmutación por error. Consulte también fover_nfy_prefix. Este terminal puede permanecer desconectado. |
|
mon |
Saliente |
cce |
Envía estadísticas sobre uso de recursos y rendimiento. |
Propiedades
|
Nombre |
Tipo |
Descripción |
|
dns1 |
Dirección IP |
Define el servidor DNS primario Si la dirección IP especifica el host remoto, dns1 puede permanecer en blanco. Si no, se debe ser especificar dns1. Valor predeterminado: vacío |
|
dns2 |
Dirección IP |
Define el servidor DNS secundario, que se utilizará si el servidor DNS primario no responde. Valor predeterminado: vacío |
|
l7_accept |
Enum. |
Especifica qué tipo de tráfico HTTP se debe aceptar para reenviarlo al terminal http. Valores válidos: https, http, both y ninguno. Si no se establece como "none" todo el tráfico se redirecciona solamente según las propiedades l3_accept_*. Valor predeterminado: both. |
|
l3_accept_proto |
Enum. |
Especifica los protocolos que se deberían reenviar al terminal aux. Valores válidos: "none", "tcp", "udp", "raw" y "all". Si se establece como raw, la propiedad l3_accept_port especifica el número de protocolo. Si se configura como all, todo el tráfico entrante de la interfaz externa se envía al terminal aux. La propiedad l7_accept tiene prioridad sobre esta. Nota: Si se establece l7_accept en un valor diferente de ninguno, todos los http(s) se envían al terminal http y el resto del tráfico va a aux, como se especifica en esta propiedad. Valor predeterminado: none |
|
l3_accept_port |
Cadena |
Una lista de protocolos separadas por comas o espacios para aceptar y enrutar con el protocolo que se especifica en l3_accept_proto al terminal aux. Se pueden especificar protocolos en la lista como números de puerto o como nombres de protocolo estándar, como ftp y smtp al especificar puertos TCP o UDP, o bien gre y tcp, al utilizar protocolos sin formato. Se pueden especificar también intervalos de puertos como 1024:10000 o 0:1024. Si el valor está vacío, se reenvían todos los puertos del protocolo especificado. Nota: Si se establece l3_accept_proto a raw, se debe especificar esta propiedad que, en este caso, especifica el número de protocolo. Se puede especificar más de un protocolo sin formato, pero no se permite ningún intervalo de proto como 20:30. Valor predeterminado: all |
|
allowed_hosts |
Cadena |
Lista de los hosts o subredes con los que se puede establecer una conexión. Las distintas entradas se deben separar con espacios o comas. Ejemplo de formato admitido: 192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0. Valor predeterminado: 0.0.0.0/0 (se permite todo) |
|
key_on_fs |
Cadena |
Indica si las claves se almacenan en un montaje nfs a través del terminal fs (on) o en el volumen de clave local (off). Valores válidos: on y off. Valor predeterminado: off |
|
cert_file |
Cadena |
Nombre de archivo (relativo a la raíz del volumen de datos) del certificado del servidor que esta instancia de puerta de enlace debería presentar al cliente. Si se establece l7_accept como https o both, un certificado válido debe estar presente en el volumen de datos configurado en la ubicación que se ha especificado en esta propiedad. De lo contrario, INSSLR2 producirá un error al iniciarse. Para obtener información adicional, consulte Volúmenes. Valor predeterminado: server.pem |
|
unsafe_ssl |
Cadena |
Permite el uso de cifrados ssl "no seguros" para ofrecer compatibilidad con exploradores heredados. El valor predeterminado disabled deshabilita los encriptados SSLv2, así como algunos otros encriptados SSLv3 y TLSv1 que no se consideran seguros. Se recomienda dejar esta propiedad configurada como "disabled", a menos que sea necesario admitir sesiones https para exploradores heredados que solamente funcionen con SSLv2. Si se establece en enabled, todos los cifrados SSL disponibles en el sistema se utilizarán para las sesiones HTTPS. Esto incluye SSLv2. Valor predeterminado: disabled. Esta propiedad se agregó en la versión 1.2.1. |
|
keepalive |
Entero |
Especifica el tiempo de keepalive máximo entre INSSLR2 y el cliente. El tiempo se especifica en segundos. Valor predeterminado: 15 |
|
timeout |
Entero |
Especifica cuántos segundos espera INSSLR2 el resultado del servidor de back-end. Si el servidor de back-end no envía salidas durante los segundos especificados para el tiempo de espera, la conexión se cerrará. Valor predeterminado: 300 |
|
max_request_size |
Entero |
Tamaño máximo en MB de la solicitud del cliente. Auméntelo si la aplicación tiene que tratar con grandes cargas de clientes. Valor predeterminado: 10 |
|
adv_config |
Cadena |
Agrega configuración sin procesar que se debe insertar en nginx conf dentro de los bloques de ubicación tanto para oyentes http como https (sea cual sea el que se active). Por ejemplo, para agregar encabezados personalizados, establezca adv_config como proxy_set_header myport $proxy_port;. Así se agrega myport: 80 a la solicitud enviada al servidor de back-end. adv_config se puede establecer como cualquier declaración válida para un bloque de ubicación. Para obtener detalles adicionales, consulte la documentación de nginx. Se pueden agregar varias líneas de configuración separadas por ;. Nota: Si se establece, esta propiedad debe tener una sintaxis nginx válida (es decir, que termine por ;). En caso contrario, el dispositivo no se podrá iniciar. Valor predeterminado: vacío |
|
client_cert |
Cadena |
Permite la autenticación del certificado de cliente. Valores válidos: on, ask y off. Si se define como "on", se impone la autenticación del certificado de cliente y solamente los clientes con certificados válidos pueden hacer una solicitud correcta a INSSLR2. Cuando se define como "set", se les pide a los clientes que presenten los certificados, pero la conexión se establece aunque no se presente un certificado válido. Valor predeterminado: off |
|
client_depth |
Entero |
Intensidad de verificación para buscar en un certificado encadenado de cliente. Esta propiedad no tiene ningún efecto si no se establece client_cert. Valores válidos: de 1 a 9 Valor predeterminado: 1 |
|
ca_list_client |
Cadena |
Un archivo que contiene una secuencia de certificados de la autoridad certificadora en formato PEM. Los nombres de los certificados de la autoridad certificadora enumerados se envían al cliente que está conectado. Así se informa al cliente acerca de qué certificado de cliente debería enviar. La misma lista se utiliza para verificar el certificado de cliente. El nombre de archivo es relativo a la raíz del volumen clave montado o la raíz del montaje de nfs realizado mediante el terminal fs y puede contener una ruta; por ejemplo: path/to/keys/ca_list_client.pem. Valor predeterminado: ca_list_client.pem. |
|
cert_revocation_list |
Cadena |
Un archivo que contiene la lista de revocaciones de certificado (CRL) tal y como la genera la autoridad certificadora. Esta lista identifica los certificados de cliente revocados por CA. Se buscan en ella todos los certificados de cliente presentados a INSSLR2 y, si se descubre que el certificado se ha revocado, INSSLR2 emite una respuesta de error del certificado SSL al cliente. Como to ca_list_client, el nombre de archivo es relativo a la raíz del volumen clave montado o la raíz del montaje de nfs realizado mediante el terminal fs y puede contener una ruta; por ejemplo: path/to/keys/ca_list_client.pem. Valor predeterminado: vacío |
Propiedades de los controles de estado
|
Nombre |
Tipo |
Descripción |
|
healthcheck_method |
Cadena |
Método utilizado para el control de estado de los servidores Web de back-end.
Valor predeterminado: off |
|
healthcheck_url |
Cadena |
URL que se utiliza para ejecutar el control de estado de los servidores web de back-end en los métodos de control de estado http_get y http_head. Se puede especificar como una URL completa (http://host.name/file/to/check/for.php) o como una ruta relativa (/file/to/check/for.php). Si se especifica como una URL, INSSLR2 utiliza el protocolo HTTP/1.1 mientras realiza controles de estado mediante el uso del nombre de host extraído de UR en un encabezado Host:. Esto permite usar hosts virtuales. Si se especifica como una ruta relativa, INSSLR2 utiliza el protocolo HTTP/1.0 y busca el documento especificado por esta propiedad. Valor predeterminado: / |
|
healthcheck_agent |
Cadena |
Cadena que se utiliza como un identificador de agente para los métodos de control de estado http_get y http_head. Valor predeterminado: INSSLR2-health-check |
|
healthcheck_regexp |
Cadena |
Cadena de prueba utilizada con el modo de control des estado http_head y http_get health. Los valores cortos o comunes, como Aceptar, producirán probablemente coincidencias de falso positivo. Esta cadena es una expresión regular "perl". Valor predeterminado: ^HTTP\/1\.\d\s+200. |
|
healthcheck_interval |
Entero |
Intervalo entre los controles de estado de los servidores web de back-end. Esto se especifica en segundos. Valor predeterminado: 60 segundos. |
|
healthcheck_timeout |
Entero |
Tiempo máximo en segundos que puede tardar un control de estado. Si el tiempo de espera se excede, la comprobación se considera errónea y se finaliza. Se iniciará una comprobación nueva. Valor predeterminado: 10 |
|
healthcheck_alert |
Entero |
Número de errores de controles de estado subsiguientes antes de que INSSLR2 comience a volcar errores en el cuadro de mandos del grid. Si se establece en 0, no se comunicará ningún error al cuadro de mandos (pero todavía se permiten los controles de estado). No se debe definir un valor demasiado bajo para evitar los falsos positivos cuando se inicie/detenga la aplicación. Consulte también fover_on_healthcheck si está ejecutando INSSLR2 en el modo redundante y desea pasar al nodo de copia de seguridad si se produce un error en el servidor de back-end. Valor predeterminado: 3 |
Propiedades avanzadas utilizadas en escenarios de conmutación por error
|
Nombre |
Tipo |
Descripción |
|
fover_mode |
Cadena |
Modo de conmutación por error. Valores válidos: ninguno (sin conmutación por error), symmetric y asymetric. Cuando se establezca como ninguno, INSSLR2 actúa como un dispositivo INSSLR2 y no proporciona capacidades de conmutación por error. Cuando se establece en el modo simétrico, INSSLR2 se ejecuta en el modo simétrico de conmutación por error. Necesita dos dispositivos de INSSLR2, ambos se ejecutan en el modo simétrico de conmutación por error. Cuando se establece en el modo asimétrico, INSSLR2 se ejecuta en el modo asimétrico de conmutación por error. Necesita dos dispositivos de INSSLR2, ambos se ejecutan en el modo asimétrico de conmutación por error. Nota: Cuando se ejecutan en el modo de conmutación por error, los dos dispositivos deben tener fover_mode establecido con el mismo valor. Valor predeterminado: none |
|
fover_remote_ip |
Dirección IP |
Dirección IP remota del otro dispositivo INSSLR2 usado en el modo de conmutación por error. Nota: Deje este valor vacío si ha establecido fover_mode como ninguno. Valor predeterminado: vacío |
|
fover_nfy_prefix |
Cadena |
Prefijo de la Url que se pide cuando se produce una conmutación por error. La URL solicitada es: 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 y conduce al terminal NFY. Valor predeterminado: ? |
|
fover_on_healthcheck |
Entero |
Especifica si INSSLR2 deber realizar una conmutación por error al nodo de copia de seguridad si se produce un error en un control de estado del terminal http. Si se establece como un valor distinto de cero, INSSLR2 realiza una conmutación por error después de varios errores subsiguientes de controles de estado. No se debe definir un valor demasiado bajo para evitar los falsos positivos cuando se inicie o detenga la aplicación. Si solamente se necesitan notificaciones de los errores, consulte healthcheck_alert. Valor predeterminado: 0 (desactivado). |
Volúmenes
|
Nombre |
Descripción |
|
key |
Un volumen de datos de solo lectura (denominado "marcador de posición") que contiene, como un mínimo, la clave de firma del servidor SSL. El archivo debería estar en formato PEM. A menos que la propiedad cert_file se modifique para especificar un nombre diferente, el certificado debería localizarse en el directorio raíz del volumen clave, llamado server.pem. |
Los mensajes siguientes pueden aparecer en el archivo de registro del dispositivo o en el registro del sistema del controlador de grid cuando el dispositivo falla al iniciarse:
INSSLR2 detecta el error del INSSLR2 en aproximadamente 10 segundos y requiere unos 10 segundos adicionales para realizar la conmutación por error a la otra aplicación. El tiempo total desde que se produce el primer error de la aplicación hasta que la otra aplicación asume el tráfico es de unos 20 segundos.
INSSLR2 enruta no menos de 3000 transacciones (pares de solicitud/respuesta) por segundo, según el tamaño de los documentos y el ancho de banda de red disponible.
INSSLR2 enruta no menos de 7 MB/segundo, según el tamaño de los documentos y el ancho de banda de red disponible.
Con la memoria predeterminada INSSLR2 es compatible con no menos de 500 solicitudes pendientes simultáneas. Una solicitud pendiente es una conexión TCP abierta del cliente, donde hay una o varias solicitudes HTTP sin completar en curso.
El número máximo de conexiones simultáneas depende de la memoria libre disponible. Cada 16 MB más de memoria aumenta por 500 el número de transacciones http simultáneas.
Por ejemplo, si ejecuta el modo redundante y se desean dar servicio a 2000 conexiones simultáneas, se necesitan 100 MB + 3*16 MB = 148 MB. La memoria mínima cuando se ejecuta el modo redundante es 100 MB.
Cuando se ejecuta en el modo redundante (fover_mode no está definido como ninguno), INSSLR2 activa las notificaciones siempre que pase a ser activo o pasivo. Esto se realiza en inicio del nodo activo o cuando se produce una conmutación por error. Cada nodo envía una notificación se convierte en activa o pasiva.
INSSLR2 envía dos notificaciones:
La URL solicitada es:
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
Se puede utilizar fover_nfy_prefix para cambiar la ubicación del script remoto que se llama o para agregar más parámetros.
Ejemplos de valores fover_nfy_prefix:
/path/to/script.php?, /path/to/script.php?username=user&password=pass&.
Notas:
INSSLR2 ejecuta un cronjob cada minuto que comprueba:
Si se cumplen cualquiera de las condiciones anteriores, se envía un mensaje de error al cuadro de mandos del grid. Si más de una prueba es incorrecta, se publicará un mensaje en el cuadro de mandos del grid que resuma todos los errores.
Cada error se enviará solamente una vez cada hora al cuadro de mandos del grid. No se informará de ningún error en los primeros 5 minutos después de que se inicie el dispositivo. Esto impide que se produzcan falsas alarmas cuando no se haya iniciado el otro nodo en la replicación.
Para utilizar SSL se necesita tanto el certificado firmado como la clave privada con la que se ha encriptado. La clave y el certificado deben estar en formato PEM y colocarse en un único archivo especificado por la propiedad cert_file.
Generación de certificados de servidor
Se puede generar un certificado de servidor que una autoridad certificadora de confianza (CA) puede firmar pagando o crear un certificado autofirmado.
Siga los pasos siguientes:
openssl genrsa -out privkey.pem 2048
Se puede generar también una clave protegida por contraseña utilizando el siguiente comando. Sin embargo, si se crea una clave protegida por contraseña, es necesario eliminar la contraseña antes de utilizar en INSSLR2. INSSLR2 requiere una clave sin contraseña.
openssl genrsa -des3 -out privkey.pem 2048
Ejecute el siguiente comando:
openssl req -new -key privkey.pem -out server.csr
Después de enviar el archivo .csr a la autoridad certificadora de confianza, se le devolverá un certificado firmado (archivo .crt) que puede utilizar.
Ejecute el siguiente comando:
openssl req -new -x509 -key privkey.pem -out server.crt -days 1095
Uso de certificados de servidor
Se puede colocar ahora el certificado y la clave en un archivo y utilizarlo en INSSLR2 ejecutando el comando siguiente:
cat privkey.pem server.crt > server.pem
Si la clave está protegida mediante contraseña, esta se puede eliminar ejecutando lo siguiente:
openssl rsa -in key_with_pass.pem -out privkey.pem
Uso de certificados de servidor apache+mod_ssl existentes
INSSLR2 permite utilizar un certificado existente que se utilice en Apache. Verifique que la clave no está protegida por contraseña siguiendo los pasos anteriores; a continuación, coloque el certificado privado y guárdelo en un solo archivo.
Por ejemplo:
Si está usando un certificado encadenado, debería incluir también el certificado intermedio proporcionado por el emisor. Coloque la clave privada, el certificado y el certificado intermedio en un solo archivo (en ese orden).
Por ejemplo:
Importante: La clave de firma del servidor es la prueba de identidad de su sitio web. También es vulnerable, ya que no está encriptada mediante contraseña para que el dispositivo la pueda leer sin ayuda.
Al instalarlo en el volumen de datos, tome las medidas necesarias para proteger el archivo de clave. No utilice el mismo volumen de datos con otros fines y no lo haga visible en un servidor web. Para, por ejemplo, alojar datos web accesibles, como páginas HTML y scripts.
Los ejemplos siguientes describen cómo puede crear su propia autoridad certificadora y utilizarla para firmar sus propios certificados mediante OpenSSL. Esto se probó mediante OpenSSL 0.9.8b, la misma versión que se instaló en INSSLR2.
Creación de una autoridad certificadora
Si ya tiene una autoridad certificadora propia que se utiliza para crear certificados autofirmados, puede omitir este paso y utilizar esa autoridad certificadora. Al crear los instrumentos de la autoridad de confianza para la aplicación, es importante que el entorno sea seguro.
Importante: La clave privada para autoridad certificadora es la base de confianza de la aplicación. No la pierda ni la proporcione a otras personas.
Siga los pasos siguientes:
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
Creación de certificados de cliente firmados por la autoridad certificadora
Se pueden crear certificados de cliente firmados por la autoridad certificadora.
Siga los pasos siguientes:
openssl genrsa -out clientA_privkey.pem 2048
Para crear una clave protegida de contraseña, utilice el conmutador -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
Notas:
Por ejemplo:
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
Creación de archivos de la lista de CA utilizadas por INSSLR2
Revocación de certificados de cliente firmados por CA
Para revocar un certificado de cliente emitido por la CA, utilice el comando siguiente:
openssl ca -config openssl.conf -revoke clientB.cer -crl_reason keyCompromise
Donde un archivo openssl.conf de ejemplo se muestra a continuación y el parámetro crl_reason es uno de los siguientes: unspecified, keyCompromise, CACompromise, affiliationChanged, superseded, cessationOfOperation, certificateHold o removeFromCRL. El valor de "reason" no distingue entre mayúsculas y minúsculas.
Para volver a generar la lista de revocación de certificados (CRL), ejecute lo siguiente:
openssl ca -config openssl.conf -gencrl -out CA/crl.pem
En este ejemplo crl.pem es el archivo que se debe proporcionar a INSSLR2 como la propiedad cert_revocation_list.
El archivo de configuración de muestra que se utiliza en el anterior ejemplo es:
####################################################################
[ 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
Creación de archivos de la lista de autoridades certificadoras utilizadas por INSSLR2
Se puede crear archivos de la lista de autoridades certificadoras utilizadas por INSSLR2.
Para crear el archivo identificado por la propiedad ca_list_client, lleve a cabo los pasos siguientes:
cat CA/private/CA_key.pem CA/CA_cert.pem > ca_list_client.pem
Si se desea, también se puede crear el certificado de servidor de INSSL2 (por ejemplo, server.pem) de la misma forma que los certificados de cliente, así como firmarse de igual modo por la autoridad certificadora creada. No utilice una contraseña para este certificado.
Herramientas=>Opciones=>Ver certificados=>Sus certificados=>Importar. Apunte el explorador a la dirección IP de INSSLR2.
openssl s_client -host IP-address -port 443 -showcerts -ssl3 -cert clientA.cer -key clientA_privkey.pem -state
Encabezados de los certificados del cliente
Si un cliente se conecta a INSSLR2 mediante HTTPS, y si presenta un certificado de cliente, INSSLR2 agrega los encabezados siguientes a la solicitud que suministra al servidor de back-end:
La aplicación tiene la responsabilidad de utilizar o no estos encabezados. INSSLR2 solamente transfiere esta información sin verificarla de ninguna manera (excepto la corrección del encriptado y la firma).
Aplicaciones Web
Para proporcionar acceso de http(s) a su aplicación, conecte el terminal http directamente al dispositivo de WEB.

Aplicación web escalable con el terminal http conectado a un dispositivo HALB.

Los ejemplos de configuración enumeran solamente propiedades establecidas como valores no predeterminados.
|
Nombre |
Tipo |
Descripción |
|
17_accept |
http/https/both |
Especifica qué protocolo se utiliza de l7. Si se especifica https o both, el volumen clave debería contener el certificado SSL tal y como se especifica por la propiedad cert_file. |
Aplicaciones web con servicios adicionales
Si tiene más servicios además de http en su aplicación, puede utilizar INSSLR2 para pasar el tráfico http al terminal http y usar el terminal aux para otros servicios.

|
Propiedad |
Valor |
Notas |
|
17_accept |
http/https/both |
Especifica qué protocolo se utiliza de l7. Si se especifica https o both, el volumen clave debería contener el certificado SSL tal y como se especifica por la propiedad cert_file. |
|
l3_accept_proto |
tcp |
Redirige los puertos tcp 25,110,143 al terminal aux. |
|
l3_accept_port |
25,110,143 |
Redirige los puertos tcp 25,110,143 al terminal aux. |
Aplicaciones web con varios servicios adicionales
Si se disponen de varios servicios de TCP/UDP y HTTP, se puede utilizar INSSLR2 para transferir tráfico de HTTP al terminalHTTP, así como utilizar el terminal aux para suministrar el tráfico restante a PS8. A continuación, PS8 suministra el tráfico deseado a los servidores de back-end.

|
Propiedad |
Valor |
Notas |
|
17_accept |
http/https/both |
Especifica qué protocolo se utiliza de l7. Si se especifica https o both, el volumen clave debería contener el certificado SSL tal y como se especifica por la propiedad cert_file. |
|
l3_accept_proto |
all |
Redirige al terminal aux todo el tráfico IP (excepto icmp) que no se transfiere al terminal http. |
Aplicaciones Web redundantes
Si se necesita proporcionar una aplicación web redundante, puede copiar la aplicación y utilizar INSSLR2 para proporcionar capacidades de conmutación por error a la dirección IP externa.
Nota: Si dos dispositivos de INSSLR2 de la misma aplicación se configuran para ejecutarse en el modo redundante, se mostrará un mensaje de advertencia cuando se configura la misma dirección IP en dos interfaces diferentes. Ignore ese error.
Aplicación web de copia de seguridad
Si se desea una aplicación de copia de seguridad que notifique a los usuarios el tiempo de inactividad, se puede utilizar INSSLR2 para generar una aplicación de copia de seguridad que requiera unos recursos mínimos.
Dispositivos en uso:
INSSLR2 en la aplicación primaria
|
Propiedad |
Valor |
Notas |
|
fover_mode |
asymmetric |
Se ejecuta en el modo asimétrico, ya que la aplicación de copia de seguridad se debe usar solamente cuando la aplicación primaria no esté operativa. |
|
fover_remote_ip |
192.168.100.2 |
Dirección IP remota que se debe utilizar para la comunicación entre dispositivos INSSLR2 en las dos aplicaciones. |
INSSLR2 en la aplicación de copia de seguridad:
|
Propiedad |
Valor |
Notas |
|
fover_mode |
asymmetric |
Se ejecuta en el modo asimétrico, ya que la aplicación de copia de seguridad se debe usar solamente cuando la aplicación primaria no esté operativa. |
|
fover_remote_ip |
192.168.100.1 |
Dirección IP remota que se debe utilizar para la comunicación entre dispositivos INSSLR2 en las dos aplicaciones. |
Nota: Se pueden configurar los atributos de la interfaz conectada al terminal fover utilizando la ficha Interfaces del editor de configuración de la aplicación. Por ejemplo, las propiedades fover_local_ip y fover_netmask.
Aplicación web redundante en una sola aplicación
Para ejecutar la aplicación en el modo redundante sin crear una nueva aplicación, se pueden duplicar los dispositivos y ejecutarlos en modo redundante. Dado que esto implica utilizar como mínimo dos servidores web y dos dispositivos de base de datos en el modo normal, se utilizan todos los que proporcionan escalabilidad. Sin embargo, cada uno de ellos puede dar servicio únicamente a la aplicación en caso de que se produzca un error en el otro dispositivo.
Si necesita más escalabilidad, puede agregar más dispositivos web y base de datos. En este ejemplo la mitad de los dispositivos (in1, sw1, web1, db1) se ejecutan en un grupo de conmutación por error y el resto (in2, sw2, web2, db2) están en otro grupo de conmutación por error, de forma que la aplicación puede sobrevivir en caso de que se produzca un error en el servidor. Esta aplicación proporciona redundancia a un coste muy bajo, puesto que todos los dispositivos (excepto en el caso de un dispositivo INSSLR2 y otro HALB, que requieren recursos muy bajos) están en estado activo y no se consume ningún recurso para una aplicación de copia de seguridad que se ejecuta solamente si se produce un error en la primaria.

in1
|
Propiedad |
Valor |
Notas |
|
fover_mode |
symmetric |
Se ejecuta en modo simétrico. |
|
fover_remote_ip |
192.168.100.2 |
Dirección IP remota que se debe utilizar para la comunicación entre dispositivos INSSLR2 en las dos aplicaciones. |
in2
|
Propiedad |
Valor |
Notas |
|
fover_mode |
symmetric |
Se ejecuta en modo simétrico. |
|
fover_remote_ip |
192.168.100.1 |
Dirección IP remota que se debe utilizar para la comunicación entre dispositivos INSSLR2 en las dos aplicaciones. |
db1
|
Nombre de la propiedad |
Valor |
Notas |
|
auto_create |
1 |
Crea la base de datos si los volúmenes están vacíos. |
|
server_id |
1 |
Servidor principal 1. Debe ser diferente en la aplicación remota. |
|
rpl_mode |
master_and_slave |
Principal y secundario |
db2
|
Nombre de la propiedad |
Valor |
Notas |
|
auto_create |
1 |
Crea la base de datos si los volúmenes están vacíos. |
|
server_id |
1 |
Servidor principal 1 (debería ser diferente en la aplicación remota). |
|
rpl_mode |
master_and_slave |
Principal y secundario |
Aplicación web redundante con dos aplicaciones idénticas
Por ejemplo, se pueden ejecutar dos aplicaciones idénticas en el mismo grid pero en servidores independientes, o bien en grids diferentes si la dirección IP es accesible desde los dos grids. Esto permite que el error de un servidor afecte solamente a una de las aplicaciones.
Nota: Si dos dispositivos de INSSLR2 de la misma aplicación se configuran para ejecutarse en el modo redundante, se mostrará un mensaje de advertencia cuando se configura la misma dirección IP en dos interfaces diferentes. Ignore ese error.
El siguiente ejemplo muestra una aplicación que utiliza un dispositivo de base de datos que también se ejecuta en el modo redundante. Si una aplicación produce un error, la otra aplicación puede tomar el control sin que se pierdan datos.

Dispositivos en uso:
Las solicitudes de cliente llegan a la puerta de enlace de insslr. La puerta de enlace reenvía las solicitudes al equilibrador de carga web_lb, el cual las dirige a uno de los servidores web: web1 o web2.
Los servidores Web acceden a la base de datos db. El dispositivo db se conecta a la aplicación remota. Para replicar la base de datos, la aplicación remota es una copia idéntica, con la única diferencia de que es la configuración de server_id de db y de red.
La aplicación remota se conecta al dispositivo db mediante la puerta de enlace repl_in que se configura para permitir solamente la conexión de la puerta de enlace repl_out de la aplicación remota. Los dispositivos db de las dos aplicaciones se ejecutan en la configuración principal-principal para garantizar que siempre tienen datos idénticos.
Configuración de una propiedad de ejemplo
Las propiedades que no se especifican deberían dejarse con sus valores predeterminados. El acceso Web a db está disponible mediante la puerta de enlace admin en el puerto 8080.
insslr
|
Propiedad |
Valor |
Notas |
|
fover_mode |
symmetric |
Se ejecuta en modo simétrico. |
|
fover_remote_ip |
192.168.100.2 |
Dirección IP remota que se debe usar para la comunicación entre dispositivos INSSLR2 en las dos aplicaciones. Cámbiela por 192.168.100.1 en la aplicación remota. |
db
|
Nombre de la propiedad |
Valor |
Notas |
|
auto_create |
1 |
Crea la base de datos si los volúmenes están vacíos. |
|
error_log_filename |
db.error |
Nombre del archivo de registro de errores que se almacenará en el volumen de datos de registros. |
|
error_log_level |
error |
Nivel de registro de errores. |
|
server_id |
1 |
Servidor principal 1, debería ser diferente en la segunda aplicación. |
|
rpl_mode |
master_and_slave |
Principal y secundario |
Importante: Solamente una de las aplicaciones está activa en todo momento; la otra se está ejecutando solo para la conmutación por error y se utiliza cuando la aplicación activa produce un error.
Notas:
INSSLR2 utiliza los siguientes paquetes de código abierto de terceros, además de los paquetes de código abierto de terceros que utiliza su clase base LUX6.
|
Software |
Versión |
Modificado |
Licencia |
Notas |
|
PyXML |
0.8.4-19 |
No |
N/D |
|
|
heartbeat |
3.0.4-1 |
No |
N/D |
|
|
heartbeat-libs |
3.0.4-1 |
No |
N/D |
|
|
iptables |
1.4.7-5.1.el6_2 |
No |
N/D |
|
|
libgcrypt |
1.4.5-9.el6_2.2 |
No |
GPLv2 |
N/D |
|
libgpg-error |
1,7-4 |
No |
N/D |
|
|
lighttpd |
1.4.18-1 |
No |
N/D |
|
|
nginx |
0.7.62-1 |
Sí |
N/D |
|
|
sudo |
1.7.4p5-13.el6_3 |
No |
N/D |
|
|
telnet |
0.17-47 |
No |
N/D |
|
Copyright © 2013 CA.
Todos los derechos reservados.
|
|