Archiv der Kategorie: Linux

GNU/Linux Howto’s and Tutorials

Unified Communication

Auch in der Telefonie bleibt die Digitalisierung nicht stehen, dabei sticht das Asterisk Tool Kit als eine interessante alternative zu kommerziellen Telefonielösungen hervor.

Asterisk ist eine Open Source basierte Telefonanlagen Software für den Einsatz einer IP PBX unter Linux, lauffähig auf unterschiedlichen Rechner Plattformen. Asterisk beinhaltet  umfangreiche CTI Funktionalitäten, sowie eine API Schnittstelle AMI zur Integration von CTI Anwendungen. Unterstützt werden IP-Telefonie (VoIP) mit unterschiedlichen Protokollen wie SIP/SSIP, IAX und Fax T.38, mittels Hardware wird auch ISDN und POTS unterstützt, so können Endgeräte mit analog Telefonanschluss genutzt werden.

Mark Spencer hat Asterisk ursprünglich bei der Firma Digium entwickelt. Mittlerweile haben sich noch weitere Entwickler der Asterisk-Gemeinde angeschlossen und so stammen viele Erweiterungen und Applikationen auch von anderen Contributoren. Der Name beruht auf der Bezeichnung des Sternsymbol, dieses als Wahlfunktion die Steuerung der Telefonie regelt, wie beispielsweise *72 für die Weiterleitung.

Asterisk funktioniert auf einer Reihe unterschiedlicher Systeme. Neben Personal Computern mit x86-Prozessor läuft Asterisk auch auf dem Raspberry Pi und Router die OpenWrt unterstützen, ebenfalls werden Installationen auf Embedded Systeme mit Flash Speicher angeboten, wie dem ALIX Board von PC Engines.

Unified Communication

Bei der Portierung auf ARM Prozessoren kommen auch kommerzielle Asterisk basierte Telefonie Lösungen auf den Markt, eine davon ist die UCM6202 von Grandstream, diese für rund 220 EURO erhältlich ist.

Hybrid IP PBX mit 1 GB RAM und 4 GB Flash, ein NAT Router mit WAN und LAN Port, diese in Switch Mode geschalten werden können. Für analog Anschlüsse gibt es je 2 FXS und FXO Ports. Ein 2 Zeilen Display mit IP Adresse und Schnittstellen Mode.

Die Unified Communication UCM6202 beinhaltet umfangreiche CTI Funktionalitäten, in der neusten Firmware (1.0.15.16) wird Asterisk 13 und ein komfortables AJAX unterstütztes WebUI geboten.

Benutzer haben Kontrolle über ein WebUI und können Einstellungen vornehmen. Anrufe und Präsenz Status können im Benutzerpanel überwacht werden. Gemeinsame Telefonbücher sind über LDAP aus Active Directory abrufbar.

Die UCM6202 bietet dem Teilnehmer Information über laufende, verpasste und abgehaltene Verbindungen, sowie Sprachnachrichten. FollowMe und Weiterleitungen können aktiviert werden, Konferenzen abgehalten und geplant werden, dazu Einladungen per Email versenden, mit Integrierbarkeit externer Kalender, wie Google Kalender.

Funktionen

Die UCM6202 unterstützt bis zu 500 registrierte Nutzer, 50 SIP Trunks und 30 parallele Gespräche, ohne Beschränkung wie etwa für anzahl von Lizenzen. Für Grandstream SIP Endgeräte ist eine Zero Configuration Provisionierung möglich. Es wird größtmögliche Sicherheit durch die Anwendung von SRTP, TLS und HTTPS ermöglicht. Zwei Gigabit Netzwerkanschlüsse mit integrierter PoE Stromversorgung. Interaktive Sprachansagen (IVR) bis max. 5-Stufen (Interactive Voice Response). Integrierter Server zur Sprachaufzeichnung, Zugang und Abruf über die Web-Schnittstelle. Mehrfach Zeitgesteuerte Regeln für Ansagen von Bürozeiten und Feiertage. Anruf-Warteschlange für mehr Effizienz bei hohem Gesprächsvolumen. Integrierte Anruf Aufzeichnung (CDR) mit vielen Details wie Zeit, Datum, Nebenstelle, genutzte Leitung usw. Mehrsprachige Ansagen zur effizienten Verteilung ankommender Gespräche. Integriertes LDAP und XML Telefonbuch, flexible Dial-Pläne. Unterstützung für alle SIP-Video-Endgeräte, sofern diese H.264, H.263 oder H.263+ Codecs nutzen. Anrufbeantworter und Fax zu E-Mail Weiterleitung. Virtuelle Konferenzräume, WebRTC, PMS System mit Hotel Mini-Bar, Room Reservation und CTI Server. API Schnittstellen und Integration für Salesforce und SugarCRM. Backup Automatisierung mit Möglichkeit für externe Speicher. Firewall zur Steuerung von Zugang und Fail2ban für abwehr von Brute-Force und DDoS Angriffe. Syslog Protokollierung auf Remote Host zur Überprüfung und Fehlersuche. Asterisk Tool Kit und Linux Open Source basierend (ohne Lizenzkosten).

