GNU/Linux >> Tutoriales Linux >  >> Debian

Configuración de Etherpad en Debian

El siguiente artículo asume que ya está familiarizado con lo que es Etherpad. Si eso
no es el caso, entonces el artículo de wikipedia debería ser suficiente para una introducción rápida.

Aunque el proyecto Etherpad está bien documentado, no siempre es fácil
tener sentido a partir de la documentación. Este artículo pretende condensar algunos de los
tutoriales disponibles en el wiki del proyecto de una manera fácil de seguir.

Cubriremos lo siguiente:

  • Instalación de Etherpad como servicio
  • Habilitación de TLS con certificados autofirmados
  • Usando mysql base de datos
  • Uso de Nginx con Etherpad

Instalación de Etherpad

A partir de ahora, Debian 11 no proporciona ningún etherpad paquetes Entonces, tendremos que
instálelo manualmente desde GitHub. Afortunadamente, los pasos son muy fáciles (el
# denota raíz):

  1. Cree un usuario etherpad y asígnelo al etherpad grupo:

    # useradd --comment "Etherpad Service User" --create-home --home-dir /usr/local/etherpad --user-group etherpad
  2. Descargue y ejecute el script de configuración:

    # curl -sL https://deb.nodesource.com/setup_14.x | bash -
  3. Instalar nodejs . También necesitaremos git .

    # apt install -y nodejs git
  4. Cambiar al etherpad usuario y clone el repositorio del proyecto.

    # su - etherpad

    etherpad$ git clone --depth 1 --branch masterhttps://github.com/ether/etherpad-lite.git/usr/local/etherpad/src
  5. Instala las dependencias requeridas:

    etherpad$ /usr/local/etherpad/src/bin/installDeps.sh
  6. Cree un archivo de unidad systemd en /etc/systemd/system/ directorio.

    /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. Permitir cortafuegos, etc. para abrir el puerto 9001 .Entonces, finalmente podemos empezar
    el etherpad Servicio:

    # systemctl start etherpad

Todavía tenemos muchas configuraciones por hacer. Sin embargo, ahora podemos ver la instancia de etherpad en nuestro navegador.

Habilitación de TLS con certificados autofirmados

Si desea que una Autoridad de certificación (CA) firme sus certificados, puede hacerlo. Sin embargo, aquí voy a autofirmar todo. Me refiero al artículo wiki que se puede encontrar aquí.

Abra settings.json en el etherpad directorio y busque la sección ssl
(debería estar alrededor de la línea 174) y modifíquelo en consecuencia:

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

Cree un directorio /usr/local/etherpad/ssl como el etherpad usuario, cd en ese directorio y ejecute los siguientes comandos.

Genere la clave del servidor proporcionando la frase de contraseña requerida:

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

Ahora genere los certificados:

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

Ahora vamos a usar ese archivo para crear otra clave. De esa forma, no tendremos que proporcionar una frase de contraseña cada vez que se inicie nuestro servidor.

Cambiar el nombre de la clave:

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

Luego genera nuestra segunda clave:

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

Ahora necesitamos autofirmar nuestros certificados. Para eso tenemos que generar otra clave que firmará nuestro
epl-server.key . Los pasos son similares a los anteriores.

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

Cree un certificado de firma:

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

Esto nos pedirá alguna información. Se pueden dejar por defecto pero el Nombre Común (CN) debe ser diferente al CN de nuestra propia clave. Así que simplemente podemos agregar "(CA)" al CN.

Finalmente firmemos nuestro epl-server.key con el certificado de nuestra 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

Esto dará como resultado un epl-server.crt autofirmado archivo.

Ahora asegúrese de que los archivos tengan permisos seguros:

chmod 400 epl-server.key

chown etherpad epl-server.key

chmod 400 epl-server.crt

chown etherpad epl-server.crt

Otros archivos se pueden mover a un lugar diferente o simplemente eliminar. Voy a dejarlos como están por ahora. No obstante, podemos reiniciar el etherpad servicio ahora y obtendremos https funcionando aunque los navegadores arrojarán advertencias e incluso se negarán a conectarse ya que nuestros certificados no se proporcionaron con la información adecuada.

Uso de MySQL con Etherpad

Hasta ahora, nuestra instancia de Etherpad ha estado usando dirtyDB base de datos que no es adecuada solo para fines de prueba/desarrollo. Para que nuestra instancia sea completamente adecuada para la producción, ahora cambiaremos a mysql . Una vez más, todos los créditos de las instrucciones de instalación van a la wiki del proyecto. Simplemente decidí, para resumir todo en un solo lugar, no hacerte saltar a diferentes enlaces.

Entonces, instalemos los paquetes requeridos (estoy usando mariadb pero las cosas son básicamente lo mismo):

# apt install -y mariadb-server

Ahora ejecute mysql_secure_installation como root proporcionando los parámetros requeridos.

Una vez hecho esto, podemos proceder a configurar la base de datos:

1. Conéctese a mysql con el siguiente comando:

# mysql -u root -p

2. Una vez dentro, crea una base de datos:

CREATE DATABASE `etherpad_lite_db`;

Sí, esos son acentos graves alrededor del nombre de la base de datos. Y no olvides el punto y coma 😉

3. Cree un usuario de base de datos proporcionando su propio nombre de usuario y contraseña:

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

4. Cambie los permisos para el nuevo usuario:

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

Aquí, etherpad fue el usuario que creé anteriormente.

Nuestra base de datos está creada, por lo que ahora podemos exit desde el aviso y proceda a dejar que el etherpad servicio conozca los logros que hemos logrado, es decir, modificando el settings.json archivo.

Busque el dbtype con su editor de texto, debería estar alrededor de la línea 196 y cámbielo para que se parezca a lo siguiente:

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

Obviamente, no voy a revelar la contraseña aquí. Eso sería peligroso ya que uso el mismo para todas mis cuentas (no, en realidad no; no reutilices las contraseñas).

Ahora podemos reiniciar los servicios:

# systemctl restart mysqld etherpad

Uso de Nginx con Etherpad

Ahora configuremos nginx para reenviar el tráfico http/s estándar al etherpad Servicio.

Asegurémonos de tener nginx instalado:

# apt install nginx

Cree un archivo en /etc/nginx/sites-available/etherpad y que su contenido sea:

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

Ahora ejecute los siguientes comandos:

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/

Como puede ver, solo estamos copiando los certificados SSL y las claves en nginx.

Nginx viene con un archivo de configuración predeterminado que está habilitado. Arreglemos eso.

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

Y habilitemos nuestro etherpad archivo de configuración para nginx.

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

Asegúrate de no haber cometido ningún error en la configuración:

# nginx -t

Ahora reiniciemos nuestros servicios por última vez:

# systemctl restart etherpad mysqld nginx

Nuestra configuración está básicamente terminada. Por supuesto, podemos hacer más, pero creo que hemos hecho lo suficiente (además de cambiar cosas obvias como el hecho de que configuramos nuestra propia CA) para que esto sea utilizable. Dejaré al lector explorar más a partir de
los diversos recursos que he vinculado a lo largo del artículo. Eso es todo por ahora. Gracias por leer hasta el final. No olvide consultar mis otros artículos en unixcop.com.


Debian
  1. Configuración de ProFTPd + TLS en Debian Squeeze

  2. Configuración de un servidor y cliente NFS en Debian 9 (Stretch)

  3. Configurar claves SSH en el sistema Debian 9:¿cómo hacerlo?

  4. Debian – ¿Configurando Mod4 en Awesome?

  5. Debian – ¿No se puede iniciar la instalación de Devuan/debian?

Cómo configurar claves SSH en Debian 9

Cómo configurar claves SSH en Debian 10

Cómo instalar Etherpad en Debian 11

Revisión de Debian 11

Cómo configurar claves SSH en Debian 11 Linux

Cómo configurar WireGuard VPN en Debian 11