GNU/Linux >> Linux Esercitazione >  >> Debian

Configurazione di Etherpad su Debian

Il seguente articolo presuppone che tu abbia già familiarità con l'Etherpad. Se quello
non è il caso, allora l'articolo di wikipedia dovrebbe essere sufficiente per una rapida introduzione.

Anche se il progetto Etherpad è ben documentato, non è sempre facile
avere un senso dalla semplice documentazione. Questo articolo mira a condensare alcuni dei
tutorial disponibili sul wiki del progetto in modo facile da seguire.

Tratteremo quanto segue:

  • Installazione di Etherpad come servizio
  • Abilitazione di TLS con certificati autofirmati
  • Utilizzo di mysql banca dati
  • Utilizzo di Nginx con Etherpad

Installazione di Etherpad

Al momento, Debian 11 non fornisce alcun etherpad Pacchetti. Quindi, dovremo
installalo manualmente da GitHub. Per fortuna, i passaggi sono davvero semplici (il
# denota radice):

  1. Crea un utente etherpad e assegnalo all'etherpad gruppo:

    # useradd --comment "Etherpad Service User" --create-home --home-dir /usr/local/etherpad --user-group etherpad
  2. Scarica ed esegui lo script di installazione:

    # curl -sL https://deb.nodesource.com/setup_14.x | bash -
  3. Installa nodejs . Avremo anche bisogno di git .

    # apt install -y nodejs git
  4. Passa a etherpad utente e clonare il repository del progetto.

    # su - etherpad

    etherpad$ git clone --depth 1 --branch masterhttps://github.com/ether/etherpad-lite.git/usr/local/etherpad/src
  5. Installa le dipendenze richieste:

    etherpad$ /usr/local/etherpad/src/bin/installDeps.sh
  6. Crea un file di unità systemd in /etc/systemd/system/ directory.

    /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. Consenti firewall, ecc. per l'apertura della porta 9001 .Poi, finalmente possiamo iniziare
    il etherpad servizio:

    # systemctl start etherpad

Abbiamo ancora molte configurazioni da fare. Tuttavia, ora possiamo visualizzare l'istanza etherpad sul nostro browser.

Abilitazione di TLS con certificati autofirmati

Se desideri che i tuoi certificati vengano firmati da un'autorità di certificazione (CA), puoi farlo. Tuttavia, qui sto solo autofirmando tutto. Mi riferisco all'articolo wiki che può essere trovato qui.

Apri settings.json nel etherpad directory e trova la sezione SSL
(dovrebbe essere intorno alla riga 174) e modificare di conseguenza:

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

Crea una directory /usr/local/etherpad/ssl come etherpad utente, cd in quella directory ed eseguire i seguenti comandi.

Genera la chiave del server fornendo la passphrase richiesta:

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

Ora genera i certificati:

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

Ora useremo quel file per creare un'altra chiave. In questo modo non dovremo fornire una passphrase ogni volta che il nostro server si avvia.

Rinomina la chiave:

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

Quindi genera la nostra seconda chiave:

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

Ora dobbiamo autofirmare i nostri certificati. Per questo dobbiamo generare un'altra chiave che firmerà il nostro
epl-server.key . I passaggi sono simili a quelli sopra.

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

Crea un certificato di firma:

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

Questo ci chiederà alcune informazioni. Possono essere lasciati di default ma il Nome Comune (CN) deve essere diverso dal CN della nostra chiave. Quindi possiamo semplicemente aggiungere "(CA)" al CN.

Infine firmiamo il nostro epl-server.key con il certificato della nostra 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

Ciò risulterà in un epl-server.crt autofirmato file.

Ora assicurati che i file dispongano di autorizzazioni sicure:

chmod 400 epl-server.key

chown etherpad epl-server.key

chmod 400 epl-server.crt

chown etherpad epl-server.crt

Altri file possono essere spostati in un luogo diverso o semplicemente eliminati. Li lascerò così com'è per ora. Tuttavia, possiamo riavviare l'etherpad servizio ora e otterremo https funzionante anche se i browser genereranno avvisi e si rifiuteranno persino di connettersi poiché i nostri certificati non sono stati forniti con le informazioni corrette.

Utilizzo di MySQL con Etherpad

Finora, la nostra istanza Etherpad ha utilizzato dirtyDB database che non è adatto solo a scopi di test/sviluppo. Per rendere la nostra istanza completamente adatta alla produzione, ora passeremo a mysql . Ancora una volta, tutti i crediti per le istruzioni di installazione vanno al wiki del progetto. Ho appena deciso – per riassumere tutto in un unico posto – di non farti saltare a link diversi.

Quindi, installiamo i pacchetti richiesti (sto usando mariadb ma le cose sono sostanzialmente le stesse):

# apt install -y mariadb-server

Ora esegui mysql_secure_installation come root fornendo i parametri richiesti.

Fatto ciò, possiamo procedere alla configurazione del database:

1. Connettiti a mysql con il seguente comando:

# mysql -u root -p

2. Una volta dentro, creare un database:

CREATE DATABASE `etherpad_lite_db`;

Sì, quelli sono backtick attorno al nome del db. E non dimenticare il punto e virgola 😉

3. Crea un utente del database fornendo il tuo nome utente e password:

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

4. Modifica le autorizzazioni per il nuovo utente:

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

Qui, etherpad era l'utente che ho creato in precedenza.

Il nostro database è stato creato, quindi ora possiamo exit dal prompt e procedi con l'etherpad servizio conoscere i risultati che abbiamo ottenuto, ad esempio modificando il settings.json file.

Cerca il dbtype con il tuo editor di testo, dovrebbe essere intorno alla riga 196 e cambiarlo in modo che assomigli a qualcosa di simile al seguente:

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

Ovviamente, non rivelerò la password qui. Sarebbe pericoloso dato che uso lo stesso per tutti i miei account (no, non proprio; non riutilizzare le password).

Ora possiamo riavviare i servizi:

# systemctl restart mysqld etherpad

Utilizzo di Nginx con Etherpad

Ora configuriamo nginx per inoltrare il traffico http/s standard all'etherpad servizio.

Assicuriamoci di avere nginx installato:

# apt install nginx

Crea un file in /etc/nginx/sites-available/etherpad e il suo contenuto sia:

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

Ora esegui i seguenti comandi:

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/

Come puoi vedere, stiamo semplicemente copiando i certificati SSL e le chiavi su nginx.

Nginx viene fornito con un file di configurazione predefinito abilitato. Risolviamolo.

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

E abilitiamo il nostro etherpad file di configurazione per nginx.

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

Assicurati di non aver commesso errori nella configurazione:

# nginx -t

Ora riavviamo i nostri servizi un'ultima volta:

# systemctl restart etherpad mysqld nginx

La nostra configurazione è praticamente finita. Certo, possiamo fare di più, ma penso che abbiamo fatto abbastanza (oltre a cambiare cose ovvie come il fatto che abbiamo impostato la nostra CA) per renderlo utilizzabile. Lascio al lettore un'esplorazione più approfondita
le varie risorse che ho collegato in tutto l'articolo. Per ora è tutto. Grazie per aver letto fino in fondo. Non dimenticare di controllare i miei altri articoli su unixcop.com.


Debian
  1. Configurazione di ProFTPd + TLS su Debian Squeeze

  2. Configurazione di un server e client NFS su Debian 9 (Stretch)

  3. Ssh – Come abilitare lo scambio di chiavi Diffie-hellman-group1-sha1 su Debian 8.0?

  4. Installa OpenVPN Server su Debian 11/Debian 10

  5. Come installare Etherpad Lite su Debian Wheezy

Come configurare le chiavi SSH su Debian 9

Come configurare le chiavi SSH su Debian 10

Come installare Etherpad su Debian 11

Recensione di Debian 11

Come configurare le chiavi SSH su Debian 11 Linux

Come configurare WireGuard VPN su Debian 11