Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:raspberry_pi_als_server

Raspberry Pi als Server

Als Hardwaregrundlage benötigt ihr einen Raspberry Pi. Dieser wird mit einer SD-Karte für das Betriebssystem, einem USB-Kabel für den Strom und einem Ethernetkabel für das Internet ausgestattet. Als Betriebssystem kommt Raspian zum Einsatz.

Warnung! Ihr werdet für die nächsten Aufgaben vermutlich an vielen Stellen im Internet recherchieren. Kopiert keine Texte einfach so von einer Webseite in ein Konsolenfenster. Dadurch kann Schadcode in den Zwischenspeicher gelangen, den man so nicht sieht. Ein Beispiel verdeutlicht die Gefahr.

Webserver und PHP installieren

Als Software benötigen wir einen Apache HTTP Server, der die Webseiten ausliefert und PHP für die Generierung dynamischer Webseiten.

  1. Installiere den Webser apache: Folge hierfür der Anleitung zur Installation eines Webservers (apache) auf dem Pi. Eine weitere Anleitung findest du in Raspberry Pi - Das umfassende Handbuch, Kap. 24.1-24.2.
  2. Der Server lässt sich mit einem Befehl neu starten. Wie lautet er?
  3. Der Server legt seine Konfiguration in /etc/apache2 ab. Erläutere die Bedeutung der folgenden Verzeichnisse, die sich unter /etc/apache2 befinden: conf-available, conf-enabled, mods-available, mods-enabled, sites-available, sites-enable. Schau dazu in den Erklärungen in der Datei apache2.conf und der Paketdokumentation unter /usr/share/doc/apache2 nach.

Du kannst auch probieren, einen eigenen Webserver zu programmieren. So schwierig ist es gar nicht.

Webserver im Netz finden

Um heraus zu finden, welche Webserver auf Port 80 im Netz 192.168.42.0/24 laufen, kann nmap genutzt werden.

nmap --open -p 80 192.168.42.0/24

Auch mit scapy und Python können Netze auf unterschiedliche Arten untersucht werden. Der Artikel Port Scanning using Scapy erläutert das Vorgehen mit unterschiedlichen Ansätzen wie TCP-connect, TCP-stealth, XMAS-scan, FIN-scan, NULL-scan und weiteren.

nginx: ein alternativer Webserver

Neben apache gibt es noch viele weitere Webserver. nginx ist ein Beispiel für einen weiteren Webserver. Kannst du den apache stoppen und die Arbeit von einem nginx übernehmen lassen?

dokuwiki installieren

Sobald der Webserver und PHP installiert sind, kann dokuwiki installiert werden. Hierbei handelt es sich um eine Wiki-Software. Der Prozess ist in der Installationsanleitung für dokuwiki beschrieben.

Für den Download könnt ihr wget benutzen oder euch mit einer Remotedesktopverbindung auf den Pi verbinden und dort einen Browser starten.

wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

Zugriffsrechte anpassen

Damit der Webserver auf die Dateien zugreifen kann, müssen die Dateien für den Benutzer www-data zugreifbar sein. Ich gehe hier von einer Installation im Verzeichnis /var/www/dokuwiki aus. Mit chown wird der Benutzer für alle Dateien auf pi und die Gruppe auf www-data geändert. Der Parameter -R wendet dies rekursiv auch auf Unterverzeichnisse an.

sudo chown -R pi:www-data /var/www/dokuwiki

Nun erhält die Gruppe mit chmod jeweils Schreibrechte auf die Dateien.

chmod -R g+w /var/www/dokuwiki

Installation über den Paketmanager (optional)

Dokuwiki kann auch über den Paketmanager mit apt-get install installiert werden. Bei dieser Variante werden neue Versionen stets automatisch über den Paketmanager installiert. In diesem Falle ist die Konfiguration jedoch etwas komplizierter und man sollte die Hinweise in /usr/share/doc/dokuwiki beachten.