Grandstream App für Video anrufe auf iOS und Android Smartphone.

      

Die Mobile App Wave von Grandstream mit Möglichkeit für Nachrichten, Konferenz, Transfer und Video Verbindungen.

Abbildung: GXP1625, UCM6202
Mit Grandstream IP Telefone wird Zero Config Provisionierung mit automatischer Konfiguration über TR069 und XML möglich. die Geräte werden mit IP oder MAC Adresse gescannt, Geräte anderer Hersteller sind einsetzbar, mit herkömmlicher Provisionierung über TFTP Server oder das TR069 Protokoll, falls vom Hersteller vorgesehen, ansonsten gibt es die manuelle Einrichtung.

Hersteller Quelle:
Grandstream UCM6202 IP PBX Series
Open Source Asterisk Toolkit

 

KVM Hypervisor auf CentOS7

KVM ist eine Open-Source Hardware Virtualisierungssoftware, mit dieser Linux-basierte und Windows-basierte virtuelle Maschinen gleichzeitig ausgeführt werden können. KVM wird als Kernel-basierte Virtuelle Maschine bezeichnet und ist eine alternative zu VMware ESXi und Xen, dabei wird durch die Installation des KVM-Pakets das KVM-Modul in den aktuellen Kernel geladen und aus einer Linux-Maschine ein Hypervisor gebildet.

In diesem Beitrag wird gezeigt, wie ein KVM Hypervisor auf CentOS 7.x und RHEL 7.x installiert wird, um danach virtuelle Maschinen zu installieren.

INSTALLATION

Bevor man mit der KVM-Installation fortfährt, überprüft man ob die CPU des Systems die Hardware-Virtualisierung unterstützt. Dazu folgendes Command ausführen in der root Shell  

Es sollte in der Ausgabe das Wort vmx oder svm erscheinen, ansonsten unterstützt die CPU keine Virtualisierung. Möglicherweise lohnt sich ein gang in das System BIOS um die VT-x Boot Einstellung zu aktivieren.

Die KVM-Pakete und die zugehörigen Module werden installiert.

Der KVM Service kann nun aktiviert und gestartet werden.

Wir überprüfen ob die KVM Module auch wirklich gestartet wurden.

Falls eine Minimal CentOS 7 oder RHEL 7 Installation vorliegt, startet der virt-manager nicht, wir müssen also noch X-Window installieren.

Starte den Server neu und versuche dann, den virtual manager zu starten.

Bevor wir beginnen VMs zu deployen, erstellen wir zunächst ein Bridge Interface. Die Bridge-Schnittstelle ist erforderlich, wenn man zum Hypervisor von ausserhalb des Netzwerks auf virtuelle Maschinen zugreifen möchte. In unserem Beispiel heisst das Ethernet Interface ifcfg-eth0.

Bearbeite nun die Interface-Datei ifcfg-eth0 und trage folgendes ein:

Bearbeite die Bridge-Datei ifcfg-br0 und lege folgendes fest:

Starte den Netzwerkdienst neu um die Bridge zu aktivieren.

Überprüfe das Bridge Interface mit dem folgenden Befehl:

 Wer es lieber den Network-Manager machen lässt, der kann das Bridge Interface wie folgt erzeugen:

Virtuelle Maschinen können nun entweder über die Befehlszeile mit dem Befehl virt-install oder über das GUI virt-manager erzeugt werden.

Im GUI gehe hierzu auf die Option Datei und klicke auf New virtual Maschine.

Die virtuelle Maschine wird nun mit Hilfe des Wizard erzeugt.

