ADC

Caso de uso: Filtrar clientes mediante una lista de prohibidos de IP

Las llamadas HTTP se pueden utilizar para bloquear solicitudes de clientes que están en la lista de prohibidos por el administrador. La lista de clientes puede ser una lista de prohibidos públicamente conocida, una lista de prohibidos que mantenga para su organización o una combinación de ambas.

El dispositivo NetScaler compara la dirección IP del cliente con la lista negra preconfigurada y bloquea la transacción si la dirección IP figura en la lista negra. Si la dirección IP no está en la lista, el dispositivo procesa la transacción.

Para implementar esta configuración, debe realizar las siguientes tareas:

  1. Habilite el respondedor en el dispositivo NetScaler.
  2. Cree una llamada HTTP en el dispositivo NetScaler y configúrela con detalles sobre el servidor externo y otros parámetros necesarios.
  3. Configure una directiva de respuesta para analizar la respuesta a la llamada HTTP y, a continuación, vincular la directiva de forma global.
  4. Cree un agente de llamada HTTP en el servidor remoto.

Activación del respondedor

Debe habilitar el respondedor antes de poder usarlo.

Para habilitar el respondedor mediante la interfaz gráfica de usuario

  1. Asegúrese de haber instalado la licencia de respuesta.
  2. En la utilidad de configuración, expanda AppExpert, haga clic con el botón secundario enRespondery, a continuación, haga clic enHabilitar la función Responder.

Creación de una llamada HTTP en el dispositivo NetScaler

Cree una llamada HTTP, Http_callout, con la configuración de parámetros que se muestra en la tabla siguiente. Para obtener más información sobre cómo crear una llamada HTTP, consulteConfiguración de una llamada HTTPpdf.

Configurar una directiva de respuesta y vincularla globalmente

Después de configurar la llamada HTTP, compruebe la configuración de llamada y, a continuación, configure una directiva de respuesta para invocar la llamada. Aunque puede crear una directiva de respuesta en el subnodo Directivas y, a continuación, enlazarla globalmente mediante Responder Policy Manager, esta demostración utiliza Responder Policy Manager para crear la directiva de respuesta y enlazar la directiva de forma global.

Para crear una directiva de respuesta y vincularla globalmente mediante

  1. Vaya aAppExpert>Responder.
  2. En el panel de detalles, enPolicy Manager, haga clic enPolicy Manager.
  3. En el cuadro de diálogoResponder Policy Manager, haga clic enAnular global.
  4. Haga clic enInsertar directivay, a continuación, en数量de la directiva, haga clic enNueva directiva.
  5. En el cuadro de diálogoCrear directiva de respuesta, haga lo siguiente:

    1. En Nombre, escribaPolicyResponder1.
    2. EnAcción, seleccionaRESTABLECER.
    3. En Acción deresultado no definido, seleccione Acciónglobal de resultado indefinido.
    4. EnExpresión, escriba la siguiente expresión de directiva avanzada:

      "HTTP.REQ.HEADER("Request").EQ("Callout Request").NOT && SYS.HTTP_CALLOUT(HTTP_Callout).CONTAINS("IP Matched")" 
    5. Haga clic enCreary, a continuación, enCerrar.
  6. Haga clic enAplicar cambiosy, a continuación, enCerrar.

Creación de un agente de llamada HTTP en el servidor remoto

Ahora debe crear un agente de llamadas HTTP en el servidor de llamadas remoto que reciba las solicitudes de llamadas del dispositivo NetScaler y responda adecuadamente. El agente de llamada HTTP es un script diferente para cada implementación y debe escribirse teniendo en cuenta las especificaciones del servidor, como el tipo de base de datos y el lenguaje de scripts admitido.

A continuación se muestra un agente de llamada de ejemplo que verifica si la dirección IP dada es parte de una lista de prohibidos IP. El agente se ha escrito en el lenguaje de scripting Perl y utiliza una base de datos MYSQL.

El siguiente script CGI comprueba si hay una dirección IP determinada en el servidor de llamadas.

#!/usr/bin/perl -w print "Content-type: text/html\n\n"; use DBI(); use CGI qw(:standard); #Take the Client IP address from the request query my $ip_to_check = param('cip'); # Where a MYSQL database is running my $dsn = 'DBI:mysql:BAD_CLIENT:localhost'; # Database username to connect with my $db_user_name = ‘dbuser’; # Database password to connect with my $db_password = 'dbpassword'; my ($id, $password); # Connecting to the database my $dbh = DBI->connect($dsn, $db_user_name, $db_password); my $sth = $dbh->prepare(qq{ select * from bad_clnt }); $sth->execute(); while (my ($ip_in_database) = $sth->fetchrow_array()) { chomp($ip_in_database); # Check for IP match if ($ip_in_database eq $ip_to_check) { print "\n IP Matched\n"; $sth->finish(); exit; } } print "\n IP Failed\n"; $sth->finish(); exit; 
Caso de uso: Filtrar clientes mediante una lista de prohibidos de IP