LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr...

38
LinuxStammtisch

Transcript of LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr...

Page 1: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

LinuxStammtisch

Page 2: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

DIY AccessPointNie wieder ranziges Hotel-WLAN ;)

-mat- filid brandy, https://linuxpinguin.de/

Page 3: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Ranziges Hotel-WLANUnd damit fangen die Schmerzen erst an!

Page 4: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Unsicheres WLAN

• Misstrauen zum Betreiber

• Begrenzung auf wenige Geräte

• Geräte Isolation

• Sniffing

Internet

Page 5: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Zugang zum Internet/Hotel-WLAN

• Firewall

• Proxy

• DNS

• VPN

Internet

}

Page 6: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Was kommt jetzt?

1. Hardware

2. Betriebssystem

3. Die Architektur

4. Software

5. Betrieb

Page 7: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

1. Die Hardware

Page 8: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Raspberry Pi• Einplatinen-Computer auf Basis von

ARM CPUs

• Verschiedenste Versionen seit November 2014:1A+,1B+,2B,3B,3B+,Zero,ZeroW

• Aktuelle Version:3B+, ZeroW

• Benutzte Distribution:Raspbian Lite

• https://www.raspberrypi.org/

ZeroW1A+ 1B+ 2B 3B Zero

3B+

Page 9: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Raspberry Pi• Da auf dem Pi ein vollständiges Linux läuft hat

man viel mehr Möglichkeiten gegenüber zB. von Arduinos.

• Dennoch gibt es durch die GPIO Schnittstelle viele Erweiterungen.

• Entweder selbst gebaut oder sogenannte PiHats.

• Über zwei weitere Schnittstellen lassen sich die Kamera und ein 7” TouchDisplay anschliessen.

Page 10: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Raspberry Pi 3B+• Broadcom BCM2837B0, Cortex-

A53 (ARMv8) 64-bit SoC @ 1.4GHz

• 1GB LPDDR2 SDRAM

• 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2, BLE

• Gigabit Ethernet over USB 2.0 (maximum throughput 300 Mbps)

• Extended 40-pin GPIO header

• Full-size HDMI

• 4 USB 2.0 ports

• CSI camera port for connecting a Raspberry Pi camera

• DSI display port for connecting a Raspberry Pi touchscreen display

• 4-pole stereo output and composite video port

• Micro SD port for loading your operating system and storing data

• 5V/2.5A DC power input

• Power-over-Ethernet (PoE) support (requires separate PoE HAT)

Page 11: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

2. Das Betriebssystem

Page 12: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Raspbian Stretch Lite

• Da wir den Pi später als reinen Server betreiben, reicht die Lite Installation.

• Download unter: https://www.raspberrypi.org/downloads/raspbian/

Page 13: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Raspbian Installation• Download:

https://www.raspberrypi.org/downloads/raspbian/

• Entpacken der ZIP-Datei

• Das Image auf eine SD-Karte schreibenhttps://www.raspberrypi.org/documentation/installation/installing-images/README.md

• SD-Karte in den Pi stecken

• Kabel anschliessen

• Und den Anleitungen folgen

Page 14: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Raspbian Installation• Besonderheiten:

• Der Pi hat englische Tastaturbelegung

• Standard-Benutzer: pi

• Standard-Passwort: raspberry (Bitte SOFORT ändern)

• Was macht man also:

• Einloggen als pi und sudo bash

• raspi-config aufrufen und die obigen Sachen ändern

• Zusätzlich ändere ich die Zeitzone auf UTC und schalte den SSH Server an

• Danach ip a && aptitude update && aptitude -y safe-upgrade && reboot

Page 15: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

3. Die Architektur

Page 16: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Durch ein weiteres USB-Wifi braucht der Pi nur Strom um sich dazwischen zu hängen

• WLAN0 verbindet sich mit dem Internet

• WLAN1 macht den HotSpot auf

• Eth0 ist auch noch nutzbar

Internet

Page 17: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

4. Die Software

Page 18: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Backrezept

• Installation OS

• Initiale Verbindung ins Internet

• Aufsetzen von hostapd

• Aufsetzen von dnsmasq

• Aufsetzten von Squid

• Aufsetzen von OpenVPN

• Aufsetzen von pi-hole

Page 19: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• DHCP anpassen

• Wir müssen die automatische IP-Adressen Suche für das eth0 und wlan1 abschalten.

• Dort werden wir später selbst einen DHCP Server einsetzen.