Die Konfigurationsdateien landen in /etc/dokuwiki. Die Einstellungen für den Apache lassen standardmäßig nur Zugriffe von localhost zu. Dies kann durch eine Anpassung in den Einstellungen mit Allow from all erweitert werden, so dass der Zugriff auch von anderen Seiten möglich ist.

Perfomanceoptimierung (optional)

Mit dem apc-Modul (Alternative PHP Cache) können bereits geladene Seiten gecached werden. Dies beschleunigt deren Auslieferung und kann die Zugriffe auf einem Pi deutlich beschleunigen.

Sicherheit durch TLS-Zertifikate

Damit ein verschlüsselter Zugriff auf den Pi auch über HTTPS erfolgen kann, wird ein SSL- bzw. TLS-Zertifikat benötigt, das auf dem Pi installiert werden muss – TLS steht für Transport Layer Security. Die Geschichte „Wenn der Postbote zweimal klingtelt“ erklärt das Verfahren des Schlüsselaustausches anschaulich. Das Elektronik Kompendium enthält technische Details des Protokolls.

Sehr einfach lässt sich die eigene Webseite mit selbst-signierten Zertifikaten absichern. In diesem Fall beschwert sich der Browser jedoch beim Aufrufen der Webseite, da er den Aussteller des Zertifikates nicht kennt. Die Verbindung ist trotzdem verschlüsselt. Das Verfahren wird in der Paketdokumentation von apache beschrieben. Sie liegt in der Datei /usr/share/doc/apache2/README.Debian.gz. Es ist eine mit gzip komprimierte Textdatei, die mit zless gelesen werden kann. Lies dort den Abschnitt zu SSL. Eine weitere Anleitung findest du in Raspberry Pi - Das umfassende Handbuch, Kap. 24.3.

Die Anleitung von heise security beschreibt das Verfahren für vertrauenswürdige Zertifikate, die von der Firma StartSSL ausgestellt werden. Diese sind dem Browser bekannt und es kommt zu keinen Warnungen im Browser.

Wenn alles korrekt eingerichtet wurde, kannst du den Pi anschließend über https://meine.eigene.ip.adresse/ erreichen.

Aufgaben

  1. Wozu wird TLS/SSL benötigt?
  2. Was ist der Unterschied zwischen SSL und TLS?
  3. Was ist ein selbst-signiertes Zertifikat?
  4. Sichere deinen Server mit einem selbst-signierten Zertifikat (einfach) oder einem Zertifikat, das von StartSSL ausgestellt wurde (schwierig, du brauchst eine eigene Domain).
  5. Mit welchem Befehl lassen sich Webserver mit einer HTTPS-Unterstützung im lokalen Netz finden?

Was ist HTTP und wie funktioniert es?


Video bei archive.org

  1. Erstelle eine Präsentation zum Thema Hypertext Transfer Protocol (kurz HTTP), die folgende Begriffe erläutert: REQUEST, REQUEST METHOD, GET, POST, PUT, DELETE, HEADER, RESPONSE, RESPONSE CODE
  2. Führe eine Beispielsitzung durch, z.B mit einem Browser oder einem telnet-client wie putty1), die einen Request und Response zeigt und stelle das Ergebnis in einem Screenshots dar.
    Das obige Video zeigt einen Ausschnitt einer solchen Beispielsitzung ohne die Headerinformationen.
    Unter Windows muss der telnet-Client aktiviert werden: „Systemsteuerung“ → „Programme“ → „Windows-Funktionen aktivieren oder deaktivieren “. Dort kann ein Haken bei „Telnet-Client“ gesetzt werden. Danach steht er in der Windows-Konsole zur Verfügung.
  3. Visualisiere das Verfahren durch eine eigene Zeichnung.
  4. Ergänze deine Präsentation um einen eigenen Linktipp.

Analyse der Server-Logdateien