Virtuelle Maschinen aus der Befehlszeile erstellen:

Aus dem virtual Manager werden die VMs hochgefahren und verwaltet, es wird der Status und die Systemlast angezeigt, ähnlich wie man es von vSphere kennt.

Abbildung: KVM virtual Manager

Weiter ist virt-manager aus Cygwin in Windows 10 ausführbar, hierzu muss Cygwin64 mit dem Xorg-Server und virt-manager installiert sein, mit dem virt-manager verbindet man zum KVM Hypervisor.

Abbildung: Cygwin virt-manager Verindung
Abbildung: Cygwin virt-manager

 

fetchmail einrichten

fetchmail ist ein Dienstprogramm zum Abrufen und Weiterleiten von E-Mails; das Unix Urgestein holt E-Mails von entfernten Mailservern und leitet diese an das Zustellsystem weiter. Es können die Mails dann unter Verwendung normaler E-Mail-Benutzeragenten wie etwa mutt, elm oder Mail abgerufenen werden.

Das fetchmail-Dienstprogramm kann im Daemon-Modus laufen, um ein oder mehrere Systeme in einem bestimmten Intervall wiederholt abzufragen, es werden E-Mails von Servern gesammelt die alle gängigen E-Mail-Abrufdienste unterstützen, wie POP3 und IMAP, auch unterstützt werden die ESMTP-ETRN-Erweiterung und die ODMR Protokolle.

In diesem Beitrag wird beschrieben wie fetchmail auf einem CentOS Smarthost mit Postfix eingesetzt werden kann. Die E-Mails von externen Mail-Dienstanbieter werden abgerufen und den Empfänger zum Postfach Server weitergeleitet dieser vom Smarthost E-Mails empfängt. Dabei sind bei den Mailkonten keine Weiterleitungen erforderlich, und die E-Mails werden durch den Smarthost ebenfalls auf Viren und SPAM untersucht, bevor diese dem Benutzer Postfach zugestellt werden.

Für die Installation auf CentOS 7 wird das Extras repository benötigt, falls nicht schon vorhanden.

Das fetchmail-Dienstprogramm kann aus dem CentOS Extras repository installiert werden.

Wir erstellen die Konfigurationsdatei fetchmail für den daemon unter /etc/sysconfig.

 Copy Paste /etc/sysconfig/fetchmail

Es wird der Daemon Init-Script erstellt, hier für ein CentOS Host auf diesem der Postfix MTA bereits läuft. Als root mit vi /etc/rc.d/init.d/fetchmaild

 Copy Paste /etc/rc.d/init.d/fetchmaild
Den Init-Script ausführbar machen.

Die globale fetchmailrc Recource Konfiguration für den Betrieb als Daemon erstellen.

 Copy Paste /etc/fetchmailrc

Für jeden Mailserver von diesem E-Mails abgerufen werden sollen wird eine poll Zeile erstellt. Es soll das externe Postfach von joe@foo.org beim POP3 Server mail.foo.org abgerufen werden und mit smtphost über den localhost über Postfix zum Postfach Server dem Benutzer joe.office@foo.com zugestellt werden. Damit die Protokollierung nicht in maillog statt findet, werden anstelle diese in fetchmail geloggt.

fetchmail bietet eine Reihe von syntaktischen Feinheiten, um fetchmailrc das Lesen von Dateien zu erleichtern. Zum Beispiel werden die Worte andwithhaswants, und options von fetchmail ignoriert, wie auch Satzzeichen. Während es möglich ist, Anmeldeinformationen für einen Server in einer Zeile anzugeben, werden häufige Konfigurationen über eine Reihe von verschiedenen Zeilen angegeben. fetchmail ist unempfindlich gegenüber Whitespace, außer wenn das Argument in Anführungs- und Schlusszeichen erfolgt.

Für die Poll-Anweisung gibt es mehrere Optionen (z.B. nofetchall (default), fetchall, keep, nokeep ). Die Bedeutungen ist wie folgt:

nofetchall : Nur neue Nachrichten abrufen (Standard). Wenn nichts anderes angegeben ist (z.B. fetchallkeep ), bedeutet dies nofetchall.
fetchall : Holt alle Nachrichten, ob gesehen oder nicht.
keep : Löscht keine Nachrichten auf dem Server.
nokeep : Löscht die gelesenen Nachrichten vom Server.

