Netgate SG-1000 microFirewall

Author Topic: Servicio Portal Cautivo queda colgado  (Read 446 times)

0 Members and 1 Guest are viewing this topic.

Offline COFroot

  • Newbie
  • *
  • Posts: 15
  • Karma: +1/-0
    • View Profile
Servicio Portal Cautivo queda colgado
« on: December 06, 2016, 10:52:41 am »
Buenas tardes.
Tenemos 2 años con nuestro pfsense con portal cautivo y autenticación por FreeRadius
Tenemos CRON para que se reinicie el servidor una vez por semana y Service Watchdog por si un servicio no levanta.
El caso es que algunos días el servicio de portal cautivo aun estando ejecutándose se queda colgado y no deja la navegación de los dispositivos que se conectan. Debemos reiniciarlo manualmente y es algo molestoso

Tenemos alrededor de 130 usuarios y 15 AP

Que comentarios nos tienen


Gracias


Offline javcasta

  • Hero Member
  • *****
  • Posts: 669
  • Karma: +552/-86
  • Los routers buscan la convergencia.
    • View Profile
    • PIyMenta
Re: Servicio Portal Cautivo queda colgado
« Reply #1 on: December 06, 2016, 12:25:06 pm »
Hola.

Sin logs y debug seria adivinar la causa del problema.

Un doc de pfSense de solución de problemas con Captive Portal.

https://doc.pfsense.org/index.php/Captive_Portal_Troubleshooting

Mientras averiguan la causa del problema, yo intentaria programar un Cron cada día a una hora, para parar el Captive Portal
El comando seria, para una zona del captive portal llamada zona1

Code: [Select]
/usr/local/sbin/pfSsh.php playback svc stop captiveportal zona1

Quote
[2.3.2-RELEASE][root@pfSense.localdomain]/scripts: /usr/local/sbin/pfSsh.php playback svc stop captiveportal zona1

Starting the pfSense developer shell....

Attempting to issue stop to captiveportal service...

captiveportal has been stopped.

Y luego otro cron a la misma hora y un minuto después, iniciar Captive Portal

Code: [Select]
/usr/local/sbin/pfSsh.php playback svc start captiveportal zona1

Quote
[2.3.2-RELEASE][root@pfSense.localdomain]/scripts: /usr/local/sbin/pfSsh.php playback svc start captiveportal zona1

Starting the pfSense developer shell....

Attempting to issue start to captiveportal service...

captiveportal has been started.

Si tienes más zonas en captive portal, deberás crear un cron de parada y otro de inicio por cada zona.

También puedes probar con sólo un Cron que reincie el Captive Portal con la opción restart (a veces parar un servicio, dejar pasar un delay de sgs, y volver a lanzarlo es más seguro, todo es probar)

Code: [Select]
/usr/local/sbin/pfSsh.php playback svc restart captiveportal zona1
Quote
[2.3.2-RELEASE][root@pfSense.localdomain]/scripts: /usr/local/sbin/pfSsh.php playback svc restart captiveportal zona1

Starting the pfSense developer shell....

Attempting to issue restart to captiveportal service...

captiveportal has been restarted.

Salu2
Javier Castañón
Técnico de comunicaciones, soporte y sistemas.

Mi web: https://javcasta.com/

Soporte scripting/pfSense https://javcasta.com/soporte/

Offline COFroot

  • Newbie
  • *
  • Posts: 15
  • Karma: +1/-0
    • View Profile
Re: Servicio Portal Cautivo queda colgado
« Reply #2 on: December 09, 2016, 03:29:50 pm »
Gracias Javier
Excelente tu aporte
No hemos dado cuenta que esto sucede cuando el DHCP leases esta al tope en direcciones IP arrendadas hasta con la sesiones expiradas. Es entonces que sucede esto. El pfSense queda con el servicio portal cautivo colgado.
Lo que hemos hecho es manualmente borrar las sesiones expiradas.
Estamos buscando como hacer este proceso automáticamente con el CRON si es posible



Saludos.

