I am also interested in Mikrotik solution to this problem. The iOS Login page must be prevented from appearing at all, as it just confuses users. Attempts to cancel the Login returns the user to the Wi-Fi settings on the device, so more confusion.Is there any chance that Mikrotik can do something about it, as it is crucial to our hotspot installations due to the fact that more than 50% of the devices are IOS devices.
In iOS7 the request is actually sent to a random URL on a randomly chosen Apple site, but always returns the same content.When connecting to a wireless network the Apple iOS device sends a request to a specific page on the Apple Site
Similarly to this, I tried to implement this workaround with a firewall layer 7 rule, but no success.A different solution was found that does not involve listing the known Apple sites. The credit goes to Matthias Strubel of Wiesbaden in Germany.
It makes use of the User Agent (UA) data transmitted by the iOS7 device.
A typical string looks like: CaptiveNetworkSupport-277 wispr
The URL requested will change, the site requested will change, and number after the hyphen will change, but the device always identifies as CaptiveNetworkSupport to the website.
It appears that the Apple site will respond to this with success.html regardless of URL or which Apple site is chosen from the list.
The solution is to send the device a locally served success.html page if the requesting UA contains CaptiveNetworkSupport. Historically this page has lived at apple.com in the path /library/test/success.html. It can also be seen at captive.apple.com.
I do not yet have Mikrotik equipment. I have tested this solution with the Lighttpd web server and confirmed that it works. I would hope that someone could develop a similar configuration for Mikrotik and openly publish the settings.
[admin@MikroTik] > ip hotspot walled-garden export
# nov/08/2013 11:14:15 by RouterOS 5.26
# software id = EH11-RCFX
#
/ip hotspot walled-garden
add action=allow comment="place hotspot rules here" disabled=yes dst-port=""
add action=allow disabled=no dst-host=*.apple.com dst-port=""
add action=allow disabled=no dst-host=*.apple.com.edgekey.net dst-port=""
add action=allow disabled=no dst-host=*.akamaiedge.net dst-port=""
add action=allow disabled=no dst-host=*.akamaitechnologies.com dst-port=""
/ip hotspot walled-garden ip
add action=accept disabled=no dst-host=captive.apple.com
add action=accept disabled=no dst-host=www.appleiphonecell.com
add action=accept disabled=no dst-host=www.itools.info
add action=accept disabled=no dst-host=www.ibook.info
add action=accept disabled=no dst-host=www.airport.us
add action=accept disabled=no dst-host=www.thinkdifferent.us
add action=accept disabled=no dst-host=static.ess.apple.com
add action=accept disabled=no dst-host=init-p01md.apple.com
add action=accept disabled=no dst-host=ess.apple.com
add action=accept disabled=no dst-host=apple.com
add action=accept disabled=no dst-host=gps.apple.com
[admin@MikroTik] >
/ip hotspot profile
set [ find default=yes ] dns-name="" hotspot-address=0.0.0.0 html-directory=hotspot http-cookie-lifetime=3d http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=default rate-limit="" smtp-server=0.0.0.0 split-user-domain=no use-radius=no
add dns-name=www.hotspot.local hotspot-address=172.17.2.1 html-directory=hotspot http-cookie-lifetime=2h http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=hsprof1 nas-port-type=wireless-802.11 radius-accounting=yes radius-default-domain="" radius-interim-update=received radius-location-id="" radius-location-name="" radius-mac-format=XX:XX:XX:XX:XX:XX rate-limit="" smtp-server=0.0.0.0 split-user-domain=no use-radius=yes
you do have iOS7 on the iPhone, yes?It doesn't work...... this user-agent == CaptiveNetworkSupport Nerver comes
I did
$(if user-agent == CaptiveNetworkSupport)
redirect pag1
$(else)
redirect pag2
$(endif)
in all devices redirects to pag2
Thank's
GET /library/test/success.html HTTP/1.0
Host: www.apple.com
User-Agent: CaptiveNetworkSupport/1.0 wispr
Connection: close
We are actually making full use of the captive portal helpers built into as many of the different O/S as possible to fight the issue with Apple etc now using Google as the embedded search (and search being an SSL site now).
Our support calls dropped by around 300 per month once we removed apple.com from the walled garden.
Are they really causing you that many problems?
$(if user-agent == CaptiveNetworkSupport)
We had a the same trouble on a RB1200 5.26 in a hotel.
Windows, Android were able to connect but Not IOS 7.x.x nor MacOS
We found that on mac os, the hotpost.local did not resolve.
After many gess, I found that it was a dns resolution problem.
Ping hotspot.local worked on android, windows, linux but did NOT worked on MacOS nor IOS 7.x.x
Ping www.hotspot.local works for every platform.
The trick was to rename the dns name of the hotspot login page web server from hotspot.local to www.hotspot.local
IP -> hotspot -> Server profile -> DNS name -> [ http://www.hotspot.local ]
It seems that new IOS and MacOS are using MDNS responder in place of DNS request while searching for the IP of hotspot.local
Now safari is able to correctly be redirected to the login web page and IOS 7 device are authenticated.
I also added things in the walled garden
and for the hotspot profileCode: Select all[admin@MikroTik] > ip hotspot walled-garden export # nov/08/2013 11:14:15 by RouterOS 5.26 # software id = EH11-RCFX # /ip hotspot walled-garden add action=allow comment="place hotspot rules here" disabled=yes dst-port="" add action=allow disabled=no dst-host=*.apple.com dst-port="" add action=allow disabled=no dst-host=*.apple.com.edgekey.net dst-port="" add action=allow disabled=no dst-host=*.akamaiedge.net dst-port="" add action=allow disabled=no dst-host=*.akamaitechnologies.com dst-port="" /ip hotspot walled-garden ip add action=accept disabled=no dst-host=captive.apple.com add action=accept disabled=no dst-host=www.appleiphonecell.com add action=accept disabled=no dst-host=www.itools.info add action=accept disabled=no dst-host=www.ibook.info add action=accept disabled=no dst-host=www.airport.us add action=accept disabled=no dst-host=www.thinkdifferent.us add action=accept disabled=no dst-host=static.ess.apple.com add action=accept disabled=no dst-host=init-p01md.apple.com add action=accept disabled=no dst-host=ess.apple.com add action=accept disabled=no dst-host=apple.com add action=accept disabled=no dst-host=gps.apple.com [admin@MikroTik] >
Code: Select all/ip hotspot profile set [ find default=yes ] dns-name="" hotspot-address=0.0.0.0 html-directory=hotspot http-cookie-lifetime=3d http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=default rate-limit="" smtp-server=0.0.0.0 split-user-domain=no use-radius=no add dns-name=www.hotspot.local hotspot-address=172.17.2.1 html-directory=hotspot http-cookie-lifetime=2h http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=hsprof1 nas-port-type=wireless-802.11 radius-accounting=yes radius-default-domain="" radius-interim-update=received radius-location-id="" radius-location-name="" radius-mac-format=XX:XX:XX:XX:XX:XX rate-limit="" smtp-server=0.0.0.0 split-user-domain=no use-radius=yes
Hi,
I just add *success* to the Walled Garden entry Path field
We had a the same trouble on a RB1200 5.26 in a hotel.
Windows, Android were able to connect but Not IOS 7.x.x nor MacOS
We found that on mac os, the hotpost.local did not resolve.
After many gess, I found that it was a dns resolution problem.
Ping hotspot.local worked on android, windows, linux but did NOT worked on MacOS nor IOS 7.x.x
Ping www.hotspot.local works for every platform.
The trick was to rename the dns name of the hotspot login page web server from hotspot.local to www.hotspot.local
IP -> hotspot -> Server profile -> DNS name -> [ http://www.hotspot.local ]
It seems that new IOS and MacOS are using MDNS responder in place of DNS request while searching for the IP of hotspot.local
Now safari is able to correctly be redirected to the login web page and IOS 7 device are authenticated.
I also added things in the walled garden
and for the hotspot profileCode: Select all[admin@MikroTik] > ip hotspot walled-garden export # nov/08/2013 11:14:15 by RouterOS 5.26 # software id = EH11-RCFX # /ip hotspot walled-garden add action=allow comment="place hotspot rules here" disabled=yes dst-port="" add action=allow disabled=no dst-host=*.apple.com dst-port="" add action=allow disabled=no dst-host=*.apple.com.edgekey.net dst-port="" add action=allow disabled=no dst-host=*.akamaiedge.net dst-port="" add action=allow disabled=no dst-host=*.akamaitechnologies.com dst-port="" /ip hotspot walled-garden ip add action=accept disabled=no dst-host=captive.apple.com add action=accept disabled=no dst-host=www.appleiphonecell.com add action=accept disabled=no dst-host=www.itools.info add action=accept disabled=no dst-host=www.ibook.info add action=accept disabled=no dst-host=www.airport.us add action=accept disabled=no dst-host=www.thinkdifferent.us add action=accept disabled=no dst-host=static.ess.apple.com add action=accept disabled=no dst-host=init-p01md.apple.com add action=accept disabled=no dst-host=ess.apple.com add action=accept disabled=no dst-host=apple.com add action=accept disabled=no dst-host=gps.apple.com [admin@MikroTik] >
Code: Select all/ip hotspot profile set [ find default=yes ] dns-name="" hotspot-address=0.0.0.0 html-directory=hotspot http-cookie-lifetime=3d http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=default rate-limit="" smtp-server=0.0.0.0 split-user-domain=no use-radius=no add dns-name=www.hotspot.local hotspot-address=172.17.2.1 html-directory=hotspot http-cookie-lifetime=2h http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=hsprof1 nas-port-type=wireless-802.11 radius-accounting=yes radius-default-domain="" radius-interim-update=received radius-location-id="" radius-location-name="" radius-mac-format=XX:XX:XX:XX:XX:XX rate-limit="" smtp-server=0.0.0.0 split-user-domain=no use-radius=yes