Captiveportal abschalten: Difference between revisions

From Android Wiki
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Captiveportal von [http://www.kuketz-blog.de kuketz-blog.de] nutzen ==
== Captiveportal von [http://www.kuketz-blog.de kuketz-blog.de] nutzen ==
Wenn man nicht möchte, dass bei jeder Captive-Portal Prüfung Google oder Amazon weiß wann man welche IP nutzt und mit welchem Browser man surft,
<br>oder</br>
wenn man seinem Gerät das Internet verboten hat, weil es nur im heimischen Netzwerk nutzbar sein soll, mit der heimischen Mediathek,
<br>dann</br>
kann man die Abfrage ändern oder abschalten.


=== Vorraussetzung ===  
=== Vorraussetzung ===  
Line 16: Line 22:
Verbindet das Gerät via USB-Kabel mit eurem Rechner und aktiviert ADB für den Vorgang. Über ein Terminal am Rechner setzt ihr anschließend folgende Befehle ab:
Verbindet das Gerät via USB-Kabel mit eurem Rechner und aktiviert ADB für den Vorgang. Über ein Terminal am Rechner setzt ihr anschließend folgende Befehle ab:


<code>
adb shell 'settings put global captive_portal_http_url "http://captiveportal.kuketz.de"'  
adb shell 'settings put global captive_portal_http_url "http://captiveportal.kuketz.de"'  
adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de"'  
adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de"'  
adb shell 'settings put global captive_portal_fallback_url "http://captiveportal.kuketz.de"'  
adb shell 'settings put global captive_portal_fallback_url "http://captiveportal.kuketz.de"'  
adb shell 'settings put global captive_portal_other_fallback_urls "http://captiveportal.kuketz.de"'
adb shell 'settings put global captive_portal_other_fallback_urls "http://captiveportal.kuketz.de"'
</code>




'''Ob die URLs wie gewünscht angepasst wurden könnt ihr mit folgendem Befehl prüfen:'''
'''Ob die URLs wie gewünscht angepasst wurden könnt ihr mit folgendem Befehl prüfen:'''
   
   
adb shell 'settings get global captive_portal_https_url'
adb shell 'settings get global captive_portal_https_url'
   
   


Line 36: Line 40:
'''Anschließend können wir via curl (von einem Rechner aus) die URL mal abfragen:'''
'''Anschließend können wir via curl (von einem Rechner aus) die URL mal abfragen:'''


<code>
curl -I http://captiveportal.kuketz.de
curl -I http://captiveportal.kuketz.de
</code>


'''Als Antwort bekommt ihr:'''
'''Als Antwort bekommt ihr:'''
Line 46: Line 48:


Genau diese Antwort erwartet euer Android-Telefon.
Genau diese Antwort erwartet euer Android-Telefon.


=== Connectivity-Check-Service selbst hosten ===
=== Connectivity-Check-Service selbst hosten ===
Line 135: Line 136:
[https://www.kuketz-blog.de Mike Kuketz] <br>
[https://www.kuketz-blog.de Mike Kuketz] <br>
transcriptiert für droidwiki.org: [[Benutzer:Cptechnik|cptechnik]]
transcriptiert für droidwiki.org: [[Benutzer:Cptechnik|cptechnik]]


== Captive Portal ganz abschalten ==
== Captive Portal ganz abschalten ==
Line 141: Line 141:
  adb shell 'settings put global captive_portal_mode 0'
  adb shell 'settings put global captive_portal_mode 0'


== Quellen: ==
 
== Konsolenmitschnitt für euch ==
<nowiki> peter@meinpc:~$ adb shell settings list global|grep captive
captive_portal_fallback_url=https://www.google.com/generate_204
captive_portal_http_url=http://tabletcaptiveportal.com/generate_204
captive_portal_https_url=http://tabletcaptiveportal.com/generate_204
captive_portal_use_https=0
peter@meinpc:~$
peter@meinpc:~$
peter@meinpc:~$ adb shell 'settings put global captive_portal_http_url "http://captiveportal.kuketz.de"'
peter@meinpc:~$ adb shell settings list global|grep captive
captive_portal_fallback_url=https://www.google.com/generate_204
captive_portal_http_url=http://captiveportal.kuketz.de
captive_portal_https_url=http://tabletcaptiveportal.com/generate_204
captive_portal_use_https=0
peter@meinpc:~$
peter@meinpc:~$
peter@meinpc:~$ adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de"'
peter@meinpc:~$ adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de"'
peter@meinpc:~$ adb shell 'settings put global captive_portal_fallback_url "http://captiveportal.kuketz.de"'
peter@meinpc:~$ adb shell settings list global|grep captive
captive_portal_fallback_url=http://captiveportal.kuketz.de
captive_portal_http_url=http://captiveportal.kuketz.de
captive_portal_https_url=https://captiveportal.kuketz.de
captive_portal_use_https=0
peter@meinpc:~$ </nowiki>
 
== Quellen ==
- https://www.kuketz-blog.de/android-captive-portal-check-204-http-antwort-von-captiveportal-kuketz-de/
- https://www.kuketz-blog.de/android-captive-portal-check-204-http-antwort-von-captiveportal-kuketz-de/



Latest revision as of 09:45, 17 October 2021

Captiveportal von kuketz-blog.de nutzen[edit | edit source]

Wenn man nicht möchte, dass bei jeder Captive-Portal Prüfung Google oder Amazon weiß wann man welche IP nutzt und mit welchem Browser man surft,
oder
wenn man seinem Gerät das Internet verboten hat, weil es nur im heimischen Netzwerk nutzbar sein soll, mit der heimischen Mediathek,
dann
kann man die Abfrage ändern oder abschalten.

Vorraussetzung[edit | edit source]

Umgang mit ADB, Installation von ADB-Tools / ADB-Werkzeugen, Entwickleroptionen freigeschaltet


Android Nougat (7.x)[edit | edit source]

Verbindet das Gerät via USB-Kabel mit eurem Rechner und aktiviert ADB für den Vorgang. Über ein Terminal am Rechner setzt ihr anschließend folgende Befehle ab:

adb shell 'settings put global captive_portal_http_url "http://captiveportal.kuketz.de"'  
adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de"'

Android Oreo (8.x) | Pie (9.x)[edit | edit source]

Verbindet das Gerät via USB-Kabel mit eurem Rechner und aktiviert ADB für den Vorgang. Über ein Terminal am Rechner setzt ihr anschließend folgende Befehle ab:

adb shell 'settings put global captive_portal_http_url "http://captiveportal.kuketz.de"' 
adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de"' 
adb shell 'settings put global captive_portal_fallback_url "http://captiveportal.kuketz.de"' 
adb shell 'settings put global captive_portal_other_fallback_urls "http://captiveportal.kuketz.de"'


Ob die URLs wie gewünscht angepasst wurden könnt ihr mit folgendem Befehl prüfen:

adb shell 'settings get global captive_portal_https_url'

Ausgabe:

https://captiveportal.kuketz.de


Anschließend können wir via curl (von einem Rechner aus) die URL mal abfragen:

curl -I http://captiveportal.kuketz.de

Als Antwort bekommt ihr:

HTTP/1.1 204 No Content [...]

Genau diese Antwort erwartet euer Android-Telefon.

Connectivity-Check-Service selbst hosten[edit | edit source]

Alternativ zu meinem Connectivity-Check-Service könnt ihr natürlich auch selbst hosten. Via nginx geht das relativ simpel. Hier meine Konfiguration:

## SITE HANDLING HTTP ## 
server { 
       ## INIT ## 
       listen          80; 
       server_name     captiveportal.kuketz.de; 
       root            /var/www/sites/captiveportal.kuketz.de; 

       ## LOGS ##
       access_log off;
       error_log off;
       
       ## SECURITY HEADER ##
       include /etc/nginx/conf/headers.conf;
       add_header Content-Security-Policy "default-src 'none'";
       
       ## ENTER HERE ##
       location / {
               # Let's encrypt location
               location ^~ /.well-known/acme-challenge {
                       default_type text/plain;
               }
               location = /.well-known/acme-challenge/ {
                       return 444;
               }
               ## CAPTIVE PORTAL RESPONSE
               location / {
                       return 204;
               }
       }
}

## SITE HANDLING HTTPS ##
server {
       ## INIT ##
       listen          443 ssl;
       server_name     captiveportal.kuketz.de;
       root            /var/www/sites/captiveportal.kuketz.de;

       ## LOGS ##
       access_log off;
       error_log off;

       ## SECURITY HEADER ##
       include /etc/nginx/conf/headers-ssl.conf;
       add_header Content-Security-Policy "default-src 'none'";

       ## SSL ##
       ssl                             on;
       ssl_certificate                 /etc/ssl/certs/captiveportal.kuketz_ecdsa.pem;
       ssl_certificate_key             /etc/ssl/private/captiveportal.kuketz_ecdsa.key;
       # OCSP-Stapling
       ssl_stapling on;
       ssl_stapling_verify on;
       ssl_stapling_file /etc/ssl/certs/captiveportal.kuketz_ocspresponse.der;

       ## CAPTIVE PORTAL RESPONSE
       location / {
               return 204;
       }
}


Das Entscheidende ist eigentlich nur dieser kleine Teil:

## CAPTIVE PORTAL RESPONSE
location / {
        return 204;
}

Damit wird nginx auf Anfragen auf der Domain »captiveportal.kuketz.de« mit einem HTTP-204-Statuscode antworten. Mit Apache sollte das auch funktionieren (nicht verifiziert):

RewriteEngine On
RewriteCond %{REQUEST_URI} /
RewriteRule $ / [R=204,L]

Fazit: Ihr könnt nun also meinen Service nutzen oder den Connectiviy-Check selbst hosten. Google wird über diese Funktion jedenfalls keine Daten mehr bekommen.

Informationen zur Datenverabeitung könnt ihr der Datenschutzerklärung entnehmen.

Mike Kuketz
transcriptiert für droidwiki.org: cptechnik

Captive Portal ganz abschalten[edit | edit source]

adb shell 'settings put global captive_portal_mode 0'


Konsolenmitschnitt für euch[edit | edit source]

 peter@meinpc:~$ adb shell settings list global|grep captive
 captive_portal_fallback_url=https://www.google.com/generate_204
 captive_portal_http_url=http://tabletcaptiveportal.com/generate_204
 captive_portal_https_url=http://tabletcaptiveportal.com/generate_204
 captive_portal_use_https=0
 peter@meinpc:~$ 
 peter@meinpc:~$ 
 peter@meinpc:~$ adb shell 'settings put global captive_portal_http_url "http://captiveportal.kuketz.de"' 
 peter@meinpc:~$ adb shell settings list global|grep captive
 captive_portal_fallback_url=https://www.google.com/generate_204
 captive_portal_http_url=http://captiveportal.kuketz.de
 captive_portal_https_url=http://tabletcaptiveportal.com/generate_204
 captive_portal_use_https=0
 peter@meinpc:~$ 
 peter@meinpc:~$ 
 peter@meinpc:~$ adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de"' 
 peter@meinpc:~$ adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de"' 
 peter@meinpc:~$ adb shell 'settings put global captive_portal_fallback_url "http://captiveportal.kuketz.de"' 
 peter@meinpc:~$ adb shell settings list global|grep captive
 captive_portal_fallback_url=http://captiveportal.kuketz.de
 captive_portal_http_url=http://captiveportal.kuketz.de
 captive_portal_https_url=https://captiveportal.kuketz.de
 captive_portal_use_https=0
 peter@meinpc:~$ 

Quellen[edit | edit source]

- https://www.kuketz-blog.de/android-captive-portal-check-204-http-antwort-von-captiveportal-kuketz-de/