Bei Problemen hilft häufig ein Blick in die Logdateien eines Dienstes. Wir wollen für unseren Webserver exemplarisch dessen Logdateien untersuchen. Hierfür hilft das Programm tail, welches das Ende einer Datei anzeigt. Mit less oder einem Editor wie nano oder vim lassen sich Textdateien ebenso anzeigen. Mit Hilfe des grep-Befehls kann in einer Datei gesucht werden.

  1. Wo legt der apache-Webserver die Logdateien ab?
  2. Welche Arten von Logdateien gibt es beim apache?
  3. Führe den Befehl tail -f /var/log/apache2/access.log aus und rufe dann eine Seite mit einem Webbrowser auf. Interpretiere die Ausgabe und beschreibe den Aufbau einer Zeile2).
    Was macht der Befehl tail?
    Welche Bedeutung hat die Option -f?
  4. Baue nun einen kleinen Fehler bei deinem Mitschüler ein. Öffne dazu die Datei doku.php im Verzeichnis des dokuwiki mit einem Texteditor und füge die Zahl 123 in eine leere Zeile ein. Rufe nun die Seite mit einem Browser auf. Versucht gemeinsam den Fehler in der Logdatei am Ende zu finden. Tipp: Schaut in der Logdatei, die Fehlermeldungen enthält.
  5. Schaut euch den Inhalt der anderen Logdateien in /var/log an und stellt Vermutungen über deren Herkunft an. Erstellt eine Tabelle mit den Spalten „Name der Logdatei“ und „Inhalt“ für 3 selbst gewählte Logdateien.
  6. Du kannst auch selbst in das „system log“ schreiben. Dazu gibt es den Befehl logger. Schau dir die zugehörige man-Page an und erstelle einen Logeintrag. In welcher Datei landet dein Eintrag?

Einrichten einer eigenen Domain

Über den Dienst afraid.org kann man sich kostenlos eine Webadresse zulegen, die fortan auf die IP-Adresse des heimischen Routers, an dem der Pi angeschlossen ist, verweisen soll. Da man zu Hause gewöhnlich alle 24 Stunden eine neue IP-Adresse zugewiesen bekommt, muss man dem DNS-Server von afraid.org über einen curl-Aufruf die neue IP-Adresse mitteilen. Damit dies regelmäßig erfolgt, legt man am besten einen cronjob dafür an.

  1. Was ist das Domain Name System (DNS)? Beschreibe kurz und in eigenen Worten, wie DNS funktioniert. Nutze dazu das Diagramm im Abschnitt „Auflösung eines DNS-Requests“.
  2. Versuche, eine Anfrage an einen DNS-Server mit dem Tool dig3) auf der Linux-Kommandozeile nachzuvollziehen:
    dig +trace -t A www.tbs1.de
  3. Melde dich bei dem Dienst afraid.org an und suche dir eine Domain aus.
  4. Was sind ein „A-Record“, ein „AAAA-Record“ und ein „MX-Record“ im DNS?4)
  5. Richte einen Cronjob ein, der in regelmäßigen Abständen den DNS über deine aktuelle IP-Adresse informiert.5)
  6. Wird der Name korrekt zu der IP-Adresse aufgelöst – es sollte die Adresse der Schule auftauchen? Nutze den Befehl dig, um es herauszufinden.6)
  7. (optional) Lege in deinem heimischen Router eine Portweiterleitung an, die alle Anfragen auf Port 80 (HTTP) und 443 (HTTPS) an den Pi weiterleitet. Teste im Anschluss, ob der Pi über die Webadresse erreichbar ist.

Portweiterleitung einrichten

Nun muss der Router Anfragen an den Pi auch korrekt an diesen durchstellen. Daher muss eine Portweiterleitung in dem Router so konfiguriert werden, dass die Ports 80 für HTTP und 443 für HTTPS an den Pi weitergeleitet werden. Beachte dazu die Bedienungsanleitung deines Routers.

((Internet)) -- [Router] -- [Pi]
                Portweiterleitungen:  
                80..........80 (http)
                443.........443 (https)

Hinweis: Eine Liste mit vielen Diensten und den Ports, auf denen sie laufen, findest du in der Datei /etc/services.

Fernzugriff über ssh

