Raspberry Pi im Hot Spot Wifi mit Zugangsportale zu verwandeln (2/2)

Für die automatische Hotspot-Anlage, finden Sie unter Artikel hier.

In einem früheren Artikel, Wir hatten unseren eigenen Wifi-Access-Point installiert.. Jetzt geht es um ein captive Portal-Steuerelement hinzufügen, die es nutzen. Hotspot_WiFiUm ein captive Portal haben Sie mehrere Möglichkeiten :

  1. Die einfache Methode ist durch eine PHP-Seite übergeben.. Sie können eine Nachricht in einer HTML-Seite anzeigen., warten Sie ein und lassen Sie Zugang zum Internet.
  2. Die komplexere Methode, wohin Sie durch ein spezielles Tool wie zum Beispiel YFi Hotspot Manager.

Jede Methode hat viel über seine vor- und Nachteile, aber zunächst ich entschied mich für Einfachheit und nur Kontrolle grundlegende Weise Zugang zum Internet. Es wird durch eine PHP-Seite sein..

Ein captive Portal in PHP

  1. Installieren von Nginx mit PHP-Unterstützung. Am einfachsten ist, befolgen Sie die Anweisungen des In diesem Artikel. Hier ist mein Serverkonfiguration :
    Server {
    	Root/Var/www;
    	Index-index.php;
    	Servername "localhost";
    	Lage / {
    		Try_files $uri $uri / index.php;
    	}
    	Vermietung ~ .php$ {
    		Fastcgi_split_path_info ^(.+\.PHP)(/.+)$;
    		Fastcgi_pass Unix:/var/run/php5-FPM.sock;
    		Fastcgi_index index.php;
    		gehören fastcgi_params;
    	}
    }
  2. Zusätzliche Pakete installieren :
    apt - Get install install conntrack
  3. Ermöglichen Sie dem Benutzer Www - Daten führen Sie die Befehle zur Verwaltung des Zugriffs erforderlich :
    Start Visudo Fügen Sie folgende Zeilen am Ende der Datei :
  4. Www - Daten ALL = NOPASSWD: /usr / sbin / arp
    www-data ALL = NOPASSWD: /sbin / iptables
    www-data ALL = NOPASSWD: /Usr/bin/rmtrack [0-9]*.[0-9]*.[0-9]*.[0-9]*
    
  5. Die Homepage erstellen Index.php
    <!--?php 
    $ip = $_SERVER['REMOTE_ADDR'];
    $mac = shell_exec("sudo /usr/sbin/arp -an " . $ip);
    preg_match('/..:..:..:..:..:../',$mac , $matches);
    $mac = @$matches[0];
    if( $mac === NULL) { echo "Access Denied."; exit; }
    ?-->
    <form action="process.php" method="post">
    <input name="mac" type="input" value="<?php echo $mac; ?>" /> 
    <input name="ip" type="input" value="<?php echo $ip; ?>" />
    <input style="padding: 10px 20px;" type="submit" value="OK" />
    </form>
    
  6. Erstellen Sie die Seite, die die Regeln für den Zugriff auf das Internet zu generieren, wird Process.php. Wann hat der Benutzer das Formular auf der vorherigen Seite überprüft., Es ist sie, die aufgerufen wird, um vollen Zugriff zu geben.
    
    
  7. Den Satz von routing-Regeln erstellen
    Iptables -t mangle -N Internet Iptables-t Mangle-a PREROUTING -i wlan0 -p Tcp -m Tcp--Dport 80 -j Internet Iptables -t mangle - ein Internet -j MARK--Set-mark 99
    Iptables Nat-a PREROUTING-i wlan0 p Tcp m Mark t - mark 99 -m Tcp - dport 80 -j DNAT - zu-Ziel 192.168.10.1
  8. Speichern Sie die Regeln für die nächsten paar Neustarts
    Service Iptables - persistent

 

