Cómo configurar un sistema de mesa de ayuda con OTRS

/

¿Qué es OTRS?

OTRS es una suite de gestión de servicios que incluye emisión de tickets, automatización de procesos, flujo de trabajo y notificaciones, entre sus muchas características. Los procesos se pueden personalizar para incorporar ITIL o requisitos de seguridad específicos. Los profesionales de ITSM (IT Service Management – Gestión de Servicios de Tecnologías de la Información), atención al cliente y seguridad corporativa utilizan OTRS para estructurar la comunicación y optimizar los procesos internos para que puedan responder rápidamente a cualquier situación y brindar el mejor servicio posible de una manera rentable.

Si aún no conoce el producto y desea profundizar en sus características, para mayor información visite la página del proyecto en el siguiente enlace -> https://otrs.com/es/home/

¿Qué aprenderemos en esta guía?

OTRS, también conocido como Open Source Ticket Request System, es un servicio de asistencia y un sistema de gestión de servicios de TI. Proporciona un único punto de contacto para usuarios, clientes, personal de TI, servicios de TI y cualquier organización externa. El programa está escrito en Perl, admite una variedad de bases de datos (MySQL, PostgreSQL, etc.) y puede integrarse con directorios LDAP.

En este tutorial, instalaremos OTRS Community Edition en un servidor o droplet con el sistema operativo Ubuntu 18.04 en la plataforma DigitalOcean y configurará un sistema simple de mesa de ayuda, que le permitirá recibir y procesar solicitudes de sus clientes utilizando la interfaz web y el correo electrónico.

Si bien es cierto, es factible desplegar el servidor dentro de nuestro centro de trabajo. Pero debido a los problemas sociales asociados a la enfermedad del COVIR-19, he creído conveniente adicionar los pasos necesarios para poder desplegar este servidor en la nube y poder acceder a él desde cualquier parte del mundo garantizando la seguridad a través de un canal cifrado; favoreciendo así el trabajo a distancia que tan necesario es hoy en día.

Pasos a seguir

Para este paso inicial tenemos dos opciones, la primera opción es crear el droplet directamente desde la plataforma web de DigitalOcean la cual es muy sencilla de manipular, o la segunda opción que consiste en crearlo desde nuestra interfaz de línea de comandos (CLI) según vimos en el tutorial acerca del uso de la herramienta Doctl.

Como la creación de un droplet a través de la plataforma web no necesita mucha explicación, utilizaremos la segunda opción.

Para este tutorial usaré Doctl para crear un nuevo proyecto y agregar en él nuestro droplet.

Para conocer más sobre la herramienta Doctl, puedes ingresar al tutorial a través del siguiente enlace -> http://itsge.org/digitalocean-a-traves-de-doctl-cliente-oficial-de-interfaz-de-linea-de-comandos-cli/

Utilizaremos el Windows Terminal (Preview) para la ejecución de todo el tutorial. Para conocer como preparar nuestro entorno de trabajo recomiendo leer el apartado «Preparando nuestro entorno de trabajo» del siguiente enlace -> http://itsge.org/digitalocean-a-traves-de-doctl-cliente-oficial-de-interfaz-de-linea-de-comandos-cli/

Para conectarnos a nuestro servidor utilizaré en este tutorial nuestra consola de Ubuntu WSL (Windows Subsystem for Linux). La instalación de Ubuntu 18.04 WSL en Windows 10 se explica detalladamente en el siguiente enlace -> https://ubuntu.com/wsl

Creación de proyecto

Ejecutaremos el siguiente comando para crear el proyecto:

doctl projects create --name itsge.site --purpose "Despliegue de servidores"

El comando anterior, creará nuestro nuevo proyecto y desplegará el siguiente resultado:

Owner ID    Name          Description    Purpose                            Environment    Is Default?    Created At              
641647     itsge.site                   Other: Despliegue de servidores                   false          2020-04-09T03:04:49Z    

Creación de droplet

Para la creación de nuestro droplet, debemos conocer tres parámetros; la distribución a utilizar para nuestro servidor, para nuestro caso Ubuntu 18.04 x64 LTS; el centro de datos donde vamos a alojar nuestro droplet, para este ejemplo usaremos en centro de datos ubicado en Nueva York; el tercer parámetro que debemos conocer es la cantidad de memoria RAM, disco duro y procesadores virtuales, para el caso práctico usaremos 25 GB de disco duro, 1 vCPU y 1 GB de memoria RAM.

Para conocer el parámetro exacto para cada caso ejecutaremos los siguiente tres comandos:

doctl compute list-distribution
doctl compute region list
doctl compute size list

De acuerdo a los resultados anteriores, el comando para crear mi doplet con el nombre itsge.site es el siguiente:

doctl compute droplet create itsge.site --image ubuntu-18-04-x64 --region nyc1 --size s-1vcpu-1gb

Luego que el droplet ha sido creado recibiremos un correo de confirmación, donde además tendremos acceso a la IP pública, nombre de usuario y clave de acceso.

Los pasos para acceder a nuestro servidor lo podemos encontrar en la sección «Ingresar por primera vez a nuestro VPS» ubicada en el siguiente enlace -> http://itsge.org/como-instalar-jitsi-meet-en-ubuntu-18-04-lts/

Creación de dominio

Utilizaremos un dominio donde crearemos los registros necesarios para poder resolver los nombres de los subdominios que creamos conveniente desplegar en internet.

Para ello ingresaremos el siguiente comando:

doctl compute domain create itsge.site

Asignación de recursos a nuestro proyecto

