{"id":1518,"date":"2010-04-22T14:33:25","date_gmt":"2010-04-22T14:33:25","guid":{"rendered":"http:\/\/www.zeroathome.de\/wordpress\/?p=1518"},"modified":"2010-11-30T09:49:15","modified_gmt":"2010-11-30T09:49:15","slug":"wlan-hotspot-mit-chillispotdd-wrt-freeradius-und-mysql-unter-ubuntu","status":"publish","type":"post","link":"https:\/\/www.zeroathome.de\/wordpress\/wlan-hotspot-mit-chillispotdd-wrt-freeradius-und-mysql-unter-ubuntu\/","title":{"rendered":"WLAN Hotspot mit Chillispot(DD-WRT), Freeradius und MySQL unter Ubuntu"},"content":{"rendered":"<p><a href=\"http:\/\/www.zeroathome.de\/images\/Warchalk.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1533\" title=\"Warchalk Open Wifi\" src=\"\/\/www.zeroathome.de\/images\/Warchalk.png\" alt=\"\" width=\"135\" height=\"114\" \/><\/a>Heute mal ein etwas au\u00dfergew\u00f6hnliches Tutorial. Wir richten einen WLAN-Hotspot ein, wie er zum Beispiel in einem Caf\u00e9, oder \u00e4hnlichem, zur Versorgung der Kunden mit drahtlosem Internet dienen k\u00f6nnte.<\/p>\n<p>F\u00fcr dieses Tutorial gehe ich von folgenden Vorraussetzungen aus:<\/p>\n<p>Hardware:<\/p>\n<ul>\n<li>Ein Router auf dem <a title=\"DD-WRT\" href=\"http:\/\/dd-wrt.com\/\">DD-WRT<\/a> v2.4 (standard) lauff\u00e4hig ist (<a title=\"DD-WRT Router Compatibility Database\" href=\"http:\/\/dd-wrt.com\/site\/support\/router-database\">Liste der unterst\u00fctzten Ger\u00e4te<\/a>)<\/li>\n<li>Ein Rechner (auch gerne etwas \u00e4lter) auf dem die Ubuntu Server Edition l\u00e4uft. Netzwerkzugang sollte er nat\u00fcrlich auch haben.<\/li>\n<\/ul>\n<p>Netzwerk:<\/p>\n<ul>\n<li>Getrennte Netze f\u00fcr das G\u00e4ste-WLAN (192.168.182.0\/24) und das interne LAN (192.168.1.0\/24)<\/li>\n<li>Internet-Zugang erfolgt direkt \u00fcber den Router, der auch das WLAN bereitstellt<\/li>\n<li>IP-Adressen:\n<ul>\n<li>Router\/Access-Point (Gateway, DNS): 192.168.1.1<\/li>\n<li>Radius\/Webserver: 192.168.1.254<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Software:<\/p>\n<ul>\n<li>DD-WRT v24 standard auf dem Router; Chillispot ist darin integriert<\/li>\n<li><a title=\"Freeradius Homepage\" href=\"http:\/\/freeradius.org\/\">Freeradius<\/a> (<a title=\"RADIUS - de.wikipedia.org\" href=\"http:\/\/de.wikipedia.org\/wiki\/RADIUS\">RADIUS<\/a>-Server) zur Verwaltung der Gastzug\u00e4nge (f\u00fcr Zeitbasierte Zug\u00e4nge z.B.)<\/li>\n<li>Apache 2 zur Anzeige der Login-Seite<\/li>\n<li>MySQL zum halten der Daten die Freeradius verwendet<\/li>\n<\/ul>\n<h3>Einrichtung des Routers<\/h3>\n<p>Auf die Grundeinrichtung des Routers werde ich hier nicht eingehen, nur die Einstellungen f\u00fcr unser Setup werden kurz erw\u00e4hnt.<\/p>\n<h4>Generelles Setup<\/h4>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1523 aligncenter\" title=\"dd-wrt menu bar\" src=\"\/\/www.zeroathome.de\/images\/dd-wrt1.png\" alt=\"\" width=\"480\" height=\"61\" srcset=\"https:\/\/zeroathome.de\/images\/dd-wrt1.png 800w, https:\/\/zeroathome.de\/images\/dd-wrt1-300x37.png 300w\" sizes=\"(max-width: 480px) 100vw, 480px\" \/><\/p>\n<p>\u00dcber den Tab &#8222;Setup&#8220;-&gt;&#8220;Basic Setup&#8220; muss der DHCP-Server ausgeschaltet werden, da dieser sonst mit dem Chillispot-internen kollidiert<\/p>\n<h4>WLAN Setup<\/h4>\n<p>\u00dcber den Tab &#8222;Wireless&#8220; das W-LAN einrichten, allerdings sollte die Verschl\u00fcsselung deaktiviert werden, da wir unsere Zug\u00e4nge ja von Chillispot und Freeradius verwalten lassen.<\/p>\n<h4>Chillispot Setup<\/h4>\n<p>Unter dem Tab &#8222;Services-&gt;HotSpot&#8220; finden wir die Chillispot-Konfiguration.<\/p>\n<figure id=\"attachment_1521\" aria-describedby=\"caption-attachment-1521\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.zeroathome.de\/images\/dd-wrt2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1521\" title=\"DD-WRT Chillispot Konfiguration\" src=\"\/\/www.zeroathome.de\/images\/dd-wrt2-300x246.png\" alt=\"\" width=\"300\" height=\"246\" srcset=\"https:\/\/zeroathome.de\/images\/dd-wrt2-300x246.png 300w, https:\/\/zeroathome.de\/images\/dd-wrt2.png 592w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-1521\" class=\"wp-caption-text\">Wie welche Felder auszuf\u00fcllen sind, ist weiter unten beschrieben.<\/figcaption><\/figure>\n<p>Erkl\u00e4rung der Optionen:<\/p>\n<ul>\n<li>Chillispot &#8211; Aktivieren der Chillispot-Funktionalit\u00e4t auf dem Router<\/li>\n<li>Seperate Wifi from LAN Bridge &#8211; L\u00e4\u00dft zu, dass das Ethernet per Kabel, ohne Anmeldung genutzt werden kann.<\/li>\n<li>Primary Radius Server &#8211; IP-Adresse des Radius-Servers<\/li>\n<li>Backup Radius Server &#8211; wenn nur ein Radius-Server selbe IP wie oben<\/li>\n<li>DNS IP &#8211; IP des DNS-Servers der an die Nutzer verteilt werden soll (i.d.R. der lokale Router)<\/li>\n<li>Remote Network &#8211; Das Netz aus dem die Clients IP-Adressen bekommen (192.168.182.0\/24 hei\u00dft 192.168.182.1 bis 192.168.182.254 &#8211; siehe http:\/\/de.wikipedia.org\/wiki\/Subnetz)<\/li>\n<li>Redirect URL &#8211; Hierher werden die Nutzer umgeleitet um sich am HotSpot anzumelden<\/li>\n<li>Shared Key &#8211; Damit wird die Verbindung zum Radius-Server verschl\u00fcsselt<\/li>\n<li>DHCP-Interface &#8211; Netzwerkschnittstelle an die Chillispot gebunden werden soll (i.d.R. wl0 oder eth1, sollte auf jeden Fall das W-LAN-Interface sein)<\/li>\n<li>Radius NAS ID &#8211; Name des AccessPoints (frei w\u00e4hlbar)<\/li>\n<li>UAM Secret: Mit diesem Schl\u00fcssel wird die Verbindung zur der Seite verschl\u00fcsselt auf der die Nutzer Benutzername und Passwort angeben m\u00fcssen<\/li>\n<li>UAM Any DNS &#8211; legt fest ob der Nutzer einen selbst definierten DNS-Server benutzen darf (sollte man aus Sicherheitsgr\u00fcnden bei 0 belassen; nur auf 1 setzen, wenn man wei\u00df was man tut)<\/li>\n<li>UAM allowed &#8211; Hier k\u00f6nnen Domains eingetragen werden, die auch ohne Anmeldung zug\u00e4nglich sein sollen (wichtig zum Beispiel wenn man die Bezahlung des Zugangs \u00fcber einen externen Anbieter l\u00f6st)<\/li>\n<li>MACauth &#8211; legt fest ob die Authentifizierung der Nutzer \u00fcber deren MAC-Adresse(http:\/\/de.wikipedia.org\/wiki\/MAC-Adresse) erfolgen soll. Wollen wir hier aber nicht<\/li>\n<li>Additional Chillispot Options &#8211; Hier k\u00f6nnen weitergehende Optionen, wie z.B. Begrenzung der verteilten IP-Adressen (&#8222;dynip 192.168.182.128\/26&#8220; f\u00fcr 192.168.182.128 bis 192.168.182.191) oder das Festlegen eines zweiten DNS-Servers (&#8222;dns2 8.8.8.8), f\u00fcr Chillispot angegeben werden, die aber f\u00fcr den Basisbetrieb nicht notwendig sind.<\/li>\n<\/ul>\n<h3>Installation des Servers:<\/h3>\n<p>Ich verwende Ubuntu Server Edition 10.04 als Basis. Wenn ihr eine andere Version benutzt, achtet bitte darauf, das ihr Freeradius in der Version 2.x zu benutzen, mit Version 1 wird dieses Tutorial nicht funktionieren.<\/p>\n<h4>Installation der Pakete<\/h4>\n<p><span style=\"text-decoration: underline;\">Apache\/MySQL<\/span><\/p>\n<pre>sudo tasksel install lamp-server<\/pre>\n<p>Damit werden in einem Rutsch Apache, MySQL und PHP installiert.<\/p>\n<p><span style=\"text-decoration: underline;\">Freeradius<\/span><\/p>\n<pre>sudo apt-get install freeradius freeradius-mysql<\/pre>\n<p><span style=\"text-decoration: underline;\">Chillispot (wird ben\u00f6tigt f\u00fcr die Anmeldeseite)<\/span><\/p>\n<pre>sudo apt-get install chillispot<\/pre>\n<p>Die Fragen die bei der Installation einfach ohne Eingabe mit Enter best\u00e4tigen. Chillispot muss hier nicht konfiguriert werden, da wir nur das Login-Script brauchen.<\/p>\n<h4>Konfiguration<\/h4>\n<p><span style=\"text-decoration: underline;\">Konfiguration von Apache<\/span><\/p>\n<p>F\u00fcr das Zusammenspiel mit Chillispot ist es n\u00f6tig, dass der Webserver eine per SSL verschl\u00fcsselte Verbindung anbietet. Problematisch dabei ist, dass bei der Verwendung eines selbst signierten Zertifikats beim Aufrufen der Login-Seite der Browser eine Warnung anzeigen wird. Um das zu umgehen sollte man die Login-Seite hinter ein &#8218;offiziell&#8216; signiertes Zertifikat legen. Darauf werde ich allerdings hier nicht eingehen, da das den Rahmen sprengen w\u00fcrde.<\/p>\n<p>Also generieren wir uns unser SSL-Zertifikat erstmal selbst:<\/p>\n<pre>sudo openssl req -new -x509 -days 365 -nodes -out \/etc\/apache2\/apache.pem -keyout \/etc\/apache2\/apache.pem<\/pre>\n<p>Die Option &#8218;-days&#8216; besagt wie lange das Zertifikat g\u00fcltig sein soll. Bitte den eigenen Vorlieben anpassen. Die geforderten Eingaben sind beliebig zu w\u00e4hlen. Lediglich bei &#8218;Common Name&#8216; sollte der Hostname des Servers benutzt werden.<\/p>\n<p>Damit Apache das Zertifikat findet, muss noch ein <a title=\"Symlink - de.wikipedia.org\" href=\"http:\/\/de.wikipedia.org\/wiki\/Symbolische_Verkn%C3%BCpfung\">Symlink<\/a> angelegt werden. Dabei darauf achten, das in Zeile 3 keine normalen Apostrophe, sondern so genannte <a title=\"Grave accent - en.wikipedia.org\" href=\"http:\/\/en.wikipedia.org\/wiki\/Grave_accent\">Backticks<\/a> (Akzent-Zeichen) verwendet werden m\u00fcssen. da sonst der Befehl fehlschl\u00e4gt:<\/p>\n<pre>sudo ln -sf \/etc\/apache2\/apache.pem \/etc\/apache2\/`\/usr\/bin\/openssl x509 -noout -hash &lt; \/etc\/apache2\/apache.pem`.0\r\nsudo chmod 600 \/etc\/apache2\/apache.pem<\/pre>\n<p>Anschlie\u00dfend aktiviert man das SSL-Modul mit einem<\/p>\n<pre>sudo a2enmod ssl<\/pre>\n<p>aktiviert die Standard Apache SSL-Site<\/p>\n<pre>sudo a2ensite default-ssl<\/pre>\n<p>Zu guter Letzt wird das Login-Formular entpackt und an die passende Stelle gelegt:<\/p>\n<pre>sudo zcat \/usr\/share\/doc\/chillispot\/hotspotlogin.cgi.gz &gt; \/usr\/lib\/cgi-bin\/hotspotlogin.cgi\r\nsudo chmod 755 \/usr\/lib\/cgi-bin\/hotspotlogin.cgi<\/pre>\n<p>In dieser Datei m\u00fcssen noch eine Option angepasst werden, das Passwort daf\u00fcr habt ihr bei der Konfiguration von Chillispot bei &#8222;UAM Secret&#8220; festgelegt:<\/p>\n<pre>$uamsecret = \"nochmalgeheim\";<\/pre>\n<p>Danach die Apache-Konfiguration neu laden,<\/p>\n<pre>sudo \/etc\/init.d\/apache2 force-reload<\/pre>\n<p>und testen ob man die Seite https:\/\/[server-ip]\/cgi-bin\/hotspotlogin.cgi erreichen kann. (Dort sollte die Meldung &#8222;Chillispot Login failed&#8220; erschienen, was aber normal ist, da wie nicht von Chillispot auf diese Seite umgeleitet wurden.)<\/p>\n<p>Falls die Seite angezeigt wird, kann direkt mit der Einrichtung von Freeradius weitergemacht werden, falls nicht, nochmal alles checken und gegebenenfalls berichtigen.<\/p>\n<p><span style=\"text-decoration: underline;\">Konfiguration von Freeradius<\/span><\/p>\n<p>Zuerst muss unser Access-Point (mit der IP 192.168.1.1) als Client akzeptiert werden. Dazu bearbeitet man die Datei &#8218;\/etc\/freeradius\/clients.conf&#8216; und f\u00fcgt folgende Zeilen am Ende der Datei ein:<\/p>\n<pre>client captive-portal {\r\n    ipaddr = 192.168.1.1\r\n    secret = ultrageheim\r\n    nastype = other\r\n}<\/pre>\n<p>Der Name hinter &#8222;client&#8220; sollte der selbe sein, den ihr im Feld Radius NAS ID in der Chillispot-Konfiguration verwendet habt sein. &#8222;ipaddr&#8220; sollte die IP-Adresse des Access-Points sein, &#8222;secret&#8220; der in der Chillispot-Konfiguration festgelegte &#8222;Shared Key&#8220;. &#8222;nastype&#8220; sollte wie hier auf &#8218;other&#8216; gesetzt werden.<\/p>\n<p><span style=\"text-decoration: underline;\">Anbindung von Freeradius an die MySQL-Datenbank<\/span><\/p>\n<p><strong>Datenbank anlegen<\/strong><\/p>\n<pre>mysql -u root -p\r\nEnter password:<\/pre>\n<pre lang=\"mysql\">mysql> CREATE DATABASE radius;\r\nmysql> quit<\/pre>\n<p><strong>Tabellen f\u00fcr Freeradius aus den Vorlagen importieren<\/strong><\/p>\n<pre>mysql -u root -p radius &lt; \/etc\/freeradius\/sql\/mysql\/schema.sql\r\nmysql -u root -p radius &lt; \/etc\/freeradius\/sql\/mysql\/nas.sql<\/pre>\n<p><strong>Benutzer anlegen und ihm Rechte an den Tabellen geben<\/strong><\/p>\n<pre>mysql -u root -p\r\nEnter password:<\/pre>\n<pre lang=\"mysql\">GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'sicherespasswort';\r\nFLUSH PRIVILEGES;\r\nquit<\/pre>\n<p><strong>Radius f\u00fcr MySQL konfigurieren<\/strong><\/p>\n<p>In Datei &#8218;\/etc\/freeradius\/radiusd.conf&#8216; m\u00fcssen die Zeilen &#8218;$INCLUDE sql.conf&#8216; und &#8218;$INCLUDE sql\/mysql\/counter.conf&#8216; vom Kommentarzeichen befreit werden. Sollte dann hinterher so aussehen:<\/p>\n<pre>...\r\n$INCLUDE sql.conf\r\n...\r\n$INCLUDE sql\/mysql\/counter.conf\r\n...<\/pre>\n<p>Die erste Zeile aktiviert die generelle Nutzung der SQL Datenbank, die zweite aktiviert die Nutzung von SQL zur Verwaltung der Zeitbasierten Zug\u00e4nge. In der Datei &#8218;counter.conf&#8216; werden die MySQL-Abfragen definiert die das Verwalten der Zeitkonten regeln. Mit geeigneten SQL-Kenntnissen kann man sich hier gerner mal umschauen.<\/p>\n<p>In der Datei &#8218;\/etc\/freeradius\/sql.conf&#8216; die folgenden Zeilen ensprechend \u00e4ndern um Freeradius die Zugangsdaten f\u00fcr den MySQL-Server mitzugeben:<\/p>\n<pre>server = \"localhost\"\r\nlogin = \"radius\"\r\npassword = \"sicherespasswort\"<\/pre>\n<p>Au\u00dferdem m\u00fcssen in der Datei &#8218;\/etc\/freeradius\/sites-available\/default&#8216; \u00c4nderungen gemacht werden. Die Datei ist in Sektionen unterteilt die jeweils mit einem &#8217;name {&#8218; beginnen.<br \/>\nIn der Sektion &#8218;authorize&#8216; muss es hei\u00dfen:<\/p>\n<pre>...\r\n#files\r\nsql\r\n...<\/pre>\n<p>In der gleichen Sektion m\u00fcssen am Ende diese drei Optionen hinzugef\u00fcgt werden. Sie werden f\u00fcr die Zeitbasierten Zug\u00e4nge gebraucht.<\/p>\n<pre>noresetcounter # Zust\u00e4ndig f\u00fcr zeitlich begrenzte Zug\u00e4nge (dieser wird von uns verwendet)\r\ndailycounter   # Zust\u00e4ndig f\u00fcr Tageslimits, die aber jeden Tag zur\u00fcckgesetzt werden\r\nmonthlycounter # Zust\u00e4ndig f\u00fcr Monatslimits, die aber jeden Monat zur\u00fcckgesetzt werden<\/pre>\n<p>Wir werden zwar nur den &#8217;noresetcounter&#8216; brauchen, aber wenn wir schonmal hier sind, kann es nicht schaden, die anderen beiden auch einzutragen. Kurz zur Beachtung: Wir verwenden nicht den &#8218;dailycounter&#8216;, da dessen &#8222;Z\u00e4hler&#8220; jeden Tag zur\u00fcckgesetzt wird, und der Zugang so dauerhaft aktiv bleibt, was wir in unserem Caf\u00e9\u00a0nat\u00fcrlich nicht wollen (Die S\u00e4tze nach den # m\u00fcsst ihr \u00fcbrigens nicht mit eintragen \ud83d\ude09 ).<\/p>\n<p>In der Sektion &#8218;accounting&#8216;:<\/p>\n<pre>...\r\nsql\r\n...<\/pre>\n<p>In der Sektion &#8217;session&#8216;:<\/p>\n<pre>...\r\nsql\r\n...<\/pre>\n<p>Also jeweils das Kommentarzeichen vor den &#8217;sql&#8216;-Zeilen entfernen. Das ist n\u00f6tig damit freeradius SQL zur Konfiguration und zum Steuern der Zeitbasierten Konten benutzt.<\/p>\n<p>anschlie\u00dfend kann man mit dem Befehl<\/p>\n<pre>sudo freeradius -XXX<\/pre>\n<p>testen ob der Server einwandfrei startet und man keinen Fehler in die Konfiguration gebaut hat. Wenn am Ende die Zeile<\/p>\n<pre>Info: Ready to process requests.<\/pre>\n<p>erscheint, war die Konfiguration zumindest f\u00fcr den Server selbst in Ordnung.<br \/>\nFalls alles erfolgreich verl\u00e4uft beendet man den Freeradius Testmodus mit STRG-C und startet freeradius neu:<\/p>\n<pre>sudo \/etc\/init.d\/freeradius restart<\/pre>\n<p>Danach sollte unser Hotspot fertig zur Benutzung sein.<\/p>\n<h3>Ein erster Test<\/h3>\n<p>Um unser Setup zu testen legen wir zun\u00e4chst einen neuen Benutzer an, der den Hotspot nutzen darf. Wir tun das \u00fcber das Terminal, generell kann man aber auch phpMyAdmin (oder eine <a title=\"3 phpMyAdmin Alternativen - zeroathome.de\" href=\"http:\/\/www.zeroathome.de\/wordpress\/3-phpmyadmin-alternativen\/\">Alternative<\/a>) benutzen.<\/p>\n<p><strong>Benutzer und Zeitkonto anlegen<\/strong><\/p>\n<p>Die Tabelle f\u00fcr die Benutzerzug\u00e4nge besteht aus 5 Spalten:<\/p>\n<ul>\n<li>id (wird automatisch ausgef\u00fcllt)<\/li>\n<li>username (der name unseres Benutzers<\/li>\n<li>attribute (die Option die wir festlegen wollen<\/li>\n<li>op (Operator, mit dem die Zuordnung von Attribut und Wert gemacht wird)<\/li>\n<li>value (Wert gegen den das Attribut verglichen wird)<\/li>\n<\/ul>\n<p>Dieses Layout erlaubt es in dieser Tabelle nicht nur das Passwort f\u00fcr einen Benutzer festzulegen, sondern zum Beispiel auch die Werte f\u00fcr die Zeitbegrenzung der Zug\u00e4nge.<\/p>\n<pre>mysql -u root -p radius<\/pre>\n<pre lang=\"mysql\">INSERT into radcheck VALUES ('','test0001','Password',':=','testpasswort');\r\nINSERT into radcheck VALUES ('','test0001','Max-All-Session',':=','3600');<\/pre>\n<p>Diese beiden Queries legen einen Benutzer mit Namen &#8218;test0001&#8216; und Passwort &#8218;testpasswort&#8216; an. Zus\u00e4tzlich geben wir ihm 3600 Sekunden (1 Stunde) auf sein Zeitkonto. Nach deren Ablauf wird er automatisch ausgeloggt.<\/p>\n<p>Mit diesem Benutzer kann man jetzt testen ob das Setup funktioniert, in dem man einen Client mit dem Drahtlosen Netzwerk verbindet und schaut ob man<\/p>\n<ol>\n<li>beim Aufruf einer beliebigen Internetseite auf die Login-Seite umgeleitet wird<\/li>\n<li>Sich mit unserem Test-Benutzer einloggen und danach surfen kann<\/li>\n<\/ol>\n<p>Zum testen kann man das Zeitlimit auch kleiner w\u00e4hlen um zu sehen ob das automatische Rauswerfen auch funktioniert.<\/p>\n<h3>Nachbereitung<\/h3>\n<p>Einen funktionierenden Hotspot haben wir nun, aber was fehlt noch?<br \/>\nNun zu erst fehlt nat\u00fcrlich ein komfortabler Weg um die Nutzerzug\u00e4nge zu verwalten. Leider waren die die ich bisher getestet habe eher m\u00e4\u00dfig bis nicht zu gebrauchen. In der Richtung m\u00fcsstet ihr also selbst mal suchen, oder selbst ein kleines Skript oder Interface zusammenschrauben, die SQL-Anbindung macht das ganze eigentlich ganz gut anpassbar.<\/p>\n<p>Zweiter Punkt w\u00e4re eine Firewall um euren G\u00e4sten zum Beispiel nur den Zugang zu den Ports 80(http) und 443(https) zu erlauben (hier sollte man auch an Ports f\u00fcr VPN-Verbindungen denken), da man sonst ein nicht zu untersch\u00e4tzendes Sicherheitsrisiko (z.B. durch P2P-Verkehr) eingeht. Anleitungen um das mit DD-WRT zu bewerkstelligen findet ihr im <a title=\"DD-WRT Wiki\" href=\"http:\/\/dd-wrt.com\/wiki\">DD-WRT-Wiki<\/a>.<\/p>\n<p>Als letztes fehlt euch nat\u00fcrlich noch das passende Cafe und die zahlenden G\u00e4ste, aber daf\u00fcr sorgt ihr besser selbst!<\/p>\n<h3>Disclaimer<\/h3>\n<p>Zum Schluss nat\u00fcrlich noch der Hinweis, das ich dieses Tutorial nach bestem Wissen und Gewissen erstellt und getestet habe, es aber nat\u00fcrlich Fehler enthalten kann, bzw. durch unsachgem\u00e4\u00dfen Gebrauch zu unvorhersehbaren Folgen f\u00fchren kann, f\u00fcr die ich nat\u00fcrlich keine Haftung \u00fcbernehmen kann. Alles auf eigene Gefahr.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Heute mal ein etwas au\u00dfergew\u00f6hnliches Tutorial. Wir richten einen WLAN-Hotspot ein, wie er zum Beispiel in einem Caf\u00e9, oder \u00e4hnlichem, zur Versorgung der Kunden mit drahtlosem Internet dienen k\u00f6nnte. F\u00fcr dieses Tutorial gehe ich von folgenden Vorraussetzungen aus: Hardware: Ein Router auf dem DD-WRT v2.4 (standard) lauff\u00e4hig ist (Liste der unterst\u00fctzten Ger\u00e4te) Ein Rechner (auch [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,26,10,27,400],"tags":[550,74,548,547,475,346,549,213,616,448],"_links":{"self":[{"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/posts\/1518"}],"collection":[{"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/comments?post=1518"}],"version-history":[{"count":21,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/posts\/1518\/revisions"}],"predecessor-version":[{"id":1558,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/posts\/1518\/revisions\/1558"}],"wp:attachment":[{"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/media?parent=1518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/categories?post=1518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/tags?post=1518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}