Captive Portal issue with Chrome on Android

I have setup WebAuth on our public Wi-Fi. We have a Cisco WLC 5508 and when using iOS, Apple, Windows devices or some Android devices, the page loads correctly, however when I am using a device with Chrome 53.0.2785.124 as the default browser on Marshmallow 6.0.1, I get an error page indicating a possible MTM attack. It reads "Your connection is not private" followed by some other text and NET::ERR_CERT_COMMON_NAME_INVALID. Here is a screenshot of the error.

From what I understand, this is due to the browser attempting to reach a URL and is expecting a specific result, however the cert on the requested google.com home page does not match the cert for the host on the returned wlc.mydomain.com SSL certificate.

One section of www.google.com/chrome/browser/privacy/whitepaper.html reads:

In the event that Chrome detects SSL connection timeouts, certificate errors, or other network issues that might be caused by a captive portal (a hotel's WiFi network, for instance), Chrome will make a cookieless request to http:// www.gstatic.com/generate_204 and check the response code. If that request is redirected, Chrome will open the redirect target in a new tab on the assumption that it's a login page. Requests to the captive portal detection page are not logged.

It's actually sending a request to http:// connectivitycheck.android.com/generate_204. The issue I see is in the response from the WLC, the status code is HTTP 1.1 200 OK. I would either expect to see an error due to the page being blocked or a 300 response to indicate a redirection. Based on the text above from Google, it sounds like the browser will enter it's Captive Portal mode (and open a new tab for authentication) WHEN it receives a redirection.

I'm thinking this may be an issue with the WLC configuration, but perhaps it's an issue with Chrome 53 on Android.

If anyone has a recommended solution, I would appreciate it.

Regards, D

0
задан 24 October 2016 в 21:37
1 ответ

Оказывается, это ошибка в Chrome.

См. Проблему 662150

https: //bugs.chromium. org / p / chromium / issues / detail? id = 662150 & can = 2 & start = 0 & num = 100 & q = & colspec = ID% 20Pri% 20M% 20Stars% 20ReleaseBlock% 20Component% 20Status% 20Owner% 20Summary% 20OS% 20Modified & groupby = & sortlla =

Umbrella проблема - 335933.

**** Обновление:

Нам действительно нужно, чтобы это работало. Google никуда не денется, чтобы найти решение. В мой новый S7E встроено приложение Captive Portal.

Я предполагаю, что у других производителей все еще будут проблемы. Я действительно видел, как один пациент пришел с планшетом Lenovo, который испытал это. У сотрудницы было то же самое с ее старым устройством Samsung.

Я вижу, что довольно много людей страдают от боли в портале. Я, наконец, смог решить эту проблему, заблокировав трафик DNS для полных доменных имен тестового портала.

Сначала я попытался отбросить трафик на моем ASA на основе полного доменного имени, но, поскольку трафик исходит от WLC, я не мог отрицать на основе VLAN.

Итак, взлом DNS.

На WLC я установил 3 виртуальных интерфейса. 1 - внутренний. 2 - поставщик, 3 - общедоступный. У каждого есть своя собственная область действия DHCP, поэтому я могу установить все их конкретные параметры для их уникальной ситуации. 3 имеет WLAN с связанным с ней перехватывающим порталом.

Я настроил WLAN моего поставщика для использования общедоступных DNS-серверов - не очень много в этой WLAN.

У меня есть два публичных кэширующих DNS-сервера под управлением CentOS с BIND 9; Я заблокировал их, чтобы минимизировать поверхность атаки. Это виртуальные машины на хостах ESXi, на каждом из которых установлен медный сетевой адаптер, который подключается к изолированному виртуальному коммутатору и моей сети DMZ. Это не стоило мне ни цента.

Я сделал это, потому что некоторые пользователи (посещающие врачи) используют свои личные устройства, и мы подключаем их к поставщику без адаптивного портала (они подключаются один раз и остаются на связи - у гостя есть ограничение по времени, и он должен принять Политику допустимого использования) .

Добавлен в /etc/ named.conf

zone "connectivitycheck.android.com" IN {type master; файл "inkhole.db "; };

зона "clients3.google.com" IN {type master; файл "inkhole.db "; };

/var/ named/sinkhole.db

$ TTL 600 @ IN SOA localhost root ( 5; серийный 3ч; обновить 1ч; повторить попытку 1 нед; истекать 1ч); мин. TTL ; В НС нс. * IN A 127.0.0.1 Connectivitycheck.android.com. IN A 127.0.0.1 clients3.google.com. IN A 127.0.0.1

Это не красиво, но работает очень хорошо. Надеюсь, это поможет кому-то другому.

0
ответ дан 5 December 2019 в 09:27

Теги

Похожие вопросы