• Also geben wir schonmal die IP-Adressen in /etc/dhcpcd.conf vor.

• Über das wlan0 lassen wir uns gerne eine IP zuweisen, wir wollen ja Internet. :)

Page 20: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Zugang anpassen

• Die /etc/wpa_supplicant/wpa_supplicant.conf passen wir so an, dass wir auch Zugang bekommen.

• Iptables zum NAT anpassen

• Damit ermöglichen wir unseren Benutzern von wlan1 und eth0 ins Internet zugehen.

Page 21: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Backrezept

• Installation OS

• Initiale Verbindung ins Internet

• Aufsetzen von hostapd

• Aufsetzen von dnsmasq

• Aufsetzten von Squid

• Aufsetzen von OpenVPN

• Aufsetzen von pi-hole

Page 22: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• hostapd

• Diese Komponente erstellt das weitere WLAN als HotSpot

• Zum Testen ist hier im Raum das WLAN: LinuxStammtisch mit dem Passwort LinuxStammtisch

• Achtung! Euer Traffic erscheint in der Demo dann!

Page 23: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

hostapd

• Installieren mitaptitude install hostapd

• Editiern von /etc/hostapd/hostapd.conf und /etc/defaults/hostapd

• Danach starten mit systemctl enable hostapd systemctl start hostapd

Page 24: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Backrezept

• Installation OS

• Initiale Verbindung ins Internet

• Aufsetzen von hostapd

• Aufsetzen von dnsmasq

• Aufsetzten von Squid

• Aufsetzen von OpenVPN

• Aufsetzen von pi-hole

Page 25: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• dnsmasq

• Eine Kombination aus DHCP und DNS Server

• Leicht zu installieren und arbeitet mit pi-hole zusammen

• wpad.dat bietet eine automatisch Proxy Konfiguration an

Page 26: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Backrezept

• Installation OS

• Initiale Verbindung ins Internet

• Aufsetzen von hostapd

• Aufsetzen von dnsmasq

• Aufsetzten von Squid

• Aufsetzen von OpenVPN

• Aufsetzen von pi-hole

Page 27: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• squid3

• Ein lokaler Cache ist durchaus sinnvoll, gerade wenn man nur begrenztes Volumen hat.

• Desweiteren filtern wir bereits einige Dinge raus um nicht alles über uns zu verraten.

• Tragen wir hier noch den Proxy vom VPN-host ein wird lokal noch weniger sichtbar.

Page 28: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Backrezept

• Installation OS

• Initiale Verbindung ins Internet

• Aufsetzen von hostapd

• Aufsetzen von dnsmasq

• Aufsetzten von Squid

• Aufsetzen von OpenVPN

• Aufsetzen von pi-hole

Page 29: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• OpenVPN

• Nun hängen wir den Pi noch in die OpenVPN Infrastruktur ein

Page 30: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Backrezept

• Installation OS

• Initiale Verbindung ins Internet

• Aufsetzen von hostapd

• Aufsetzen von dnsmasq

• Aufsetzten von Squid

• Aufsetzen von OpenVPN

• Aufsetzen von pi-hole

Page 31: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Pi Hole Installation

• Wichtig ist, dass man pi-hole am Schluss installiert und dann noch etwas anpasst.

• Als root einloggen und folgendes ausführen: curl -sSL https://install.pi-hole.net | bash

Our code is completely open,

but piping to bash can be dangerous.

For a safer install, review the

code and then run the installer locally.

Page 32: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle
Page 33: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle
Page 34: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Backrezept

• Installation OS

• Initiale Verbindung ins Internet

• Aufsetzen von hostapd

• Aufsetzen von dnsmasq

• Aufsetzten von Squid

• Aufsetzen von OpenVPN

• Aufsetzen von pi-hole

Page 35: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Was haben wir nun geschaffen?

Page 36: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

• Durch ein weiteres USB-Wifi braucht der Pi nur Strom um sich dazwischen zu hängen

• WLAN0 verbindet sich mit dem Internet

• WLAN1 macht den HotSpot auf

• Eth0 ist auch noch nutzbar

Internet

Page 37: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Demo

Page 38: LinuxStammtisch€¦ · • Da auf dem Pi ein vollständiges Linux läuft hat man viel mehr Möglichkeiten gegenüber zB. von Arduinos. • Dennoch gibt es durch die GPIO Schnittstelle

Fragen?https://linuxpinguin.de/project/AccessPoint/

-mat- filid brandy