- Instalamos
- Seleccionamos el idioma
- HD:
- password root
- r/ac12
- usuario adicional
cgi/u4c
Fecha y hora
Datos Servidor
IP: 10.0.3.86
Configuracion de red
- red
- Para configurar la red debemos ir a
nano /etc/sysconfig/network-scripts/ifcfg-ens192
- Y debemos poner
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens192
UUID=72db0bdc-09b6-4b3f-98c2-5598d518d453
DEVICE=ens192
ONBOOT=yes
IPADDR=10.0.3.86
PREFIX=23
GATEWAY=10.0.2.1
DNS1=10.0.98.102
DNS2=10.0.98.103
- Principalmente
Actualizar sistema
- Ejecutar
sudo dnf check-update
- Resultado
- Actualizamos
sudo dnf update
- Aceptamos
Instalación de OpenEMM
Servicio Cron
- primero debemos verificar que el servicio cron esta activado
- Primero verificamos si esta instalado
rpm -q cronie
- Si no esta instalado
sudo dnf install cronie
- Lo habilitamos
sudo systemctl enable crond
sudo systemctl start crond
sudo systemctl status crond
Deshabilitar SELINUX
- Abrimos el archivo
nano /etc/selinux/config
- Y modificamos
SELINUX=enforcing
X
SELINUX=disabled
- Y reinicamos el servidor
reboot
Timezone
- Ahora debemos verificar que la zona horaria este correcta
- para esto ejecutamos
ls -l /etc/localtime
- Resultado
lrwxrwxrwx. 1 root root 40 nov 20 11:26 /etc/localtime -> ../usr/share/zoneinfo/America/Costa_Rica
dependencias
- ejecutamos
dnf update
dnf install gcc make
dnf install xorg-x11-fonts-75dpi fontconfig freetype libX11 libXext libXrender urw-fonts
- Desinstalamos java si esta instalado
dnf remove java-1.8.0-openjdk
Python 3
- Instalamos dependencias
dnf install gcc gcc-c++
dnf install gdbm-devel libffi-devel ncurses-devel
dnf install readline-devel sqlite-devel zlib-devel xz-devel
- python
dnf install python3.11 python3.11-devel python3.11-pip
mariaDB
- Eliminamos si existe
systemctl stop mysql
dnf remove mysql*
- Dependencias
dnf install boost libaio ncurses-compat-libs wget
- Descargamos los paquetes necesarios
cd /tmp
wget https://archive.mariadb.org/mariadb-10.11.7/yum/rhel8-amd64/rpms/MariaDB-client-10.11.7-1.el8.x86_64.rpm
wget https://archive.mariadb.org/mariadb-10.11.7/yum/rhel8-amd64/rpms/MariaDB-common-10.11.7-1.el8.x86_64.rpm
wget https://archive.mariadb.org/mariadb-10.11.7/yum/rhel8-amd64/rpms/MariaDB-server-10.11.7-1.el8.x86_64.rpm
wget https://archive.mariadb.org/mariadb-10.11.7/yum/rhel8-amd64/rpms/MariaDB-shared-10.11.7-1.el8.x86_64.rpm
wget https://archive.mariadb.org/mariadb-10.11.7/yum/rhel8-amd64/rpms/MariaDB-devel-10.11.7-1.el8.x86_64.rpm
wget https://archive.mariadb.org/mariadb-10.11.7/yum/rhel8-amd64/rpms/galera-4-26.4.16-1.el8.x86_64.rpm
- Mandamos a instalar
dnf install MariaDB-* galera-4-26.4.16-1.el8.x86_64.rpm
- Abrimos el archivo
nano /etc/my.cnf
- Actual
#
# This group is read both by the client and the server
# use it for options that affect everything
#
[client-server]
#
# include *.cnf from the config directory
#
!includedir /etc/my.cnf.d
- Le agregamos
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mariadb/mariadb.log
innodb_stats_persistent=0
- Quedando así
#
# This group is read both by the client and the server
# use it for options that affect everything
#
[client-server]
#
# include *.cnf from the config directory
#
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mariadb/mariadb.log
innodb_stats_persistent=0
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
sql-mode = "STRICT_ALL_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
!includedir /etc/my.cnf.d
- Habilitamos el servicio y lo iniciamos
systemctl enable mariadb
systemctl start mariadb
systemctl status mariadb
- Instalamos el driver de python3 y mariadb
exit (root)
python3 -m pip install mariadb
- If you receive an error message with content like “MariaDB Connector/Python requires MariaDB Connector/C”, try to install an older version of the module:
python3 -m pip install mariadb==1.0.11
- Establecer password de usuario root
su -
mysql -u root -p
ENTER
- Ejecutamos
ALTER USER 'root'@'localhost' IDENTIFIED by 'root123';
exit
- Creamos una archivo .mysqlpw en el directorio /root con permisos de lectura y escritura
cd /root
nano .mysqlpw
# Guardamos la clave
root123
chmod 600 .mysqlpw
- Ahora para evitar problemas de caracteres en el archivo /etc/my.cnf se debe agregar lo siguiente (Ya esta agregado)
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
- Definir los modos de operación en /etc/my.cnf (ya esta agregado)
sql-mode = "STRICT_ALL_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Creación de usuario de BD
Creación de usuario de SO openEmm
- Creamos el usuario openemm/openemm123
groupadd openemm
useradd -m -g openemm -d /home/openemm -s /bin/bash openemm
passwd openemm
# Comprobamos
su - openemm
# Salimos a root
exit
Instalación de firewall
- Instalamos
dnf install firewalld
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
- Ahora vamos a abrir el puerto 25 y 8080
- Y vamos hacer una redirección del puerto 80 al 8080
- Ejecutamos para saber el nombre de la interfaz
firewall-cmd --get-active-zones
- Ejecutamos
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=25/tcp --permanent
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent
firewall-cmd --reload
- PENDIENTE:
- Si desea utilizar HTTPS en vez de HTTP debe agregar esta regla para redirigir de puerto 443-> 8443
# firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=8443 --permanent
Postfix
- Instalamos
systemctl stop sendmail
dnf remove sendmail
dnf install postfix sendmail-milter procmail
- Cambiamos el SMTP defecto a postfix
alternatives --set mta /usr/sbin/sendmail.postfix
- Y creamos en enlace simbolico para que OpenEmm pueda encontrar el archivo de log de correo
ln -s /var/log/mail /var/log/maillog
- Cambiar la configuración de postfix
- Ingresamos a
cd /etc/postfix
- verificamos el nombre del servidor
nano /etc/hostname
- Debe estar con el nombre completo
openemm.una.ac.cr
- revisamos el archivo host
nano /etc/hosts
- Agregamos al archivo
127.0.0.1 openemm openemm.una.ac.cr
- Y creamos o modificamos el archivo
nano /etc/mailname
- Y le agregamos
openemm.una.ac.cr
- Abrimos el archivo de configuración
nano /etc/postfix/main.cf
- Borramos todo su contenido y le pegamos
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (AlmaLinux)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2
# TLS parameters
#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_tls_security_level=may
#smtp_tls_CApath=/etc/ssl/certs
#smtp_tls_security_level=may
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destinati>
myhostname = openemm.una.ac.cr
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, openemm.una.ac.cr, localhost.una.ac.cr, localhost
relayhost = mail.una.ac.cr
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = all
- Debe abrir el archivo
nano /etc/postfix/master.cf
- Y comentar la linea
tlsmgr unix - - n 1000? 1 tlsmgr
- Asi
- Para que permita «mailloop» debemos agregar las siguientes dos lineas
- NOTA: no omita los dos espacios en blanco antes de la palabra flags para indicarle a procesador que es una linea continua
mailloop unix - n n - - pipe
flags=RX user=openemm argv=/usr/bin/procmail /home/openemm/lib/bav.rc
- Reiniciamos postfix
systemctl restart postfix
systemctl status postfix
- Para garantizar que postfix inicia con los reboot del servidor
chkconfig --level 35 postfix on
Configurar Log de Sistema Operativo
- Abrimos el archivo
nano /etc/systemd/journald.conf
- Y modificamos y descomentamos
#RateLimitIntervalSec=30s
X
RateLimitIntervalSec=10s
#RateLimitBurst=10000
X
RateLimitBurst=20000
- Y reinicimos
systemctl restart systemd-journald
- Abrimos el archivo
nano /etc/rsyslog.conf
- Vamos a cambiar esta linea
module(load="imjournal" # provides access to the systemd journal
UsePid="system" # PID nummber is retrieved as the ID of the process the journal entry originates from
StateFile="imjournal.state") # File to store the position in the journal
- Para agregarle esto al final del parentesis
ratelimit.interval="10" ratelimit.burst="20000"
- Asi
module(load="imjournal" # provides access to the systemd journal
UsePid="system" # PID nummber is retrieved as the ID of the process the journal entry originates from
StateFile="imjournal.state" ratelimit.interval="10" ratelimit.burst="20000") # File to store the position in the journal
- Recargamos
systemctl restart rsyslog
systemctl status rsyslog
- OpenEmm ocupa poder trabajar con /var/log/maillog
- Para esto abrimos el archivo
nano /etc/logrotate.d/syslog
- Archivo original
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/usr/bin/systemctl -s HUP kill rsyslog.service >/dev/null 2>&1 || true
endscript
}
- Y después de la la linea «sharedscripts» vamos agregar
create 0644
- Quedando así
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
create 0644
postrotate
/usr/bin/systemctl -s HUP kill rsyslog.service >/dev/null 2>&1 || true
endscript
}
- Y modificamos los permisos del log del mail
chmod 644 /var/log/maillog
Instalación de java 17 (NO SE HACE)
- Verificamos si esta instalado
java -version
- Instalamos
sudo dnf update -y
sudo dnf install -y java-17-openjdk java-17-openjdk-devel
- Lo instalamos como predeterminado
sudo alternatives --config java
- Verificamos la version
java -version
- Configurar variables de entorno (JAVA_HOME)
- creamos el archivo
sudo nano /etc/profile.d/java.sh
- Le agregamos
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
- Recargamos el archivo
source /etc/profile.d/java.sh
- Verificamos
echo $JAVA_HOME
- Resultado
Instalación de tomcat (No se hace)
- Actualizamos
# Actualizamos
sudo dnf update -y
# Dependencias
sudo dnf install -y java-17-openjdk java-17-openjdk-devel
- Instalación
# Vamos al directorio opt
cd /opt
# Descargamos el programa
sudo wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.1/bin/apache-tomcat-11.0.1.tar.gz
# Descomprimimos
sudo tar -xvzf apache-tomcat-11.0.1.tar.gz
# Renombramos la carpeta
sudo mv apache-tomcat-11.0.1 tomcat11
- Configura las variables de entorno
- Abrimos el archivo
/etc/profile.d/java.sh
- Borramos su contenido y pegamos lo siguiente
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export CATALINA_HOME=/opt/tomcat11
export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH
- Actualizamos
source /etc/profile.d/java.sh
- Probamos
echo $JAVA_HOME
echo $CATALINA_HOME
- Cambiamos los permisos y crear usuario tomcat
sudo useradd -r -m -U -d /opt/tomcat11 -s /bin/false tomcat
sudo chown -R tomcat:tomcat /opt/tomcat11
- Configurar tomcat como servicio
sudo nano /etc/systemd/system/tomcat.service
- Le agregamos
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk
Environment=CATALINA_HOME=/opt/tomcat11
Environment=CATALINA_BASE=/opt/tomcat11
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
ExecStart=/opt/tomcat11/bin/startup.sh
ExecStop=/opt/tomcat11/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
- Habilitamos el servicio
#recarga los servicios de systemd
sudo systemctl daemon-reload
# Inicia Tomcat:
sudo systemctl start tomcat
#Habilita Tomcat para que inicie automáticamente al arrancar:
sudo systemctl enable tomcat
# Verificar
sudo systemctl status tomcat
Instalación de OpenEMM Maintenance Tool
- Debemos bajarlo de aquí
- https://www.agnitas.de/en/openemm-downloads/
- debemos bajar la version runtime
- Lo subimos al servidor a la carpeta openemm/openemm123
scp openemm-runtime-24.04.000.098.tar.gz openemm@10.0.3.86:/home/openemm/
- ahora dentro del servidor
- Debemos darle permisos de sudo al usuario openemm
# Como root agregamos el usuario al grupo sudo
usermod -aG wheel openemm
- Instalr npm
sudo dnf update
sudo dnf install curl dnf-plugins-core
dnf module list nodejs
sudo dnf module install nodejs:18
- Creación de certificados TLS
- Creamso la carpeta «certificados» en /home/openemm para alamacenar los certificados
su - openemm
mkdir certificados
- ahora como root
exit
cd /home/openemm/certificados/
sudo dnf install openssl -y
#Generar llave privada
openssl genrsa -out ca-root.key 2048
openssl req -x509 -new -nodes -key ca-root.key -sha256 -days 3650 -out ca-root.crt
openssl genrsa -out ca-intermediate.key 2048
openssl req -new -key ca-intermediate.key -out ca-intermediate.csr
openssl x509 -req -in ca-intermediate.csr -CA ca-root.crt -CAkey ca-root.key -CAcreateserial -out ca-intermediate.crt -days 3650 -sha256
cat ca-intermediate.crt ca-root.crt > ca-bundle.crt
openssl genrsa -out 10.0.3.86.key 2048
openssl req -new -key 10.0.3.86.key -out 10.0.3.86.csr
openssl x509 -req -in 10.0.3.86.csr -CA ca-intermediate.crt -CAkey ca-intermediate.key -CAcreateserial -out 10.0.3.86.crt -days 365 -sha256
- Esto nos creo los siguientes archivos
ls
- Darle permiso de escritura al /home/openemm/tomcat/logs
chmod 777 -R /home/openemm/tomcat/logs
- Nos logeamos con el usuario openemm
su - openemm
- Lo descomprimimos
tar -xvzpf openemm-runtime-24.04.000.098.tar.gz
- Y mandamos a ejecutar
sudo ./bin/OMT.sh
- Primero nos pregunta si deseamos cambiar esto
- System value for maximum parallel files open (= ulimit) is 1024. Must be at least 16384.
Checking python installation ...
Python version found: 3.11.10 (/usr/bin/python3)
Checking Zip installation ...
Zip version 3.0 found
Starting python ...
System value for maximum parallel files open (= ulimit) is 1024. Must be at least 16384.
Change it now (N/y, Blank => Cancel):
- Nos indica que debemos reiniciar
Changing /etc/security/limits.conf
Changing /etc/systemd/user.conf
Changing /etc/systemd/system.conf
To let this changes take effect the system needs to be rebooted
- reiniciamos
exit
reboot
- Volvemos a ingresar y lo volvemos a ejecutar
ssh 10.0.3.86 -l cgi
# root
su -
# openemm
su - openemm
# Ejecutamos
sudo ./bin/OMT.sh
- Nos muestra la siguiente ventana
- Aca debemos configurar la variable JAVA_HOME y CATALINA_HOME, es decir debemos instalar java y tomcat
- Para esto primero escribimos JAVA_HOME -> ENTER
- Y nos dice que deseamos establecer la ubicación de un java ya existente en nuestra MV o instalar el que el programa trae, escogemos este dendo en blanco -> enter y luego «Y»
- Lo comienza a descargar e instalar cuando termine se vera así
- Ahora hacemos lo mismo con Tomcat
- Resultado
- Estando aqui le damos ENTER para volver al menu principal
- Y nos muestra este menu
- Ahora debemos configurar la base de datos
- Presionamos 2
- Nos muestra esta ventana
- Y vamos a escoger dbms -> mariadb
- Nos modifica
- Y ahora agregamos el usuario y pass de la base de datos
- root/root123
- quedado así
- Ahora le damos guardar escribiendo save
- creamos la bd
- Nos dicfe que la creo
- Ahora que tenemos la BD debemos instalar el sistema
- Para esto vamos al menu principal ENTER y 0
- Y le damos la opción 5
- Y le decimos que si baje la ultima versión
- Y que no deseamos actualizar -> N
- Le decimos -> y
- N
- Que instale la misma versión -> y
- y que no instale java y tomcat
- le decimos que Y
- Y comienza a descargar
- le decimos que si instale
- y comienza a instalar
- instalamos la aplicación Statistics
- y Webservices / Backend
- Nos manda al menu principal y nos indica que que nos falta alguna configuración basica
- entre ellas el dominio pero de momento la vamos a manejar como IP
- Marcamos la opcion 2 Configuration
- Y agregamos la dirección
https://10.0.3.86
- Resultado
- Ahora como hemos definido la URL con https debemos crear el certificado
- Le damos ENTER para regresar al menu
- Le damos la opcion 0
- Y ahora la opción 4 Security
- Y ahora vamos a la opción de 2 configuración de certificados
- Le decimos que -> y
- y le damos las rutas
/home/openemm/certificados/10.0.3.86.crt
/home/openemm/certificados/10.0.3.86.key
/home/openemm/certificados/ca-bundle.crt
- Nos indica si desea utilizar otro puerto que el defecto -> N
- Y lo mismo para puerto http->N
- Regrsamos a menu principal -> 0
- Ahorta lo reiniciamos opocion -> 10
- le decimos que -> y
- Da el siguiente error
- Se intenta volver a instalarlo con actualizacion
- ahora sin restart
- Resultado
- Nos indica que reinicio correctamete
- Y ya podemos ingresar por el navegador
- http://10.0.3.86/logon.action
- Ahora debemos crear la contraseña del usuario ‘emm-master’
- En el menu principal le damos la opción 4 Security
- opción 1 Create new initial ‘emm-master’ password
- Le decimos que si -> y
- Y esto nos crea un password temporal con el que nos pódemos logear
- Y nos pide cambiarla
- Nueva $OpenEmm123
- Y asi podemos ingresar
- Ahora ingresamos a Administration -> System Status
- Y podemos verificar que todo esta instalado de forma correcta