[Solved] Multiple CP Not Working
-
Hi, i have a CP setup up and working but when i add a new one to a different VLAN the new Captive portal is able to authenticate but squid deny connection 403.
-
That's a squid problem, not a captive portal problem. Try posting on the Cache/Proxy board.
-
Vlan 101-103 are on “CP1” and Vlan 108 is on “CP2”
-
Why did you post your CP settings of one of your CP zones ?
@jimp said in Multiples CP Not Working:
That’s a squid problem, not a captive portal problem.
-
-
The problem is that the code in /usr/local/bin/check_ip.php is incorrect.
del /usr/local/bin/check_ip.php and use the following code.#!/usr/local/bin/php-cgi -q <?php /* * check_ip.php * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2016-2017 Rubicon Communications, LLC (Netgate) * Copyright (c) 2013-2016 Marcello Coutinho * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ require_once("config.inc"); require_once("globals.inc"); error_reporting(0); global $g; // stdin loop if (!defined(STDIN)) { define("STDIN", fopen("php://stdin", "r")); } if (!defined(STDOUT)) { define("STDOUT", fopen('php://stdout', 'w')); } while (!feof(STDIN)) { $check_ip = trim(fgets(STDIN)); $dbs = glob("{$g['vardb_path']}/captiveportal*.db"); $status = NULL; foreach ($dbs as $db) { if(!strpos($db, "_radius")) { $status = squid_check_ip($db, $check_ip); if (isset($status)){ break; } } } if (!is_null($status)) { fwrite(STDOUT, "OK user={$status}\n"); } else { fwrite(STDOUT, "ERR\n"); } } function squid_check_ip($db, $check_ip) { exec("/usr/local/bin/sqlite3 {$db} \"SELECT ip FROM captiveportal WHERE ip='{$check_ip}'\"", $ip); if ($check_ip == $ip[0]) { exec("/usr/local/bin/sqlite3 {$db} \"SELECT username FROM captiveportal WHERE ip='{$check_ip}'\"", $user); return $user[0]; } } ?>
-
Can't find /usr/local/bin/check_ip.php
It's dealing with files related to the captive portal.Is this a file part of a package ?
-
@gertjan With squid. What is your pfsense version?
-
The latest :
2.4.3-RELEASE-p1 (amd64)
built on Thu May 10 15:02:52 CDT 2018
FreeBSD 11.1-RELEASE-p10 -
@gertjan If you can not find this file, you do not have squid installed
-
I know.
This thread talks about a Squid problem, not a captive portal problem.
See also what @jimp said ;) -
@magokbas Thanks, it worked!