====== Notfallbox Xpc: Installation der Server-Dienste ======
{{ :Gerdi_l.png?nolink&150|}}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 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 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 V3a
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 etwas 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 & PC) 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=6175
# 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 |}}
In der Regel wird der Browser beim Testen ein falsches bzw. "selbst signiertes SSL-Zertifikat anmeckern. Ganz ehrlich? Das müssen wir im Notfall in Kauf nehmen! SSL-Zertifikate müssen regelmässig erneuert werden - sind daher also NICHT für Not- und Katastrophenbetrieb geeignet.
Nachdem nun alles funktioniert, fehlen nur noch die [[nfb:software:installation:x86:xpc:inhalte|Inhalte]] für den Webbrowser, um aus diesem PC eine "Notfallbox" zu machen.