Hasta ahora hemos creado un proyecto llamado itsge.site, un droplet llamado itsge.site y además un dominio llamado itsge.site.

El droplet y el dominio tienen que ser asignados a nuestro proyecto. Para ello necesitamos saber el ID de nuestro droplet. Ejecutaremos el siguiente comando:

doctl compute droplet list 

El resultado que deseamos es el siguiente:

ID             Name                  Public IPv4       Memory    VCPUs    Disk    Region    
...
187887841      itsge.site            68.183.54.189     1024      1        25      nyc3      
...

Ahora ejecutamos el siguiente comando para conocer el ID de nuestro proyecto:

doctl projects list

El resultado que deseamos es el siguiente:

ID                                      Owner UUID                                  Owner ID    Name
...
1480997a-8a81-4163-8a32-6bd24e26d9f3    87895f9d72c0b951d7754e77005147387764be1d    3641647     itsge.site
...

Conociendo todos estos parámetros, procedemos a asignar el droplet y el dominio al proyecto:

doctl projects resources assign 1480997a-8a81-4163-8a32-6bd24e26d9f3 --resource=do:droplet:187887841 --resource=do:domain:itsge.site

El resultado es el siguiente:

URN                     Assigned At             Status
do:droplet:187887841    2020-04-09T03:39:09Z    assigned
do:domain:itsge.site    2020-04-09T03:55:42Z    assigned

Compra de dominio

En los laboratorios anteriores se requería tener un dominio contratado para la creación de los registros DNS, en esta oportunidad vamos a comprar un nuevo dominio para trabajar con éste todos los futuros proyectos y además enseñar como conseguir tu propio dominio en internet.

Trabajaré en esta oportunidad con un proveedor de dominios argentino donweb.com, en el cual pude adquirir mi dominio a un precio razonable. En este punto cada quien puede elegir el proveedor que crean conveniente y que se ajuste a sus necesidades.

El proceso de compra es muy sencillo, solo hay que registrarse en la página del proveedor y luego buscar el dominio que deseen.

Como pueden apreciar, el alquiler del dominio ITSGE.SITE por el periodo de un año me costo 14.20 soles, un aproximado de 4 dólares americanos.

La pasarela de pago utilizada es PayU, así que podrán utilizar cualquier tipo de tarjeta para realizar su compra.

Modificar NameServer en nuestro proveedor de dominio

Como estamos centralizando la gestión de nuestro VPS en la plataforma de DigitalOcean, no vamos a utilizar los servidores de nombre o Name Servers de nuestro proveedor de dominio. En su lugar utilizaremos los Name Servers de DigitalOcean.

Antes de hacer algún cambio consultaremos con que Name Servers estamos trabajando en nuestro dominio. Para ello utilizaremos la herramienta whois desde nuestro terminal de Ubuntu en Windows 10.

whois itsge.site

Como podemos observar, estamos utilizando los Name Servers NS1.HOSTMAR.COM, NS2.DONWEB.PE, NS2.DONWEB.COM.BR, NS1.DONWEB.MX, NS1.DONWEB.CO, NS2.DONWEB.BO, NS1.DONWEB.UY, NS1.DONWEB.CL.

Para evitar usar estos Name Servers y tener dos plataformas de gestión (DigitalOcean y donweb) cambiaremos esos parámetros por los de DigitalOcean obteniendo como resultado una sola plataforma de gestión.

Ingresamos a la plataforma de donweb al apartado de Mis Servicios > Mis Dominios. Hacemos click en el botón de Configuración.

Ingresamos a la sección de DNS y hacemos click en el botón Editar.

Ingresamos los Name Servers de DigitalOcean ns1.digitalocean.com, ns2.digitalocean.com y ns3.digitalocean.com; tal como se muestra en la siguiente imagen:

Los cambios en el servidor de nombres tardarán un tiempo en propagarse después de haberlos guardado. Durante este tiempo, el registrador de dominios comunica los cambios que ha realizado con su ISP (Proveedor de servicios de Internet). A su vez, su ISP almacena en caché los nuevos servidores de nombres para garantizar conexiones rápidas del sitio. Este proceso generalmente demora aproximadamente 30 minutos, pero podría demorar algunas horas, dependiendo de su registrador y los métodos de comunicación de su ISP.

Una vez que su dominio apunte a los servidores de nombres de DigitalOcean, puede comenzar a administrar sus registros DNS.

Luego procedemos a verificar nuevamente con nuestra herramienta whois.

whois itsge.site

Como podemos apreciar, hemos cambiado de forma exitosa los Name Servers en nuestro proveedor de dominios.

Esto quiere decir, que cualquier registro DNS que deseemos crear, a partir de ahora lo tendremos que hacer en nuestra plataforma de DigitalOcean mediante la interfaz web o mediante nuestra herramienta de interfaz de línea de comandos Doctl.

Creación del primer registro DNS

Nuestro siguiente paso consiste en crear un registro DNS que permita la resolución del FQDN itsge.local a la IP pública 68.183.54.189.

Se requiere la creación de un registro tipo A con itsge.site apuntando a la dirección IP pública de nuestro servidor.

doctl compute domain records create itsge.site --record-type A --record-name @ --record-data 68.183.54.189 --record-ttl 3600

El resultado es el siguiente:

Verificamos los registros DNS creados en nuestro dominio.

doctl compute domain records list itsge.site
ID          Type    Name    Data                    Priority    Port    TTL     Weight
96280411    SOA     @       1800                    0           0       1800    0
96280414    NS      @       ns1.digitalocean.com    0           0       1800    0
96280415    NS      @       ns2.digitalocean.com    0           0       1800    0
96280416    NS      @       ns3.digitalocean.com    0           0       1800    0
96317654    A       @       134.122.123.184         0           0       3600    0

