GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Etherpad unter Debian einrichten

Der folgende Artikel geht davon aus, dass Sie bereits mit Etherpad vertraut sind. Wenn das
nicht der Fall ist, dann sollte der Wikipedia-Artikel für einen schnellen Einstieg genügen.

Obwohl das Etherpad-Projekt gut dokumentiert ist, ist es nicht immer einfach
nur aus Dokumentation sinnvoll. Dieser Artikel zielt darauf ab, einige davon zu verdichten
Tutorials, die auf leicht verständliche Weise im Projekt-Wiki verfügbar sind.

Wir behandeln Folgendes:

  • Etherpad als Dienst installieren
  • Aktivieren von TLS mit selbstsignierten Zertifikaten
  • Mit mysql Datenbank
  • Nginx mit Etherpad verwenden

Etherpad installieren

Ab sofort bietet Debian 11 kein etherpad Pakete. Also müssen wir
Installieren Sie es manuell von GitHub. Zum Glück sind die Schritte wirklich einfach (die
# bezeichnet Wurzel):

  1. Erstellen Sie ein Benutzer-etherpad und weise es dem etherpad zu Gruppe:

    # useradd --comment "Etherpad Service User" --create-home --home-dir /usr/local/etherpad --user-group etherpad
  2. Laden Sie das Setup-Skript herunter und führen Sie es aus:

    # curl -sL https://deb.nodesource.com/setup_14.x | bash -
  3. Installieren Sie nodejs . Außerdem benötigen wir git .

    # apt install -y nodejs git
  4. Wechsle zum etherpad Benutzer und klonen Sie das Projekt-Repository.

    # su - etherpad

    etherpad$ git clone --depth 1 --branch masterhttps://github.com/ether/etherpad-lite.git/usr/local/etherpad/src
  5. Installieren Sie die erforderlichen Abhängigkeiten:

    etherpad$ /usr/local/etherpad/src/bin/installDeps.sh
  6. Erstellen Sie eine systemd-Unit-Datei in /etc/systemd/system/ Verzeichnis.

    /etc/systemd/system/etherpad.service :

    [Unit]
    Description=Etherpad Service
    After=syslog.target network.target

    [Service]
    Type=simple
    User=etherpad
    Group=etherpad
    WorkingDirectory=/usr/local/etherpad/src
    Environment=NODE_ENV=production
    ExecStart=/usr/bin/node --experimental-worker /usr/local/etherpad/src/node_modules/ep_etherpad-lite/node/server.js
    [Install]
    WantedBy=multi-user.target

  7. Firewalls etc. erlauben, den Port 9001 zu öffnen .Dann kann es endlich losgehen
    das etherpad Service:

    # systemctl start etherpad

Wir müssen noch viele Konfigurationen vornehmen. Allerdings können wir jetzt die Etherpad-Instanz in unserem Browser anzeigen.

Aktivieren von TLS mit selbstsignierten Zertifikaten

Wenn Sie Ihre Zertifikate von einer Zertifizierungsstelle (CA) signieren lassen möchten, können Sie dies tun. Hier unterschreibe ich jedoch nur alles selbst. Ich beziehe mich auf den Wiki-Artikel, der hier zu finden ist.

Öffnen Sie settings.json im etherpad Verzeichnis und suchen Sie den SSL-Abschnitt
(sollte etwa Zeile 174 sein) und entsprechend ändern:

"ssl" : {
"key" : "https://1118798822.rsc.cdn77.org/usr/local/etherpad/ssl/epl-server.key",
"cert" : "https://1118798822.rsc.cdn77.org/usr/local/etherpad/ssl/epl-server.crt"
}

Erstellen Sie ein Verzeichnis /usr/local/etherpad/ssl als etherpad Benutzer, cd in dieses Verzeichnis und führen Sie die folgenden Befehle aus.

Generieren Sie den Serverschlüssel mit der erforderlichen Passphrase:

openssl genrsa -des3 -out epl-server.key 4096

Generieren Sie nun die Zertifikate:

openssl req -new -key epl-server.key -out epl-server.csr

openssl x509 -req -days 9000 -in epl-server.csr -signkey epl-server.key -out epl-server.crt

Jetzt werden wir diese Datei verwenden, um einen weiteren Schlüssel zu erstellen. Auf diese Weise müssen wir nicht jedes Mal, wenn unser Server startet, eine Passphrase angeben.

Schlüssel umbenennen:

mv epl-server.key epl-server.key.secure

Dann generieren Sie unseren zweiten Schlüssel:

openssl rsa -in epl-server.key.secure -out epl-server.key

Jetzt müssen wir unsere Zertifikate selbst signieren. Dazu müssen wir einen weiteren Schlüssel generieren, der unsere signiert
epl-server.key . Die Schritte sind ähnlich wie oben.

openssl genrsa -des3 -out own-ca.key 4096

Erstellen Sie ein Signaturzertifikat:

openssl req -new -x509 -days 9000 -key own-ca.key -out own-ca.crt

Dies wird uns nach einigen Informationen fragen. Sie können als Standard belassen werden, aber der Common Name (CN) muss sich von dem CN unseres eigenen Schlüssels unterscheiden. Wir können also einfach „(CA)“ an den CN anhängen.

Lassen Sie uns abschließend unseren epl-server.key signieren mit dem Zertifikat unserer CA.

openssl x509 -req -days 9000 -in epl-server.csr -CA own-ca.crt -CAkey own-ca.key -set_serial 001 -out epl-server.crt

Dies führt zu einer selbstsignierten epl-server.crt Datei.

Stellen Sie nun sicher, dass die Dateien sichere Berechtigungen haben:

chmod 400 epl-server.key

chown etherpad epl-server.key

chmod 400 epl-server.crt

chown etherpad epl-server.crt

Andere Dateien können an einen anderen Ort verschoben oder einfach gelöscht werden. Ich lasse sie erstmal so wie sie sind. Trotzdem können wir das etherpad neu starten Dienst jetzt und wir erhalten https funktioniert, obwohl Browser Warnungen ausgeben und sogar die Verbindung verweigern, da unsere Zertifikate nicht mit den richtigen Informationen geliefert wurden.

Verwendung von MySQL mit Etherpad

Bisher hat unsere Etherpad-Instanz die dirtyDB verwendet Datenbank, die nicht nur für Test-/Entwicklungszwecke geeignet ist. Um unsere Instanz voll produktionstauglich zu machen, wechseln wir jetzt zu mysql . Auch hier gehen alle Credits für die Installationsanleitung an das Projekt-Wiki. Ich habe mich nur entschieden – um alles an einem Ort zusammenzufassen – Sie nicht zu verschiedenen Links springen zu lassen.

Lassen Sie uns also die erforderlichen Pakete installieren (ich verwende mariadb aber die Dinge sind im Grunde gleich):

# apt install -y mariadb-server

Führen Sie nun mysql_secure_installation aus als root die erforderlichen Parameter angeben.

Danach können wir mit der Einrichtung der Datenbank fortfahren:

1. Verbinden Sie sich mit mysql mit dem folgenden Befehl:

# mysql -u root -p

2. Sobald Sie drinnen sind, erstellen Sie eine Datenbank:

CREATE DATABASE `etherpad_lite_db`;

Ja, das sind Backticks um den DB-Namen. Und vergiss das Semikolon nicht 😉

3. Erstellen Sie einen Datenbankbenutzer, indem Sie Ihren eigenen Benutzernamen und Ihr Passwort angeben:

CREATE USER '<username>'@'localhost' identified by '<pass>';

4. Berechtigungen für den neuen Benutzer ändern:

GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on `etherpad_lite_db`.* to 'etherpad'@'localhost';

Hier, etherpad war der Benutzer, den ich zuvor erstellt habe.

Unsere Datenbank ist erstellt, also können wir jetzt exit aus der Eingabeaufforderung und fahren Sie mit dem etherpad fort Service wissen über die Errungenschaften, die wir erzielt haben, z. B. durch Ändern der settings.json Datei.

Suchen Sie nach dbtype mit Ihrem Texteditor sollte es etwa Zeile 196 sein und ändern Sie es so, dass es ungefähr so ​​​​aussieht:

"dbType": "mysql",
"dbSettings": {
"user" : "etherpad",
"port" : "https://1118798822.rsc.cdn77.org/var/run/mysqld/mysqld.sock",
"password": "<pass>",
"database": "etherpad_lite_db",
"charset" : "utf8mb4"
}

Das Passwort werde ich hier natürlich nicht preisgeben. Das wäre gefährlich, da ich für alle meine Konten dasselbe verwende (nein, nicht wirklich; Passwörter nicht wiederverwenden).

Wir können die Dienste jetzt neu starten:

# systemctl restart mysqld etherpad

Nginx mit Etherpad verwenden

Lassen Sie uns nun nginx konfigurieren um den Standard-http/s-Verkehr an das etherpad weiterzuleiten Service.

Stellen wir sicher, dass wir nginx haben Eingerichtet:

# apt install nginx

Erstellen Sie eine Datei in /etc/nginx/sites-available/etherpad und hat folgenden Inhalt:

    server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name localhost; # CHANGE THIS!
    access_log  /var/log/nginx/eplite.access.log;
    error_log   /var/log/nginx/eplite.error.log;

    ssl                  on;
    ssl_certificate      /etc/nginx/ssl/epl-server.crt;
    ssl_certificate_key  /etc/nginx/ssl/epl-server.key;

    location / {
        proxy_pass         https://127.0.0.1:9001;
        proxy_buffering    off;
        proxy_set_header   Host $host;
        proxy_pass_header  Server;

        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $remote_addr;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_http_version  1.1; # apparently recommended with keepalive connections

        # WebSocket proxying - from https://nginx.org/en/docs/http/websocket.html
        proxy_set_header  Upgrade $http_upgrade;
        proxy_set_header  Connection $connection_upgrade;
    }
}

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  localhost; # CHANGE THIS!
    return 301   https://127.0.0.1:9001/;
}

