Splash screen - стартовая страница
-
Добрый вечер.
Столкнулся с необходимостью вывода пользователям стартовой страницы (по задумке руководства - вывод поздравлений с праздниками, новостей компании и т.д.). Интернет открыт в организации всем, используется прозрачный прокси. Сначала был Squid 2, сейчас поставил Squid 3. Нашел пример конфигурации, но столкнулся с тем, что
Squid helper (squid_session) по указанному адресу нет, да и вообще я его в системе найти не смог.
В связи с этим возник вопрос, поддерживается ли этот функционал и как можно вручную доустановить при его отсутствии?PS При помощи Captive Portal организовать подобное думал, но не могу сообразить, реально ли это вообще.
-
Вручную можно установить любой FreeBSD пакет.
С помощью Captive Portal так-же можно сделать стартовую страницу. -
Спасибо за ответ.
Пробую сделать с помощью Captive Portal. Столкнулся с двумя трудностями:- При обращении к https-ресурсу не происходит перебрасывание на стартовую страницу, ничего просто не открывается.
- После нажатия кнопки "Continue" на стартовой странице не заходит на требуемый ресурс. Но если нажать "Обновить", то открывается и дальше все работает нормально. Такое ощущение, что правило не успевает измениться. UPD: Такое происходит не всегда, но практически в половине случаев. Особенно если нажимать на кнопку сразу. Если же ожидать порядка 20 секунд, то все открывается нормально.
-
Возвращаясь к теме, как появилось время решил попробовать все-таки решить проблемы.
-
То, что не работает https, решил путем запрета только 80 порта до логина на стартовой странице. Учитывая, что мне всего-лишь нужно вывести уведомления для пользователей (типа поздравления на праздник и т.д.), меня такой вариант устраивает.
-
По поводу второго пункта я так и не смог найти решения ни в коде, ни где-нибудь на форумах. Но проблема все же странная. Если пытаюсь зайти, например, на www.yandex.ru, то после нажатия кнопки логина все работает отлично сразу же. Если пытаюсь зайти на какой-нибудь еще сайт, то страница не загружается. После того, как напишет, что страница недоступна, нажимаю Обновить - далее все работает ОК. Из-за чего может быть это? Всю голову уже сломал.
PS При этом в фаерволе блокируются пакеты TCP:PA с локального IP до IP ресурса. Но, опять же, это не мешает открываться странице яндекса, а вот другие сайты открыть не дает.
-
-
Добавьте в CP IP адрес DNS сервера в список разрешенных.
Адрес яндекса скорее всего уже закеширован, поэтому и открывается. -
Увы, это уже пробовал, не помогает.
Upd: И DNS-серверы, и сам pfSense на всякий случай добавлены в разрешенные IP. Плюс настроено уже, что только трафик на 80 порту переадресовывается на страницу логина. Весь остальной - работает всегда. Есть еще хоть какие-нибудь идеи, что проверить? Настроен squid+squidGuard+HAVP, но их отключение также ни к чему не приводит. -
А как вы переадресовываете трафик на страницу логина ?
И на самой странице переадресации есть ссылки требующие DNS запроса ?
-
На страницу логина переадресовывается стандартными средствами Captive Portal. Сейчас в правилах для ipfw, которые задаются в исходниках Captive portal, добавлено, что весь трафик не на 80 порт идет напрямую, не блокируется даже до логина. Но и раньше ничего не работало.
На самой странице есть только картинка и css, расположенные на самом шлюзе. В адресе до них используется имя, не IP-адрес шлюза. -
А на страницу авторизации в запросе адрес передается ?
:8000/index.php?redirurl=http%3A%2F%2Fwww.yandex.ru%2F -
Да, разумеется. При этом этом как раз и происходит редирект, но страница не открывается. В адресной строке браузера отображается сайт, куда происходит редирект (вида http://www.site.ru), ну а в окне браузера написано, что невозможно отобразить страницу. Если нажимаю в этом же окне Обновить - все открывается. Т.е. не работает первый запрос после нажатия на кнопку логина каптив портала.
-
Еще как вариант стоит посмотреть в сторону таймаутов.
У меня первый запрос всегда очень долгий, сколько секунд не скажу, но ждать надоедает. Быстрее открыть страницу в соседней вкладке - она сразу откроется.
Может где то сессия сбрасывается раньше, чем сайт открывается. -
Ну, кстати, очень похоже на то. Только вот куда смотреть дальше - непонятно. Таймауты где проверить? Странно только, что больше ни у кого не возникало подобного.
-
У меня еще вот это исправлено
http://www.thin.kiev.ua/router-os/50-pfsense/404-captive-portal-.html
тоже советую попробовать -
Исправил, но это не помогло. Раздумья продолжаются :)
Upd: Поставил на DHCP первым DNS-сервером адрес pfSense, стало получше на некоторые, но все равно есть несколько сайтов, на которые сразу не заходит. Странно все это. -
Посмотрите, а есть на проблемных страницах внутри https запросы ?
-
Есть в скриптах типа счетчиков (OpenStat). Но это не должно быть проблемой, т.к. на https заходит даже до авторизации…
В принципе, если в настройках функции portal_allow перед отправкой Location с адресом, куда нужно редиректить, добавить задержку секунд на 15, то вроде бы всегда заходит сразу. Но это очень много, тем более что это не задержка загрузки страницы, а задержка выполнения скрипта... Не похоже на человеческое решение. Также пробовал жать на кнопку "Продолжить" на странице логина секунд через 20 после загрузки страницы логина - опять же, вроде все сайты открываются. Такое ощущение, что есть какая-то задержка перед применением правил... -
Попробовал сделать у себя правило
add 65308 set 1 pass all from any to any dst-port 443 in
чтобы https пропускать, и ситуация стала как у вас
так что дело видимо в самом правиле -
Со всеми стандартными правилами ситуация у меня, увы, полностью аналогична.