Channel Apps
[Markdown] 

Werkbuch: Hubzilla: Vorbereitung Server

Vorbereitung Server

Der WebServer will installiert und vorbereitet werden. Die Internet-Provider stellen verschiedene Linux-Distributionen zur Auswahl, ich entschied mich für Ubuntu 24.04.

Zugriff auf den Server

Um auf den Server zuzugreifen, muss bei der Installation ein Publlic SSH Key angegeben werden. Dazu muss man sich auf seinem Home-Rechner wntweder Putty installieren (unter Windows) oder OpenSSH (auf allen Betriebssystemen). Dann muss ein Key-Paar aus Public Key und Private Key erstellt werden. Dies passiert bei Putty mit "puttykeygen", bei OpenSSH mit ssh-keygen. Der dabei entstandene Public Key muss bei der Installation des Rechners zum Provider hochgeladen werden, der Private Key darf auf keinen Fall veröffentlicht werden: Er ist das Geheimnis mit dem Ihr Euch gegenüber dem Server ausweist. Der Zugriff erfolgt dann (mit ssh) je nach Provider entweder mit

ssh -i /pfad/zum/privatekey root@ipadresse

oder mit

ssh -i /pfad/zum/privatekey systemuser@ipadresse

Der Systemuser heißt dabei meist so wie die Linuxdistribution. also z.B. "ubuntu" oder "rocky". Er hat dann Sudo-Rechte um root zu werden.

Es gibt Hoster die auch den Zugriff über VNC-Consolen anbieten. Dies benötigt die Angabe eines Passworts

Installation benötigter Zusatzsoftware

Bei den meisten Distributionen sind bereits Apache und PHP in Versionen installiert, die neu genug für Hubzilla sind. Andernfalls müssen das Apache- und das PHP Paket in möglichst neuer Version installiert werden. Des weiteren werden benötigt:

  • MariaDB Server und Client
  • sendmail
  • das Apache-Modul mod-rewrite
  • viele PHP-Module, Hubzilla gibt die fehlenden an, siehe unten
  • Einige PHP-Module, die nicht in der Liste von Hubzilla stehen, sondern aus dem Apache Fehlerlog als fehlend zu finden sind. Bei mir waren das php8.3-gmp und php8.3-mbstring

Einrichten MariaDB Datenbank

(Getestet nur auf Ubuntu)

Nach Installation der MariaDB-Serverpakete kann Root sich passwortfrei auf Mariadb mit dem Befehl "mariadb" anmelden. Im Anschluss kann man in Mariadb Datenbank-User und Datenbank generieren sowie diesen die richtigen Rechte geben:

create user username@localhost identified by "MeinGeheimesPasswort";
create user username@127.0.0.1 identified by "MeinGeheimesPasswort";
create database databasename;
use databasename
grant all on * to databasename@localhost;
grant all on * to databasename@127.0.0.1;

Später müsst Ihr Datenbanknamen, Datenbankuser und Passwort bei der Installation der Hubzilla-Software angeben, damit Hubzilla dort seine Tabellen anlegen kann. Sinnvolle Werte für username und databasename (z.B. der Name eures Hubs) sind daher sinnvoll, auch darf das Passwort nicht trivial sein.

Einrichten DNS und Mail-Versandt

Die Registrierung bei Hubzilla erfordert eine Bestätigung über Verifizierungs-Email. Das bedeutet, Euer Server muss in der Lage zu sein, Mails zu versenden. Prinzipiell kann natürlich ein Server selbst ohne SMNT-Relay Mails empfangen und verschicken, Mail-Provider wie GMail lehnen aber den Empfang von Mails ab, wenn der Server sich nicht als vertrauenswürdig ausweisen kann. Daher empfiehlt es sich, den smtp-Servers Eures Providers zu verwenden.

Hoster stellen Euch für Eure Domains auch Postfächer in Form eines (wahrscheinlich kostenpflichtigen) Mail-Account zur Verfügung. Bei manchen Hostern (z.B. Strato) muss man sich entscheiden, ob man die Domain mit dem Mail-Paket oder dem Server bestellt - sie ist dem jeweiligen Paket zugeordnet, ein Umzug zwischen den Paketen kostet. Speziell bei Strato muss dann die Domain mit dem Mail-Paket bestellt werden und danach der A-Record der Domain auf die IP-Addresse des Servers gesetzt werden - das kann aber von Provider zu Provider unterschiedlich sein.

Auf Eurem Server müsst Ihr dann sendmail so konfigurieren daß es den smnt-Host Eures Providers benutzt: Falls sendmail noch nicht auf dem System installiert ist, installiert es! Bei Ubuntu geht das mit:

apt-get install sendmail
apt-get install mailutils

Anschließend editiert Ihr die Datei:

/etc/mail/sendmail.mc

und hängt gegen Ende der Datei, vor den MAILER_DEFINITIONS folgende Zeilen ein:

dnl # Default Mailer setup
define(`SMART_HOST', `Name.Eures.Smptservers')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo/smtp-auth.db')dnl

Anschließend erzeugt Ihr ein Verzeichnis /etc/mail/authinfo und legt dort eine Datei "smtp-auth" mit folgendem Inhalt an:

AuthInfo: "U:webmaster@euredomain" "P:passwort"

Dabei ist "webmaster" ein Postfach Eures Email-Dienstes, falls es das noch nicht gibt muss es angelegt werden. passwort ist das zugehörige Passwort. Jetzt müssen diese Informationen noch "scharf" geschaltet werden: Die smtp-auth muss in eine "db" verwandeld werden, die sendmail.mc-Datei wird in sendmail eingepflegt. So geht es:

Hashen der smtp-auth-Datei:

cd /etc/mail/authinfo/
makemap hash smtp-auth < smtp-auth

Einpflegen der sendmail.mk:

sendmailconfig

Hier auf jede Frage mit "y" antworten. Anschließend den sendmail-service restarten:

systemctl restart sendmail

Test des Mailversands durch Abschicken einer Mail:

mail deine@mailadresse
CC
Topic Test
test
<ctl-D>

Mit dem Befehl "mail deine@adresse" öffnet sich ein Commandline-Mail-Programm, das CC und Topic abfrägt. Anschließend lässt sich ein beliebiger Text eingeben. schickt dann die Mail ab. Bei Fehlern / nicht ankommenden Mails hilft ein Blick nach /var/log/mail und /var/spool/mail/root. Diverse Mail-Provider ordnen auch derartige Test-Mails als Spam ein, daher bitte auch das eigene Spam-Postfach kontrollieren.