Um über das Internet auf den Pi zugreifen zu können, muss ein Port im Router auf Port 22 des Pi weitergeleitet werden. Auf Port 22 läuft der ssh-Dienst. Um es Angreifern schwerer zu machen, kann auch ein anderer hoher Port im Router (z.B. Port 50022) auf Port 22 am Pi weitergeleitet werden.

((Internet)) -- [Router] -- [Pi]
                 Portweiterleitungen:
                 50022.......22 (ssh)
                 80..........80 (http)
                 443.........443 (https)

Wenn alles korrekt eingerichtet wurde, sind der Webserver und der ssh-Dienst des Pi über über die URL erreichbar.

Tor hidden service

Der Webserver kann auch als Tor Hidden Service zugänglich gemacht werden. Dafür ist keine eigene Domain nötig, sondern es wird automatisch eine .onion-Domain generiert. Dies klappt auch hinter einem Router ohne Port-Weiterleitungen.

Unter Raspian gibt es das Paket tor, das für diese Zwecke genutzt werden kann. Webseiten können anschließend mit dem Tor Browser geöffnet werden. Generelle Information zu einem Tor Hidden Service stehen auf deutsch im Privacy Handbuch.

Ist der hidden service eingerichtet, so muss noch eine Änderung in der ssh-Konfiguration getätigt werden, um auf Dienst zugreifen zu können. Dazu wird folgender Eintrag in ~/.ssh/config ergänzt:

Host *.onion
  ProxyCommand /bin/nc -xlocalhost:9050 -X5 %h %p

So werden alle Adressen, die auf .onion enden, über einen Proxy mit netcat geleitet und der Pi ist mit ssh pi@XXXXXXX.onion erreichbar. Damit dies funktioniert, muss Tor als Dienst auch auf dem lokalen Rechner laufen.7)

Wenn man sich die kryptische Adresse nicht merken will, kann sie auch in der ssh-Konfiguration abgelegt werden.

Host meinpi
  Hostname XXXXXXXXX.onion
  User pi
  ProxyCommand /bin/nc -xlocalhost:9050 -X5 %h %p

Dann ist der Aufruf mit ssh pi@meinpi deutlich einfacher.

Backupskript programmieren

Die Daten des Servers sollen nun regelmäßig mit Hilfe eines Bash-Skriptes in einem Backup gesichert werden.

  1. Lies im Skript Kap. 4.1 „Einführung in die Skriptprogrammierung“ und beantworte die folgenden Fragen.
    1. Wie sieht die erste Zeile in einem bash-Skript aus? Welche Bedeutung hat der Begriff „shebang“?
    2. Welche Rechte benötigt ein bash-Skript, damit es korrekt funktioniert?
    3. Was ist der Unterschied zwischen einfachen (' ') und doppelten („ “) Anführungszeichen im Umgang mit Variablen in Skripten?
    4. Was steht in der Variablen $*?
    5. Welche Ein- und Ausgabekanäle gibt es und was machen sie?
    6. Wie kann die Ausgabe eines Kommandos umgelenkt werden?
    7. Was ist eine „Pipe“? Gib eine mögliche Beispielanwendung an.
    8. Erstelle ein Skript ~/bin/datum.sh, das bei der Ausführung das aktuelle Datum und die Uhrzeit ausgibt. Rufe es auf und prüfe die Ausgabe.
    9. Erstelle ein Skript ~/bin/tmp-sicherung.sh, welches das Verzeichnis /tmp mit Hilfe des Befehls tar in ein komprimiertes Archiv im Homevezeichnis (~/tmp.tar.gz) ablegt.
      Zusatz: Passe das Skript so an, dass das aktuelle Datum im Dateinamen enthalten ist: z. B. ~/2016-03-01-tmp.tar.gz
  2. Lies Kapitel 7.2 über Datensicherungen im Skript und beantworte die folgenden Fragen.
    1. Welche Sicherungsarten gibt es?
    2. Warum ist ein Backup sinnvoll? Wogegen schützt es?
  3. Welche Daten bzw. Verzeichnisse sollen in die Sicherung des Servers aufgenommen werden? Erstelle eine Liste.
  4. Erstelle ein Skript ~/bin/sicherung.sh, das die wichtigen Daten in einer Vollsicherung sichert.8)
  5. Führe das Skript aus und prüfe, ob alle wichtigen Daten in dem Archiv gelandet sind.
  6. Entpacke das Archiv wieder und prüfe stichprobenartig, ob sich die Dateien gegenüber den Originalen verändert haben.9)
  7. Erstelle einen Cronjob, der das Skript regelmäßig ausführt. Für welchen Zeitraum hast du dich entschieden und wie hast du ihn als Cronjob umgesetzt?

