GNU/Linux >> Znalost Linux >  >> Debian

Nastavení Etherpadu v Debianu

Následující článek předpokládá, že již víte, co je Etherpad. Pokud to
není tomu tak, pak by měl pro rychlý úvod stačit článek na wikipedii.

I když je projekt Etherpad dobře zdokumentován, není to vždy snadné
dává smysl jen z dokumentace. Tento článek si klade za cíl shrnout některé z
návody dostupné na wiki projektu snadno sledovatelným způsobem.

Budeme se zabývat následujícím:

  • Instalace Etherpadu jako služby
  • Povolení TLS s certifikáty s vlastním podpisem
  • Pomocí mysql databáze
  • Používání Nginx s Etherpadem

Instalace Etherpadu

V současné době Debian 11 neposkytuje žádný etherpad balíčky. Takže budeme muset
nainstalujte jej ručně z GitHubu. Naštěstí jsou kroky opravdu snadné (
# označuje kořen):

  1. Vytvořte etherpad uživatele a přiřaďte jej k etherpad skupina:

    # useradd --comment "Etherpad Service User" --create-home --home-dir /usr/local/etherpad --user-group etherpad
  2. Stáhněte si a spusťte instalační skript:

    # curl -sL https://deb.nodesource.com/setup_14.x | bash -
  3. Nainstalujte nodejs . Budeme také potřebovat git .

    # apt install -y nodejs git
  4. Přepněte na etherpad uživatele a naklonujte úložiště projektu.

    # su - etherpad

    etherpad$ git clone --depth 1 --branch masterhttps://github.com/ether/etherpad-lite.git/usr/local/etherpad/src
  5. Nainstalujte požadované závislosti:

    etherpad$ /usr/local/etherpad/src/bin/installDeps.sh
  6. Vytvořte soubor systemd unit v /etc/systemd/system/ adresář.

    /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. Povolit firewallům atd. otevření portu 9001 .Tak konečně můžeme začít
    etherpad servis:

    # systemctl start etherpad

Čeká nás ještě spousta konfigurací. Nyní však můžeme zobrazit instanci etherpadu v našem prohlížeči.

Povolení TLS s certifikáty s vlastním podpisem

Pokud si chcete nechat podepsat certifikáty certifikační autoritou (CA), můžete tak učinit. Zde však vše podepisuji sám. Odkazuji na článek na wiki, který lze nalézt zde.

Otevřete soubor settings.json v etherpad adresář a najděte sekci ssl
(měl by být kolem řádku 174) a podle toho upravit:

"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"
}

Vytvořte adresář /usr/local/etherpad/ssl jako etherpad uživatel, cd do tohoto adresáře a spusťte následující příkazy.

Vygenerujte klíč serveru poskytující požadovanou přístupovou frázi:

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

Nyní vygenerujte certifikáty:

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

Nyní tento soubor použijeme k vytvoření dalšího klíče. Nebudeme tak muset při každém spuštění našeho serveru zadávat přístupové heslo.

Přejmenujte klíč:

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

Poté vygenerujte náš druhý klíč:

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

Nyní musíme své certifikáty podepsat sami. K tomu musíme vygenerovat další klíč, který podepíše náš
epl-server.key . Kroky jsou podobné jako výše.

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

Vytvořte podpisový certifikát:

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

To nás požádá o nějaké informace. Mohou být ponechány jako výchozí, ale Common Name (CN) se musí lišit od CN našeho vlastního klíče. Můžeme tedy ke CN pouze připojit „(CA)“.

Nakonec podepišme náš epl-server.key s certifikátem naší 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

Výsledkem bude epl-server.crt s vlastním podpisem soubor.

Nyní se ujistěte, že soubory mají zabezpečená oprávnění:

chmod 400 epl-server.key

chown etherpad epl-server.key

chmod 400 epl-server.crt

chown etherpad epl-server.crt

Jiné soubory lze přesunout na jiné místo nebo jednoduše smazat. Zatím je nechám tak, jak jsou. Nicméně můžeme restartovat etherpad a my získáme https funguje, i když prohlížeče zobrazí varování a dokonce se odmítnou připojit, protože naše certifikáty nebyly dodány se správnými informacemi.

