=======WiP Raspberry Pi einrichten und bedienen lernen WiP======= ====== Aufgabe - Einrichten und Testen des Raspberry Pi====== Alle Schritte enthalten Links in Form von Video Guides und Bildern, die erklären, wie man diesen Schritt umsetzt. Während dieser Aufgabe brauchen Sie ein Raspberry Pi, eine Mikro-SD-Karte, einen Windows PC sowie einen Bildschirm mit HDMI-Anschluss, ein MiniHDMI-HDMI-Kabel, ein USB C-Ladegerät, zwei Tastaturen, zwei Mäuse und einen normalen Bildschirm. All diese Utensilien sollten an Ihrem Arbeitsplatz aufliegen oder Ihnen von einem verantwortlichen AUsbildner ausgehändigt werden. Informationen zu dem Gerät Raspberry Pi und dem dazugehörigen OS finden Sie unter: https://www.raspberrypi.com/documentation/ respektive https://www.raspberrypi.com/software/ falls sd karte schon das RaspiOS besitzt -> neu aufsetzen falls leer -> neu aufsetzen ===== Schritt 1: Raspberry Pi boot bereit machen ===== Um den Raspberry Pi einzurichten, brauchen Sie eine SD-Karte sowie einen SD-Card-Reader für das Aufspielen des Images. Im folgenden Video wird gezeigt, wie Sie die ISO-Datei (Raspberry Pi OS (64 Bit)) mit Hilfe des Raspberry Pi Imagers auf die SD-Karte spielen: {{youtube>ntaXWS8Lk34}} Stecken Sie nun die SD-Karte in den am Raspberry Pi angebrachten SD-Karten-Slot. ===== Schritt 2: Raspberry Pi booten und erste Einrichtung ===== Nachdem Sie den Raspberry Pi nun mit einer bootfähigen SD-Karte ausgestattet haben, verbinden Sie Maus und Tastatur mit dem Gerät, wofür jeweils ein unbenutzer USB A-Port verwendet wird. Verbinden Sie als Nächstes das Ethernet-Kabel mit dem RaspberryPi und dem auf dem Tisch liegenden Switch. Verbinden Sie als Nächstes, mithilfe des MiniHDMI-HDMI-Kabels, den Raspberry Pi und den Bildschirm. Dabei achten Sie darauf, dass der Bildschirm an den Storm angeschlossen und eingeschaltet ist. Haben Sie nun alle Hardware mit dem Haupt-Modul verbunden, können Sie das, an den Strom angeschlossene, USB C-Ladegerät in den Raspberry Pi einstecken und allfällig den Kippschalter am Kabel umlegen. Nun sollten Sie auf dem Bildschrim zusehen können, wie der Raspberry Pi startet. Sollte dies nicht der Fall sein, überprüfen Sie den HDMI-Stecker. Sollte das Problem dadurch nicht behoben sein, überprüfen Sie den Stromstecker auf der Steckdosenseite und auf der Raspberry Pi-Seite. Diese Vorgehensweisen sollten die gängisten Fehlerquellen beheben. Sollte das Problem persistieren, entfernen Sie die Stromversorgiung des Raspberry Pi und entnehmen Sie die SD-Karte. Wiederholen Sie nun den oben in Schritt 1 beschrieben Vorgang um einen neues Image auf die SD-KArte zu schreiben. Danach wiederholen Sie Schritt 2. Sollte das Problem noch immer nicht behoben sein, wenden Sie sich and den für Sie zuständigen Ausbildner. Nun da der Raspberry Pi startet, müssen Sie für einen Augenblick warten, danach sollte ein Fenster aufgehen. Hier wählen Sie Ihre "Country" (Switzerland), Ihre "Language" (Swiss High German) und Ihre "Timezone" (Zurich9 und bestätigen Ihre Eingabe. Anschliessend geben Sie Ihren "username" (sysadmin) und Ihr "password" (Password1) ein und bestätigen Ihre Eingabe. Unter "Set Up Screen" wählen aktivieren Sie "Reduce the Size of the desktop on this monitor" und bestätigen die Eingabe. Überspringen sie die Einrichtung des WiFI-Netzwerks und bestätigen Sie auf dem nächsten Bildschirm, dass Sie die Software updaten möchten. Danach starten Sie, durch anwählen von "Restart" den Raspberry Pi neu. ===== Schritt 3: Updates und Kontrollzentrale ===== Jetzt da sie den Raspberry Pi aufgesetzt haben, können Sie noch einmal ein Update ihrer Programme machen. Sie öffnen die Konsole und dort tippen Sie ein: sudo apt-get update Mit diesem Befehl prüfen Sie, ob Ihre Daten-Pakete ein Update benötigen. Wenn dies mit ja beantwortet wird, können Sie mit dem Befehl sudo apt-get upgrade die entsprechenden Pakete installieren. ==== Fixe IP-Adresse vergeben ==== Wir geben unserem Pi eine fixe IP-Adresse. Dazu rufen wir die Netzwerkeinstellungen durch Linksklick auf die gegenläufigen Pfeile am oberen rechten Rand des Bildschirms auf und wählen 'Advanced Options/Edit Connections'. Im folgenden Fenster doppelklicken Sie die 'Wired connection 1'. Anschliessend wechseln Sie auf die Registerkarte 'IPv4 Settings' und geben dort folgende Informationen ein:\\ IPv4 Adress: 172.16.51.2 Netmask: 255.255.255.0 Gateway: 172.16.51.1 DNS Server: 8.8.4.4, 172.16.51.2, 8.8.8.8 Anschliessend bestätigen wir und starten das Gerät neu. ==== Remote Desktop ==== Dies ist sehr wichtig, den Raspis werden häufig ohne Maus und Tastatur installiert und nur mittels SSH oder Remote Desktop gewartet bzw. konfiguriert.\\ Nehmen wir zum Beispiel eine Überwachungskamera, welche an der Front eines Gebäudes montiert ist. Es wäre ziemlich auffällig, wenn auch ein Bildschirm, eine Maus und eine Tastatur dort montiert wären.\\ === Mit grafischer Oberfläche === == Rdesktop-Server auf dem RasbpberryPi installieren == Schritt 1\\ Mittels des Paketmanagers APT installieren wir xrdp. Dies ist eine freie Implementierung des Remote Desktop Protocols für Linux.\\ sudo apt-get install xrdp\\ == Remote-Desktop-User anlegen == Auf dem Raspberry Pi:\\ Erstelle neuen rdp user : \\ sudo useradd -m -s /bin/bash -g users -G sudo crt\\ sudo passwd crt \\ (set password)\\ == Remote-Desktop-Client auf Windows PC benutzen == Nutzen Sie das Programm Remotedesktop von Windows, um sich auf den RaspberryPi zu verbinden:\\ {{remotedesktop.png?400|}}\\ {{:ausbildung:rem === Ohne grafische Oberfläche === Nun öffnen wir den Raspberry Pi Configurator, unter Einstellungen, im Startmenü, wählen Schnittstellen und aktivieren den Punkt "SSH" und klicken dann auf OK. So können wir nun via Konsole auf unseren Raspi zugreifen und damit arbeiten. \\ == Auf einem Windows-Computer == Nutzen Sie das Programm Putty:\\ {{:ausbildung:putty.png?400|}}\\ === Oder man kann auch ssh benutzen:=== ssh 172.16.51.2 -l crt ===== Installation DHCP-Server ===== Zur Installation des DHCP-Servers ist ab Natty das folgende Paket auszuwählen:\\ \\ sudo apt-get install isc-dhcp-server\\ \\ Nachdem das Paket installiert worden ist, müssen wir noch einige Dateien anpassen und natürlich auch unseren DHCP Server planen.\\ In diesem Beispiel wird der nano Editor benutzt. Falls dieser noch nicht installiert ist können wir dies mit dem Befehl sudo apt-get install nano nachholen.\\ Die Funktionen des Nano-Editors, welche für dieses Anleitung von Nöten sind, sind wie folgt:// -"CTRL" + "O", gefolgt von "Enter" für das Speichern der durchgeführten Änderungen in einer Datei// -"CTRL" + "X" für das Verlassen des Editors// Alternativ findet sich unter folgendem Link ein Cheatsheet "https://www.nano-editor.org/dist/latest/cheatsheet.html"// Konfiguration\\ Beispielkonfiguration\\ • Der Rogue DHCP Server soll aktiviert erlaubt keine anderen DHCP Server im Netywerk\\ • Der Server bedient das Netzwerk 172.16.51.0\\ • Die Clients bekommen IP-Adressen zwischen 172.16.51.21 und 172.16.51.99 zugewiesen\\ • Der Übergang (Gateway bzw. Router) in ein anderes Netzwerk hat die IP-Adresse 172.16.51.1\\ • Der Nameserver hat die IP-Adresse 172.16.51.2 (wird erst bei der DNS Konfiguration eingebunden) und 8.8.8.8\\ • Der Server erhält die fixe IP 172.16.51.2\\ • Die Netzmaske ist 255.255.255.0\\ • Broadcast ist 172.16.51.255\\ • Die Domain heißt "raspi.home"\\ • Die Lease Time wird auf 10 Minuten eingestellt \\ • Die Maximale Lease Time auf 2 Stunden\\ • Das Interface Eth0 wird als Standard definiert\\ • Einem bestimmten Client wird anhand seiner Hardware-(MAC-)Adresse immer dieselbe IP-Adresse zugewiesen.\\ ==== Einrichten des DHCP Servers ==== Wir öffen die Datei /etc/default/isc-dhcp-server\\ sudo nano /etc/default/isc-dhcp-server\\ \\ Und ändern den Eintrag wie folgt:\\ # Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server) # Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf). #DHCPDv4_CONF=/etc/dhcp/dhcpd.conf #DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf # Path to dhcpd's PID file (default: /var/run/dhcpd.pid). #DHCPDv4_PID=/var/run/dhcpd.pid #DHCPDv6_PID=/var/run/dhcpd6.pid # Additional options to start dhcpd with. # Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead #OPTIONS="" # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACESv4="eth0" INTERFACESv6="" \\ \\ Wir kopieren die Datei dhcpd.conf.\\ \\ sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd2.conf\\ \\ Wir öffnen die Datei dhcpd.conf im Verzeichnis /etc/dhcp\\ \\ sudo nano /etc/dhcp/dhcpd.conf\\ \\ Wir löschen den gesamten Inhalt der Datei und fügen anschliessend folgende Zeilen ein:\\ \\ subnet 172.16.51.0 netmask 255.255.255.0 { range 172.16.51.21 172.16.51.99; interface eth0; option domain-name-servers 172.16.51.2, 8.8.8.8; option domain-name "rafisa.home"; option routers 172.16.51.1; option broadcast-address 172.16.51.255; default-lease-time 600; max-lease-time 7200;} \\ Ist die Konfiguration abgeschlossen können wir den Server mit folgenden Befehlen starten und stoppen, bzw. den Status abfragen.\\ \\ sudo /etc/init.d/isc-dhcp-server start\\ \\ sudo /etc/init.d/isc-dhcp-server stop\\ \\ sudo /etc/init.d/isc-dhcp-server status\\ ===== Installation DNS-Server ===== ==== Installation ==== Zuerst muss BIND (aktuell in er Version 9) über das APT Paketmanagement-System durch folgenden Terminal-Befehl installiert werden.\\ \\ sudo apt-get install bind9 bind9utils dnsutils\\ \\ Ist die Installation erfolgt können wir den DNS Server bereits testen. Mit dem Befehl\\ \\ dig @127.0.0.1 www.google.de\\ \\ sollte ein ähnlicher Output wie der untenstehende erscheinen.\\ \\ ; <<>> DiG 9.16.22-Debian <<>> @127.0.0.1 www.google.de\\ ; (1 server found)\\ ;; global options: +cmd\\ ;; Got answer:\\ ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 59482\\ ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1\\ \\ ;; OPT PSEUDOSECTION:\\ ; EDNS: version: 0, flags:; udp: 1232\\ ; COOKIE: e31452e9a2ec22550100000062161feaf2121d8249561dd2 (good)\\ ;; QUESTION SECTION:\\ ;www.google.de. IN A\\ \\ ;; Query time: 404 msec\\ ;; SERVER: 127.0.0.1#53(127.0.0.1)\\ ;; WHEN: Wed Feb 23 11:52:10 GMT 2022\\ ;; MSG SIZE rcvd: 70\\ \\ Beispiel-Konfiguration\\ \\ Kommen wir nur zur eigentlichen Einrichtung von eigenen Zonen und der Konfiguration von BIND welches sich in der Datei /etc/bind/named.conf.local befindet.\\ \\ Für ein einfaches Beispiel gehen wir von folgender lokalen Netzwerk-Topologie aus.\\ \\ • Raspberry: 172.16.51.2\\ • Netzwerk: 172.16.51.0/24\\ • Subnetzmaske: 255.255.255.0\\ • Broadcast-Adresse: 172.16.51.255\\ • Gateways/Router: 172.16.51.1\\ • Interner Server: 172.16.51.5\\ • Raspberry (DNS-Server): 172.16.51.2 8.8.8.8\\ • Hostname: raspi\\ • DNS-Zone: raspi.home\\ Forward- und Reverse-Lookup Zonen anlegen\\ Domains die wir im DNS-Server konfigurieren wollen, werden eigene Zonen angelegt. \\ Für jede Domain sollte es normalerweise zwei Zonen-Dateien geben. Jeweils eine Zonen-Datei für den Forward- und den Reverse-Lookup.\\ \\ Zuerst muss in der Datei „/etc/bind/named.conf.local“ die Konfiguration für diese beiden Dateien unserer Beispiel-Zone „raspi.home“ eingetragen werden. \\ Um die Datei zu bearbeiten, muss diese in einem Editor (z. B. „nano“) geöffnet werden.\\ \\ Natürlich machen wir zuerst ein Backup der Datei.\\ \\ sudo cp /etc/bind/named.conf.local /etc/bind/named2.conf.local\\ \\ Anschliessend öffnen wir die Datei und tragen unsere Konfiguration ein.\\ \\ sudo nano /etc/bind/named.conf.local\\ \\ Wir tragen folgende Konfiguration ein\\ // ----------------------- Zones ----------------------- // Forward-Lookup zone "raspi.home" { type master; file "/etc/bind/zones/raspi.home"; }; // Reverse-Lookup zone "51.16.172.in-addr.arpa" { type master; file "/etc/bind/zones/db.51.16.172.inv"; }; // ----------------------- Zones ----------------------- \\ Hier werden zuerst nur die Zonen für BIND bekannt gemacht. Die eigentliche Konfiguration der logischen Struktur, wird dann in den jeweils unter „file“ angegeben Dateien eingetragen.\\ \\ Zur besseren Übersicht werden wir einen eigenen Ordner „zones“ erstellen und die Dateien darin speichern.\\ \\ sudo mkdir /etc/bind/zones\\ \\ Die Datei „raspi.home.zone“ muss nicht erstellt werden und kann direkt mit folgendem Befehl geöffnet werden.\\ \\ sudo nano /etc/bind/zones/raspi.home\\ \\ Folgender Inhalt muss in die Datei eingetragen und gespeichert werden.\\ \\ ;; BIND forward data file for zone raspi.home ;; $TTL 86400 ; time-to-live - 24 hours could have been written as 24h or 1d @ IN SOA ns1.raspi.home. mail.raspi.home. ( 2015061201 ; Serial - (NOTE: Needs to increment every time you restart BIND) 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Default TTL IN NS ns1.raspi.home. ; nameserver IN A 172.16.51.2 ; loop-back address ns1 IN A 172.16.51.2 raspi.home. IN A 172.16.51.2 server IN TXT "Interner Server" www IN CNAME raspi.home. \\  \\ Reverse-Lookup\\ Für den Reverse-Lookup wird noch eine weitere Zonen-Datei „db.20.168.192.inv“ angelegt.\\ sudo nano /etc/bind/zones/db.51.16.172.inv\\ \\ Und füllen folgende Daten ein\\ \\ ;; BIND reverse data file for zone db. 51.16.172.inv ;; $TTL 86400 ; time-to-live - 24 hours could have been written as 24h or 1d @ IN SOA ns1.raspi.home. mail.raspi.home. ( 2015061101 ; Serial - (NOTE: Needs to increment every time you restart BIND) 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Default TTL IN NS ns1.raspi.home. ; nameserver 2 IN PTR ns1.raspi.home. ; #1 172.16.51.2 10 IN PTR server.raspi.home. ; #2 172.16.51.2 \\ Server starten\\ \\ sudo service bind9 restart\\ \\ oder\\ \\ sudo service bind9 stop\\ sudo service bind9 start\\ \\ Den Status des Servers können wir nun mit dem Befehl anschauen. Wenn alles gut ist dürfen keine roten Linien erscheinen.\\ \\ sudo service bind9 status\\ \\ Sollte etwas schiefgelaufen sein, empfiehlt es sich, die Meldungen in der Log-Datei „/var/log/syslog“ anzusehen.\\ DNS-Server durch DNS-Anfragen testen\\ \\ Im CMD Prompt folgenden Befehl eingeben:\\ \\ nslookup\\ Standardserver: ns1.raspi.home\\ Address: 172.16.51.2\\ \\ Nun wird der erste DNS Server im System angezeigt. Anschliessend die IP Adresse im Prompt eingeben und mit Enter bestätigen:\\ \\ {{:ausbildung:dns_1.jpg?400|}} \\ Der Name muss richtig aufgelöst werden. \\ ===== Installation Printserver ===== ==== Installation ==== Um den Printserver CUPS zu installieren, geben wir in der Konsole folgenden Befehl ein, falls wir die Auswahl nicht zu Beginn bereits gemacht haben:\\ sudo apt-get install cups cups-client cups-bsd \\ \\ Zusätzlich benötigen wir nun den root Account, damit wir anschliessend über das Webgui auf Cups zugreifen können.\\ Im Terminal geben wir folgenden Befehl ein:\\ Benutzer root\\ PWD Password1\\ Cups benötigt einige zusätzliche Pakete wie z.B. Treiber für die Drucker und noch anderes, wieso die Installation einen Moment dauern wird.\\ Ist Cups installiert funktioniert der Zugriff auf das Webinterface nur auf dem lokalen Host. Diese Konfiguration müssen wir in der Datei cupsd.conf editieren.\\ Zuerst kopieren wir das File zu Sicherheit.\\ sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd2.conf\\ Danach editieren wir das File.\\ sudo nano /etc/cups/cupsd.conf\\ Folgende Parameter werden ganz unten im File eingetragen eingetragen:\\ # Only listen for connections from the local machine.\\ Listen Port 631\\ Listen 172.16.51.2:631\\ Listen /var/run/cups/cups.sock\\ Danach führen wir noch die folgenden zwei Befehle aus, damit wir einen Drucker konfigurieren können.\\ sudo cupsctl --remote-any\\ sudo /etc/init.d/cups restart\\ Ist die Installation erfolgt, können wir sofort unseren Webbrowser öffnen und folgende Adresse eingeben:\\ für den lokalen PC:\\ http://localhost:631/admin\\ oder für einen anderen PC:\\ http://172.16.51.2:631/admin\\ Folgende Oberfläche erscheint.\\ {{:ausbildung:cups_1.jpg?400|}}\\ Damit wir einen Drucker installieren können benötigen wir folgende Angaben:\\ IP Adresse (172.16.51.150 in unserem Fall und die genaue Bezeichnung des Gerätes bei uns ein Brother-HL-5270DN. Unter Linux wie auch unter Windows benötigt das Betriebssystem eine Treiberdatei, damit der Drucker angesprochen werden kann. \\ Die meisten Treiber finden wir auf der Seite https://www.openprinting.org/drivers oder direkt beim Hersteller. Die Treiber heissen unter Linux ppd.\\ Unter diesem Link finden wir den Treiber für unseren Drucker.\\ https://www.openprinting.org/printer/Brother/Brother-HL-5270DN .\\ Speichern sie die ppd Datei auf ihrem Raspi.\\  \\ Wechseln sie nun zum Raster Verwaltung auf der CUPS Startseite und wählen sie den Button Drucker hinzufügen.\\ {{:ausbildung:cups_2.jpg?400|}}\\ Folgendes Bild erscheint.\\ {{:ausbildung:cups_3.jpg?400|}}\\ Hier wählen wir das LPD/LPR-Host oder -Drucker Protokoll aus und bestätigen mit weiter.\\ Nun geben wir die IP Adresse unseres Druckers an mit dem Prefix socket://172.16.51.150 und bestätigen mit weiter.\\ {{:ausbildung:cups_4.jpg?400|}}\\ Folgendes Bild erscheint und wir können nun die Angaben wie Standort, Gerät etc. erfassen. Da es sich um einen Server handelt geben wir den Drucker im Netzwerk frei und aktivieren auch das Farbmanagement.\\ Bestätigen mit weiter.\\ {{:ausbildung:cups_5.jpg?400|}}\\ Folgendes Menü erscheint.\\ {{:ausbildung:cups_6.jpg?400|}}\\ Wenn es sich um einen älteren Drucker handelt, kann dieser bereits auf dem System installiert sein und wir finden ihn im Menü. Unser Drucker ist leider noch nicht installiert, weshalb wir den Button „Datei wählen“ anklicken und unsere PPD Datei angeben.\\ {{:ausbildung:cups_7.jpg?400|}}\\ Anschliessend wählen wir den Button „Drucker hinzufügen“.\\ Danach erscheint ein Fenster in welchem wir alle Druckeroptionen einstellen können.\\ {{:ausbildung:cups_8.jpg?400|}}\\ Die meisten Einstellungen lassen wir so wie sie sind. Nur unter dem Raster „General“ stellen wir den folgenden Punkt ein und bestätigen mit dem Button „Standardeinstellungen festlegen“.\\ {{:ausbildung:cups_9.jpg?400|}}\\ Wir wechseln nun auf den Raster „Drucker“ wo wir unseren neuen Drucker finden.\\ \{{:ausbildung:cups_10.jpg?400|}}\ Wenn wir das Auswahlfeld „Wartung“ anklicken können wir im Menü den Punkt „Testseite drucken“ wählen und unsere erste Seite wird gedruckt. \\