Backups auf einem externen Medium sichern

Derzeit landen die Backups noch auf dem Raspberry Pi. Nun wollen wir dafür sorgen, dass sie auch auf einem externen Medium gesichert werden. Dies können eine externe Festplatte, ein USB-Stick, eine Netzwerk-Freigabe sein oder auch Cloud-Dienst sein.

  1. Warum ist es sinnvoll das Backup nicht auf dem Pi zu sichern, sondern auf einem externen Medium?
  2. Lies Kap. 5.2.2 im Skript. Was macht der Befehl mount? Erkläre die Ausgabe von mount -l.
  3. Richte eine Netzwerkfreigabe unter Windows ein. Der Windows-Benutzer muss dafür durch ein Passwort gesichert sein.
  4. Teste die Freigabe von einem anderen Rechner aus, indem du im Explorer die Adresse \\IP-ADRESSE\NAME_DER_FREIGABE aufrufst.

    Den Artikel Samba Client cifs werden wir für die folgenden Aufgaben brauchen. Am besten öffnest du ihn in einem separaten Fenster.
  5. Erstelle einen Mountpoint (Einhängepunkt). An dieser Stelle wird die Netzwerkfreigabe später eingehängt. Wenn dir dies nicht gelinkt kannst du /mnt als Mountpoint nutzen.
  6. Nutze den mount-Befehl, um die Netzwerkfreigabe in dem Mountpoint einzubinden.10)
  7. Trage den Mountpoint in die Datei /etc/fstab ein. Wozu ist diese Datei da? Wie kann verhindert werden, dass sensible Zugangsdaten in der für alle lesbaren Datei fstab abgelegt werden? Probiere es aus.
  8. Prüfe, ob die Einbindung auch nach einem Neustart des Pi funktioniert.
  9. Passe dein Backupskript so an, dass die Backups fortan auf der eingebundenen Freigabe landen.

  10. Eine weitere Möglichkeit besteht darin, das Backup bei einem Cloud-Dienst wie z.B. dropbox oder owncloud hochzuladen. Die folgende Anleitung beschreibt dieses Verfahren für dropbox. In dem Handbuch für Owncloud wird das Verfahren für owncloud beschrieben, wobei hier WebDAV als Protokoll zum Einsatz kommt.

Falls du irgendwo nicht weiterkommst, kannst du den Hinweis in der Fußnote nutzen. Hier ist eine Session abgelegt, die das Einbinden verdeutlicht.11)

Weitere Möglichkeiten ergeben sich durch inkrementelle und differentielle Backups. Der Parameter -g von tar hilft hierbei weiter. Noch komfortabler geht es mit den beiden Tools rsync und rsnapshot. Der Vortrag Sicheres Backup, rsync, ssh und LUKS im Team von Richard Albrecht aus dem Jahr 2016 stellt die unterschiedlichen Möglichkeiten ausführlich vor.

Systemüberwachung (Monitoring)

Unser Server läuft im Regelfall ohne Probleme und liefert die Webseiten und das Wiki aus. Nun kann es jedoch passieren, dass durch Probleme im Netz, der Software oder der Hardware der Server nicht mehr erreichbar ist. Wenn das passiert, wollen wir schnell davon erfahren, um reagieren zu können – noch bevor Nutzer dies merken. Daher soll der Server nun durch einen Monitordienst von einem anderen Rechner überwacht werden.