Používání MySQL s Etherpadem

Až dosud naše instance Etherpad používala dirtyDB databáze, která není vhodná pouze pro účely testování/vývoje. Aby byla naše instance plně vhodná pro produkci, přejdeme nyní na mysql . Ještě jednou, všechny kredity za pokyny k instalaci jdou na wiki projektu. Právě jsem se rozhodl – abych vše shrnul na jednom místě – nenutit vás přeskakovat na různé odkazy.

Pojďme tedy nainstalovat požadované balíčky (používám mariadb ale věci jsou v podstatě stejné):

# apt install -y mariadb-server

Nyní spusťte mysql_secure_installation jako root poskytující požadované parametry.

Poté, co je hotovo, můžeme přistoupit k nastavení databáze:

1. Připojte se k mysql pomocí následujícího příkazu:

# mysql -u root -p

2. Jakmile jste uvnitř, vytvořte databázi:

CREATE DATABASE `etherpad_lite_db`;

Ano, to jsou zpětné zaškrtnutí kolem názvu db. A nezapomeňte na středník 😉

3. Vytvořte uživatele databáze a zadejte své vlastní uživatelské jméno a heslo:

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

4. Změňte oprávnění pro nového uživatele:

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

Zde etherpad byl uživatel, kterého jsem dříve vytvořil.

Naše databáze je vytvořena, takže nyní můžeme exit z výzvy a pokračujte k etherpad služba vědět o úspěších, kterých jsme dosáhli, tj. úpravou souboru settings.json soubor.

Vyhledejte dbtype ve vašem textovém editoru by to mělo být kolem řádku 196 a změňte jej tak, aby vypadal asi takto:

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

Heslo zde samozřejmě neprozradím. To by bylo nebezpečné, protože používám stejný pro všechny své účty (ne, opravdu ne; nepoužívejte hesla znovu).

Nyní můžeme restartovat služby:

# systemctl restart mysqld etherpad

Používání Nginx s Etherpadem

Nyní nakonfigurujeme nginx pro předání standardního http/s provozu na etherpad servis.

Ujistěte se, že máme nginx nainstalováno:

# apt install nginx

Vytvořte soubor v /etc/nginx/sites-available/etherpad a mít jeho obsah:

    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/;
}

Nyní spusťte následující příkazy:

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/

Jak můžete vidět, právě kopírujeme certifikáty a klíče ssl do nginx.

Nginx je dodáván s výchozím konfiguračním souborem, který je povolen. Pojďme to opravit.

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

A povolme náš etherpad konfigurační soubor pro nginx.

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

Ujistěte se, že jste v konfiguraci neudělali žádné chyby:

# nginx -t

Nyní naposledy restartujeme naše služby:

# systemctl restart etherpad mysqld nginx

Naše nastavení je v podstatě hotové. Samozřejmě můžeme udělat více, ale myslím, že jsme udělali dost (kromě změn zjevných věcí, jako je skutečnost, že jsme nastavili vlastní CA), aby to bylo použitelné. Nechám čtenáře, aby prozkoumal dále
různé zdroje, které jsem propojil v celém článku. To je pro tuto chvíli vše. Děkuji za přečtení až do konce. Nezapomeňte se podívat na mé další články na unixcop.com.


Debian
  1. Nastavení ProFTPd + TLS na Debian Squeeze

  2. Nastavení serveru a klienta NFS na Debian 9 (Stretch)

  3. Konfigurace klíčů SSH na systému Debian 9 – jak na to?

  1. Ssh – Jak povolit výměnu klíčů Diffie-hellman-group1-sha1 v Debianu 8.0?

  2. Debian – nelze spustit instalaci Devuan/debian?

  3. Nainstalujte OpenVPN Server na Debian 11/Debian 10

  1. Jak nainstalovat Spotify na Debian 9 Stretch Linux

  2. Nastavení reverzního proxy serveru Nginx v systému Debian Linux

  3. Jak nainstalovat Etherpad na Debian 9