Die fetchmail Benutzer und Gruppe erstellen und die rechte setzen.

Der fetchmail daemon wird gestartet.

Nach Änderung der fetchmailrc-Konfiguration wird der systemd daemon neugestartet.

Überprüfen lässt sich die fetchmail Konversation zu Server mit folgendem Befehl:

Die Konfigurationsdatei fetchmailrc testen.

Den fetchmail Prozess überprüfen.

Die Ausgabe kann in etwa wie folgt aussehen:

Die fetchmail Protokollierung findet nun in der Datei fetchmail statt.

Die fetchmail man page gibt zahlreiche Informationen aus.

 

systemd-resolved

Ubuntu nutzt im Standard das resolvconf-Programm um die Konfiguration für die lokale DNS Auflösung vorzunehmen. Das resolvconf-Paket umfasst eine einfache Datenbank und eine Laufzeit zur dynamischen Änderung von Nameserver-Informationen. Normalerweise wird das Programm resolvconf über eine Netzwerkschnittstelle ausgeführt, um Routinen wie ifup, ifdown, NetworkManager, dhclient und pppd, oder lokale Nameserver wie dnsmasq zu pushen um die Nameserver-Informationen zu updaten.

Kommen auf einem Host statische IP Adressen und DNS Einträge zur Anwendung, sollte unter Ubuntu das resolvconf-Paket deaktiviert werden, damit nicht automatisch die DNS Konfiguration aus dem dnsmasq daemon vorgenommen wird, die Konfiguration die man in /etc/resolv.conf und /etc/network/interfaces editiert hat, werden sonst durch das resolvconf-Programm wieder überschrieben.

resolvconf deaktivieren

resolvconf aus boot level deaktivieren und das Programm beenden.

Den Network Manager anpassen mit default DNS.

Den Symlink resolv.conf unter /etc entfernen.

und eine neue resolv.conf Datei mit den Nameserver erstellen. in diesem Beispiel sind es die Google Public DNS.

In einem lokalen Netzwerk, oder einer ADS sollten die internen Nameserver genutzt werden.

Die resolv.conf Datei des systemd Konfigurationsprogramm löschen.

Änderung der Konfiguration ausführen.

Die Nameserver können auch in der Interface Konfiguration eingetragen werden.

Die Interface Bezeichnung (ens160) kann abweichen und muss der des jeweiligen Host entsprechen.

Die Datei /etc/resolv.conf sollte keineswegs fehlen.

Um die geänderte Netzwerk Konfiguration zu aktivieren muss diese in den Speicher eingelesen werden.

Troubleshooting

Viele Netzwerk Probleme beruhen auf fehlerhaften DNS oder falscher Konfiguration der resolver. In einem Heimnetzwerk gibt es oft keine internen DNS, dabei kann der Router oder die Firewall als Nameserver genutzt werden, wie beispielsweise die FRITZ!Box. Grundsätzlich sollte sichergestellt werden, das die eingesetzte Firewall über ein DNS Cache verfügt, bei semiprofessionellen Firewalls wie die FortiGate verfügt nicht jedes Modell über einen solchen Cache. Bei Open Source basierten Firewalls hingegen bieten die meisten über DNS forwarder oder dnsmasq als Cache.

Nach Änderungen der Nameserver bei Windows sollte der DNS Cache zurückgesetzt werden.   Eingabeaufforderung öffnen.

Bei Linux kann der DNS Cache zurückgesetzt werden, mit eines der folgenden commands, je nachdem welcher Dienst installiert ist.

Im Mac OS X   Terminal als root.

Ist kein interner DNS vorhanden, können die Nameserver des jeweiligen Internet Provider eingesetzt werden, bei Swisscom sind es folgende.

Beispiel einer Nameserver abfrage seines Providers unter Windows.

Beispiel Nameserver lookup query bei Linux.

Ein Ping -n1 löst Adressen zu Hostnamen auf mit Parameter -a und -4 für IPv4 Adresse.

 

Nagios Monitoring mit Raspberry Pi

Nagios Open Source Monitoring für die Überwachung komplexer IT-Infrastrukturen. Nagios besteht aus einer Sammlung von Modulen zur Überwachung von Netzwerken, von Hosts und deren spezifischen Diensten, sowie ein Web-Interface um Abfragen der gesammelten Daten zu ermöglicht. Nagios steht unter der GNU GPL, ist also freie Software und läuft unter zahlreichen Unix-ähnlichen Betriebssystemen. Nagios ist wegen seiner großen Verbreitung auch im professionellen Einsatz ein Quasi-Standard geworden.

