====== 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:6175'' * 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.