Amiga-Dresden
Raspberry pi als AccessPoint (AP) - Druckversion

+- Amiga-Dresden (https://amiga-dresden.de)
+-- Forum: Ein Kessel Buntes (https://amiga-dresden.de/forumdisplay.php?fid=30)
+--- Forum: Der Rest der Computerwelt (https://amiga-dresden.de/forumdisplay.php?fid=15)
+--- Thema: Raspberry pi als AccessPoint (AP) (/showthread.php?tid=511)

Seiten: 1 2


Raspberry pi als AccessPoint (AP) - T!t@n - 27.02.2016

So, da mein AP sich durch nen Fehler im Dateisystem verabschiedet hat und ich das Backup was ich, irgendwo auf einer meiner vielen Platten hab, trotz langer Suche nich gefunden hatte, hab ich kurzerhand nen neuen aufgesetzt.

Genauere Erklärungen zum installiern werd ich in den kommenden Tagen hier reinstellen.

Wenn mans einmal verstanden hat, isses recht einfach. Wink

Ne Anleitung für Fortgeschrittene gibts hier: LINK

Die anleitung die ich hier mach, is für den von mir verwendeten Pi2 b OHNE Wlahn.

Was man brauch is erstmal nen aktuelles System.
Die Anleitung geht von einem "Raspbian Stretch mit Desktop" aus als Image.
Ohne Desktop hab ich noch nicht getestet.

https://downloads.raspberrypi.org/raspbian_latest
*quelle= https://www.raspberrypi.org/ *

Noch vergessen zu erwähen das ich bei der Installation den WLan-Stick schon angeschlossen hatte,
daher hab ich beide Netzwerkverbindungen auch sofort betriebsbereit gehabt, nur muste ich noch die Netzwerkadressen vergeben, aber dazu später mehr.

Noch ne Erklärung nebenbei aus dem Fach "Lustige Fackten":

"das aktuelle Raspbian ist ~3,5-4Gibyte groß. Passt somit nicht auf ne 2GB SD-Karte.
´s geht auch kleiner, indem man den Desktop und andern Kladderradatsch weglässt dann ists ~500Mibyte groß und sollte ohne weiteres auf ne 2GB SD-karte passen."

Mach mer mal weiter. Wink

Meine Empfehlung ist, sich nach dem Aufsetzen des Systems und wenn man ne funktionierende Netzwerk/Internetverbindung hat ALLE Packete zu laden bevor man weitermacht.
Dann noch ne weitere Empfehlung: nehmt euch nen Läppi oder Tablet mit Netzwerk/Internetverbindung ODER habt den Monitor an demRaspberry damit man notfalls die Anleitung und das Tatsächliche auf dem Pi vergleichen kann.
Mir ists selbst passiert, daß meine Netzwerkverbindung plötzlich weg war durch ne falsche Eingabe in den datein und ich dadurch nich mehr nach ner Anleitung suchen konnte um zu vergleichen, wo der Fehler lag.
Code:
sudo apt-get update
sudo apt-get upgrade

dnsmasq
hostapd
Code:
sudo apt-get install dnsmasq
sudo apt-get install hostapd

Midnight Commander
Quelle:
http://www.midnight-commander.org/
Code:
sudo apt-get install mc
Über dem Midnight Commander ist die Bearbeitung von Configdateien noch einfacher als über die Konsole. Daher hab ich den hier mit angeführt.

------------------

Netzwerk konfigurieren

Normalerweise ist das Netzwerk auf dhcp ausgelegt nach einer Neuinstallation von Raspbian.

Wir suchen und die Datei interfaces dazu heraus um sie zu bearbeiten.
Code:
sudo nano /etc/network/interfaces

Jetzt sollten wir Folgendes sehen:
Code:
# Localhost
auto lo
iface lo inet loopback

# Ethernet
auto eth0
iface eth0 inet dhcp

# WLAN-Interface
allow-hotplug wlan0
iface wlan0 inet dhcp
Da uns das nix nützt und wir so den Rasp-Pi nicht per ssh configurieren können, müssen wir nun erstmal die Ethernetadresse anpassen.

Das würde in meinem Falle so aussehn
Code:
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

#Ethernet
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.128
netmask 255.255.255.0
gateway 192.168.1.254
dns-nameservers 192.168.1.254

# WLAN-Interface
allow-hotplug wlan0
iface wlan0 inet dhcp
Gut nun müste der Pi auch im Netzwerk unter der 192.168.1.128 für einen ssh-Clienten zu finden sein, sofern auch ein ssh-server auf dem Raspberry eingeschaltet ist, was man über die raspi-config machn kann

Code:
sudo raspi-config
Dort navigiert ihr zum Punkt "Interfacing Options" und wählt dann im nächsten Untermenue "ssh enable" aus
Jetzt sollte der Raspberry auch nur noch per Netzwerk konfigurierbar sein, ohne monitor und tastatur/maus.
Lediglich Netzwerkkabel sollte zusammen mit Strom am jeweils dafür vorgesehenen Anschlus angeschlossen sein

Da der Pi einen AP hosten soll, brauch er eine feste Startadresse für das WLan.
Code:
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

#Ethernet
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.128
netmask 255.255.255.0
gateway 192.168.1.254
dns-nameservers 192.168.1.254

#WLan
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0
Strg+x, die nächste Abfrage mit j(=ja) beantworten und dann 2x Enter, fertig sollte das Interface sein und wenn mans noch mal im Editor aufruft auch vorerst so aussehn wie vorran angeführt. warum vorerst? Weil wir nochmal drauf zugreifen müssen. aber dazu später mehr.
Mit dem ändern des Netzwerks auf eine andere IP-Range im WLan kann man gewährleisten das sich die Geräte im Netzwerk nicht in die Quere kommen können und man somit auch Wlan von Kabelgebundenen unterscheiden/trennen kann.
Noch ein Hinweis:
"In dieser IPv4-Konfiguration hat das WLAN-Interface eine statische IPv4-Adresse. Das brauchen wir für den Betrieb des DHCP- und DNS-Servers.
Es wäre auch denkbar, der Ethernet-Schnittstelle eine statische IP-Konfiguration zu verpassen. Das muss aber nicht sein. In dieser Form hat der WLAN-Router den Vorteil,
dass er in jedem lokalen Netzwerk funktioniert, wenn die IPv4-Konfiguration per DHCP an die Ethernet-Schnittstelle geliefert wird.
Wenn IPv6 aktiviert ist, dann funktioniert es ebenso."
Quelle=https://www.elektronik-kompendium.de/sites/raspberry-pi/2002171.htm

------------------

DHCP-Server und DNS-Cache einrichten (dnsmasq)
Code:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf_alt
sudo nano /etc/dnsmasq.conf
Der mv Befehl macht ne Kopie vom Orginal als Backup.
Der ander macht den Editor auf. Da der Inhalt, je nach Version, nur ein paar Kommentare sein sollten, im Höchstfall oder gar leer, machen wir für die dnsmasq nur ne minimale Konfiguration.
Das sollte wie in meinem Falle dann so aussehn:
Code:
#DHCP-Server aktiv für WLan-Interface
interface=wlan0

#DHCP-Server nicht aktiv für bestehende Netzwerk
no-dhcp-interface=eth0

#IPv4-Adressbereich und Lease-Time
dhcp-range=192.168.2.5,192.168.2.200,24h

#DNS
dhcp-option=option:dns-server,192.168.1.254
Mehr muss da nicht drin steht, also kann man getrost auch die vlt drinstehenden Kommentare rauslöschen.

------------------

DHCP-Server und DNS-Cache prüfen und in Betrieb nehmen (dnsmasq)

Wenn die Syntaxprüfung, die mit dem Befehl:
Code:
dnsmasq --test -C /etc/dnsmasq.conf
ausgeführt wird, erfolgreich ist also mit ok abgeschlossen wird, sind da zumindest keine Fehler drin. Wink

man kann den server nun auch noch testen:
Code:
sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq

Und zu guter Letzt muss der dhcp-Server noch bei jedem Systemstart aktiviert sein:
Code:
sudo systemctl enable dnsmasq

------------------

WLAN-AP-Host einrichten (hostapd)

Wie immer mit dem nano-Editor Wink
Code:
sudo nano /etc/hostapd/hostapd.conf
Da wir die hostapd erst installiert haben, wird mit dem Befehl die Datei auch erst angelegt.

Code:
# WLAN-Router-Betrieb

# Schnittstelle und Treiber
interface=wlan0
#driver=nl80211

# WLAN-Konfiguration
ssid=WLANrouter
channel=1
hw_mode=g
ieee80211n=1
ieee80211d=1
country_code=DE
wmm_enabled=1

# WLAN-Verschlüsselung
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=*****
Anstelle der Sternchen am Ende tragt ihr das WLan-Kennwort ein, und nein das ist nicht meine passwort für mein WLan. Wink

So nun noch die hostapd schützen mit dem Befehl:
Code:
sudo chmod 600 /etc/hostapd/hostapd.conf

Und nun noch testen ob die Syntax stimmt:
Code:
sudo hostapd -dd /etc/hostapd/hostapd.conf

Jetz die "hostapd" als Daemon im Hintergrund starten:
Code:
sudo nano /etc/default/hostapd

Dort ergänzen wir Folgendes:
Code:
RUN_DAEMON=yes
DAEMON_CONF="/etc/hostapd/hostapd.conf"

Wenn das eingetragen ist, tippern man in der Console folgende 2 Befehle nacheinander ein:
Code:
sudo systemctl start hostapd
sudo systemctl enable hostapd

Jetz können wir noch den Daemon testen mit:
Code:
sudo systemctl status hostapd
da sollte stehen:"Loaded: loaded und Active: active"

------------------

NAT, Masquerading und IP-Forwarding

Wie immer nano:
Code:
sudo nano /etc/network/interfaces

Nun noch die Interfaces vervollständigen um das IP-Forwarding und die Firewallregeln:
Code:
# interfaces(5) file used by ifup(8) and ifdown(8)
~
~
address 192.168.2.1
netmask 255.255.255.0

# Vorhandene Firewall-Regel löschen
up /sbin/iptables -F
up /sbin/iptables -X
up /sbin/iptables -t nat -F

# Loopback zulassen
up /sbin/iptables -A INPUT -i lo -j ACCEPT
up /sbin/iptables -A OUTPUT -o lo -j ACCEPT

# NAT und Masquerading aktivieren
up /sbin/iptables -A FORWARD -o eth0 -i wlan0 -m conntrack --ctstate NEW -j ACCEPT
up /sbin/iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
up /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# IP-Forwarding aktivieren
up sysctl -w net.ipv4.ip_forward=1
up sysctl -w net.ipv6.conf.all.forwarding=1

# hostapd und dnsmasq neu starten
up service hostapd restart
up service dnsmasq restart
Wie immer Strg+x, dann "j" zum Speichern.

Mit
Code:
sudo reboot
ists fertig.


- T!t@n - 06.05.2019

Crontab einstellen für 2x in der Woche nen reboot
Quellen:
forum.smartapfel.de/forum
www.elektronik-kompendium.de

Grund: Um Stabilitätsprobleme zu beheben oder eventuellen langzeitlichen Stabilitätsproblemen aus dem Weg zu gehn, denn bei mir hat sich der AP nach ~6tagen abgeschossen und über ihn konnte nicht mehr aufs netzwerk/internet zugegriffen werden.

Hinweis: Wichtig ist, dass am Ende der Tabelle ein Kommentar oder eine Leerzeile steht. Ähnlich wie die fstab muss die crontab mit einer Leerzeile enden!

Code:
sudo crontab -e
Öffnet den crontab Editor

Code:
pi@raspberrypi:~ $ sudo su
root@raspberrypi:/home/pi# sudo crontab -e
no crontab for root - using an empty one

Select an editor. To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.tiny

Choose 1-3 [2]:
Ich empfehle hier den nano-Editor, also Taste 2 und bestätigen mit der Entertaste.

Jetzt müste euch in der Console Folgendes angezeigt werden (is mehr aber ich habs kürzen müssen) :
Code:
Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
~~~~~
~~~~~
# For more information see the manual pages of crontab(5) and cron(8)
#
00 3 * * 4,7 sudo reboot
# m h  dom mon dow   command
Strg+x für beenden drücken und Abfrage zum Speicher mit j für ja beantworten.
Dann Enter drücken und nochmal Enter dann sollte crontab fertig sein.
Wie immer noch nen Neustart und schon sollte der Pi nun 2mal in der Woche am Donnerstag und Sonntag jeweil um 3 Uhr Nachts von alleine neustarten.

Dieser Abschnitt ist für 3x täglich nen Neustart alle 8h:
Code:
Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
~~~~~
~~~~~
# For more information see the manual pages of crontab(5) and cron(8)
#
00 7,15,23 * * * sudo reboot
# m h  dom mon dow   command
Neugestartet wird damit jeden Tag um 3Uhr 15Uhr sowie 23Uhr.

---------------------------

wenn man noch pi-hole drauf haben will
Code:
wget -O basic-install.sh https://install.pi-hole.net

!Wird noch weiter vervollständigt!


- Jochen - 06.05.2019

Gibts da mittlerweile nicht sogar Pakete wie OpenWRT oder sowas für den Pi?
Wäre zumindest spannend...


- T!t@n - 07.05.2019

kannst ja mal testen --> https://openwrt.org/toh/raspberry_pi_foundation/raspberry_pi


- Jochen - 07.05.2019

Perfekt! :thumbsup:
... grad nich die nerven um sowas zu testen... uff!


- T!t@n - 07.05.2019

bin aber nicht überzeugt davon das open wrt das macht was nen AccessPoint machn kann

updatet post2


- Jochen - 08.05.2019

Hö? sollte, denn dafür isses doch da!?


- T!t@n - 08.05.2019

wie gesagt ich habs nicht getestet und mein aktueller ap funktioniert so wie er sollte, ob open wrt das auch kann kannst du ja mal rausfinden. du hast doch nen 3er pi der hat ne wlan antenne onbrett, meiner nich is ja nur nen 2b halt.
ich müste dem die antenne klauen Wink


- CB1JCY - 08.05.2019

Ich habe OpenWRT auf einem Router. Dort habe ich zwei Modi:
- Router: Wlan aufs LAN bringen und Routing im Lan
- Bridge: Lan wird über WLan zu einem AP gebrückt und Routing im Lan.
OpenWRT beherrscht, neben anderen sonnst nicht zugänglichen Einstellungen, auch das Umfunktionieren des WAN-Anschlusses (den ich dort im Bridge-Modus nicht brauche) zum LAN.


- Holzroller - 08.05.2019

Mal ne Frage: Warum/Wofür baut man sich via Rasp* nen AP? Nur weil man es kann? Ich kann das irgendwie nicht nachvollziehen - der Aufwand, die Zeit, etc...

Helft mir mal bitte!