====== Notfallbox Xpi: Installation der Server-Dienste ======
{{ :Gerdi_l.png?nolink&150|}}Die Server-Dienste stellen das Herz der Notfallbox dar. Sie stellen die Daten für den Benutzer bereit und müssen daher zunächst einmal installiert und getestet werden. Sie bestehen im Endeffekt aus einer klassichen LAMP-Konfiguration (Linux, Apache, MySQL, PHP), mit einigen sinnvollen Erweiterungen.
===== Web-Server Apache2 =====
Obwohl in der Notfallbox V1 das Server-Leichtgewicht "lighttpd" zum Einsatz kommt, haben wir uns für die V2 entschlossen, den Apache2-Server zu verwenden, da dieser in Sachen Verzeichnissicherung (siehe Admin-Interface) doch etwas einfacher zu handhaben ist - einfacher im Sinne des Benutzers ;-)
* ''sudo apt -y install apache2''
* Ist man mit dem WLAN der Notfallbox verbunden, testen wir das Ganze im Browser mit http://10.0.0.1
* Ist man über LAN mit der Notfallbox verbunden, testen wir das Ganze im Browser mit der LAN-IP-Adresse der Notfallbox.
* Es wird dann die Debian-Apache Standard-Seite angezeigt.
{{ :nfb:software:installation:pi:2:zwischenablage01.png?nolink&400 |}}
===== Scriptsprache PHP =====
* ''sudo apt -y install php php-mysql''
* ''sudo nano /var/www/html/phpinfo.php''\\ Inhalt erstellen, speichern und schliessen:
* Im Webbrowser abrufen: http://10.0.0.1/phpinfo.php\\
* **ACHTUNG: Die PHP-Version kann abweichen!!! Es wird nicht zwangsweise die Version 8.x installiert.**
{{ :nfb:software:installation:pi:2:phpinfo_php82.png?nolink&400 |}}
===== Datenbank MariaDB =====
* ''sudo apt -y install mariadb-server mariadb-client''
* ''sudo systemctl start mariadb && sudo systemctl enable mariadb''
* ''systemctl is-active mariadb''\\ Ergebnis: active
* ''sudo mysql_secure_installation''\\
Enter current password for root: [ENTER]
Set root password? [Y/n] Y
New password: notfallbox
Re-enter new password: notfallbox
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
* ''sudo mariadb -u root -pnotfallbox''
* ''CREATE USER 'notfallbox'@'localhost' IDENTIFIED BY 'notfallbox'; GRANT ALL PRIVILEGES ON notfallbox . * TO 'notfallbox'@'localhost'; FLUSH PRIVILEGES; SELECT User,Host FROM mysql.user; exit;''
* Ausgabe:
+-------------+-----------+
| User | Host |
+-------------+-----------+
| mariadb.sys | localhost |
| mysql | localhost |
| notfallbox | localhost |
| root | localhost |
+-------------+-----------+
4 rows in set (0,001 sec)
===== Verwaltungstool phpMyAdmin =====
* ''sudo apt -y install phpmyadmin''
* "Konfiguriere phpmyadmin / Webserver": ''apache - OK''
* "Konfigurieren der Datenbank für phpmyadmin mit dbconfig-common?": ''JA''
* Passwort: ''notfallbox - OK''
* In sehr vielen Fällen der Installation (unter Raspberry OS 10 & 11) auf dem Raspberry PI beendete sich die Installation mit einem Fehler. Das macht aber nichts. In diesem Fall die Installation mittels ''sudo apt -y install phpmyadmin'' einfach noch einmal starten.
* ''sudo mariadb -u root -pnotfallbox''
* ''GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost'; FLUSH PRIVILEGES; EXIT;''
* In einem Browser ''http://10.0.0.1/phpmyadmin'' aufrufen, wenn man über den Hotspot verbunden ist. Ansonsten bitte die lokale IP-Adresse verwenden.\\
{{ nfb:download:linkliste:software:installation:zwischenablage01.jpg?nolink&400 |}}
* "Benutzername": ''phpmyadmin''
* "Passwort": ''notfallbox''
* Bitte im Reiter "Datenbank" prüfen, ob phpmyadmin berechtigt ist, neue Datenbanken anzulegen.
* Zum Verlassen des Admin bitte das Tür-Symbol oben links anklicken\\
{{ nfb:download:linkliste:software:installation:phpmyadmin_exit.jpg?nolink&200 |}}
**ACHTUNG: Sollte der Aufruf des phpmyadmin trotz einer erfolgreichen Installation nicht funktionieren, so hilft vielleicht dieser Befehl:**
''sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin''\\
Denn die Web-Server-Dateien des phpmyAdmin liegen NICHT dort, wo alle anderen Web-Server-Dateien zu liegen kommen.
===== FTP-Server proftpd =====
* ''sudo apt -y install proftpd && sudo mkdir /home/ftp && cd /etc/proftpd''
* FTP-Benutzer erstellen (nicht identisch mit einem Linux- oder Datenbank-Nutzer):
* sudo ftpasswd --passwd --name notfallbox --gid 33 --uid 33 --home /home/ftp --shell /bin/false
* Passwort (zweimal): ''notfallbox''
* ''sudo nano /etc/proftpd/proftpd.conf''\\ Folgende Zeilen ans Ende anhängen:
# Anpassungen für Notfallbox Xpi
DefaultRoot /home/ftp
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
RequireValidShell off
* Editor beenden und Datei speichern
* ''sudo chmod 777 /home/ftp && sudo /etc/init.d/proftpd restart''
* Im Anschluss mit einem FTP-Client den Datei-Abruf prüfen.
{{ nfb:software:installation:pi:xpi:api:proftpd.png?nolink&600 |}}
===== Groupware citadel =====
* ''sudo apt -y install build-essential curl g++ gettext shared-mime-info libssl-dev zlib1g-dev''
* ''sudo modprobe ipv6 && cd ~ && sudo mkdir -p /etc/citadel/netconfigs/7''
* **ACHTUNG:** Der nächste Schritt dauert twas länger, da zunächst erst alle Source-Codes auf den RPI geladen und diese anschliessend compiliert werden müssen. Mit einer Laufzeit von 1 Stunde (RPI3/1GB RAM) bzw. 20 Minuten (RPI4/8GB RAM) bzw. 5-10 Minuten (RPI5/8GB RAM) sollte man rechnen.
* ''curl https://easyinstall.citadel.org/install | sudo bash''
* Viermal die Fragen mit Y quittieren, und dann Kaffee trinken gehen
* Benutzername /Passwort für den Administrator: notfallbox/notfallbox
* Benutzername auswählen: citadel
* IP-Adresse: *
* Port-Nummer: 504
* Authentifizierungs-Methode: 0
* Port-Adresse http: 8090
* Port-Adresse https: 8890
* Ist die Installation und Konfiguration abgeschlossen kann Citadel durch die über den Webbrowser getestet werden:\\ ''http://10.0.0.1:8090''
{{ nfb:software:installation:pi:xpi:api:citadel_01.png?nolink&400 |}}
===== SSH-Web-Client shellinabox =====
* ''sudo apt -y install openssl shellinabox''
* ''sudo nano /etc/default/shellinabox''\\ Die Konfigurationsdatei wie folgt anpassen:
# 1 = Automatischer Start mit dem Booten
SHELLINABOX_DAEMON_START=1
# TCP port - bitte auf einen beliebigen Wert ändern
# Bitte aufpassen, dass nicht bereits bekannte Ports genutzt werden.
SHELLINABOX_PORT=666
# Optionale Argumente:
# --no-beep - Schaltet den Terminal-Beep aus
SHELLINABOX_ARGS="--no-beep"
# IP-Adresse für den SSH-Connect
# 10.0.0.1 für den Zugang per WLAN-Access Point
# 192.168.xxx.yyy für den Zugang per LAN
OPTS="-s /:SSH:10.0.0.1"
* ''sudo systemctl restart shellinabox''
* Dann im Webbrowser die IP-Adresse der Notfallbox mit dem oben konfigurierten Port eingeben. Beispiel: ''https://10.0.0.1:666''
* Wichtig: **https** ;-) Dann ganz normal einloggen, als säße man an einem lokalen ssh-Client.
{{ nfb:software:installation:x86:xpc:shellinabox.png?nolink&600 |}}
Je nach Browser wird die Verbindung als "nicht sicher" angemeckert. Soweit man sich nicht die Mühe eines eigenen SSL-Zertifikates unterzieht, muss man damit leben ;-)
===== Monsta (Web-)FTP-Client =====
... Beschreibung folgt
Nachdem nun alles funktioniert, fehlen nur noch die [[nfb:software:installation:pi:xpi:inhalte|Inhalte]] für den Webbrowser, um aus diesem PC eine "Notfallbox" zu machen.