Offline javcasta

  • Hero Member
  • *****
  • Posts: 669
  • Karma: +552/-86
  • Los routers buscan la convergencia.
    • View Profile
    • PIyMenta
Re: Servicio Portal Cautivo queda colgado
« Reply #3 on: December 11, 2016, 09:37:00 am »
Hola

Gracias Javier
Excelente tu aporte
No hemos dado cuenta que esto sucede cuando el DHCP leases esta al tope en direcciones IP arrendadas hasta con la sesiones expiradas. Es entonces que sucede esto. El pfSense queda con el servicio portal cautivo colgado.
Lo que hemos hecho es manualmente borrar las sesiones expiradas.
Estamos buscando como hacer este proceso automáticamente con el CRON si es posible

Saludos.

Un script que acabo de implementar para que borre los dhcp leases con fecha de expiración menor al día de hoy del sistema

Está en fase beta (es decir que lo he probado y me ha funcionado, pero conviene contrastarlo con más usuarios de pfSense)

Code: [Select]
<?php
/*
 * release_old_dhcp_leases.php
 * By @Javcasta - Javier Castañon - https://javcasta.com/ 
 */


$leasesfile "/var/dhcpd/var/db/dhcpd.leases";
exec("cat /var/dhcpd/var/db/dhcpd.leases"$salida);

//echo "lineas: " . count($salida) . "\n";
$today date('Y/m/d');

// Stop DHCPD
//killbyname("dhcpd");
echo "Stop dhcpd service... \n";
exec("/usr/local/sbin/pfSsh.php playback svc stop dhcpd");
sleep(5);

// Read existing leases
$newleases_contents = array();
$i 0;
$marca '}';

while (
$i count($salida)) {
if (strpos($salida[$i],"lease ") !== false && strpos($salida[$i], " {") !== false ) {
$posendsdate $i+2;
$endsdate explode(" "$salida[$posendsdate]);
//echo ">>>>> " . $endsdate[4] . "\n";
//si la fecha ends es < today NO
if ($endsdate[4] > $today || $endsdate[4] == $today) {
$newleases_contents[] = $salida[$i];
/* Skip to the end of the lease declaration */
do {
//echo "vamos por $i: $salida[$i] \n";
$i++;
$newleases_contents[] = $salida[$i];
} while ($i count($salida) && strpos($salida[$i], $marca) !== true);
}
} else {
//$newleases_contents[] = $salida[$i];
}
$i++;
}
//print_r(array_values($newleases_contents));
$fd fopen($leasesfile'w');
fwrite($fdimplode("\n"$newleases_contents));
fclose($fd);
echo 
"Start dhcpd service... \n";
exec("/usr/local/sbin/pfSsh.php playback svc start dhcpd"); 
?>


El script release_old_dhcp_leases.php es para ejecutarse vía shell, así que hay que alojarlo en una carpeta (en la raiz o en otra carpeta, yo suelo usar /scripts , pero cada cual que use la que desee).

El comando para ejecutarlo en un cron (suponiendo que se aloje en la carpeta /scripts )

Quote
/usr/local/bin/php /scripts/release_old_dhcp_leases.php

Salu2
Javier Castañón
Técnico de comunicaciones, soporte y sistemas.

Mi web: https://javcasta.com/

Soporte scripting/pfSense https://javcasta.com/soporte/

Offline javcasta

  • Hero Member
  • *****
  • Posts: 669
  • Karma: +552/-86
  • Los routers buscan la convergencia.
    • View Profile
    • PIyMenta
Re: Servicio Portal Cautivo queda colgado
« Reply #4 on: December 11, 2016, 10:45:28 am »
Hola

Por cierto, como he observado que hay "editores de posts ajenos al autor del post en este foro", ya sea por errores humanos o del sistema ... :) , conviene que la fuente de los scripts que publico sean de mi web .

El script de este post lo tengo en:

https://www.javcasta.com/pfsense-release_old_dhcp_leases-php-beta/

Salu2
Javier Castañón
Técnico de comunicaciones, soporte y sistemas.

Mi web: https://javcasta.com/

Soporte scripting/pfSense https://javcasta.com/soporte/