Hier bitte schön ! Ein Access-Point mit ein captive portal. Sie können PHP-Seiten, um das Erscheinungsbild und die Funktionen ändern bearbeiten.. Eine Datenbank könnte beispielsweise die MAC-Adressen, um nicht die Verbindung Fragen merken., Verwalten Sie eine Verbindungszeit, ein volume, etc..

Quellen :

Sie können auch mögen....

  • EDWARDS ABDO

    Sehr gutes tuto ,
    Eine Notiz entfernen der Php-Code-Kommentare in den beiden Dateien index.php und process.php.

  • luckidu33

    AUFMERKSAMKEIT !!! In diesem Lernprogramm ermöglicht einen Angreifer die Kontrolle über den Server durch die Injektion von (mit sehr hohen!!!!!!) System in der Variable $ip und $mac Befehle!!! Ein Steuerelement sollte zum Zeitpunkt erfolgen $ip = $_POST['ip'];
    $mac = $_POST['mac'];

  • Hallo, Code auf Punkt 5 is empty 🙁

  • lesjno

    Hallo,
    Es muss ein gutes tutorial; Leider habe ich ein Anliegen.
    Kurz vor dem Schritt 6 (Routing-Regeln), Das System verhält sich wie eine einfache Access-point : Es verbindet auch mit Wifi und Zugang zum Internet, entweder http oder https.
    Aber hinter der Bühne 6 Es wird eine “404 Nicht gefunden” Wenn Sie eine http-Adresse eingeben, während ich erwartet, dass die Seite index.php des Access points anzeigen (die /var/-www/index.php-Seite, die nun angezeigt wird, dass ich die Adresse direkt eingeben 192.168.10.1 im browser).
    Was fehlt in meinem Setup automatisch auf das captive Portal gehen ?

    Vielen Dank im voraus !

    • lesjno

      Kleine Zusatzinfo : Hier ist, was ich im Log haben, wenn ich zum Beispiel auf die Seite zugreifen möchten http://lesjno.free.fr/Solar/index.html

      in /var/log/nginx/access.log ==>
      192.168.10.4 - - [29/Dez/2014:17:10:44 -0100] “GET /Solar/index.html HTTP/1.1” 404 142 “-” “Mozilla/5.0 (Windows NT 6.1; WOW64; RV:34.0) Gecko/20100101 Firefox/34,0”

      in der Datei error.log ==>
      2014/12/29 17:10:44 [Fehler] 6830#0: *14 Öffnen() “/var/www/Solar/index.html” fehlgeschlagen (2: Nr. Datei oder Verzeichnis), Client: 192.168.10.4, Server: , Anfrage: “GET /Solar/index.html HTTP/1.1”, Host: “lesjno.Free.fr”

      • Die Datei "index.html" Es ist daher nicht. Ist erforderlich ? Wenn nicht bei der Schaffung von ca wird den Fehler entfernen

        • lesjno

          Hallo,

          Ich habe mich schlecht ausgedrückt. Das Beispiel gegeben wurde, die eine “Beispiel” ! Ich setze mir als “Client” mit Wifi verbunden Seite Access Point und wer eine Web besuchen wollte jeder. Die Website, die es sogar ist nicht das problem, Ich könnte tausende andere Beispiele genommen haben.
          Generisch sein, Stellen Sie sich vor, dass Sie auf die Website zugreifen möchten http://aaaaa/bbbbb : Ich schätze nur in Betrieb “normale” des Access Points mit Zugangsportale ich sollte zunächst nicht auf die angeforderte Seite gehen, aber auf der Login-Seite bereit, für die Identifizierung des Benutzers, Daher befindet sich die Seite, die lokal auf die Himbeere : /Var/www/index.php. Aber dies ist nicht der Fall : Protokoll anzugeben, dass das System versucht, eine offene Stellen() Von “/Var/Www/Banken” (Das ist natürlich nicht vorhanden !), Anfrage “GET /bbbbb HTTP/1.1”, Host: “AAAAA”.
          Gibt es etwas schief in der Konfiguration. Ist dies in der Iptables-config ? Was ist an anderer Stelle ?

          • OK die Seite tatsächlich passieren sollte standardmäßig. Wenn das stimmt sind Seite Login Passwort dann den Ip-Tabellen den Zugang nach außen eingeführt. Aber ich weiß nicht, ob die Seite standardmäßig an den Anfang oder das erste mal dran gesetzt ist ….

          • Nicolas Leleu

            Et si on faisait la page de logon via la page d’erreur 404, page non trouvée? ou alors, la page 404 redirigerait vers index.php

  • Ricardo

    Hallo,

    Der Punkt 5 ist leer, Sie könnten bitte Geld zurück, Vielen Dank.

  • Henry Bernard

    Danke Bcp für dieses tutorial, es erlaubt m Wi-Fi einrichten. Andererseits, sogar mit einem ipforward 0, Ich habe nicht die Pop-up / Splash-Seite Captive Portals… oder Süden mac, oder ios, oder android. Wissen Sie, wie ? Es wäre ganz oben sein, um ca zu können, Wir verbinden und - Pop - ein Browser-Fenster ist, wie in restaus angezeigt, Hotels, etc..

    • Je ne sais pas mais moi aussi ca m’interresse de savoir comment faire 🙂

      • Henry Bernard

        der Trick, c ist, dass es allein getan werden sollte. Wie mit WiFi… Wenn ein OS (iOS, Android, Mac) WiFi verbindet es überprüft, ob er gefangen genommen wird oder nicht… Wenn ja, sendet er ein Popup. Was seltsam ist c es nicht bereits getan …

        • iptv

          Ich bin interessiert, was Sie mit dem Gerät tun können , Siehe Homepage für Hotels und Restaurants . Vielen Dank

          • Zu Ihrer Information werde ich einen Artikel mit CoovaChilli tun, die auf dem WiFi-Netzwerk ein Popup mit der Ankunft zeigt, im Popup gibt es eine anpassbare HTML-Seite und Benutzer werden durch die Authentifizierung über Freeradius verwaltet

  • iptv

    Hallo, Ich sehe, dass die Kommentare nicht in Spanisch sind, Sie könnten Fragen auf Spanisch beantworten?

  • Chris

    Der Code auf Punkt 5 scheint zu fehlen.

  • Mohit Madan

    Der Code fehlt(Punkt 5)

  • CPs

    Die Codes in Abschnitt 4 und 5 fehlen.

  • The code in section 4 und 5 are again missing…….

  • Tania Daniela Paiva Falcón

    Hallo, Code auf Punkt 5 is misisng.

  • Chris

    Hello what has happened to section 4 und 5 after-all?

    • Code has been deleted and I do not find any backup sorry. I should take time to recreate it. Else use my post with coovachilli

  • Rodrigue ANDRIANOMENJANAHARY

    Hallo

    Comment on va faire si on a installé apache2 et phpmyadmin sur le raspberry??

    Ich bekomme mit einem Telefon die Verbindung meiner Himbeere zu teilen und einen Computer, aber ich möchte nicht, dass jedes Mal, wenn ich auf meine IP-Adresse Tracking-Datei eingeben, die ich ich will voir.Alors in Verbindung zu meinem Netzwerk wollen mit ein Telefon,wenn ich den Browser öffnen,dort sofort die Homepage, die angezeigt wird.

    Hat jemand kann mir helfen??,Vielen Dank

    • Verwenden Sie stattdessen die Freeradius und coovachilli-Lösung, die auf dieser Seite präsentiert wird und das funktioniert wie erwartet

  • Paddy

    I found the old side with the code: http://www.pihomeserver.fr/de/2014/05/23/raspberry-pi-home-server-creer-hot-spot-wifi-portail-captif-22/

    Auf der Seite fndet man den Quellcode für 5.

    • Thank you so much ! Ich werde aktualisieren, um die Post !

Popular destinations