Für die folgenden Aufgaben benötigt ihr die Anleitung (aus Raspberry Pi - Das umfassende Handbuch, Kap. 35) zur Einrichtung von Munin und smokeping.

  1. Lies den verlinkten Artikel und beschreibe in eigenen Worten, was die Dienste Munin und SmokePing tun. Erläutere den Unterschied zwischen beiden.
  2. Bearbeitet die folgenden Aufgaben zusammen in einer Gruppe aus 3 oder 4 Personen.

    Munin
  3. Bestimmt einen Raspberry Pi als Munin-Master und die anderen Pis als Munin-Nodes.
  4. Richtet das Monitoring mit „Munin“ ein.12)
    Bei Problemen kann die Seite Munin Troubleshooting weiterhelfen.

    smokeping
  5. Legt ein Monitoring mit „SmokePing“ auf einem Pi an. 13)
  6. Wählt verschiedene Webseiten (unsere Klassenseite, euren eigenen Pi, eine große bekannte Webseite) oder auch IP-Adressen, die ihr mit smokeping überwachen wollt.

    (optional)
  7. Mit der Android-App RasPi Check lässt sich der Pi auch vom Handy aus überwachen, wenn der SSH-Zugang von Außen erreichbar ist. Probiere die App aus, wenn du ein Android-Handy hast.
  8. Linux Dash ist ein weitere einfache Übersicht über den Status des Servers. Probiere es aus.
1) Trage die IP-Adresse des Webservers ein, wähle Port 80, den „Connection Type“ telnet, wähle bei „Close Windows on Exit“ die Option „Never“ und in den Telnet-Optionen „Telnet Negotiation Mode“ auf „passive“.
2) Häufig wird das Common Log Format im apache für die Darstellung verwendet.
3) Sollte das Programm nicht installiert sein, so kannst du es über das Paket dnsutils installieren.
4) Tipp: Schaue bei Wikipedia unter Resource Record.
5) Auf der Webseite findest du fertige curl- oder wget-Skripte für diesen Zweck.
6) Unter Windows gibt es den älteren Befehl nslookup für diese Zweck.
7) Das Tor-Browser Bundle verwendet einen abweichenden Standard-Port 9150 statt 9050 für den Proxy. Dieser kann in den Netzwerk-Einstellungen des Browsers geändert werden. Oder die unten angegebenen Ports müssen angepasst werden.
8) Falls du die Befehle für das Erstellen von tar-Archiven nicht mehr kennst, hilft ein Blick in Kap. 7.1 des Skriptes.
9) Das Programm diff kann hierbei weiterhelfen.
10) Der Befehle muss ungefähr so lauten
mount.cifs //IP-ADRESSE/freigabe /mein/mount/punkt -o username=USERNAME,password=PASSWORT
11) Die folgende Sitzung geht von einem Rechner mit dem Namen IE11WIN7, einem Nutzer IEUser und dem Passwort Passw0rd! aus.
## Freigabe manuell einbinden
 
bakera@ubu:~$ sudo mount.cifs //IE11WIN7/Users/IEUser/Desktop/Freigabe /mnt/ -o user=IEUser
Password for IEUser@//IE11WIN7/Users/IEUser/Desktop/Freigabe:  *********
 
## Dateien in der Freigabe anlegen
 
bakera@ubu:~$ date > /mnt/datum.txt
bash: /mnt/datum.txt: Keine Berechtigung
bakera@ubu:~$ ls -dl /mnt/
drwxr-xr-x 2 root root 0 Mär  6 08:52 /mnt/
 
bakera@ubu:~$ sudo touch /mnt/a.txt
bakera@ubu:~$ sudo su
root@ubu:/home/bakera# date > /mnt/datum.txt
root@ubu:/home/bakera# cat /mnt/datum.txt 
So 6. Mär 09:03:43 CET 2016
root@ubu:/home/bakera# exit
 
bakera@ubu:~$ sudo umount /mnt 
 
## fstab anpassen
 
