Ответы пользователя по тегу Wi-Fi
  • Как реализовать показ рекламы в гостевом вайфай в 2017 году?

    @zzzevaka
    А в чем проблема внедрить рекламу на captive portal? Если речь о транспорте, то там он должен быть для идентификации. Иначе незаконно.

    Нужно web-приложение, radius-сервер и роутер, который умеет редирект на captive portal. Запускал с год назад в эксплуатацию такую услугу у интернет провайдера. Использовали микротики, у них из коробки такой функционал есть.
    Ответ написан
    3 комментария
  • Будет ли работать Mikrotik на 2,4 и 5 Ghz одновременно?

    @zzzevaka
    А чем не устраивает hap ac? Он умеет 2.4 и 5 одновременно. Настраивал capsman на 15 таких.
    Ответ написан
  • Как грамотно обработать iOS CNA при подключении к WiFI с Captive Portal?

    @zzzevaka Автор вопроса
    1. Спасибо большое OCTAGRAM за развернутый ответ. Комментарии не поддерживают форматирование, поэтому отвечу отдельным постом.

    2. У меня получилось как-то проще. Может я что-то упускаю, но работает стабильно на нескольких айфонах с разными версиями IOS (8-10).

    Код на python:

    # функция обрабатывает URL /hotspot-.*.html
    # для запоминания пользователей я использую redis
    def get(self):
      # если мы помним, что этот пользователь уже обращался на hotspot-.*.html,
      # подделываем ответ captive.apple.com
      if self.redis_conn.get('apple_wispr:some_user_marker'):            
        self.finish(
          '''
            <HTML>
              <HEAD><TITLE>Success</TITLE></HEAD>
              <BODY>
                <a href="http://ya.ru">This link will open in Safari</a>
              </BODY>
            </HTML>    
          '''
      )
      # иначе, запоминаем этого пользователя на 10 секунд
      # и отдаем заглушку. всплывет CNA
      else:
        self.redis_conn.set('apple_wispr:some_user_marker', 1, 10)
        self.finish('<html></html>')


    Как видно, даже без "success" в body прокатывает.

    В nginx это выглядит так:

    "GET /hotspot-detect.html HTTP/1.0" 200 13 "-" "CaptiveNetworkSupport-346 wispr"
    "GET /hotspot-detect.html HTTP/1.1" 200 273 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C92"
    "GET /hotspot-detect.html HTTP/1.0" 200 273 "-" "CaptiveNetworkSupport-346 wispr"


    3. Собственно в чем была моя проблема:

    До того, что надо на первый wispr запрос отвечать коряво, а на все остальные подделывать оригинальный ответ captive.apple.com я допер еще до того, как задал этот вопрос.

    Проблема была такая: при нажатии на ссылку, от WiFi-сети устройство отключалось и шло в safari через мобильный интернет. Это при том, что в CNA уже была кнопка "Done" и вроде как CNA уже обманут.

    Когда до меня дошло, я долго себя материл за тупость. Причина:

    Для перенаправления пользователя на сервер авторизации я использую функционал Mikrotik ip hotpsot.
    При попытке ios достучаться до captive.apple.com, Mikrotik его редиректил (с помощью HTTP 302) на сервер авторизации. И так при КАЖДОМ ЗАПРОСЕ.

    IOS на оригинальные запросы ВСЕГДА получал 302. Интересно, что частично он принимал ответы после редиректа за нормальные (кнопка done же появлялась).

    Решение: перенаправить запросы на сервер авторизации без использования HTTP.
    Я прописал в DNS Mikrotik'a A-запись captive.apple.com на свой сервер и добавил на сервере обработчик на /hotspot-.*.html

    И похоже, что ура.
    Ответ написан
  • Как и через что сделать мониторинг подключений к wifi?

    @zzzevaka
    Посмотрите в сторону RADIUS, если роутер, конечно, умеет. А если не умеет, найди другой роутер)
    Ответ написан
    8 комментариев
  • Как правильно настроить capsman?

    @zzzevaka
    1. У вас, похоже, настроен Local forwarding. покажите /caps-man datapath print

    2. А в логах пусто?

    Пример моей конфигурации, где трафиком рулит контроллер:

    [admin@ROUTER-NAME] > /caps-man configuration print terse 
     0 name=ctl-private mode=ap ssid=private-network security=security-private datapath=datapath-private channel=10 
     1 name=ctl-public mode=ap ssid=public-network datapath=datapath-public channel=10 
    
    [admin@ROUTER-NAME] > /caps-man datapath print terse      
     0 name=datapath-private client-to-client-forwarding=no bridge=bridge-private local-forwarding=no 
     1 name=datapath-public client-to-client-forwarding=no bridge=bridge-public local-forwarding=no 
    
    [admin@ROUTER-NAME] > /caps-man provisioning print terse 
     0   radio-mac=00:00:00:00:00:00 hw-supported-modes="" identity-regexp="" common-name-regexp="" ip-address-ranges="" action=create-dynamic-enabled master-configuration=ctl-private slave-configurations=ctl-public name-format=cap name-prefix=""
    Ответ написан
  • Порекомендуйте хороший Wi-Fi роутер для работы веб-сервера по локальной сети на несколько клиентов?

    @zzzevaka
    1,2,4 - любой MikroTik
    3 - зависит от количества и качества перекрытий. Узкое место, чаще всего - мощность передатчика клиентского устройства, а не мощность передатчика роутера.

    Посмотрите на Mikrotik hAP AC lite
    Ответ написан
    6 комментариев
  • Как узнать, по какому из WiFi SSID подключился юзер к Mikrotik?

    @zzzevaka
    Можно узнать интерфейс:
    /interface wireless registration-table print

    Имена интерфейсов называйте так же, как и SSID.

    Еще можно настроить wifi через CAPsMAN. Там пишется SSID:
    /caps-man registration-table print
    Ответ написан
    Комментировать
  • Как создать сеть wifi с доступом по логину и паролю?

    @zzzevaka
    Я для этих целей использовал mikrotik. Даже самый простой их роутер имеет функционал hotspot. Можно настроить все локально. Можно прикрутить RADIUS, переадресацию на сторонний HTTP-сервер.
    Ответ написан
    Комментировать