Nagios-Überwachung mit Raspberry Pi

Raspberry Pi mit seinem lüfterlosen Design, den minimalen Ausmaßen und seinem geringen Stromverbrauch eignet sich der Raspberry Pi als Einplatinencomputer hervorragend für einen Nagios-Monitoring-Server, der sich sogar selbst überwachen kann.

INSTALLATION

Die Installation von Nagios Core 4 auf dem Raspberry eigenen OS Raspbian, welches auf Debian basiert, ist unspektakulär. Hier in dieser Anleitung wird die Vorgehensweise für ein Raspberry Pi 3 Model B aufgezeigt, auf einer 32 GB microSD Card Typ Class 10, eine 16 GB microSD Card würde ebenfalls genügen.

Raspbian Terminal

Zur Bereitstellung von Raspbian auf einer microSD Card wird hier nicht näher eingegangen. Nach boot eines Raspbian Desktop Image, wird das LXTerminal auf dem Raspbian X-Desktop geöffnet und die root shell gestartet, bei Headless Betrieb kann mit VNCViewer eine VNC Session gestartet werden, mit der Anmeldung als Benutzer pi und dem default Passwort raspberry. Möchte man das Raspbian Minimal Image einsetzen, bietet sich die Authentifizierung über SSH zum Raspberry Pi an.

Raspbian VNCViewer

Nach der Anmeldung als User pi wollen wir root werden.

Zunächst werden alle benötigten Pakete als Voraussetzung aus dem Repository installiert.

Herunterladen und entpacken der Nagios Core 4 Source Pakete. Hier findet man das letzte Release, auf Github steht das Core Release sowie die Agenten und Plugins zur Verfügung.

Compilieren

Erstellen des Benutzer nagios und der Gruppe. Der Apache-Benutzer www-data wird auch der nagios-Gruppe hinzugefügt.

Die Binaries Installieren.

Das Installieren der Service-Daemon-Dateien und das konfigurieren für den Bootvorgang.

Installiert und konfiguriert die externe Befehlsdatei.

Nun werden die * SAMPLE * Konfigurationsdateien installiert. Diese sind erforderlich, da Nagios um zu starten einige Konfigurationsdateien benötigt.

Es werden die Apache-Webserver-Konfigurationsdateien installiert und die Apache-Einstellungen für Nagios konfiguriert.

Es muss Port 80 für den eingehenden Datenverkehr auf der lokalen Firewall zugelassen werden, damit die Webschnittstelle von Nagios Core erreicht werden kann.

Antworte mit ja, um die bestehenden Regeln zu speichern.

Es wird ein Apache-Benutzerkonto erstellt, damit es diesem ermöglicht wird sich bei Nagios anmelden zu können.

Der folgende Befehl erstellt ein Benutzerkonto namens nagiosadmin und es wird ein Passwort für das Konto erstellt, dieses Passwort jetzt sich merken.

Es muss der Apache Webserver neu gestartet werden.

Nun wird Nagios Core gestartet.

Nagios ist jetzt bereit und kann getestet werden.

Es kommt die Aufforderung sich mit Benutzernamen und Passwort anzumelden. Der Benutzername ist nagiosadmin (du hast ihn in einem vorherigen Schritt erstellt) und das Passwort ist das, was du zuvor angegeben hast.

Nach erfolgreicher Anmeldung erscheint die Nagios Core Web-Oberfläche. Herzlichen Glückwunsch, Du hast es geschafft.

