Bei den benötigten Komponenten verweise ich direkt per Links auf die einzelnen Artikel. Beachtet bitte auch das die günstigen Komponenten aus China ca. 30-45 Tage lieferzeit haben. Die unten aufgeführten Komponenten sind zu 100% kompatibel, solltet ihr andere Produkte bevorzugen, so achtet bitte darauf, dass diese kompatibel zum Pi sind. Besonders beim W-Lan Dongle gibt es durch unterschiedeliche Chips Kompatibilitätsprobleme. Bei der Stromversorgung empfiehlt es sich in Deutschland CE zertifizierte Produkte zu kaufen, da diese doch durchgehend am Strom hängen!
Inhalt
- Benötigte Komponenten
- DHCP Server und HostAPD installieren
- Autostart HostAPD
- Network Interface Konfigurieren
- VPN für Verbindungen zu externen Servern einrichten
Benötigte Komponenten
- Raspberry Pi Model B 29,00 € Getgoods (nach 5€ Newslettergutschein)
- Stromversorgung, hier ein 2000mA 4 USB Hub ca. 10€ bei Amazon mit Prime (auch ohne Prime Versand günstiger zu haben)
- W-Lan Dongle 6,99 € bei Amazon
- Netzwerkkabel (sollte jeder zu hause haben)
- SD Speicherkarte 11€ 16GB Class 10 Amazon
- SD Kartenlesegerät
- Maus & Tastatur
Optional
- Case für den Raspberry Pi 3,40 € aus China
- HDMI zu VGA Konverter kompatibel zum PI 15,85 € bei Amazon gibt es auch in der Bucht aus China für weniger, aber hier funktionieren auch nicht alle und es muss ein Koverter sein!
- Micro USB Kabel ca. 1€ aus China oder etwas mehr von Amazon oder so (hängt davon ab, was ihr alles an eurem Pi betreiben wollt.)
Pi aktualisieren und überprüfen, ob Dongle installiert ist und erkannt wird
Ein Update unserer installierten Software wäre von Vorteil, somit sollten wir die folgenden Befehle ausführen lassen.
sudo apt-get update sudo apt-get upgrade sudo apt-get autoremove
Dies kann je nach aktuellem Softwarestand und Internetverbindung einige Minuten in Anspruch nehmen. Mit dem Befehl
lsusb
könnt ihr überprüfen, ob euer Wifi Dongle richtig installiert ist und erkannt wird. In meinem Fall befindet sich der Dongle hinter Device 004. ------------------------------------------------- Ist dein Stick nicht aufgeführt? Dann hier weitermachen ansonsten diesen Part überspringen! Achtung: Nur für Ralink Chip. Für andere Chips dementsprechend andere Firmware raussuchen! Für den Treiber des Sticks braucht ihr ein passendes "non-free" Firmware Repositority. Dazu öffnen wir die "source.list" im Nano Editor
sudo nano /etc/apt/sources.list
und tragen
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
nach, speichern mit "Strg + O" und installieren die Firmware mit folgendem Befehl.
sudo apt-get install firmware-ralink
Nach erfolgreicher Installation nochmals mittels lsusb testen. -------------------------------------------------
Installieren und einrichten von DHCP und HostAPD
Beginnen wir nun mit der Installation der benötigten Software (hostapd isc-dhcp-server iw). Dazu geben wir in der Shell folgenden Befehl ein
sudo apt-get install hostapd isc-dhcp-server iw
Ob euer Dongle für den AP Betrieb ausgelegt ist, könnt ihr mittels
iw list | grep AP$
herausfinden. Nachdem dies erledigt ist, müssen wir ein Config File für HostAPD und den DHCP-Server erstellen.
HostAPD
Zunächst erstellen wir die Config für den HostAPD mit folgendem Befehl
sudo nano /etc/hostapd/hostapd.conf
und fügen
interface=wlan0 driver=nl80211 ssid=RaspberryPi channel=3 wmm_enabled=1 wpa=1 wpa_passphrase=1234567890 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP auth_algs=1 macaddr_acl=0
ein, wobei 1234567890 dein gewüschtes Passwort ist. SSID (hier: RaspberryPi) ist der Name des Netzwerks. Solltest du nicht den Dongle mit Ralink Chip besitzen, solltest du überprüfen ob nl80211 mit deinem Stick kompatibel ist.
DHCP-Server
Widmen wir uns nun der Config für den DHCP-Server und legen mit
sudo nano /etc/dhcp/dhcpd.conf
eine neue Config an und fügen dort
authoritative; ddns-update-style none; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.25 192.168.1.50; option domain-name-servers 8.8.8.8, 8.8.4.4; option routers 192.168.1.1; interface wlan0; }
ein. Subnet, Range und Option Routers solltet ihr auf eure Gegebenheiten anpassen. Mein Haupt Router rennt auf 192.168.2.1 somit habe ich für den Pi das Subnet 192.168.1.0 gewählt. Die Range legt die für den den DHCP Server verwendbaren IP Adressen fest. In meinem Fall ist die erste IP die vergeben wird die 25 und die letzte die 50. Option Routers ist die IP unter der der Pi läuft. Nun noch kleine Änderungen am ISC-DHCP-Server vornehmen.
sudo nano /etc/default/isc-dhcp-server
INTERFACES=""
zu
INTERFACES="wlan0"
Autostart HostAPD
Da unser DHCP und HostAPD eingerichtet sind, müssen wir noch den HostAPD beim Bootvorgang automatisiert starten lassen. Dazu öffnen wir
sudo nano /etc/default/hostapd
und entfernen die Raute vor
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Network Interface Konfiguration
Damit der DHCP Server für den richtigen Adapter die IP Vergabe übernimmt, müssen wir noch unser Netzwerk Interface für das Wifi anpassen.
sudo nano /etc/network/interfaces
allow-hotplug wlan0 iface wlan0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255
Nun können wir unseren Pi mittels
sudo reboot
neustarten lassen und unser AP mit DHCP sollte funktionieren (bisher ohne Internet, da wir erst noch die IP Adressen auf den Kabelanschluss weiterleiten müssen).
Internetverbindung an W-Lan Nutzer weiterreichen
Nachdem unser PI wieder gestartet ist, ermöglichen wir den Nutzern unseres Hot Spots noch den Internetzugang. Dies erledigen wir mit
echo 1 > sudo /proc/sys/net/ipv4/ip_forward
sudo nano /etc/sysctl.conf
und entfernen die Raute vor.
net.ipv4.ip_forward=1
NAT erlauben
Nun müssen wir noch mittels iptables NAT erlauben.
sudo su iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Da diese nur temporär sind müssen wir diese nach jedem Bootvorgang erneut erlauben. Da wir dies aber automatisiert haben wollen, speichern wir die Regeln ab
iptables-save > /etc/iptrules
und lassen diese beim Bootvorgang mitladen. Dazu erstellen wir folgendes Shell Script
nano /etc/network/if-pre-up.d/iptables
und kopieren
#!/bin/sh iptables-restore < /etc/iptrules exit 0
hinein. Damit unser Script auch beim Booten ausgeführt werden kann, müssen wir es noch ausführbar machen und die erforderlichen Rechte vergeben.
chmod +x /etc/network/if-pre-up.d/iptables chown root:root /etc/network/if-pre-up.d/iptables chmod 755 /etc/network/if-pre-up.d/iptables
Nach einem Neustart eures Pi solltet ihr einen vollfunktionsfähigen Access Point besitzen und das eigentliche Tutorial endet hier. Die nächsten Schritte beschreiben noch, wie man einen VPN (PPTP) Client installiert und den Pi mit einem externen VPN Server verbinden lässt und somit alle Verbindungen durch den VPN schickt.
VPN Verbindung zu externen VPN Server und weiterreichen an die W-Lan Nutzer
Zunächst installieren wir die benötigte Software.
sudo apt-get install pptp-linux pptpd ppp curl
Die Einstellungen lassen wir durch ein Shell Script erledigen (Habe das Script von hier kopiert und angepasst)
sudo nano /home/pi/pptpvpn
#!/bin/bash function routeadd { H=`ps aux | grep 'pppd pty' | grep -v grep | awk '{print $14}'` DG=`route -n | grep UG | awk '{print $2}'` DEV=`route -n | grep UG | awk '{print $8}'` route add -host $H gw $DG dev $DEV route del default $DEV route add default dev ppp0 } function makepptp { echo pty \"pptp HIER_EURE_VPN_URL_ODER_IP_EINTRAGEN --nolaunchpppd\" >> /etc/ppp/peers/pptpvpn; echo remotename PPTP >> /etc/ppp/peers/pptpvpn; echo require-mppe-128 >> /etc/ppp/peers/pptpvpn; echo file /etc/ppp/options.pptp >> /etc/ppp/peers/pptpvpn; echo ipparam pptpvpn >> /etc/ppp/peers/pptpvpn; pppd call pptpvpn & } if [ -a /etc/ppp/chap-secrets ]; then rm /etc/ppp/chap-secrets echo $1 PPTP $2 '*' >> /etc/ppp/chap-secrets; else echo $1 PPTP $2 '*' >> /etc/ppp/chap-secrets; fi if [ -e /etc/ppp/peers/pptpvpn ]; then rm /etc/ppp/peers/pptpvpn; echo name $1 >> /etc/ppp/peers/pptpvpn; makepptp; sleep 8; routeadd; else echo name $1 >> /etc/ppp/peers/pptpvpn; makepptp; sleep 8; routeadd; fi
Bei dem Script noch HIER_EURE_VPN_URL_ODER_IP_EINTRAGEN durch die IP oder URL eures VPN Providers ersetzen.
sudo nano /etc/init.d/vypr
Vypr, da ich wegen meines VPN bei VyprVPN bin. Namen könnt ihr natürlich frei wählen, müsst ihr nur auch im Script und den Befehlen anpassen!
### BEGIN INIT INFO # Provides: VPN Connection # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Connect VPN at boot # Description: Connect VPN at boot. ### END INIT INFO #! /bin/sh # /etc/init.d/vypr USER=root HOME=/root export USER HOME case "$1" in start) echo "Connecting VPN" sudo /home/pi/pptpvpn BENUTZERNAME PASSWORT ;; stop) echo "Disconnecting VPN" sudo killall pppd ;; *) echo "Usage: /etc/init.d/vypr {start|stop}" exit 1 ;; esac exit 0
BENUTZERNAME PASSWORT durch eure Daten ersetzen und das Script mit
sudo chmod +x /etc/init.d/vypr sudo chown root:root /etc/init.d/vypr sudo chmod 755 /etc/init.d/vypr sudo update-rc.d vypr defaults
ausfürbar machen und beim Bootvorgang mitladen lassen, so dass die VPN Verbindung direkt beim Start des Systems aufgebaut wird. Zum Test des Verbindungsaufbaus dann
sudo /etc/init.d/vypr start
eingeben und mit
curl ipecho.net/plain; echo
überprüfen, ob ihr die IP des VPNs nutzt. Damit unsere W-Lan Nutzer die VPN Verbindung zur Verfügung gestellt bekommen, müssen wir eine weitere NAT Regel anlegen.
sudo su iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE iptables-save > /etc/iptrules
Jetzt sollte automatisch der gesamte Traffic von den Nutzern eures Hot Spots durch den VPN geschickt werden. To Do: Was jetzt noch fehlt wäre ein IP Binding, so dass der gesamte Traffic nur über den VPN geht und bei Disconnect des VPNs der gesamte Traffic geblockt wird, damit dieser nicht über die eigentliche IP geschickt wird. Des Weiteren noch ein automatischer reconnect, falls die VPN Verbindung mal getrennt wird.
Kommentare
Super Anleitung
War genau das was ich gesucht hatte! Besten Dank!
Neuen Kommentar schreiben