Вступление
Всегда приятно, когда есть гостевой WiFi (особенно когда он бесплатный), да и не только гостевой. До этого у нас было несколько точек доступа разных производителей. Это всё не очень хорошо работало, постоянно возникали какие-то зависания, сбои. Решено было беспроводную сеть переделать. Воодушевившись как-то одной из статей, решил развернуть у нас в компании корпоративную WiFi сеть на базе UniFi, чтобы максимально стандартизировать беспроводное оборудование.
Немного отвлекаясь от темы, скажу, что процесс внедрения прошёл успешно, особых трудностей не было. Теперь, если нужно расширить зону охвата сети, просто покупаем новую UniFi точку, добавляем её в сеть, а дальше контроллер сам её настраивает.
Идея гостевого доступа
Так как контроллер и точки поддерживают мульти-SSID, то решено было так же сделать гостевой доступ в интернет для клиентов. (Всегда ведь приятнее ожидать в приёмной, читая новости, чем просто скучать, глядя в окно)
Система ваучеров
В начале я попробовал настроить гостевой доступ на базе открытой сети и системы ваучеров. Но во-первых, это не очень безопасно для клиентов (можно легко украсть пароль, и т.д.), во-вторых, когда от сети отваливался контроллер, точки вдруг по неведомой причине начинали пускать гостей в интернет в обход ваучеров. Если настроить в данном случае шифрование, то смысл ваучеров теряется, так как сильно усложняется процесс авторизации.
Шифрованное гостевое соединение
Далее я решил попробовать обычное WPA2 соединение с одним, на всех гостей, паролем. Пароль можно периодически менять, вывешивая на бумажке в приёмной.
Создал новую сеть с SSID типа «COMPANY_GUEST», задал тип WPA2 для большей надежности, закрыл доступ к локальным сетям, сгенерировал надежный пароль символов так из 20… Стоп! А как же этот надежный пароль будут вводить клиенты? И тут
Поразмыслив, решил попробовать записать всё это в QR код. Но если просто записать подряд пароль, SSID, то при считывании это будет просто текст. Максимум, на что можно рассчитывать в этом случае, это будет облегчен ввод пароля, но это не совсем то, что нам хотелось.
Поиск подходящего ПО
QR Droid
Первым, что в голову пришло, нужно использовать популярную программу QR Droid. Про неё многие слышали, знают.
Итак, для того, чтобы она понимала, что ей предлагают настройки от WiFi сети (а не просто набор текста), нужно установить дополнительное расширение QR-WiFi Plugin.
При помощи этого же расширения можно создать свой QR код с настройками сети. При ближайшем рассмотрении выяснилось, что кодирование происходит в нужной последовательности с нужными знаками препинания:
WIFI:S:COMPANY_GUEST;T:WPA;P:password;;
Не сложно понять, что именно в этой записи за что отвечает. Эту надпись можно уже закодировать любым удобным для вас способом.
Основной минус, на мой взгляд, это отсутствие приложения для других платформ, кроме Android. Также нужно что-то доставлять в процессе использования, что тоже не очень приятно.
Scan
Второй программой, на которой я остановился, стала Scan, основным преимуществом которой является наличие под все три известные платформы: Android, IOS, Windows Phone. Еще одним плюсом являлся тот факт, что в процессе использования не нужно было ничего устанавливать, то есть всё работает из коробки.
Но здесь для того, чтобы создать QR код в нужном формате, пришлось зарегистрироваться на их сайте.
После создания выяснилось, что в коде присутствует только ссылка на их ресурс, при заходе на который нужно нажать кнопку Connect, и тогда уже подставится нужная ссылка, которая в свою очередь подхватится их программой.
Сделано это было для того, чтобы можно было на их сайте смотреть статистику пользования QR кодом. Мне идея светить WiFi паролем (хоть и гостевым) в сеть не очень понравилась, поэтому я посмотрел, что за ссылку отдает браузер при нажатии на кнопку:
scan://wifi/?ssid=COMPANY_GUEST&password=password123
Опять всё просто! Но здесь, как я понял, в системе регистрируется что-то типа нового протокола scan (по крайней мере так выглядит), который в свою очередь и обрабатывается приложением.
Здесь не указан тип шифрования, но в моем случае это не стало помехой. Так что смело можно аналогично закодировать данную строку в QR код и вывешивать инструкцию.
Заключение
Ввиду отсутствия стандарта в области QR-кодирования, приходится искать сторонние приложения, которые уже обладают определенным набором функций. То есть каждый изобретает свой велосипед.
В данном случае я выбрал второе приложение, так как оно написано под три известные платформы, в отличие от первого, которое есть только под Android.