bakera@ubu:~$ cd /etc/
bakera@ubu:/etc$ sudo vim fstab 
bakera@ubu:/etc$ cat /etc/fstab 
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=02896ffe-fb0f-4c8e-b396-beaa13bf79f5 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=1247dedb-72a5-4053-9042-43bdb7617db5 none            swap    sw              0       0
//IE11WIN7/Users/IEUser/Desktop/Freigabe /mnt             cifs rw,user,credentials=/etc/win_freigabe_cred.txt
 
bakera@ubu:/etc$ mount /mnt/
error 2 (No such file or directory) opening credential file /etc/win_freigabe_cred.txt
 
## Datei mit Zugangsdaten (englisch 'credentials') anlegen
 
bakera@ubu:/etc$ sudo vim /etc/win_freigabe_cred.txt
bakera@ubu:/etc$ cat /etc/win_freigabe_cred.txt 
username=IEUser
password=Passw0rd!
 
bakera@ubu:/etc$ ls -l win_freigabe_cred.txt 
-rw-r--r-- 1 root root 36 Mär  6 09:11 win_freigabe_cred.txt
bakera@ubu:/etc$ sudo chmod 600 win_freigabe_cred.txt 
bakera@ubu:/etc$ ls -l win_freigabe_cred.txt 
-rw------- 1 root root 36 Mär  6 09:11 win_freigabe_cred.txt
bakera@ubu:/etc$ sudo chown bakera:bakera win_freigabe_cred.txt 
bakera@ubu:/etc$ ls -l win_freigabe_cred.txt 
-rw------- 1 bakera bakera 36 Mär  6 09:11 win_freigabe_cred.txt
 
bakera@ubu:/etc$ mount /mnt/
bakera@ubu:/etc$ ls -l /mnt/
insgesamt 1
-rwxr-xr-x 1 bakera bakera  0 Mär  6 09:03 a.txt
-rwxr-xr-x 1 bakera bakera 29 Mär  6 09:03 datum.txt
bakera@ubu:/etc$ ls -ld /mnt/
drwxr-xr-x 2 bakera bakera 0 Mär  6 09:03 /mnt/
12) Falls der Zugriff auf den Apache-Webserver des Masters mit einer Fehlermeldung beendet wird, die auf fehlende Rechte hindeutet, könnte der Fehler #783499 die Ursache sein. Beachte die Hinweise in dem verlinkten Bug und passe die Konfigurationsdatei des Apache entsprechend an. Ferner muss auf dem master auch das Paket munin-node installiert sein. Die folgenden Befehle führen auf einem frischen Ubuntu 16.04 zur Einrichtung eines munin-masters: Paketquellen aktualisieren und Webserver installieren.
# apt-get update && apt-get install apache2 && service apache2 start
Das munin-node-Paket installieren und den Dienst starten.
# apt-get install munin-node && service munin-node start
  
Testen, ob der node funktioniert.
# apt-get install telnet
# telnet localhost 4949
Nach der Verbindung mit telnet sollte der node auf die Befehle version oder list reagieren. Nun kann munin installiert werden.
# apt-get install munin
# service apache2 restart
Zugriff von außen zulassen. Dazu 'Require local' durch 'Require all granted' ersetzen
# nano /etc/munin/apache24.conf 
# service apache2 restart
5 Minuten auf den nächsten Lauf des Cronjobs warten oder selbst anstoßen:
# su - munin --shell=/bin/bash munin-cron
13) Wenn es keine Konfigurationsdatei für den apache in /etc/apache2/conf-available/smokeping.conf gibt, muss diese mit einem symbolischen Link nach /etc/smokeping/apache2.conf angelegt und mit a2enconf aktiviert werden:ln -s /etc/smokeping/apache2.conf /etc/apache2/conf-available/smokeping.conf dann a2enconf smokeping.
Die Fehlermeldung client denied by server configuration: /usr/lib/cgi-bin/smokeping.cgi deutet auf ein fehlendes CGI-Modul im apache hin. Es kann mit a2enmod cgi aktiviert werden.
schule/raspberry_pi_als_server.txt · Zuletzt geändert: 10.08.2017 13:07 von Marco Bakera