Raspberry Pi, CoovaChilli Freeradius und einen Wifi Hotspot mit Captive Portal
Für die automatische Hotspot-Anlage, finden Sie unter Artikel hier.
Ich sagte Ihnen, es gibt eine Zeit zu tun, ein Punkt d & rsquo; WLAN-Internetzugang in PHP und Steueranschlüsse. Nur wenn das Prinzip war einfach, das Ergebnis der & rsquo; war zu kann ein wenig zu. So aujourd & rsquo; hui, eine viel erfolgreicher Tool installieren : CoovaChilli.
Aufmerksamkeit : dieser Artikel ist lang, sehr lange…
Das & rsquo; tun CoovaChilli ?
CoovaChilli ist die Opensource Version des Projekts chillispot. Es bietet eine Benutzerschnittstelle für Benutzer, die auf einen Hotspot zu authentifizieren (nicht unbedingt Wifi). Er l & rsquo; Vorteil, dass keine spezielle Module im Kernel nicht erforderlich, AAA-Management ist mit einem RADIUS-Server delegiert (lokale ou non) und & rsquo; OAuth-Authentifizierung (nicht von mir getestet).
Kurz gesagt ist es all das und rsquo; es braucht, um ihren Hotspot-Verwaltung (einschließlich der 802.1x-Authentifizierung und MAC-Adresse) !
Das & rsquo; ist, dass Freeradius ?
Freeradius (Opensource-Version de RADIUS) erlaubt es, auf ihrem Server / Maschine eine Netzwerkprotokoll, das verwendet wird, um die Authentifizierung und Benutzerkonten verwalten. Es steuert den Zugriff (Authentifizierung) aber d & rsquo; überwachen Nutzung und d & rsquo; Genehmigung oder Ablehnung auf der Grundlage von & rsquo;; es Regeln & rsquo gelten Attribute wie der & rsquo; Zeit, die Dauer, das Datenvolumen,, und so weiter.. Der berühmte AAA : Authentifizierung, Genehmigung, und Rechnungswesen
Installation
Was Sie brauchen :
- Eine Raspberry Pi mit seinen SD-Karte (Mindest 2Gb)
- Eine WLAN-Adapter. Denken Sie daran, auf ihre Vereinbarkeit mit der Himbeere, wenn die & rsquo zu prüfen; Kauf ! Darüber hinaus wird die Schlüsselgröße auf ihren Anwendungsbereich und die vorgeschlagene Rate spielen. Es könnte Sie nehmen Wifi-Taste mit integrierter Antenne. In diesem Fall un-Hub USB alimenté nützlich sein können.
- Ein Ethernet-Kabel mit Ihrem Router verbinden Raspberry. Es ist durch diese Verbindung, dass die Himbeere müssen Zugang zum Internet haben (und die SSH muss verfügbar sein)
Die Verbindung zum Hotspot steht auf & rsquo; WiFi-Schnittstelle. Der Raspberry müssen über Ethernet-Kabel mit dem Internet verbunden werden. C & rsquo; d & rsquo; sonst ihr werde ich über SSH l & rsquo zu verbinden; Installation und Konfiguration.
Für d & rsquo Systembetrieb, j & rsquo; haben ein minimalistisches Raspbian durch das Netzwerk an, dass & rsquo installiert, es ist auf dem neuesten Stand. Sie werden alle Schritte zu finden Hier.
Das Wifi
Es s & rsquo; wird Ihr WiFi-Hotspot-Dongle eingestellt, um in der Lage, Büro. J & rsquo; Ralink RT5370 verwendet einen Schlüssel:
RALink Technology, Corp. RT5370 Wireless Adapter
Verwendung eines nicht unterstützten Standardkomponente so mussten wir ein Modul einrichten, bevor die Konfiguration & rsquo; Schnittstelle :
- Laden Sie das Modul, um die RT2870 unterstützen (wenn Sie es brauchen !)
wget "http://git.kernel.org/?p = linux / kernel / git / firmware / linux-firmware.git;a = blob_plain;f = rt2870.bin" -O /lib/firmware/rt2870.bin
- Deaktivieren Sie den Turbo-Modus, die Probleme der Stabilität stellt (wenn Sie eine Taste mit einem RT2870 Chipsatz verwenden)
bash -c "echo Optionen smsc95xx turbo_mode = N > /etc / modprobe.d / smscnonturbo.conf"
- Sie können die Himbeere für das Modul wird unterstützt neu starten. Der Befehl “ifconfig -a” Ihre neue Schnittstelle Liste.
- Denken Sie daran, dass dieser Schlüssel kann als Point & rsquo verwendet werden, Zugang (c & rsquo; ist immer noch das Ziel, !) :
- Download-Tools und in Informationen über Ihre wichtigsten Wifi
Wget https://www.kernel.org/pub/software/network/iw/iw-3.14.tar.gz tar zxvf iw-3.14.tar.gz cd iw-3.14 machen
- Jetzt können Sie testen, ob Ihr Schlüssel unterstützt WiFi Access Point-Modus mit der Steuer und Listen
Wenn Sie "AP" haben (Access-Point) in den Modi unterstützt, Es gewann !
- Download-Tools und in Informationen über Ihre wichtigsten Wifi
- Für jetzt konfigurieren diese Schnittstelle, Sie, um die Datei zu bearbeiten /Etc/Geflecht/Schnittstelle und fügen Sie die folgende Konfiguration am Ende der Datei :
Auto wlan0 allow-hotplug wlan0 iface wlan0 inet static Adresse 192.168.10.1 Netzmaske 255.255.255.0 Netzwerk 192.168.10.0 Post-up-Echo 1 > /Proc/Sys/Net/ipv4/ip_forward
Sie legen die Netzwerk 192.168.10.0 WiFi-Schnittstelle, so dass auf die & rsquo verbunden. Ihr Schlüssel wird die Netzwerk-Router sein. Und Sie haben die & rsquo zu ermöglichen; die IP-Weiterleitung & rsquo zu binden; s Wireless-Schnittstelle & rsquo; Ethernet-Schnittstelle.
- IP-Weiterleitung auf Systemebene; Schließlich Sie & rsquo das aktivieren. Ich denke, es dupliziert die Post-up de l & rsquo; Schnittstelle, aber besser, sicher zu sein. Entfernen Charakter # Online 29 Datei /sysctl.conf :
net.ip4.ip_forward = 1
Für sofortige Unterstützung, führen Sie den Befehl
/etc / init.d / networking restart
Freeradius
- Vorbereitung & rsquo; Installation von Paketen. Mysql Passwort wird zu festgelegt “raspbian”. Selbstverständlich können Sie setzen, was Sie wollen, aber denken Sie daran, den Wert in verschiedenen Richtungen auf der Datenbank ändern.
apt-get install -y debconf-utils debconf-set-selections <<< 'Mysql-server mysql-server / root_password Passwort raspbian' debconf-set-selections <<< 'Mysql-server mysql-server / root_password_again Passwort raspbian' apt-get install -y debhelper libssl-dev libcurl4-gnutls-dev mysql-server freeradius Freeradius-mysql gcc machen libnl1 libnl-dev pkg-config iptables
- Configuration de Freeradius :
- Erstellung der Datenbank in MySQL zu Freeradius gewidmet. Sie müssen das Kennwort während der & rsquo fragte geben; MySQL-Installation.
Echo "create database Radius;" | mysql -u root -praspbian
- Installieren des Datenbankschemas Radius, die wir gerade erstellt
mysql -u root -praspbian Radius < /etc / freeradius / sql / mysql / schema.sql
- Installieren der Teil & rsquo; Verwaltung. Verwaltung und ihm alle erforderlichen Rechte, dies wird eine Benutzer & rsquo zu erstellen.
mysql -u root -praspbian Radius < /etc / freeradius / sql / mysql / admin.sql
- Installieren zusätzlicher Tabellen für NAS
mysql -u root -praspbian Radius < /etc / freeradius / sql / mysql / nas.sql
- Bearbeiten Sie die Datei /etc / freeradius / radiusd.conf um die SQL-Modul zu laden. Wir müssen die Zeile auskommentieren 700 :
- Sie müssen aktivieren & rsquo; Authentifizierung MySQL-Datenbank. Warum die Datei bearbeiten /etc / freeradius / sites-enabled / default und suchen Sie nach Zeilen, in denen sql auskommen. An der I & rsquo; haben festgestellt, drei Mal in den Zeilen 177, 406 und 454. Sie entfernen die durch Entfernen kommentiert # der Beginn jeder Zeile.
- Sie können nun testen Sie Ihre Konfiguration durch Anhalten und Neustarten des Freeradius-Modus Debug.
Servicefreeradius Anschlag
dann
Freeradius -X
Wenn Sie don & rsquo; haben keine & rsquo; & rsquo Fehler c; ist Champagner !
- Wir werden einen Verbindungstest machen. Für diese, werden wir einen Testbenutzer erstellen User-Test mit seinem Passwort passwd
Echo "insert into radcheck (Benutzernamen, Attribut, auf, Wert) Werte ("Usertest", "Klartext-Passwort", ':=, 'Passwd');" | mysql -u root -praspbian Radius
Und nun zu testen Sie den Befehl verwenden
radtest usertest passwd localhost 0 testing123
Der Wert testing123 stammt aus der Konfigurationsdatei /etc/freeradius/clients.conf. C & rsquo; ist das Wort “Geheimnis” die verwendet werden, um die Verbindung zwischen Freeradius und was s & rsquo sicherzustellen; genannte NAS, welche die Verbindungen erfassen wird.
Sie benötigen, um diesen Wert zu ändern, wenn Sie Ihren Hotspot installieren “Produktion” !
- Erstellung der Datenbank in MySQL zu Freeradius gewidmet. Sie müssen das Kennwort während der & rsquo fragte geben; MySQL-Installation.
CoovaChilli
- Compilation et installation de CoovaChilli
- Download & rsquo; Archiv
cd / usr / src wget https://coova.github.io/Download/coova-chilli-1.3.0.tar.gz tar zxvf coova-Chili-1.3.0.tar.gz cd coova-Chili-1.3.0
- Starten Sie die Konfiguration für die Kompilierung
Export CFLAGS ="-Wno-Fehler"
./configure --prefix = / usr --mandir = $${Präfix}/share / man \ --infodir = $${Präfix}/share / info \ --sysconfdir = / etc --localstatedir = / var --enable-largelimits \ --enable-binstatusfile --enable-statusfile --enable-chilliproxy \ --enable-chilliradsec --enable-chilliredir --with-openssl --with-curl \ --mit-Umfrage --enable-dhcpopt --enable-sessgarden --enable-dnslog \ --enable-ipwhitelist --enable-redirdnsreq --enable-miniconfig \ --enable-libjson --enable-layer3 --enable-proxyvsa --enable-miniportal \ --enable-chilliscript --enable-EAPOL --enable-uamdomainfile \ --enable-Module --enable-multiroute
- Ändern Sie den Kompatibilitätsgrad für die Zusammenstellung
Echo 9 > debian / compat
- Wechseln Sie in das Verzeichnis, in dem das Paket wird durch Ändern der Zeile erstellt werden 54 Datei /usr / src / coova-Chili-1.3.0 / debian / rules :
$(MACHEN) DESTDIR = / install
- Starten Sie die Zusammenstellung
dpkg-buildpackage -us -uc
Sie sollten erhalten ein Paket zur Installation bereit (nach 15 Minuten auf einem Modell B 512Mb)!
- Installieren Sie das Paket
CD .. dpkg -i coova-chilli_1.3.0_armhf.deb
Bedingungen & rsquo; Option DORT wann werden Sie fragen,. L & rsquo; Fehler am Ende ist normal, weil wir don & rsquo; nicht CoovaChilli gesetzt und n & rsquo; keine (im Prinzip)
- Download & rsquo; Archiv
- Compilation et installation de Haserl. Es s & rsquo; d & rsquo; ein Tool von UNIX oder LUA-Skript CGI-Skript zu generieren. Es ist notwendig für den Betrieb CoovaChilli.
- Herunterladen haserl
cd / usr / src wget http://downloads.sourceforge.net/project/haserl/haserl-devel/haserl-0.9.35.tar.gz nimmt -zxvf haserl-0.9.35.tar.gz cd haserl-0.9.35
- Kompilieren und installieren haserl
./Konfiguriert && machen && machen, installieren
- Herunterladen haserl
- Konfigurieren CoovaChilli
- Am Ende des /etc/chilli/up.sh Datei fügen Sie die Zeile
iptables -I POSTROUTING -t nat -o $ HS_WANIF -j MASQUERADE
Es ermöglicht die Übertragung, was gegenüber dem Wifi & rsquo geschieht; Ethernet
- In der Datei /etc / default / Chili Ersetzung
START_CHILLI = 0
von
START_CHILLI = 1
Auf diese Weise können Sie die Boot-CoovaChilli
- In der Datei /etc / Chili / wwwsh wir geben den & rsquo; haserl genaue Lage von der Linie 9
haserl = / usr / local / bin / haserl
- In der Datei / etc / Chili / config ist die Hauptkonfigurations Chilli. Wo Sie in der Lage zu definieren, welche Schnittstellen verwendet werden, das Netzwerk, etc.. Einige der folgenden Werte werden standardmäßig auskommen, es wird daher zu entfernen # Anfang der Zeile, wenn erforderlich,. Und diese Werte sind nicht an der gleichen Stelle gruppiert.
HS_WANIF = eth0 HS_LANIF = wlan0 HS_NETWORK = 192.168.10.0 HS_UAMLISTEN = 192.168.10.1 HS_UAMALLOW = 192.168.10.0 / 24 HS_SSID = PiHomeServerAP
Die Details der konfigurierten Einstellungen :
HS_WANIF ist die mit dem Internet verbundenen Schnittstelle
HS_LANIF est l & rsquo; Schnitt du Wifi / Hotspot
HS_NETWORK den Hotspot-Netzwerk
HS_UAMLISTEN den Hotspot-Netzwerk-Gateway
HS_UAMALLOW IP Hotspot-Netz erlaubt ist zu verbinden
HS_SSID le SSID (scheint d & rsquo haben; Wirkung) - Die endgültige Start
update-rc.d Chili Start 99 2 3 4 5 . Stop 20 0 1 6 .
- Am Ende des /etc/chilli/up.sh Datei fügen Sie die Zeile
- Starten Sie den Dienst
Service Chili Start
Mit dem Befehl ifconfig sollten Sie eine Schnittstelle zu sehen tun0 bestätigt, dass ist gut ausgeführt CoovaChilli.
Hostapd
- Sichtbar WiFi-Zugang, um Ihre d & rsquo zu machen, wir installieren hostapd , die die ganze Arbeit machen wird
apt-get install -y hostapd
- Bearbeiten Sie die Datei /Etc/Default/hostapd und fügen Sie am Ende :
DAEMON_CONF ="/etc/hostapd/hostapd.conf"
- Bearbeiten Sie die Datei /etc/hostapd/hostapd.conf (daß n & rsquo; noch nicht existieren) und kopieren Sie die folgenden Zeilen :
# Schnittstelle Wlan du Wi-Fi interface = wlan0 # nl80211 Avec Tous Les Treiber Linux mac80211 Driver = nl80211 # Nom du spot WLAN Ssid = PiHomeServerAP # Wi - Fi-Modus (a = IEEE 802.11 hat, b = IEEE 802 .11b, g = IEEE 802.11 g) Hw_mode = g # Wi - Fi-Frequenzkanal (1-14) Kanal = 6 # Wi - Fi-öffnen, keine Authentifizierung ! Auth_algs = 1 # Beacon Intervall in kus (1.024 MS) Beacon_int = 100 # DTIM (Lieferung Informationen Verkehrsmeldung) Dtim_period = 2 # Maximale Anzahl von Stationen im Bahnhof Tabelle Max_num_sta erlaubt = 255 # RTS/CTS-Schwelle; 2347 = deaktiviert (Standard) Rts_threshold = 2347 # Fragmentierungsschwelle; 2346 = deaktiviert (Standard) Fragm_threshold = 2346
- Sie können den Dienst manuell starten
Service Start hostapd
Hier das Ende der Konfiguration erreichen wir ! Puh ! Es ist Zeit, die Verbindung zu testen (mit dem Benutzer die oben erstellt : User-Test / passwd) :
- Eine Verbindung mit Point & rsquo; Zugang
- Sie werden automatisch eine Umleitungsfenster (auf meinem Mac. IPhone / iPad / Windows-müssen versuchen & rsquo; das Internet über den Browser zugreifen)
- Geben Sie Ihre Login- (User-Test / passwd)
- Sie haben dann angezeigt Bestätigen der Verbindung
- Um Ihnen die Freuden d & rsquo; Ihre Internet-Hotspot !
Bonus : daloRADIUS
Ok, aber einige d & rsquo; Sie werden mich fragen, : “ja, aber wie ich es schaffe Nutzer ?”, “Ich habe eine SQL-Abfrage jedes Mal machen ?”. Theoretisch ja ! Es n & rsquo; es gibt keine & rsquo; Standardschnittstelle für Freeradius. Abgesehen davon, dass … gibt es Pläne, Ihnen zu helfen. Und daloRadius eines von ! Über eine Web-Schnittstelle, die Sie in der Lage, Benutzer zu verwalten, ihre Rechte zu verwalten, Anmeldezeiten, autorisierten Lastschriften, etc..
- Installieren Sie einen Webserver. Mein Favorit bleibt Nginx.
apt-get install -y php5-mysql php-pear php5-gd php-db php5-fpm libgd2-xpm-dev libpcrecpp0 libxpm4 nginx php5-xcache apt-get remove -y apache2.2-bin apache2-utils apache2.2-common
- Laden Sie daloRadius
cd / usr / src wget http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz nimmt -zxvf daloradius-0.9-9.tar.gz -C / usr / share / nginx / www / mv / usr / share / nginx / www / daloradius-0.9-9 /usr / share / nginx / www / daloradius cd / usr / share / nginx / www / daloradius
- Fügen Sie die von daloRadius in Freeradius-Datenbank verwendet Informationen
mysql -u root -praspbian Radius < /usr / share / nginx / www / daloradius / contrib / db / FR2-mysql-daloradius-and-freeradius.sql mysql -u root -praspbian GRANT ALL ON Radius. * Auf 'Radius' @ 'localhost'; GRANT ALL ON Radius. * Zu "radius'@'127.0.01 '; Ausfahrt;
- In der Datei /usr / share / nginx / www / daloradius / library / daloradius.conf.php Zugang zur Datenbank, die Sie die Rechte d & rsquo zu definieren (Hier Standardwerte)
$configValues['CONFIG_DB_USER'] = 'Radius'; $configValues['CONFIG_DB_PASS'] = Radpass '; $configValues['CONFIG_DB_NAME'] = 'Radius';
- Aktualisieren Sie die Standard-Site-Konfiguration, indem PHP-Unterstützung. Die Information hinzugefügt werden soll (oder Anmerkungen zu entfernen) im Abschnitt Server.
An der Linie 25 (immer die Standard)
Index index.php index.html index.htm;
Und aktivieren Sie PHP-Unterstützung
Lage ~ .php$ { Fastcgi_split_path_info ^(.+\.PHP)(/.+)$; Fastcgi_pass Unix:/var/run/php5-FPM.sock; Fastcgi_index index.php; gehören fastcgi_params; }
- Redémarrez Nginx
Nginx Dienstneustart
- Sie können sich nun auf http://<ip de votre Himbeere>/daloradius
Einloggen : Verwalter / Passwort : Radius
So, jetzt, wie man einen Benutzer zu erstellen ? Nichts einfacheres :
- Loggen Sie sich ein und gehen Sie auf die & rsquo; tab Management
- Geben Sie die Benutzername dann Passwort und klicken Sie auf Anwenden. Selbstverständlich können Sie wählen Sie die Art d & rsquo; Passwort-Verschlüsselung, Geben Sie Informationen über den Benutzer und … Attribute. Wir kommen später zurück (ja, es doesn & rsquo; ist noch nicht fertig !)
Jetzt können Sie diese Kennung,. Es erscheint in der Liste der Benutzer mit einem schönen grünen Flagge, um zu signalisieren, dass & rsquo; Benutzer aktiviert ist.
Double Bonus : Attribute
Wir haben eine Wifi-Hotspot, service d & rsquo; Authentifizierung, ein Benutzer-Management-Schnittstelle. Aber wie wollen Sie Verbindungen Stunden definieren ? Ein Verbindungszeit ? Eine maximale Datenvolumen ? Kurz: es ist nicht all inclusive open bar !
Alles geschieht in den Attributen die einem Benutzer zugeordnet. In & rsquo; daloRadius Schnittstelle, Sie können einen Benutzer bearbeiten und Attribute.
Oben, j & rsquo; & rsquo hinzugefügt; Benutzer PI, l & rsquo; Attribut Login-Time mit dem Wert Wk1800-2100. L & rsquo; Benutzer kann als eine Verbindung 18:00 An 21:00 von Montag bis Freitag. Sie können weiter gehen : “Wk0855-2355, Sa,Su1655-2305”, Wochentag 08:55 An 23:55, Samstag und Sonntag 16:55 An 23:05.
Sie können weitere Einzelheiten über bestimmte Attribute zu finden Hier. Die häufigste : Login-Time, Simultaneous-Nutzung, Ablauf. Leider habe ich keinen Ort, an dem alle Attribute mit ihrer Bedeutung und mögliche Werte detailliert gefunden. Bitte in den Kommentaren zu teilen; Wenn Sie einen Link n & rsquo haben.
Wenn Sie bis zum Ende dieses Artikels kommen Sie eine Medaille verdienen ! Aber Sie haben jetzt eine große Himbeere Innen Hotspot !
Nächsten Schritt : intégrer Squid comme Proxy transparent ?
Quellen :
- HTTPS://www.raspberrypi.org/ forums/viewtopic.php?t = 24105&p = 224789
- http://doc.ubuntu-fr.org/coovachilli
- http://ehc.ac/p/radiusdesk/wiki/install_ubuntu_nginx/?version = 14 # install-radiusdesk
- http://www.binaryheartbeat.net/2013/12/raspberry-pi-based-freeradius-server.html
- Google, bing, duckduck, etc..