Captive portal в pfsense 2.0 доступен только из плоских сетей. Если же адрес клиента из другой подсети редирект по порту 8000 идет не на страницу captive portal'а, на локальном адресе роутера, а на изначальный destination адрес, коим может оказаться, к примеру, адрес сервера yandex.
Исправить это дело можно в файле /etc/inc/captiveportal.inc. Для этого нужно найти строки:
function portal_ip_from_client_ip($cliip) {
global $config;
$interfaces = explode(",", $config['captiveportal']['interface']);
foreach ($interfaces as $cpif) {
$ip = get_interface_ip($cpif);
$sn = get_interface_subnet($cpif);
if (ip_in_subnet($cliip, "{$ip}/{$sn}"))
return $ip;
}
и закомментировать пару строк:
$ip = get_interface_ip($cpif);
$sn = get_interface_subnet($cpif);
чтобы в итоге получилось так:
function portal_ip_from_client_ip($cliip) {
global $config;
$interfaces = explode(",", $config['captiveportal']['interface']);
foreach ($interfaces as $cpif) {
$ip = get_interface_ip($cpif);
//$sn = get_interface_subnet($cpif);
//if (ip_in_subnet($cliip, "{$ip}/{$sn}"))
return $ip;
}
Исправить это дело можно в файле /etc/inc/captiveportal.inc. Для этого нужно найти строки:
function portal_ip_from_client_ip($cliip) {
global $config;
$interfaces = explode(",", $config['captiveportal']['interface']);
foreach ($interfaces as $cpif) {
$ip = get_interface_ip($cpif);
$sn = get_interface_subnet($cpif);
if (ip_in_subnet($cliip, "{$ip}/{$sn}"))
return $ip;
}
и закомментировать пару строк:
$ip = get_interface_ip($cpif);
$sn = get_interface_subnet($cpif);
чтобы в итоге получилось так:
function portal_ip_from_client_ip($cliip) {
global $config;
$interfaces = explode(",", $config['captiveportal']['interface']);
foreach ($interfaces as $cpif) {
$ip = get_interface_ip($cpif);
//$sn = get_interface_subnet($cpif);
//if (ip_in_subnet($cliip, "{$ip}/{$sn}"))
return $ip;
}
Комментариев нет:
Отправить комментарий