Nuevamente verificamos con nuestra herramienta nslookup.

C:\Users\htayp>nslookup
Servidor predeterminado:  dns.google
Address:  8.8.8.8

> itsge.site
Servidor:  dns.google
Address:  8.8.8.8

Respuesta no autoritativa:
Nombre:  itsge.site
Address:  134.122.123.184

Ahora realizamos una prueba de conectividad con nuestra herramienta ping.

C:\Users\htayp>ping itsge.site

Haciendo ping a itsge.site [134.122.123.184] con 32 bytes de datos:
Respuesta desde 134.122.123.184: bytes=32 tiempo=213ms TTL=53
Respuesta desde 134.122.123.184: bytes=32 tiempo=222ms TTL=53
Respuesta desde 134.122.123.184: bytes=32 tiempo=160ms TTL=53
Respuesta desde 134.122.123.184: bytes=32 tiempo=191ms TTL=53

Estadísticas de ping para 134.122.123.184:
    Paquetes: enviados = 4, recibidos = 4, perdidos = 0
    (0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
    Mínimo = 160ms, Máximo = 222ms, Media = 196ms

Primeros pasos en nuestro servidor Ubuntu 18.04 LTS x64

Accederemos mediante el protocolo SSH a nuestro servidor de la siguiente manera:

ssh root@itsge.site

Aceptamos la conexión propuesta y ya estaremos dentro de nuestro VPS.

henrymtc@DESKTOP-1D4RFEF:/mnt/c/Users/htayp$ ssh root@itsge.site
The authenticity of host 'itsge.site (134.122.123.184)' can't be established.
ECDSA key fingerprint is SHA256:kE0HexUOBzILR+NU5XOHsW5ScpMse5QkB7JDxZbYGqg.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'itsge.site,134.122.123.184' (ECDSA) to the list of known hosts.
root@itsge.site's password:
You are required to change your password immediately (root enforced)
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-66-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sat Apr 11 18:47:24 UTC 2020

  System load:  0.0               Processes:           82
  Usage of /:   4.0% of 24.06GB   Users logged in:     0
  Memory usage: 11%               IP address for eth0: 134.122.123.184
  Swap usage:   0%

0 packages can be updated.
0 updates are security updates.



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

Changing password for root.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
root@itsge:~#

Como lo hemos hecho en otro tutorial, crearemos un nuevo usuario con privilegios administrativos y desactivaremos por seguridad el acceso por ssh al usuario root.

adduser henrymtc
usermod -aG sudo henrymtc
root@itsge:~# adduser henrymtc
Adding user `henrymtc' ...
Adding new group `henrymtc' (1000) ...
Adding new user `henrymtc' (1000) with group `henrymtc' ...
Creating home directory `/home/henrymtc' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for henrymtc
Enter the new value, or press ENTER for the default
        Full Name []: Henry Mitchell Taype Cruzado
        Room Number []: TI
        Work Phone []: +51956927769
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

root@itsge:~# usermod -aG sudo henrymtc

Cerramos nuestra sesión y procedemos a ingresar con nuestro nuevo usuario.

exit
ssh henrymtc@itsge.site
root@itsge:~# exit
logout
Connection to itsge.site closed.
henrymtc@DESKTOP-1D4RFEF:/mnt/c/Users/htayp$ ssh henrymtc@itsge.site
henrymtc@itsge.site's password:
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-66-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sat Apr 11 18:52:35 UTC 2020

  System load:  0.01              Processes:           82
  Usage of /:   4.0% of 24.06GB   Users logged in:     0
  Memory usage: 11%               IP address for eth0: 134.122.123.184
  Swap usage:   0%

0 packages can be updated.
0 updates are security updates.



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

henrymtc@itsge:~$

El siguiente paso es opcional, pero se recomienda deshabilitar el acceso del usuario root por ssh, para lo cual ejecutaremos el siguiente código:

sudo nano /etc/ssh/sshd_config

Modificamos la variable de PermitRootLogin yes a PermitRootLogin no en el archivo de configuración de SSH.

Presionamos la combinación de teclas Ctrl + X para guardar el archivo, respondemos que si deseamos sobreescribir y aceptamos el nombre del archivo y la ruta que nos indica presionando la tecla Enter.

Reiniciamos el servicio ssh para aplicar los cambios.

sudo /etc/init.d/ssh restart

Como recomendación actualizaremos los repositorios y luego instalaremos las actualizaciones de los paquetes que vienen de fábrica en nuestro VPS.

sudo apt update -y
sudo apt upgrade -y

Durante el proceso de actualización se nos informará dos veces que existe una nueva versión del archivo menu.lst del paquete de gestor de arranque GRUB, para lo cual responderemos que deseamos mantener la versión actual instalada.

Al finalizar reiniciaremos el servidor para que las actualizaciones surtan efecto.

sudo reboot

Instalación del servidor web Apache

El servidor web Apache se encuentra entre los servidores web más populares del mundo. Está bien documentado y se ha utilizado ampliamente durante gran parte de la historia de la web, lo que lo convierte en una excelente opción predeterminada para alojar un sitio web.

Instalaremos Apache usando el administrador de paquetes apt:

sudo apt install -y apache2

Verificamos en nuestro navegador web preferido el acceso a nuestro servidor web a través de la URL http://itsge.site.

Instalación del gestor de base de datos MySQL

Ahora que tiene su servidor web en funcionamiento, es hora de instalar MySQL. MySQL es un sistema de gestión de bases de datos. Básicamente, organizará y proporcionará acceso a bases de datos donde su sitio puede almacenar información.

Nuevamente, usaremos apt para adquirir e instalar este software:

sudo apt install -y mysql-server

Cuando se complete la instalación, ejecute un script de seguridad simple que viene preinstalado con MySQL que eliminará algunos valores predeterminados peligrosos y bloqueará el acceso a su sistema de base de datos. Inicie el script interactivo ejecutando:

sudo mysql_secure_installation

A continuación indicaremos que no deseamos habilitar el plugin de claves seguras, ingresamos una clave para el usuario de root del gestor de base de datos y respondemos Y al resto de preguntas.

henrymtc@otrs:~$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: n
Please set the password for root here.

New password:

Re-enter new password:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

Habilitar el plugin de contraeñas seguras en MySQL rechazará las contraseñas que no coincidan con los criterios especificados con un error. Esto causará problemas si usa una contraseña débil junto con un software que configura automáticamente las credenciales de usuario de MySQL, como los paquetes de Ubuntu para phpMyAdmin. Es seguro dejar la validación deshabilitada, pero siempre debe usar contraseñas seguras y únicas para las credenciales de la base de datos.

Tengamos en cuenta que en los sistemas Ubuntu que ejecutan MySQL 5.7 (y versiones posteriores), el usuario root de MySQL está configurado para autenticarse utilizando el complemento auth_socket de forma predeterminada en lugar de con una contraseña. Esto permite una mayor seguridad y facilidad de uso en muchos casos, pero también puede complicar las cosas cuando necesita permitir que un programa externo acceda al usuario.

Para verificar esto, ejecutamos los siguientes comandos:

sudo mysql
SELECT user,authentication_string,plugin,host FROM mysql.user;

Obtendremos el siguiente resultado:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *895F850544AEB925A06CA8EAAF02697ACDA97972 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

En nuestro servidor podemos ver que el usuario root se autentica usando el complemento auth_socket.

Para nuestro tutorial usaremos una contraseña cuando se conecta a MySQL como root, por lo tanto deberemos cambiar el método de autenticación de auth_socket a mysql_native_password. Para hacer esto ejecutamos desde el terminal lo siguiente:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

En el comando anterior tenemos que sustituir la palabra password por una clave segura.

Luego, ejecutamos el siguiente comando que le dice al servidor que vuelva a cargar las tablas de concesión y ponga en práctica sus nuevos cambios:

FLUSH PRIVILEGES;

Verificamos nuevamente los métodos de autenticación empleados por cada uno de los usuarios para confirmar que root ya no se autentica utilizando el complemento auth_socket:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *A1397CAC6BDE8C0FAC144D4FFF45B0397D7B9C8F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *895F850544AEB925A06CA8EAAF02697ACDA97972 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Puede ver en la salida obtenida que el usuario root de MySQL ahora se autentica usando una contraseña. Una vez que confirmemos esto en nuestro servidor, salimos del shell de MySQL con el siguiente comando:

exit

En este punto, nuestro sistema de base de datos ya está configurado y listo para ser usado.

Instalación del paquete OTRS y los módulos Perl

En este paso, instalaremos OTRS y un conjunto de módulos Perl que aumentarán la funcionalidad del sistema. OTRS está disponible en el administrador de paquetes de Ubuntu, pero la documentación oficial recomienda instalar OTRS desde la fuente oficial.

Descargaremos el archivo fuente con el comando wget. Para este tutorial, descargaremos la versión 6.0.27:

wget http://ftp.otrs.org/pub/otrs/otrs-6.0.19.tar.gz

A continuación, descomprimimos el archivo con la herramienta tar:

tar xzf otrs-6.0.19.tar.gz

Movemos el contenido del archivo al directorio /opt/otrs:

sudo mv otrs-6.0.19 /opt/otrs

Debido a que OTRS está escrito en Perl, usa varios módulos de este lenguaje. Comprobamos si faltan módulos utilizando el script CheckModules.pl incluido con OTRS:

sudo /opt/otrs/bin/otrs.CheckModules.pl

Veremos un resultado como este, que enumera los módulos que ya se han descargado y los que falta:

  o Apache::DBI......................FAILED! Not all prerequisites for this module correctly installed.
  o Apache2::Reload..................ok (v0.13)
  o Archive::Tar.....................ok (v2.24)
  o Archive::Zip.....................Not installed! To install, you can use: 'apt-get install -y libarchive-zip-perl'. (required - Required for compressed file generation.)
  o Crypt::Eksblowfish::Bcrypt.......Not installed! To install, you can use: 'apt-get install -y libcrypt-eksblowfish-perl'. (optional - For strong password hashing.)
  o Date::Format.....................ok (v2.24)
  o DateTime.........................Not installed! To install, you can use: 'apt-get install -y libdatetime-perl'. (required)
    o DateTime::TimeZone.............Not installed! To install, you can use: 'cpan DateTime::TimeZone'. (optional - Olson time zone database, required for correct time calculations.)
  o DBI..............................Not installed! To install, you can use: 'apt-get install -y libdbi-perl'. (required)
  o DBD::mysql.......................Not installed! To install, you can use: 'apt-get install -y libdbd-mysql-perl'. (optional - Required to connect to a MySQL database.)
  o DBD::ODBC........................Not installed! To install, you can use: 'apt-get install -y libdbd-odbc-perl'. (optional - Required to connect to a MS-SQL database.)
  o DBD::Oracle......................Not installed! (optional - Required to connect to a Oracle database.)
  o DBD::Pg..........................Not installed! To install, you can use: 'apt-get install -y libdbd-pg-perl'. (optional - Required to connect to a PostgreSQL database.)
  o Digest::SHA......................ok (v5.96)
  o Encode::HanExtra.................Not installed! To install, you can use: 'apt-get install -y libencode-hanextra-perl'. (optional - Required to handle mails with several Chinese character sets.)
  o IO::Socket::SSL..................Not installed! To install, you can use: 'apt-get install -y libio-socket-ssl-perl'. (optional - Required for SSL connections to web and mail servers.)
  o JSON::XS.........................Not installed! To install, you can use: 'apt-get install -y libjson-xs-perl'. (optional - Recommended for faster AJAX/JavaScript handling.)
  o List::Util::XS...................ok (v1.46_02)
  o LWP::UserAgent...................FAILED! Not all prerequisites for this module correctly installed.
  o Mail::IMAPClient.................Not installed! To install, you can use: 'apt-get install -y libmail-imapclient-perl'. (optional - Required for IMAP TLS connections.)
    o IO::Socket::SSL................Not installed! To install, you can use: 'apt-get install -y libio-socket-ssl-perl'. (optional - Required for SSL connections to web and mail servers.)
    o Authen::SASL...................Not installed! To install, you can use: 'apt-get install -y libauthen-sasl-perl'. (optional - Required for MD5 authentication mechanisms in IMAP connections.)
    o Authen::NTLM...................Not installed! To install, you can use: 'apt-get install -y libauthen-ntlm-perl'. (optional - Required for NTLM authentication mechanism in IMAP connections.)
  o ModPerl::Util....................Not installed! To install, you can use: 'apt-get install -y libapache2-mod-perl2'. (optional - Improves Performance on Apache webservers dramatically.)
  o Net::DNS.........................Not installed! To install, you can use: 'apt-get install -y libnet-dns-perl'. (required)
  o Net::LDAP........................Not installed! To install, you can use: 'apt-get install -y libnet-ldap-perl'. (optional - Required for directory authentication.)
  o Net::SMTP........................ok (v3.10)
    Please consider updating to version 3.11 or higher: This version fixes email sending (bug#14357).
  o Template.........................Not installed! To install, you can use: 'apt-get install -y libtemplate-perl'. (required - Template::Toolkit, the rendering engine of OTRS.)
  o Template::Stash::XS..............Not installed! To install, you can use: 'apt-get install -y libtemplate-perl'. (required - The fast data stash for Template::Toolkit.)
  o Text::CSV_XS.....................Not installed! To install, you can use: 'apt-get install -y libtext-csv-xs-perl'. (optional - Recommended for faster CSV handling.)
  o Time::HiRes......................ok (v1.9741)
  o XML::LibXML......................Not installed! To install, you can use: 'apt-get install -y libxml-libxml-perl'. (required - Required for XML processing.)
  o XML::LibXSLT.....................Not installed! To install, you can use: 'apt-get install -y libxml-libxslt-perl'. (optional - Required for Generic Interface XSLT mapping module.)
  o XML::Parser......................Not installed! To install, you can use: 'apt-get install -y libxml-parser-perl'. (optional - Recommended for XML processing.)
  o YAML::XS.........................Not installed! To install, you can use: 'apt-get install -y libyaml-libyaml-perl'. (required - Required for fast YAML processing.)

Algunos módulos solo son necesarios para la funcionalidad opcional, como la comunicación con otras bases de datos o el manejo del correo con conjuntos de caracteres específicos; otros en cambio si son necesarios para que el programa funcione.

Aunque los comandos sugeridos para descargar estos módulos usan apt-get, en este tutorial instalaremos los módulos que faltan con el comando apt, usaremos el siguiente comando:

sudo apt install libapache2-mod-perl2 libdbd-mysql-perl libtimedate-perl libnet-dns-perl libnet-ldap-perl \
    libio-socket-ssl-perl libpdf-api2-perl libsoap-lite-perl libtext-csv-xs-perl \
    libjson-xs-perl libapache-dbi-perl libxml-libxml-perl libxml-libxslt-perl libyaml-perl \
    libarchive-zip-perl libcrypt-eksblowfish-perl libencode-hanextra-perl libmail-imapclient-perl \
    libtemplate-perl libdatetime-perl

Comprobamos nuevamente si faltan módulos utilizando el script:

sudo /opt/otrs/bin/otrs.CheckModules.pl

Verificamos que algunos paquetes opciones no han sido instalados pero todos los paquetes requeridos ya están instalados.

  o Apache::DBI......................ok (v1.12)
  o Apache2::Reload..................ok (v0.13)
  o Archive::Tar.....................ok (v2.24)
  o Archive::Zip.....................ok (v1.60)
  o Crypt::Eksblowfish::Bcrypt.......ok (v0.009)
  o Date::Format.....................ok (v2.24)
  o DateTime.........................ok (v1.46)
    o DateTime::TimeZone.............ok (v2.18)
    Please consider updating to version 2.20 or higher: This version includes recent time zone changes for Chile.
  o DBI..............................ok (v1.640)
  o DBD::mysql.......................ok (v4.046)
  o DBD::ODBC........................Not installed! To install, you can use: 'apt-get install -y libdbd-odbc-perl'. (optional - Required to connect to a MS-SQL database.)
  o DBD::Oracle......................Not installed! (optional - Required to connect to a Oracle database.)
  o DBD::Pg..........................Not installed! To install, you can use: 'apt-get install -y libdbd-pg-perl'. (optional - Required to connect to a PostgreSQL database.)
  o Digest::SHA......................ok (v5.96)
  o Encode::HanExtra.................ok (v0.23)
  o IO::Socket::SSL..................ok (v2.060)
    Please consider updating to version 2.066 or higher: This version fixes email sending (bug#14357).
  o JSON::XS.........................ok (v3.04)
  o List::Util::XS...................ok (v1.46_02)
  o LWP::UserAgent...................ok (v6.26)
  o Mail::IMAPClient.................ok (v3.39)
    o IO::Socket::SSL................ok (v2.060)
    Please consider updating to version 2.066 or higher: This version fixes email sending (bug#14357).
    o Authen::SASL...................ok (v2.16)
    o Authen::NTLM...................Not installed! To install, you can use: 'apt-get install -y libauthen-ntlm-perl'. (optional - Required for NTLM authentication mechanism in IMAP connections.)
  o ModPerl::Util....................ok (v2.000010)
  o Net::DNS.........................ok (v1.10)
  o Net::LDAP........................ok (v0.65)
  o Net::SMTP........................ok (v3.10)
    Please consider updating to version 3.11 or higher: This version fixes email sending (bug#14357).
  o Template.........................ok (v2.27)
  o Template::Stash::XS..............ok (undef)
  o Text::CSV_XS.....................ok (v1.34)
  o Time::HiRes......................ok (v1.9741)
  o XML::LibXML......................ok (v2.0128)
  o XML::LibXSLT.....................ok (v1.95)
  o XML::Parser......................ok (v2.44)
  o YAML::XS.........................ok (v0.69)

Ahora que tenemos OTRS y sus dependencias instaladas en nuestro servidor, podemos configurar OTRS junto a Apache y MySQL.

Configuración del servidor OTRS, Apache y MySQL

En este paso, crearemos un usuario del sistema para OTRS y luego configuraremos el servidor Apache y MySQL para que funcione con OTRS.

Creamos el usuario llamado otrs para ejecutar funciones OTRS con el comando useradd:

sudo useradd -d /opt/otrs -c 'usuario OTRS' otrs

El flag -d establece el directorio de inicio del usuario en /opt/otrs, y -c establece un comentario ‘usuario OTRS’ para describir al usuario.

A continuación, agregamos el usuario otrs al grupo de servidores web:

sudo usermod -G www-data otrs

OTRS viene con un archivo de configuración predeterminado /opt/otrs/Kernel/Config.pm.dist. Para activarlo se debe duplicar este archivo sin la extensión .dist:

sudo cp /opt/otrs/Kernel/Config.pm.dist /opt/otrs/Kernel/Config.pm

Ahora, navegamos al directorio /opt/otrs:

cd /opt/otrs

Desde aquí, ejecutamos el script otrs.SetPermissions.pl. Detectará la configuración correcta de usuarios y grupos; y además, establecerá los permisos de archivos y directorios para OTRS.

sudo bin/otrs.SetPermissions.pl

Esto producirá el siguiente resultado:

Setting permissions on /opt/otrs

Los permisos correctos ahora están establecidos.

A continuación, activamos el archivo de configuración de apache2 y nos aseguramos de que esté cargado después de todas las demás configuraciones. Para hacer esto, hacemos un enlace simbólico con el prefijo zzz_:

sudo ln -s /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/sites-enabled/zzz_otrs.conf

OTRS requiere que algunos módulos de Apache estén activos para un funcionamiento óptimo. Podemos activarlos a través de la herramienta a2enmod. Aunque algunos de estos ya se han habilitado, es una buena idea verificarlos todos:

sudo a2enmod perl
sudo a2enmod headers
sudo a2enmod deflate
sudo a2enmod filter

Estos módulos permiten a Apache trabajar con Perl, controlar encabezados HTTP, comprimir la salida del servidor y configurar filtros de contenido de salida.

Reiniciamos nuestro servidor web para aplicar la nueva configuración:

sudo systemctl restart apache2

Antes de continuar con el siguiente paso y ejecutar el instalador web, cambiemos algunos de los parámetros de configuración de MySQL. Abra el archivo de configuración de MySQL en su editor de texto preferido. En este tutorial usaremos la herramienta nano:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Busquemos las siguientes opciones en la sección [mysqld]. Para max_allowed_packet y query_cache_size, cambiemos los valores a 64M y 32M respectivamente, como se visualiza en el siguiente bloque de código:

...
key_buffer_size         = 16M
max_allowed_packet      = 64M
thread_stack            = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover-options  = BACKUP
#max_connections        = 100
#table_open_cache       = 64
#thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit       = 1M
query_cache_size        = 32M
...

Esto ajusta el tamaño de paquete máximo permitido y el tamaño de caché de consulta para que MySQL pueda interactuar con OTRS.

Luego agregamos las siguientes opciones adicionales en la sección [mysqld], al final del archivo:

...
innodb_log_file_size = 256M
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

Esto establece el tamaño del archivo de registro de la base de datos, determina el conjunto de caracteres y la clasificación, y crea una cadena init_connect para establecer el conjunto de caracteres al iniciar el servidor MySQL.

Guardamos y cerramos mysqld.cnf presionando CTRL + X, seguido de Y y luego ENTER. Luego, reiniciamos nuestro servidor MySQL para aplicar los nuevos parámetros:

sudo systemctl restart mysql.service

Uso del instalador web de OTRS

En este paso, configuraremos la base de datos de OTRS en un navegador web e iniciaremos el proceso del demonio OTRS por línea de comandos.

Ingrese la dirección http://itsge.site/otrs/installer.pl en su navegador web favorito.

Hacemos clic en Siguiente. La siguiente pantalla tendrá la licencia para OTRS, que es la Licencia Pública General de GNU común para los programas de código abierto. Aceptamos y continuamos.

En la siguiente pantalla, se nos pedirá que seleccionemos un tipo de base de datos. Haga clic en Siguiente para continuar.

En la siguiente pantalla, ingresamos las credenciales de MySQL que configuramos cuando cambiamos el tipo de autenticación del usuario root del servidor MySQL. Usamos root para el campo Usuario, luego ingresamos la contraseña que creamos. Dejamos el valor de host predeterminado.

Hacemos clic en Comprobar la configuración de la base de datos para asegurarnos de que funcione correctamente. El instalador generará credenciales para la nueva base de datos. No es necesario recordar esta contraseña generada.

Hacemos clic en Siguiente para continuar.

Se creará la base de datos y veremos un mensaje de resultado exitoso:

Hacemos clic en Siguiente.

A continuación, proporcionamos la siguiente configuración que requiere el sistema:

  • FQDN del sistema: un nombre de dominio completo.
  • AdminEmail: la dirección de correo electrónico del administrador del sistema.
  • Organización: el nombre de su organización.
  • Deje todas las demás opciones en sus valores predeterminados:

Haga clic en Siguiente.

Ahora ingresamos en la página de configuración de correo. Para poder enviar y recibir correos electrónicos debe configurar una cuenta de correo. Este tutorial se encargará de esto más adelante, así que haga clic en Omitir este paso.

La instalación de OTRS ahora está completa; veremos una página con un enlace a la página de Inicio, y las credenciales del superusuario. Asegúrese de anotar la contraseña generada para el usuario root@localhost y la URL de la página de inicio.

Lo único que queda es iniciar el demonio OTRS y activar su cronjob.

Abrimos el terminal para acceder a nuestro servidor Ubuntu 18.04. El demonio OTRS es responsable de manejar cualquier tarea asincrónica y recurrente en OTRS. Ejecute con el usuario otrs:

sudo su - otrs -c "/opt/otrs/bin/otrs.Daemon.pl start"

Veremos el siguiente resultado:

Manage the OTRS daemon process.

Daemon started

Hay dos archivos cron predeterminados en el directorio /opt/otrs/var/cron/.

cd /opt/otrs/var/cron

Estos archivos cron se utilizan para asegurarse de que el demonio OTRS se esté ejecutando. Actívamos estos archivos copiándolos sin la extensión .dist.

sudo cp aaa_base.dist aaa_base
sudo cp otrs_daemon.dist otrs_daemon

Para programar estos trabajos con la herramienta cron, usaremos el script Cron.sh con el usuario otrs:

sudo su - otrs -c "/opt/otrs/bin/Cron.sh start"

Asegurando nuestro OTRS

Si hemos podido llegar hasta este punto, ya tenemos una aplicación totalmente funcional, pero no es seguro usar la cuenta de superusuario con OTRS. Crearemos un nuevo agente. En OTRS, los agentes son usuarios que tienen derechos sobre las diversas funciones del sistema. En este ejemplo, utilizararemos un único agente que tenga acceso a todas las funciones del sistema.

Abrimos el enlace de la página de inicio que recibió en el paso anterior. Ingrese root@localhost para el nombre de usuario y la contraseña creada en el paso anterior, luego haga clic en Iniciar sesión.

Veremos el tablero principal. Contiene varios widgets que muestran diferente información sobre tickets, estadísticas, noticias, etc. Podremos reorganizarlos libremente arrastrando o cambiando su visibilidad de acuerdo a nuestra necesidad.

Primero, creemos un nuevo agente. Para hacer esto, siga el enlace haciendo clic en el mensaje rojo en la parte superior de la pantalla que dice ¡No use la cuenta de Superusuario para trabajar con OTRS 6! Cree nuevos agentes y trabaje con estas cuentas en su lugar. Esto lo llevará a la pantalla de Gestión de agentes.

Hacemos clic en el botón Añadir Agente. Completamos los campos de nombre, apellido, nombre de usuario, contraseña y correo electrónico. Envíe el formulario haciendo clic en el botón Guardar.

A continuación, cambiamos las relaciones de grupo para el nuevo agente. Debido a que nuestro agente también será administrador, debemos darle acceso completo de lectura y escritura a todos los grupos.

Finalmente, haga clic en Guardar y terminar.

Ahora, cerramos sesión y vuelvemos a iniciar sesión con la cuenta recién creada. Encontramos el enlace Cerrar sesión haciendo clic en la imagen del avatar en la esquina superior izquierda.

Una vez que hayamos iniciado sesión, podemos personalizar las preferencias de nuestro agente haciendo clic en Preferencias personales en el menú de avatar. Allí podemos cambiar nuestra contraseña, elegir el idioma de la interfaz, configurar notificaciones de configuración y colas favoritas, cambiar máscaras de interfaz, etc.

Generación de tickets a través de correo electrónico

Para generar los tickets necesarios para hacer funcionar el sistema se puede configurar una cuenta de correo, la cual será revisada periódicamente y cada correo electrónico será tomado como un ticket.

Ingresamos a la pestaña de Administración y luego a la opción de Administración de Cuentas de Correo e ingresamos un nuevo registro. Para mi caso particular, he creado un correo llamado orts@itsge.org. Enlazo mi correo creado dentro de la plataforma de OTRS.

Podremos registrar cuentas de correo de cualquier proveedor, pero hay que tener en claro que cualquier correo que se reciba será tratado como un nuevo ticket por lo que se sugiere que se debe crear un correo solo para gestionar tickets en OTRS.

Verificamos enviando un correo a la dirección otrs@itsge.org. El sistema periódicamente verifica correos nuevos y una vez detectados, éstos aparecen en la pantalla principal del sistema. Lo podremos seleccionar y empezar a trabajar con nuestro sistema.

Asegurar Apache con Let’s Encrypt

Let’s Encrypt es una Autoridad de certificación (CA) que proporciona una forma fácil de obtener e instalar certificados TLS/SSL gratuitos, lo que permite HTTPS encriptado en servidores web. Simplifica el proceso al proporcionar un cliente de software, Certbot, que intenta automatizar la mayoría (si no todos) de los pasos requeridos. Actualmente, todo el proceso de obtención e instalación de un certificado está totalmente automatizado tanto en Apache como en Nginx.

En este tutorial, utilizaremos Certbot para obtener un certificado SSL gratuito para Apache en Ubuntu 18.04 y configuraremos este certificado para que se renueve automáticamente.

Certbot está en un desarrollo muy activo, por lo que los paquetes Certbot proporcionados por Ubuntu tienden a estar desactualizados. Sin embargo, los desarrolladores de Certbot mantienen un repositorio de software de Ubuntu con versiones actualizadas, por lo que usaremos ese repositorio.

Primero, agregue el repositorio:

sudo add-apt-repository ppa:certbot/certbot

Deberá presionar ENTER para aceptar.

Instale el paquete de Apache de Certbot con apt:

sudo apt install -y python-certbot-apache

Certbot ya está listo para usar, pero para que pueda configurar SSL para Apache, necesitamos verificar parte de la configuración de Apache.

Certbot necesita poder encontrar el host virtual correcto en su configuración de Apache para que pueda configurar SSL automáticamente. Específicamente, lo hace buscando una directiva ServerName que coincida con el dominio para el que solicita un certificado.

Obtención de un certificado SSL

Certbot proporciona una variedad de formas de obtener certificados SSL a través de complementos. El complemento Apache se encargará de reconfigurar Apache y volver a cargar la configuración siempre que sea necesario. Para usar este complemento, escribiremos lo siguiente:

sudo certbot --apache -d itsge.site


Esto ejecuta certbot con el complemento –apache, usando -d para especificar los nombres para los que desea que el certificado sea válido.

Si es la primera vez que ejecuta certbot, se le pedirá que ingrese una dirección de correo electrónico y acepte los términos del servicio. Indicamos que si deseamos recibir informaciónen nuestro correo sobre noticias, campañas o tros de Electronic Frontier Fundation, partners del proyecto Let´s Encrypt. Escogemos la opción 2, que permite redirigir tu tráfico de HTTP a HTTPS.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): henrymtc@itsge.org

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: a

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for itsge.site
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/itsge.site-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/itsge.site-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/itsge.site-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/itsge.site.conf to ssl vhost in /etc/apache2/sites-available/itsge.site-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://itsge.site

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=itsge.site
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/itsge.site/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/itsge.site/privkey.pem
   Your cert will expire on 2020-07-08. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Verificamos que el acceso al portal web cuente con los candados que habilitan una conexión segura:

Verificación de la renovación automática de Certbot

Los certificados solo son válidos por noventa días. Esto es para alentar a los usuarios a automatizar su proceso de renovación de certificados. El paquete certbot que instalamos se encarga de esto al agregar un script de renovación a /etc/cron.d. Este script se ejecuta dos veces al día y renovará automáticamente cualquier certificado dentro de los treinta días posteriores a su vencimiento.

Para probar el proceso de renovación, puede ejecutar lo siguiente:

sudo certbot renew --dry-run

Se obtiene el siguiente resultado:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/itsge.site.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator apache, Installer apache
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for itsge.site
Waiting for verification...
Cleaning up challenges

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of apache server; fullchain is
/etc/letsencrypt/live/itsge.site/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/itsge.site/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.

Si no ve errores, ya está todo listo. Cuando sea necesario, Certbot renovará sus certificados y volverá a cargar Apache para recoger los cambios. Si el proceso de renovación automática falla, Let’s Encrypt enviará un mensaje al correo electrónico que especificó, advirtiéndole cuando su certificado esté por vencer.

Configuración del Firewall

Los servidores Ubuntu 18.04 pueden usar el firewall UFW para asegurarse de que solo se permitan conexiones a ciertos servicios.

Verificamos los perfiles registrados en nuestro firewall UFW:

sudo ufw app list

Verificamos que los perfiles disponibles de acuerdo a los paquetes instalados son los siguientes:

Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Indicamos a nuestra herramienta de firewall UFW que permita los protocolos OpenSSH, HTTP y HTTPS.

sudo ufw allow 'OpenSSH'
sudo ufw allow 'Apache Full'

Activamos en servicio UFW y verificamos su estado:

sudo ufw enable
sudo ufw status verbose

Verificamos que obtenemos el siguiente resultado:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp (OpenSSH)           ALLOW IN    Anywhere
80,443/tcp (Apache Full)   ALLOW IN    Anywhere
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)
80,443/tcp (Apache Full (v6)) ALLOW IN    Anywhere (v6)

Recomendación final

Puede obtener más información sobre OTRS leyendo el Manual de administración de OTRS en el siguiente enlace -> https://doc.otrs.com/doc/manual/admin/6.0/en/html/index.html

2 comentarios en “Cómo configurar un sistema de mesa de ayuda con OTRS”

Deja un comentario