Captive portal

Automatyczna detekcja Captive Portal pozwala przekierować użytkowników na stronę autoryzacyjną. Mechanizm opiera się tym, iż system na urządzeniu klienta odpytuje specyficzny dla siebie URL.

Wymagania:

  • własny serwer DNS
  • możliwość przydzielania osobnej adresacji dla np. niezidentyfikowanych urządzeń wraz z naszymi serwerami DNS (napewno działa z BRASEM SmartEdge aka Redback)

Przykładowe pliki dla BIND:

# named.conf.local

# GOOGLE
zone "www.google.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "google.com" {
    type master;
    file "/etc/named/db.kopiszka";
};


# Android Captive Portal Detection
# CHROME
zone "clients1.google.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "clients2.google.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "clients3.google.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "clients4.google.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "connectivitycheck.android.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "connectivitycheck.gstatic.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "www.gstatic.com" {
    type master;
    file "/etc/named/db.kopiszka";
};


# Apple iPhone, iPad with iOS 6 Captive Portal Detection
# *.akamaitechnologies.com
zone "gsp1.apple.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "apple.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "www.apple.com" {
    type master;
    file "/etc/named/db.kopiszka";
};

# Apple iPhone, iPad with iOS 7, 8, 9 and recent versions of OS X
# *.apple.com
# *.apple.com.edgekey.net
# *.akamaiedge.net
# *.akamaitechnologies.com
zone "www.itools.info" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "www.ibook.info" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "www.airport.us" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "www.thinkdiffrent.us" {
    type master;
    file "/etc/named/db.kopiszka";
};

# FIREFOX
zone "detectportal.firefox.com" {
    type master;
    file "/etc/named/db.kopiszka";
};

# UBUNTU
zone "connectivity-check.ubuntu.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "network-test.debian.org" {
    type master;
    file "/etc/named/db.kopiszka";
};

# WINDOWS
zone "www.msftconnecttest.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "www.msftncsi.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "www.msftncsi.edgesuite.net" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "ipv6.msftncsi.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "ipv6.msftncsi.edgesuite.net" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "toredo.ipv6.microsoft.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
zone "toredo.ipv6.microsoft.com.nsatc.net" {
    type master;
    file "/etc/named/db.kopiszka";
};

# YAHOO
zone "search.yahoo.com" {
    type master;
    file "/etc/named/db.kopiszka";
};
# db.kopiszka

;
; BIND data file for local loopback interface
;
$TTL	604800
@	IN	SOA	autoryzacja.kopiszka. autoryzacja.kopiszka. (
			     12		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	autoryzacja.kopiszka.
@	IN	A	10.10.10.10
@	IN	AAAA	::1
 
autoryzacja	IN	A	10.10.10.10