суббота, 12 марта 2011 г.

Как в pfsense 2.0 сделать Captive portal доступным из разных сетей

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;
        }


Комментариев нет:

Отправить комментарий