{"id":162,"date":"2013-11-06T15:30:52","date_gmt":"2013-11-06T13:30:52","guid":{"rendered":"http:\/\/v45836.1blu.de\/?page_id=162"},"modified":"2013-12-07T06:07:37","modified_gmt":"2013-12-07T05:07:37","slug":"access-point-wlan-repeater","status":"publish","type":"page","link":"https:\/\/c64-online.com\/?page_id=162","title":{"rendered":"Access Point \/ Wlan-Repeater"},"content":{"rendered":"<p>Da ich zu Hause dringend einen Wlan-Repeater brauchte und ich bereits meinen ersten Pi als Heimserver in Betrieb hatte war f\u00fcr mich die Frage, kaufe ich mir einen guten Wlan-Repeater mit LAN-Anschluss oder f\u00fcr etwas weniger Geld einen Pi mit einem guten Wlan-Stick.<\/p>\n<p>Die \u00dcberlegung: Der Wlan-Repeater musste per Kabel an das LAN angeschlossen werden, da im Zielbereich kein Wlan-Empfang mehr m\u00f6glich war. Also k\u00e4me z.B. der AVM Fritz!Wlan Repeater 300E in Frage (ca. 70,00 \u20ac) Alternativ k\u00f6nnte ich einen Raspberry Pi nehmen inkl. Netzteil und einem guten Wlan-Stick (ich habe den TP-Link TL-WN722N genommen). Gleich vorweg: die Reichweite und Sendeleistung des TL-WN722N ist sehr gut und sogar besser als ein 3Com Office Connect 3CRWE554G72T mit zwei Antennen, den ich hier noch liegen hatte! Und das obwohl der Pi mit dem Wlan-Stick bei rund 2,5 Watt Stromverbrauch liegt. (Der 3Com Router brauchte ca. 7 Watt!)<\/p>\n<p>Also kaufte ich mir einen zweiten Pi mit Geh\u00e4use, Netzteil und den TP-Link TL-WN722N Stick. Grsamtkosten knapp 52,00 \u20ac und damit g\u00fcnstiger, als das AVM-Ger\u00e4t. Gleichzeitig aber mehr Spa\u00df und man hat f\u00fcr zuk\u00fcnftige Funktionen gleich noch einen kleinen Rechner. Der Vorteil des gew\u00e4hlten Wlan-Sticks liegt neben der sehr guten Sende-\/Empfangsleistung auch darin, dass die notwendigen Treiber bereits im Raspbian Betriebssystem enthalten sind. Somit gibt es hier keinerlei Probleme im Betrieb!<\/p>\n<h2>Die Installation<\/h2>\n<p>Die Installation ist im Grunde einfach. Ich gehe jetzt davon aus, dass der Pi bereits mit Raspbian installiert ist (siehe auch Grundinstallation) und auf dem aktuellen Software- und Firmwarestand ist (siehe Raspbian aktualisieren). Im Anschluss m\u00fcssen wir nun zun\u00e4chst zwei erforderliche Pakete installieren, die uns zum einen die Access-Point-Funktionen liefern und einige Konfigurationsm\u00f6glichkeiten f\u00fcr einen Wlan-Stick geben. Dieses tun wir mit den folgenden Befehl:<\/p>\n<pre>sudo apt-get install hostapd iw bridge-utils<\/pre>\n<p>Nachdem die Installation durchgef\u00fchrt wurde, m\u00fcssen wir als n\u00e4chstes pr\u00fcfen, ob die richtige Default-Konfiguration geladen wird. Je nach Paket-Version muss hier die Datei <em><strong>\/etc\/default\/hostapd<\/strong><\/em><strong> <\/strong>angepasst werden. Also \u00f6ffnen wir diese Datei mit dem Editor mit folgendem Befehl:<\/p>\n<pre>sudo nano \/etc\/default\/hostapd<\/pre>\n<p>In dieser Datei muss die folgende Zeile enthalten sein bzw. entsprechend so zu \u00e4ndern:<\/p>\n<pre>DAEMON_CONF=\"\/etc\/hostapd\/hostapd.conf\"<\/pre>\n<p>Anschlie\u00dfend die Datei mit CTRL-O speichern und mit CTRL-X den Editor verlassen.<\/p>\n<p><strong>Wichtig:<\/strong> Die gleiche Zeile findet man auch in der Datei <em><strong>\/etc\/init.d\/hostapd<\/strong><\/em>. Diese sollte man jedoch unver\u00e4ndert lassen, da sie bei einem Update \u00fcberschrieben werden kann und damit die \u00c4nderungen verloren gehen!<\/p>\n<p>Nun m\u00fcssen wir den <em><strong>hostapd<\/strong><\/em> konfigurieren. Dazu gibt es die Datei <em><strong>\/etc\/hostapd\/hostapd.conf<\/strong><\/em>. Diese Datei m\u00fcssen wir nun mit dem folgenden Befehl editieren:<\/p>\n<pre>sudo nano \/etc\/hostapd\/hostapd.conf<\/pre>\n<p>Ich habe hier als Beispiel meine Datei genommen. Diese ist mit entsprechenden Kommentaren versehen, damit die Einstellungen gut verst\u00e4ndlich sind, die vorgenommen werden m\u00fcssen:<\/p>\n<pre># Nur fuer den Bridge-Betrieb, fuer Access-Point-Funktion die Zeile loeschen\r\nbridge=br0\r\n\r\n# Schnittstelle und Treiber (Standard sollte funktionieren!)\r\ninterface=wlan0\r\ndriver=nl80211\r\n\r\n# WLAN-Konfiguration\r\n# Bei Bridge-Betrieb die gleiche SSID wie der Router verwenden!\r\nssid=Wlan-zu-Hause\r\n\r\n# Der Channel sollte mindestens +\/- 3 wie der Router sein!\r\nchannel=1\r\n\r\n# ESSID als sichtbar einstellen\r\nignore_broadcast_ssid=0\r\n\r\n# L\u00e4ndereinstellungen\r\ncountry_code=DE\r\nieee80211d=1\r\n\r\n# \u00dcbertragungsmodus\r\nhw_mode=g\r\n\r\n# Optionale Einstellungen koennen ignoriert werden\r\n# supported_rates=10 20 55 110 60 90 120 180 240 360 480 540\r\n\r\n# Draft-N Modus aktivieren \/ optional, wenn der Stick das kann\r\n# Der TL-WN722N kann das!\r\nieee80211n=1\r\n\r\n# wmm-Funktionalit\u00e4t (fuer draft-n)\r\n# wmm sind WiFi Multimedia Funktionen f\u00fcr Audio und Video\r\nwmm_enabled=1\r\n\r\n# \u00dcbertragungsmodus \/ Bandbreite 40MHz \/ siehe iw list\r\n# ht_capab=[HT40+][SHORT-GI-40][DSSS_CCK-40]\r\n\r\n# Beacons\r\nbeacon_int=100\r\ndtim_period=2\r\n\r\n# MAC-Authentifizierung, Hier koennte man MAC-Adressen\r\n# erlauben bzw. ausschliessen.\r\nmacaddr_acl=0\r\n\r\n# max. Anzahl der moeglichen Wlan-Clients\r\nmax_num_sta=20\r\n\r\n# Ausloggen durch Inaktivit\u00e4t erst nach 1200 Sekunden\r\nap_max_inactivity=1200\r\n\r\n# Gr\u00f6\u00dfe der Datenpakete\/Begrenzung\r\nrts_threshold=2347\r\nfragm_threshold=2346\r\n\r\n# hostapd Log Einstellungen\r\n# Hier wird in die \/var\/log\/messages protokolliert logger_syslog=-1\r\nlogger_syslog_level=2\r\nlogger_stdout=-1\r\nlogger_stdout_level=2\r\n\r\n# tempor\u00e4re Konfigurationsdateien\r\ndump_file=\/tmp\/hostapd.dump\r\nctrl_interface=\/var\/run\/hostapd\r\nctrl_interface_group=0\r\n\r\n# Authentifizierungsoptionen\r\nauth_algs=3\r\n\r\n# Verschl\u00fcsselung \/ hier wird nur WPA2 aktiviert\r\nwpa=2\r\nrsn_preauth=1\r\nrsn_preauth_interfaces=wlan0\r\nwpa_key_mgmt=WPA-PSK\r\nrsn_pairwise=CCMP\r\n\r\n# Schl\u00fcsselintervalle \/ Standardkonfiguration\r\nwpa_group_rekey=600\r\nwpa_ptk_rekey=600\r\nwpa_gmk_rekey=86400\r\n\r\n# Zugangsschl\u00fcssel (PSK) \/ hier in Klartext (ASCII)\r\nwpa_passphrase=MeinWlanPasswort<\/pre>\n<p>Die oben gezeigte Konfiguration ist f\u00fcr den sogenannten Bridge-Modus vorbereitet, also wenn man so wie ich die Reichweite eines Wlan erh\u00f6hen will. Soll der Pi jedoch als separater Access Point eingesetzt werden (z.B. mit einem getrenntem Wlan und Sicherheitsregeln, beispielsweise ein Gast-Wlan), so muss die erste Zeile bridge=br0 auskommentiert oder gel\u00f6scht werden.<\/p>\n<p>Da ich nicht nur die Reichweite erh\u00f6hen, sondern auch ein Roaming haben wollte (wenn ich mit meinem Tablet-PC durch das Haus laufe, will ich immer Wlan haben) habe ich die gleiche SSID eingetragen, die auch mein Router (eine AVM Fritz!Box) hat und habe einen Channel gew\u00e4hlt, der 3 Kan\u00e4le \u00fcber dem liegt, den meine Fritz!Box verwendet. Das Wlan-Passwort ist ebenfalls identisch wie beim Router. Dadurch erkennen eigentlich alle Wlan-Ger\u00e4te, wenn der Empfang zu einem anderen Ger\u00e4t st\u00e4rker ist und melden sich dort an, ohne dass ich Wlan unterbrechen oder gar manuell stoppen und wieder starten m\u00fcsste!<\/p>\n<h2>Konfiguration der &#8222;interfaces&#8220; f\u00fcr Bridge-Betrieb<\/h2>\n<p>Nachdem wir nun den hostapd konfiguriert haben, m\u00fcssen wir noch die Netzwerkschnittstellen konfigurieren. Dazu editieren wir die Datei mit dem Kommando <em><strong>sudo nano \/etc\/network\/interfaces<\/strong><\/em>. Die Datei muss dann wie folgt aussehen:<\/p>\n<pre>auto lo\r\n\r\niface lo inet loopback\r\n\r\n# LAN-Schnittstelle des Pi\r\niface eth0 inet static\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 address 192.168.1.6\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 netmask 255.255.255.0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 gateway 192.168.1.9\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dns-nameservers 192.168.1.9\r\n\r\nallow-hotplug wlan0\r\niface wlan0 inet manual\r\nwpa-roam \/etc\/wpa_supplicant\/wpa_supplicant.conf\r\niface default inet dhcp\r\n\r\n# Bridge-Schnittstelle\r\nauto br0\r\niface br0 inet static\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 address 192.168.1.7\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 netmask 255.255.255.0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 gateway 192.168.1.9\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dns-nameservers 192.168.1.9\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 bridge_ports eth0 wlan0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 bridge_fd 0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 bridge_stp no<\/pre>\n<p>Als erstes erh\u00e4lt hier der LAN-Port des Pi die IP-Adresse 192.168.1.6. Der Router wird als Gateway zum Internet mit der 192.168.1.9 angegeben. Da dieser Router hier auch gleichzeitig DNS-Server ist, wird dieser Eintrag ebenfalls hinzugef\u00fcgt.<\/p>\n<p>Im zweiten Schritt m\u00fcssen wir das virtuelle Interface f\u00fcr die Bridge (<strong>br0<\/strong>) definieren. Dieses braucht ebenfalls eine IP-Adresse f\u00fcr die Verwaltung im gleichen Netzwerk und sollte nat\u00fcrlich das gleiche Gateway und DNS-Server besitzen, wie die LAN-Schnittstelle. Dann geben wir an, dass die beiden Ports <strong>eth0<\/strong> und <strong>wlan0<\/strong> Mitglieder der Bridge sind. Dadurch werden also Datenpakete zwischen dem Kabelgebundenen LAN und dem Wlan-Stick \u00fcbermittelt.<\/p>\n<p>Der Parameter <strong>bridge_fd 0<\/strong> gibt an, dass die Interfaces ohne Verz\u00f6gerung sofort die Datenpakete \u00fcbermitteln sollen. <strong>bridge_stp no<\/strong> gibt an, dass eine Zusammenarbeit \u00fcber das &#8222;Spanning Tree Protocol&#8220; mit anderen im Netzwerk verf\u00fcgbaren Bridges nicht aktiviert ist.<\/p>\n<p>Da der Sinn einer Bridge in der Erweiterung des Wlan-Funkbereichs liegt, verzeichten wir hier auf die Einrichtung eines DHCP-Servers. Durch die Bridge-Funktion bekommt jeder Wlan-Client eine IP-Adresse vom DHCP-Dienst des Routers.<\/p>\n<h2>Konfiguration f\u00fcr einen Access-Point<\/h2>\n<p>Um den Pi als Access-Point zu konfigurieren, sind ein paar Schritte mehr erforderlich. Zum Unterschied: Ein Access-Point bietet nicht einfach die Erweiterung des bestehenden Wlan, sondern erstellt ein neues Wlan mit einem neuen Sicherheitsbereich und neuen Einstellungen!<\/p>\n<p>Dazu m\u00fcssen zun\u00e4chst zwei weitere Softwarepakete installiert werden. Wir brauchen erstens einen DNS-Weiterleitungsdienst und zweitens eine IP-Firewall, die f\u00fcr uns die Datenpakete zwischen dem neuen Wlan und dem bestehenden Lan transportiert bzw. wenn gew\u00fcnscht auch blockieren kann. Dazu geben wir folgenden Befehl ein:<\/p>\n<pre>sudo apt-get install dnsmasq iptables<\/pre>\n<p>Nach der erfolgten Installation der Pakete m\u00fcssen wir nun zun\u00e4chst die Netzwerkschnittstellen konfigurieren. Dazu editieren wir die Datei mit dem Kommando <em><strong>sudo nano \/etc\/network\/interfaces<\/strong><\/em>. Die Datei muss dann wie folgt aussehen:<\/p>\n<pre>auto lo\r\niface lo inet loopback\r\n\r\niface default inet dhcp\r\n\r\n# LAN-Schnittstelle des Pi\r\niface eth0 inet static\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 address 192.168.1.6\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 netmask 255.255.255.0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 gateway 192.168.1.9\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dns-nameservers 192.168.1.9\r\n\r\n\u00a0# WLAN Interface \/ Access-Point Einstellungen allow-hotplug wlan0\r\nauto wlan0\r\niface wlan0 inet static\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 address 192.168.100.1\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 netmask 255.255.255.0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 boradcast 192.168.100.255\r\n\r\n# Loeschen aller bestehenden Firewall-Regeln up \/sbin\/iptables -F\r\nup \/sbin\/iptables -X\r\nup \/sbin\/iptables -t nat -F\r\n\r\n# Maskieren der LAN-Schnittstelle, Netzwerkweiterleitung &amp; NAT aktivieren\r\nup iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.100.0\/24 -m conntrack --ctstate NEW -j ACCEPT\r\nup iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT\r\nup iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\r\nup sysctl -w net.ipv4.ip_forward=1 \r\n\r\n# hostapd und dnsmasq nach der Firewall neu starten\r\nup \/etc\/init.d\/hostapd restart\r\nup \/etc\/init.d\/dnsmasq restart<\/pre>\n<p>Zum Schlu\u00df muss noch die Datei \/ect\/dnsmasq.conf angepasst werden. F\u00fcr unsere Konfiguration brauchen wir nur folgende paar Zeilen, die wir am Ende der Datei einf\u00fcgen k\u00f6nnen:<\/p>\n<pre># DHCP-Server nur \u00fcber Wlan aktivieren\r\ninterface=wlan0<\/pre>\n<pre># DHCP-Server nicht f\u00fcr die LAN-Schnittselle\r\nno-dhcp-interface=eth0<\/pre>\n<pre># DHCP-IP-Adressbereich und Lease-Time festlegen\r\ndhcp-range=interface:wlan0,192.168.100.10,192.168.100.30,12h<\/pre>\n<p>Hier sorgen wir daf\u00fcr, dass der DHCP-Dienst nicht in unserem LAN IP-Adressen verteilen kann. Das w\u00fcrde auch keinen Sinn machen, da in unserem Wlan ein anderer Adressbereich (192.168.100.x) liegt, als in unserem LAN (192.168.1.x). Da wir oben maximal 20 Clients erlaubt haben, reicht der Adressbereich f\u00fcr DHCP von 192.168.100.10 bis 192.168.100.30 aus. Die sogenannte &#8222;Lease-Time&#8220; gibt an, dass eine IP-Adresse f\u00fcr 12 Stunden reserviert bleibt, sobald der Client nicht mehr im Netzwerk angemeldet ist. Danach wird Sie f\u00fcr den n\u00e4chsten Client wieder freigegeben.<\/p>\n<p>\u00dcbrigens: Ein Client fragt beim DHCP-Dienst immer zuerst an, ob die vorherige DHCP-Adresse noch frei ist. Wenn dem so ist, erh\u00e4lt der Client diese Adresse wieder.<\/p>\n<p>Wichtig zu erw\u00e4hnen: Die hier gezeigte Konfiguration l\u00e4sst es nicht zu, dass man aus dem LAN einen Wlan-Client erreicht. Das wird durch den Einsatz von NAT und Masquerade verhindert. Dieses ist eine der M\u00f6glichkeiten, sein LAN vom Wlan abzusichern. M\u00f6chte man diese Funktion jedoch nutzen, ist vielleicht die Konfiguration einer Bridge sinnvoller!<\/p>\n<h2>Zus\u00e4tzliche Hinweise<\/h2>\n<p>F\u00fcr beide Konfigurationen gilt: Nach dem Erstellen der Konfiurationsdateien sollte man den Pi neu starten (sudo shutdown -r now). Anschlie\u00dfend kann man mit einem Wlan-Client (Handy, Tablet, Notebook\u2026) den Zugang testen.<\/p>\n<p>Wichtig f\u00fcr diese Installationen ist jedoch, dass man sich genau \u00fcberlegt, was auf dem Pi alles m\u00f6glich ist und aktiviert ist. Jeder Client in Reichweite kann nun versuchen und das Wlan und somit zum Pi zu gelangen. Also sollten wir uns folgende Fragen stellen:<\/p>\n<p>1. Ist der Standarduser \u201cpi\u201d noch mit dem Standardpasswort \u201craspberry\u201d aktiviert?<br \/>\n2. Ist der ssh-Zugriff f\u00fcr den root-Benutzer aktiviert ?<br \/>\n3. Ist das Passwort des root-Benutzers einfach zu erraten?<br \/>\n4. Ist das Wlan-Passwort einfach zu erraten?<br \/>\n5. Kann ich von der SSID her schllie\u00dfen, wem das Wlan geh\u00f6rt?<\/p>\n<p>Dieses sind die wichtigsten \u00dcberlegungen, damit man keine \u00dcberraschungen erlebt. Man sollte sich immer ein wenig Zeit nehmen und in Ruhe das Wlan konfigurieren, bevor sich im eigenen Vorgarten ungewollt ein Internetcafe bildet. \ud83d\ude09<\/p>\n<p>Ich habe meinen Pi als Wlan-Bridge nun seit einigen Wochen am Laufen und bin sehr zufrieden. Er l\u00e4uft stabil und ich habe mittlerweise \u00fcber 20 verschiedene Wlan-Clients getestet (Handys, Tablets, Notebooks etc.) und alle haben fehlerfrei und schnell im Wlan gearbeitet.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Da ich zu Hause dringend einen Wlan-Repeater brauchte und ich bereits meinen ersten Pi als Heimserver in Betrieb hatte war f\u00fcr mich die Frage, kaufe ich mir einen guten Wlan-Repeater mit LAN-Anschluss oder f\u00fcr etwas weniger Geld einen Pi mit einem guten Wlan-Stick. Die \u00dcberlegung: Der Wlan-Repeater musste per Kabel an das LAN angeschlossen werden, &#8230;<\/p>\n<p><a href=\"https:\/\/c64-online.com\/?page_id=162\" class=\"more-link\">Continue reading &lsquo;Access Point \/ Wlan-Repeater&rsquo; &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":115,"menu_order":1,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-162","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/c64-online.com\/index.php?rest_route=\/wp\/v2\/pages\/162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/c64-online.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/c64-online.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/c64-online.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/c64-online.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=162"}],"version-history":[{"count":5,"href":"https:\/\/c64-online.com\/index.php?rest_route=\/wp\/v2\/pages\/162\/revisions"}],"predecessor-version":[{"id":981,"href":"https:\/\/c64-online.com\/index.php?rest_route=\/wp\/v2\/pages\/162\/revisions\/981"}],"up":[{"embeddable":true,"href":"https:\/\/c64-online.com\/index.php?rest_route=\/wp\/v2\/pages\/115"}],"wp:attachment":[{"href":"https:\/\/c64-online.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}