Polynom Community Server ist eine einzelne, statisch verknüpfte Binärdatei, die für eine schnelle Bereitstellung mit bescheidenen Ressourcen entwickelt wurde. Die Binärdatei initialisiert alle Dateien, Ordner und die Datenbank bei der ersten Ausführung im selben Ordner wie die Binärdatei. Es gibt zwei Methoden zum Bereitstellen eines Polynom-Servers: manuell oder mithilfe von Docker. Bei beiden Methoden ist es am besten, das Graphatar des Superadministrators im Voraus vorzubereiten, worauf wir in der folgenden Anleitung eingehen.
Die für die Installation und Ausführung des Polynom-Servers erforderlichen Mindestanforderungen sind:
Jeder Server benötigt mindestens einen Super-Admin oder „Gott“, der alle Angelegenheiten überwacht. Der Superadministrator verfügt standardmäßig über alle Rollen auf dem Server und sollte nicht mit der etwas weniger leistungsstarken Admin-Rolle verwechselt werden, die in den Server integriert ist.
SEHR WICHTIG: Sie müssen jede Person kennen und ihr vertrauen, die diese Rechte auf Ihrem Server hat, da sie Inhalte löschen und Benutzer auf die Blacklist/Whitelist setzen kann.
In diesem Abschnitt wird davon ausgegangen, dass Sie bereits einen lokalen oder Remote-Server eingerichtet haben und überssh
Zugriff und sudo
Berechtigungen für einen normalen Benutzer verfügen.
Die Polynom Server-Binärdatei erstellt alle Dateien und Unterordner in ihrem aktuellen Arbeitsverzeichnis, sodass Sie auswählen können, wo sie gespeichert werden soll. Puristen sollten sich an den Linux Filesystem Hierarchy Standard (FHS) halten und die Binärdatei installieren /opt/polynom/
oder /opt/codesiren/polynom/
, aber das ist nicht unbedingt notwendig. Ein Ordner im Home-Ordner des Host-Benutzers reicht aus. Erstellen Sie an einem beliebigen Ort einen Polynom-Ordner und kopieren Sie die Binärdatei „polynom_server“ hinein. Machen Sie es ausführbar.
Von der Eingabeaufforderung des Servers:
$ wget https://polynom.app/releases/polynom_server.tar.gz
$ tar -xvf polynom_server.tar.gz
$ mkdir ~/polynom
$ cp polynom_server ~/polynom/polynom_server
oder von dort kopieren, wo es sich gerade befindet
$ chmod +x ~/polynom/polynom_server
Wir müssen sowohl UDP als auch TCP auf dem Server öffnen. Bei diesen Befehlen wird davon ausgegangen, dass Sie die UFW-Firewall verwenden. Passen Sie es bei Bedarf an, wenn Sie iptables usw. verwenden. Möglicherweise müssen Sie auch eine Portweiterleitung von Ihrem Router aus durchführen.
$ sudo ufw allow 1337/tcp
$ sudo ufw allow 1337/udp
Bei der manuellen Installation des Servers haben Sie für den ersten Serverlauf zwei Möglichkeiten. Wenn Sie den Server mit Docker installieren, wird der Server für Sie im normalen Modus gestartet, daher gilt die zweite Methode:
In beiden Fällen können Sie nach dem zweiten Neustart u
an der Eingabeaufforderung eingeben, um eine Liste der Benutzer anzuzeigen – die zu diesem Zeitpunkt nur Super-Administratoren enthalten sollte.
Polynom Server läuft nicht als Daemon. Um die aktive Konsole nach dem Verlassen des Hosts aufrechtzuerhalten und wiederherzustellen, ist es am besten, die Binärdatei mit einem der beiden Programme zu starten tmux oder screen.
So mache ich es mit tmux, wenn ich die admin.txt bereits bereit habe.
Passen Sie es an, wie Sie es für richtig halten:
$ sudo apt install tmux
$ cd polynom
(or your path)
$ tmux new -s poly-session
$ ./polynom_server
Der Server sollte nun starten.
Typ ?
um die Serveroptionen anzuzeigen.
Typ x
um den Server zu verlassen, damit wir Ihren God-Benutzer hinzufügen können (admin.txt).
Halten Sie diese Sitzung am Leben, da wir gleich darauf zurückkommen.
Kopieren Sie die Datei admin.txt, die Sie zuvor erstellt haben, auf den Server und in den von Polynom erstellten Ordner~/polynom/key/
. Ich gehe davon aus, dass Sie in diesem Tutorial das Dienstprogramm Putty (pscp
) verwenden. Ersetzen Sie ${USER} durch Ihren Benutzernamen auf dem Remote-Host. Linux-Benutzer können scp
verwenden.
Ändern Sie an Ihrer lokalen Windows-/Linux-Eingabeaufforderung das Verzeichnis cd
in den Speicherort Ihrer admin.txt-Datei und kopieren Sie dann die admin.txt-Datei sicher auf Ihren Remote-Server.
Windows:
$ cd C:\Users\${USER}\Documents\
(oder ähnlicher Weg).
$ pscp admin.txt ${USER}@<Server_IPAddress>:/home/${USER}/polynom/admin/
Linux:
$ cd /home/${USER}/Documents
(oder ähnlicher Weg).
$ scp admin.txt ${USER}@<Server_IPAddress>:/home/${USER}/polynom/admin/
Kehren Sie zu Ihrer ssh
tmux-Sitzung zurück und starten Sie Polynom neu:
$ ./polynom_server
Fügen Sie Ihren neuen Server über die Polynom Desktop-App hinzu und stellen Sie sicher, dass Sie darauf zugreifen können.
Sie wissen, dass die Servereinrichtung erfolgreich war, wenn Ihre Desktop-App eine Verbindung herstellen kann. Geben Sie in Ihrer tmux-Sitzung u
ein, um alle Benutzer auf dem Server aufzulisten. Es sollten nur die Benutzer angezeigt werden, die in der Datei admin.txt enthalten waren. Wenn Sie mit -G
begonnen haben, stellen Sie sicher, dass beim Einrichten keine Fremden Ihrem Server als Götter beigetreten sind.
Sie können sich jetzt von Ihrer tmux-Sitzung trennen. HINWEIS: SIE MÜSSEN SICH IMMER VON TMUX ENTFERNEN. Wenn Sie die tmux-Sitzung verlassen, ohne die Verbindung zu trennen, stürzt Ihr Server ab. Trennen Sie die Verbindung immer mit Ctrl-b d
, bevor Sie Ihre ssh
-Sitzung beenden.
Um Ihre tmux-Sitzung wiederherzustellen, senden Sie ssh
an den Remote-Server und verwenden Sie dann $tmux attach
.
Ihr neuer Server wurde standardmäßig im privaten Modus konfiguriert, um zu verhindern, dass zufällige Benutzer beitreten, während Sie ihn einrichten. Der Super-Administrator kann diese (und andere) Einstellungen jetzt in der Desktop-Anwendung konfigurieren.
Wenn Sie Ihren Server privat halten, müssen Sie die öffentlichen Schlüssel neuer Benutzer zur Whitelist hinzufügen, bevor der Client eine Verbindung herstellen kann.
Viel Spaß mit der weltweit ersten PQC-Collaboration-App!
Diese Docker-Datei ist nur ein Beispiel und wird hier „wie besehen“ bereitgestellt. Es ist bekannt, dass es funktioniert, wurde jedoch nicht im Hinblick auf die Produktionssicherheit getestet. Benutzung auf eigene Gefahr.
FROM debian:bookworm-slim
RUN apt-get -y update &&\
useradd --shell /bin/bash -u 1000 -o -c "" -p nom -m nom &&\
export HOME=/home/nom &&\
mkdir -p /home/nom/opt/polynom
WORKDIR /home/nom/opt/polynom
COPY polynom_server .
RUN chmod +x /home/nom/opt/polynom/polynom_server &&\
chown -R nom:nom /home/nom
USER nom
EXPOSE 1337/tcp
EXPOSE 1337/udp
ENTRYPOINT ["/home/nom/opt/polynom/polynom_server"]
Diese Yaml-Datei ist ein Beispiel, das hier „wie besehen“ bereitgestellt wird. Es ist bekannt, dass es funktioniert, wurde jedoch nicht im Hinblick auf die Produktionssicherheit getestet. Benutzung auf eigene Gefahr.
version: '3.0'
services:
polynom:
image: caraka/polynom-ce:0.12.13
container_name: polynom
hostname: polynom
user: 1000:1000
stdin_open: true
tty: true
ports:
- "1337:1337/tcp"
- "1337:1337/udp"
volumes:
- /home/${USER}/opt/polynom:/home/nom/opt/polynom
restart: unless-stopped
Bitte beachten Sie, dass durch das Mounten eines Volumes auf diese Weise die Server-Binärdatei im Container mit dem überschrieben wird, was sich in diesem Pfad auf dem Host befindet. Die wichtigste Erkenntnis aus diesem Beispiel sind die Elemente stdin_open und tty, die sicherstellen, dass Sie $docker attach
und $docker detach
verwenden können, um die richtige/aktive Konsole in Ihrem Container zu erreichen.
Wenn viele Benutzer mit Ihrem Server verbunden sind, sollten Sie erwägen, Ihr Soft-Open-File-Limit auf eine akzeptable Zahl zu erhöhen, bevor Sie Polynom starten. Unter Debian beträgt das standardmäßige Soft-Open-Dateilimit beispielsweise 1.024. Je nach Bedarf können Sie erwägen, den Wert auf 4.096, 8.192 oder sogar noch höher zu erhöhen.
Um das ulimit vorübergehend zu erhöhen, verwenden Sie: #ulimit -Sn 65536
und starten Sie dann Polynom.
Für eine dauerhafte Änderung, die Neustarts übersteht, bearbeiten Sie Folgendes:
#nano /etc/security/limits.conf
einfügen * soft nofile 65536
Speichern und dann neu starten.
Sie können Ihre Arbeit nach dem Neustart mit überprüfen #ulimit -Sn
Verwenden Sie diese bei Bedarf beim Start:
-d
, um das mobile Push-Gateway zu deaktivieren. Dadurch wird der Prozess NICHT dämonisiert bzw. in den Hintergrund gestellt!-t xx
Verwenden Sie dies, um die Anzahl der für Polynom Server verfügbaren Threads vom Standardwert (16) zu ändern.-p xxxx
Verwenden Sie diese Option, um den Port vom Standard (1337) zu ändern.You can type h
or ?
+ Enter
at the prompt to see the options.
Sie können an der Eingabeaufforderung h
oder ?
+ Enter
eingeben, um die Optionen anzuzeigen.
a
Zugriff – listet die Adressen von Administratoren, Adressen auf der schwarzen Liste und Adressen auf der weißen Liste auf;c
Kanäle – listet die Räume der obersten Ebene auf;d
Geräte – listet die kürzlich verbundenen Geräte auf;i
Programminfo – druckt die Polynom Server-Informationen;s
Sitzungen – listet die verbundenen Adressen und IP-Adressen auf;u
Benutzer – listet alle Benutzer auf, die jemals mit dem Polynom-Server verbunden waren;g
Generieren Sie einen neuen Polynom Server-Schlüssel;p
Dateicache löschen;r
Neu starten;x
Ausfahrt.Wenn Sie eine Admin-Adressdatei hinzufügen oder entfernen, während Polynom Server ausgeführt wird, starten Sie mit r
+ Enter
in der Konsole neu, damit die Änderungen wirksam werden.
Diese Funktion wurde noch nicht veröffentlicht, daher sind diese Hinweise vorläufig und unvollständig
-k
cmd-line arg kann bis zu 2 Argumente annehmen-k 12345
zeigt an, dass meine Datenbank mit einem Schlüssel verschlüsselt ist, der von der Passphrase "12345" abgeleitet ist. Verwenden Sie dies beim ersten Start (wenn noch keine DB-Datei vorhanden ist) oder für eine vorhandene DB-Datei, die bereits mit diesem Schlüssel verschlüsselt ist.-k old_pwd new_pwd
ist die Syntax, die beim Aktualisieren von Verschlüsselungsschlüsseln verwendet werden soll.
-k "" 12345
wechselt von einer unverschlüsselten DB-Datei zu einer, die mit einem von der Passphrase 12345
abgeleiteten Schlüssel verschlüsselt ist.-k " abcde
abcde aktualisiert den Schlüssel auf einen neuen Schlüssel, der von abcde
als Passphrase abgeleitet ist.-k ""