Führen Sie nun die folgenden Befehle aus:

doas mkdir /etc/nginx/ssl

doas cp /usr/local/etherpad/ssl/epl-server.crt /etc/nginx/ssl/

doas cp /usr/local/etherpad/ssl/epl-server.key /etc/nginx/ssl/

Wie Sie sehen können, kopieren wir nur die SSL-Zertifikate und -Schlüssel nach nginx.

Nginx wird mit einer standardmäßigen Konfigurationsdatei geliefert, die aktiviert ist. Lassen Sie uns das beheben.

# rm /etc/nginx/sites-enabled/default

Und aktivieren wir unser etherpad Konfigurationsdatei für nginx.

# ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/etherpad

Stellen Sie sicher, dass Sie keine Fehler in der Konfiguration gemacht haben:

# nginx -t

Lassen Sie uns nun unsere Dienste ein letztes Mal neu starten:

# systemctl restart etherpad mysqld nginx

Unser Setup ist im Grunde fertig. Natürlich können wir mehr tun, aber ich denke, wir haben genug getan (abgesehen von der Änderung offensichtlicher Dinge wie der Tatsache, dass wir unsere eigene Zertifizierungsstelle eingerichtet haben), damit dies brauchbar ist. Ich überlasse es dem Leser, weiter zu forschen
die verschiedenen Ressourcen, die ich im gesamten Artikel verlinkt habe. Das war es fürs Erste. Vielen Dank für das Lesen bis zum Ende. Vergessen Sie nicht, meine anderen Artikel auf unixcop.com zu lesen.


Debian
  1. So installieren Sie Spotify unter Debian 9 Stretch Linux

  2. Einrichten der Master-Master-Replikation mit MySQL unter Debian 8 (Jessie)

  3. Konfigurieren Sie SSH-Schlüssel auf einem Debian 9-System – wie geht das?

  4. Debian – Mod4 in Awesome einstellen?

  5. Ssh – Wie aktiviere ich den Diffie-hellman-group1-sha1-Schlüsselaustausch unter Debian 8.0?

So richten Sie SSH-Schlüssel unter Debian 9 ein

So richten Sie SSH-Schlüssel unter Debian 10 ein

So installieren Sie Etherpad unter Debian 11

Debian 11-Rezension

So richten Sie SSH-Schlüssel unter Debian 11 Linux ein

So richten Sie WireGuard VPN unter Debian 11 ein