Nagios Core ist nun installiert, zum Betrieb werden noch die Nagios Plugins benötigt. Es erscheint die Fehler Meldung: (No output on stdout) stderr: execvp(/usr/local/nagios/libexec/check_load .. das ist normal, in den folgenden Schritten werden die Standard Plugins installiert.

Plugin Installation

Zur Voraussetzung der Installation der Plugins werden folgende Pakete aus dem Repository installiert.

Die Source Pakete herunterladen und entpacken. Auf nagios-plugins.org sind die letzten Plugin Release.

Pakete compilieren und installieren.

Gehe zu einem Host- oder Service Objekt und „Re-schedule the next check“ im Menü Commands. Der Fehler der zuvor erschien, sollte nun verschwinden und die korrekte Ausgabe wird auf dem Bildschirm angezeigt.

Die Daemon Kommandos für start / stop / restart / status.

Nagios Konfiguration

Nachdem nun der Nagios Core Server betriebsbereit ist, geht es an das erstellen der Konfiguration der Host und Services die Überwacht werden sollen. Unter /usr/local/nagios/etc ist die Hauptkonfiguration nagios.cfg, hier werden mit cfg_file die Pfade zu den Konfigurationsdateien definiert, in einer Datei hosts.cfg können die zu überwachenden hosts eingetragen werden.

Soll es mehr strukturiert sein bietet sich die Möglichkeit die Host und Service Konfiguration in die Verzeichnisse printers, routers, servers, switches zu speichern, hierzu wird die Datei nagios.cfg editiert und die Kommentar Zeichen # (hash) entsprechend bei cfg_dir= entfernt.

Es werden die in den Verzeichnissen angelegten .cfg Dateien ausgelesen.

Beispiel für ein Mail und Webserver bei diesem IMAP und HTTPS überprüft wird.

Nach jeder Änderung wird der Nagios Server neu gestartet.

Ein blick in die Nagios-Log Datei kann sich lohnen.

Unter dem Verzeichnis objects findet man weitere Konfigurationsbeispiele für Linux, Windows, Printer Router und Switch.

nagios_check_dns
Beispiel: Nagios Service Konfiguration

Mit Remote Agenten wie NCPA können Active Checks auf Windows und Linux Hosts ausgeführt werden, über NRDP und NRPE sind Passive Checks möglich, die werte über CPU last, Memory Nutzung, Prozesse, User und Disk Nutzung geben.

Nagios Notification

In der Datei nagios.cfg und in der Datei objects/contacts.cfg wird als Email Empfänger bei email hier in diesem Beispiel root@localhost belassen.

In der Datei nagios.cfg bei admin_email.

Für die Nagios Email Notification wird hier Postfix als Mail Transport Agent verwendet. Dies wie folgt installiert und konfiguriert wird.

Während der Installation wird man zur Auswahl einer MailServer Konfiguration gefragt, hier wählen wir Internet Site.

Um das senden von Email später testen zu können, wird das Paket mailutils installiert.

Die Postfix Hauptkonfiguration main.cf wird angepasst.

Bei relayhost wird der MailServer eingetragen dieser von Raspberry Pi erlaubt Emails zu empfangen, ist das Raspberry hinter einer Firewall mit NAT, muss beim MailServer die öffentliche IP Adresse für den Empfang berechtigt werden.

Eine Email Adresse für root einrichten, dazu wird die Datei aliases editiert.

Es wird am ende eine gültige Email Adresse eingetragen, damit Mails von diesem Host zugestellt werden, hier als Beispiel ist es helpdesk@banana.org, der Doppelpunkt bei root: ist zwingend.

Die Änderungen in der Datei aliases müssen noch die Datei aliases.db erzeugen.

Auch die Postfix Konfiguration muss noch eingelesen und aktiviert werden.

jetzt den Email Versand von Raspberry Pi testen, dies lässt sich wie folgt ausführen.

Das Email sollte nun im Posteingang von helpdesk@banana.org ankommen sein.

Hier kann auch das Email Log-Protokoll weiter Aufschluss geben.

Gibt der Sendeversuch den status=bounced zurück, ist der Empfang auf dem Mailer noch nicht berechtigt. Bei Exchange muss die IP Adresse des Raspberry Pi beim Empfangsconnector im FrontendTransport unter Bereichsdefinition bei E-Mail von Servern mit diesen Remote-IP-Adressen empfangen, eingetragen sein. Für Postfix muss in main.cf eine smtpd_client_restrictions direktive existieren.

Die Datei client_access beinhaltet die IP Adresse des Raspberry Pi.

Die Postfix Datenbank muss noch generiert werden.

Werden die SMTP Anfragen vom Mailer akzeptiert, kann der Queue Prozess und die Zustellung erfolgen.

last but not least

Wenn das nun alles zu kompliziert ist, oder dir die erforderliche Zeit nicht zur Verfügung steht, dann kann die fertige Raspberry Pi Box hier bezogen werden.

Fully initialized and ready to rock!