Instalación automática

Método automático: un solo script desde su área personal prepara todo el servidor (pila web Apache + PHP, base de datos, herramientas de seguridad, cron). Después: desplegar el panel, emitir el SSL e introducir la licencia. Funciona en Ubuntu/Debian: en un VPS nuevo lo configura todo desde cero, y en un servidor ya configurado solo de forma aditiva (perfil «Servidor configurado», paso 01). Todos los comandos siguientes van en orden; solo tiene que desplazarse de arriba abajo. En un VPS nuevo le sirven todos los pasos seguidos; si el servidor ya está configurado o tiene un panel de hosting, el script deja intencionadamente parte del trabajo en sus manos: qué exactamente, lo indica al terminar su ejecución (el análisis de la salida está en el paso 01).

Los valores de ejemplo de los comandos reemplácelos por los suyos: monitor.example.com, su dominio; 203.0.113.10, la IP real del servidor; /var/www/monitor, la raíz del panel (donde se encuentran public/, assets/, config.php); y elija su propia contraseña para la base de datos.
El conjunto completo («Protección total») está pensado para un VPS nuevo. En una Ubuntu/Debian limpia configura el sistema de seguridad desde cero: Fail2ban (jail.local), root-crontab, reglas de UFW, configuración de Apache. Si el servidor ya está configurado (panel en funcionamiento, sitios, correo, sus propios jails), elija el perfil «Servidor configurado»: solo introduce cambios aditivos y no toca su cortafuegos, Fail2ban, correo, SSH ni sysctl. Al detectar un panel de hosting, el script cambia a este modo por sí mismo. Antes del primer arranque puede activar la ejecución en seco (casilla en el área personal): le mostrará qué se hará sin cambiar nada. En un servidor en funcionamiento, por si acaso, haga una instantánea (snapshot).

01. Comando de autoconfiguración desde el área personal

El comando lo obtiene en su área personal my.arciveo.com → sección «Configuración del servidor» (disponible tras contratar Arcivéo Security Monitor). Está vinculado a su cuenta y contiene un token personal.

El script prepara todo el servidor: la pila web (Apache + PHP), la base de datos, las herramientas para SSL, el conjunto completo de medidas de protección y las tareas de cron (Lynis, SMART, debsums, Logwatch, informe diario, actualización de ipsum).

1) Elija el nivel de protección (en el área personal, antes de copiar el comando):

  • Protección completa (recomendada) — UFW (cortafuegos), Fail2ban, CrowdSec + bouncer, ipsum (lista de bloqueo de IP), Suricata (IDS/IPS), Falco, ModSecurity + OWASP CRS (WAF), PSAD, mod_evasive (anti-DoS), AIDE (integridad de archivos), debsums, ClamAV + maldet (antivirus), Auditd, AppArmor, Monit, Lynis (auditoría), Logwatch, actualizaciones de seguridad automáticas.
  • Ligera — para VPS con poca RAM: conjunto básico sin componentes pesados.
  • Servidor ya configurado (panel de hosting) — para un servidor ya en funcionamiento con panel (HestiaCP, etc.), sitios y correo: solo cambios aditivos (instalación adicional de herramientas, cron, reglas de sudo), mientras que el cortafuegos, Fail2ban, el correo, SSH y sysctl quedan como están. En un servidor con panel el script elige este modo por sí mismo.
Simulación. En el área personal puede marcar la casilla «Simulación»: entonces el comando solo mostrará qué instalará y cambiará el script, y terminará sin tocar nada. Útil en un servidor ya configurado: primero la simulación, luego la ejecución real sin la casilla.

2) Ejecute en el servidor como root el comando del área personal — tiene este aspecto:

curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN" | sudo bash
Mantenga en secreto el comando — está vinculado a su cuenta. El enlace tiene una validez limitada; si ha caducado, pulse en el área personal «Obtener un enlace nuevo».
Tras la autoconfiguración, el servidor web es Apache + PHP-FPM, y las herramientas de seguridad y las tareas de cron ya están instaladas y funcionan «de fábrica».

3) Lea la salida del final: ahí se indica qué queda de su parte. El script termina con un bloque de comprobaciones y una lista «Después: instalación del panel». Una parte de los pasos no la realiza a propósito: cuáles exactamente depende del perfil elegido y de lo que haya encontrado en el servidor. Contraste con la lista de abajo: solo hay que ejecutar los puntos cuyas líneas hayan aparecido en su salida.

  • Control panel detected (…) — el sitio se crea con los medios del propio panel de hosting; el script no crea el vhost. Paso 03, rama «Servidor con panel de hosting».
  • No vhost created (no domain given) — perfil «Servidor configurado» sin dominio: un vhost sin nombre pasaría a ser el sitio por defecto e interceptaría sus propios sitios, por eso no se ha creado. Paso 03, rama «Crear el vhost a mano».
  • sudo rules NOT written — el script no ha podido determinar con qué cuenta trabaja el panel. Es una situación habitual: los archivos del panel se suben después de la autoconfiguración y aún no había nada por lo que determinarlo. Sin esas reglas, los módulos no verán los datos del sistema. Paso 04, bloque «sudo para el servidor web».
  • ! Nginx does not read .htaccess — delante de Apache hay un Nginx y no se ha podido escribir la denegación en su configuración automáticamente. Hágalo sin falta: de lo contrario data/, keys/, database/ y config.php se sirven hacia fuera esquivando el .htaccess. Paso 03, bloque «Si delante de Apache hay un Nginx».
  • UFW installed but inactive — el cortafuegos está instalado, pero apagado: en un servidor configurado el script no lo activa por sí mismo para no cortarle el acceso. Actívelo usted, permitiendo obligatoriamente su puerto SSH:
    sudo ufw allow OpenSSH # puerto SSH no estándar: sudo ufw allow 2222/tcp sudo ufw allow 80,443/tcp sudo ufw enable
  • Fail2ban installed but not running — inícielo: sudo systemctl enable --now fail2ban.
  • Database server present … but not running — inicie el SGBD antes del paso 04: sudo systemctl enable --now mariadb (o mysql, según lo que tenga instalado).
  • Certbot skipped — issue SSL in … — el certificado se emite con el interruptor de Let's Encrypt del panel de hosting; el paso 06 no le hace falta.
Si en el bloque de comprobaciones todo está en orden, la última línea es All checks passed. Los puntos con ! requieren atención; los detalles se escriben en el registro, cuya ruta imprime el script al final del todo (Log: …).

02. Dominio y DNS

Para abrir el panel en una dirección como monitor.example.com y obtener un SSL gratuito, el dominio debe apuntar al servidor. En el panel de control de DNS (en su registrador u hosting) cree un registro A:

Tipo: A Nombre: monitor (subdominio → monitor.example.com) o @ (raíz del dominio → example.com) Valor: 203.0.113.10 ← IP de su servidor TTL: 3600

Al cabo de unos minutos (a veces hasta una hora) compruebe que el dominio apunta al servidor:

dig +short monitor.example.com # debe devolver su IP # o, si no tiene dig: getent hosts monitor.example.com
El certificado SSL (paso 06) solo se emite para un dominio, por eso el DNS debe apuntar al servidor antes de emitir el certificado.

03. Suba los archivos del panel

Caso habitual (VPS nuevo). La configuración automática ya ha creado el directorio del panel /var/www/monitor y ha configurado el sitio de Apache (DocumentRoot en la raíz del panel, PHP-FPM, AllowOverride para .htaccess). En la salida del script es la línea vhost … → DocumentRoot …. No es necesario crear el directorio ni el vhost por separado: solo suba los archivos y asigne los permisos.
Dos casos en los que el vhost NO se crea: el script lo indica expresamente al terminar. Entonces ejecute primero la rama correspondiente de abajo y solo después suba los archivos.

Rama «Servidor con panel de hosting» (en la salida: Control panel detected (…)). En un servidor así los sitios los gestiona el panel, y el script no crea su propio vhost a propósito: quedaría sobrescrito en la primera reconstrucción de configuraciones que hiciera el panel. El orden es este:

  1. Dé de alta un dominio web en el panel de hosting (HestiaCP, etc.); su DocumentRoot se queda como está.
  2. Suba la distribución entera al public_html de ese dominio: junto a index.php, api/ y assets/ deben estar también las carpetas de servicio config.php, includes/, data/, tmp/, logs/, keys/, cron/ y database/. No hace falta sacar nada por encima de la raíz web: las carpetas de servicio están protegidas por el archivo .htaccess de la distribución y, bajo Nginx, por la denegación que el script escribió en la configuración del dominio.
  3. El SSL se emite con el interruptor de Let's Encrypt del propio panel: omita el paso 06.
  4. Después: los permisos (más abajo, en este mismo paso), la base de datos (paso 04) y config.php (paso 05). En los comandos, sustituya las rutas por /home/cuenta/web/dominio/public_html y el propietario por el usuario de ese dominio en lugar de www-data.

Rama «Crear el vhost a mano» (en la salida: No vhost created (no domain given)). Esto solo ocurre con el perfil «Servidor configurado», cuando no se ha pasado el dominio. Lo más sencillo es volver a lanzar el comando del área personal indicando el dominio:

curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN&profile=existing" | sudo bash -s -- monitor.example.com

Volver a ejecutarlo es seguro: lo ya hecho no se duplica. Y si hay que crear el vhost a mano, esta es la misma configuración que escribe el instalador:

sudo mkdir -p /var/www/monitor # El socket de PHP-FPM se detecta automáticamente: la versión de PHP varía de un servidor a otro. PHPSOCK=$(ls -1 /run/php/php*-fpm.sock 2>/dev/null | head -1) sudo tee /etc/apache2/sites-available/arciveo-monitor.conf > /dev/null <<'EOF' <VirtualHost *:80> ServerName monitor.example.com DocumentRoot /var/www/monitor <Directory /var/www/monitor> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> <FilesMatch "\.php$"> SetHandler "proxy:unix:__PHPSOCK__|fcgi://localhost" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/arciveo-monitor_error.log CustomLog ${APACHE_LOG_DIR}/arciveo-monitor_requests.log combined </VirtualHost> EOF sudo sed -i "s#__PHPSOCK__#${PHPSOCK}#" /etc/apache2/sites-available/arciveo-monitor.conf sudo a2ensite arciveo-monitor.conf sudo apache2ctl configtest sudo systemctl reload apache2
Aquí ServerName es obligatorio. Un vhost sin nombre se convierte en el sitio por defecto de Apache y empieza a responder por otros dominios de ese mismo servidor. Por la misma razón, no desactive 000-default.conf en un servidor ya configurado: ese sitio pudo haberse adaptado al de alguien en funcionamiento; en un VPS nuevo el instalador lo retira por sí mismo y aquí no hay que hacerlo.
Si delante de Apache hay un Nginx (en la salida: ! Nginx does not read .htaccess). Nginx sirve los archivos estáticos directamente desde el disco y no lee el .htaccess: las carpetas de servicio quedarán abiertas hacia fuera aunque Apache las cierre correctamente. El script ya ha preparado un archivo con las denegaciones; hay que incluirlo en el bloque server{} de su sitio y recargar Nginx:
include /etc/nginx/snippets/arciveo-deny.conf;
sudo nginx -t && sudo systemctl reload nginx # Comprobación: debe devolver 403, no el contenido del archivo curl -sI https://monitor.example.com/config.php | head -1
Los archivos del panel (el archivo de la distribución) se descargan tras la compra en el área personal my.arciveo.com → «Descargas». Descomprima el archivo antes de subirlo al servidor.

Suba el contenido de la distribución a /var/www/monitor (de modo que dentro queden public/, assets/, config.php, etc.) por SFTP/SCP (FileZilla / WinSCP) o con el comando scp desde su equipo local:

scp -r ./monitor/* deploy@203.0.113.10:/var/www/monitor/
Para que en el vhost quede registrado directamente su dominio (ServerName), se pasa al comando de configuración automática ya en el paso 01: … | sudo bash -s -- monitor.example.com (o se indica el dominio en el campo «Dominio del panel» del área personal). Si no se pasó el dominio, el panel responde a cualquier host y por IP, y certbot registrará el ServerName al emitir el SSL (paso 06); no hace falta reinstalar nada.
Asigne los permisos de los archivos: es un paso obligatorio. Si los subió como root o por SFTP, los archivos pertenecen a root y el servidor web (www-data) no podrá leerlos: el panel se abrirá vacío o con error 403 (en el registro: .htaccess unreadable / directory not executable). El comando de abajo lo soluciona:
# Normalizamos los permisos de todo el webroot: el directorio creado por root # es inaccesible para el servidor web (www-data); sin esto el panel sirve una página vacía o 403. cd /var/www/monitor # Las carpetas de trabajo se crean ANTES del chown; de lo contrario los nuevos directorios quedarán como root:root # y con chmod 750 el servidor web (www-data) no podrá escribir en ellos. sudo mkdir -p data/lynis data/logwatch tmp logs sudo chown -R www-data:www-data /var/www/monitor sudo find /var/www/monitor -type d -exec chmod 755 {} \; sudo find /var/www/monitor -type f -exec chmod 644 {} \; sudo chmod 640 /var/www/monitor/config.php sudo chmod 750 data tmp logs

Habilite para usted mismo la subida por SFTP. Tras el comando anterior todos los archivos pertenecen a www-data, mientras que FileZilla / WinSCP se conectan con su propio usuario: la subida fallará con SSH_FX_PERMISSION_DENIED (Permission denied). Elija una de las dos variantes.

Variante A: una ACL solo para su usuario (recomendado). El permiso de escritura lo obtiene únicamente usted; el servidor web sigue sin poder sobrescribir el código del panel:

sudo apt install -y acl # Permiso de escritura para su usuario en todo el directorio del panel: sudo setfacl -R -m u:deploy:rwX /var/www/monitor # La misma regla por defecto: para archivos y carpetas creados más adelante: sudo setfacl -R -d -m u:deploy:rwX /var/www/monitor

Variante B: mediante el grupo www-data. Más sencilla, pero el servidor web también obtiene permiso de escritura sobre los archivos del panel: ante una vulnerabilidad en PHP se podría sustituir el código. El orden de los comandos importa: config.php y las carpetas de trabajo se cierran al final:

sudo usermod -aG www-data deploy # Escritura para el grupo + setgid (el bit 2): los archivos subidos por SFTP # permanecen en el grupo www-data; de lo contrario el panel no podrá sobrescribirlos. sudo find /var/www/monitor -type d -exec chmod 2775 {} \; sudo find /var/www/monitor -type f -exec chmod 664 {} \; sudo chmod 640 /var/www/monitor/config.php sudo chmod 2750 /var/www/monitor/data /var/www/monitor/tmp /var/www/monitor/logs
Tras la variante B, vuelva a conectarse en FileZilla (Servidor → Desconectar y entrar de nuevo): el nuevo grupo solo se aplica en un inicio de sesión nuevo, hasta entonces seguirá sin permisos. Comprobación: id deploy, en la lista de grupos debe aparecer www-data; ls -ld /var/www/monitor, permisos drwxrwsr-x, la letra s en lugar de x significa que setgid está activo.

04. Base de datos

Cree la base de datos y el usuario, luego importe el esquema. El bloque de la BD se pega en la terminal completo (sudo mysql accede como root por socket unix; no se necesita la contraseña de root). monitor_db y monitor_user son nombres de ejemplo, puede definir los que desee; recuerde el nombre de la base, el usuario y la contraseña — los escribirá en config.php en el siguiente paso:

# 1. Base de datos. El nombre de la base, el usuario y la contraseña se definen UNA vez abajo y se sustituyen en todas las líneas. # El bloque se pega en la terminal COMPLETO; sudo mysql accede como root por socket unix # (no se necesita la contraseña de root). NO use el interactivo `sudo mysql -u root -p` # con copiar y pegar — al pegar, las líneas SQL irán a la petición de contraseña y se perderán. DBNAME='monitor_db' # ← nombre de la base, puede dejarse DBUSER='monitor_user' # ← usuario de la base, puede dejarse DBPASS='CHOOSE_A_PASSWORD' # ← contraseña, ponga la suya sudo mysql <<SQL CREATE DATABASE IF NOT EXISTS $DBNAME CHARACTER SET utf8mb4; CREATE USER IF NOT EXISTS '$DBUSER'@'localhost' IDENTIFIED BY '$DBPASS'; GRANT ALL ON $DBNAME.* TO '$DBUSER'@'localhost'; FLUSH PRIVILEGES; SQL # Comprobación (debe mostrar $DBNAME): mysql -u "$DBUSER" -p"$DBPASS" -e "SHOW DATABASES;" # Introduzca estos mismos tres valores en config.php → DB_NAME, DB_USER, DB_PASS.
Normalmente no hace falta importar el esquema — el panel crea por sí mismo las tablas y la cuenta admin en el primer acceso desde el navegador (a partir de database/db.sql) si la BD está vacía.

Si las tablas no se han creado (el panel muestra un error de conexión a la BD o una pantalla vacía en lugar del formulario de inicio de sesión), importe el esquema a mano. El comando se ejecuta en la raíz del panel y los valores se toman del bloque anterior:

# Importación del esquema: cd /var/www/monitor && mysql -u "$DBUSER" -p"$DBPASS" "$DBNAME" < database/db.sql # Comprobación: debe aparecer la lista de tablas: mysql -u "$DBUSER" -p"$DBPASS" "$DBNAME" -e "SHOW TABLES;"
Si las variables $DBNAME / $DBUSER / $DBPASS ya se han «olvidado» (una sesión nueva de la terminal), ponga los valores a mano en el comando o defínalos de nuevo con esas mismas tres líneas del bloque anterior.
sudo para el servidor web. Normalmente las reglas ya las ha escrito la autoconfiguración y los módulos ven los datos del sistema de inmediato. Pero si en la salida del script apareció la línea sudo rules NOT written, no había con qué determinar la cuenta del panel (los archivos aún no estaban subidos) y las reglas no se han creado. Sin ellas, secciones como el cortafuegos, Fail2ban y CrowdSec quedarán vacías. Ahora que los archivos ya están en su sitio, lance el comando del área personal otra vez, indicando la cuenta de forma explícita:
curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN&profile=existing" | sudo ARCIVEO_USER=www-data bash -s -- monitor.example.com
Sustituya www-data por el usuario con el que se ejecuta el PHP de su sitio (en un panel de hosting suele ser el propietario del dominio). Puede verlo así:
ps -o user= -C php-fpm8.3 | sort -u # ponga su propia versión # o: ps aux | grep -m3 '[p]hp-fpm'
Comprobación tras volver a lanzarlo: el archivo /etc/sudoers.d/monitor existe y contiene líneas con su usuario.

05. Configuración de config.php

config.php en la raíz del panel (/var/www/monitor/config.php) es el único archivo que hay que editar a mano. Todos los ajustes del panel se definen en él mediante constantes define(). Ábralo en el editor:

sudo nano /var/www/monitor/config.php

Ponga sus propios valores en los lugares resaltados; deje el resto como está:

// --- Base de datos (del paso 04) --- define('DB_HOST', 'localhost'); // dejar define('DB_NAME', 'db_name'); // lo que creó en el paso 04 define('DB_USER', 'user'); // lo que creó en el paso 04 define('DB_PASS', 'db_password'); // lo que definió en el paso 04 define('DB_CHARSET', 'utf8mb4'); // dejar // --- Aplicación --- define('APP_URL', 'https://monitor.example.com'); // dirección del panel, sin barra al final define('TIMEZONE', 'Europe/Madrid'); // su zona horaria // --- Tiempo de sesión --- define('SESSION_LIFETIME', 28800); // inactividad hasta volver a entrar, seg (28800 = 8 h)

Qué cambiar:

  • DB_NAME, DB_USER, DB_PASS: exactamente el mismo nombre de base de datos, usuario y contraseña que definió al crear la BD en el paso 04 (si dejó los ejemplos: monitor_db / monitor_user). No toque DB_HOST ni DB_CHARSET.
  • APP_URL: dirección completa del panel con https://, sin barra al final y sin www. Debe coincidir con el dominio en el que activa la licencia (paso 07); de lo contrario, la clave será rechazada.
  • TIMEZONE: su zona horaria (lista: timedatectl list-timezones). Solo afecta a cómo el panel muestra las fechas; en la hora de ejecución de las tareas de cron no influye (allí rige la zona del sistema).
  • SESSION_LIFETIME: tras cuántos segundos de inactividad el panel pedirá entrar de nuevo (por defecto 8 horas). Por ej. 3600 = 1 hora, 86400 = un día.
  • El bloque de registro de errores (display_errors, log_errors, error_log): déjelo por defecto.

Guarde el archivo (Ctrl+O, Enter y luego Ctrl+X) y reinicie PHP-FPM; de lo contrario, por culpa de OPcache los cambios no se aplicarán:

sudo systemctl restart php*-fpm
config.php es un archivo secreto (contiene la contraseña de la BD). Está en la raíz del panel, que es también la raíz web, pero está protegido: permisos 640 (asignados en el paso 03) y una denegación explícita en el .htaccess raíz. No lo publique en repositorios públicos ni lo envíe a soporte con la contraseña real.
Un análisis detallado de todos los parámetros en las FAQ: «El archivo config.php: todos los ajustes del panel».

06. Emitir SSL (HTTPS)

El panel funciona solo por HTTPS. La sesión de inicio usa una cookie segura y WebAuthn (2FA) por estándar funciona únicamente en HTTPS. Por http:// no podrá iniciar sesión.
En un servidor con panel de hosting este paso no hace falta (en la salida del script: Certbot skipped — issue SSL in …). El certificado se emite con el interruptor de Let's Encrypt en el dominio web del propio panel; así, de su renovación también se encarga el panel.

certbot y el complemento para Apache ya están instalados por la autoconfiguración. El DNS del dominio ya debe apuntar al servidor (paso 02). Emisión en un solo comando:

sudo certbot --apache -d monitor.example.com

Si el panel también debe abrirse con www., enumere ambos nombres en un solo comando; de lo contrario, en la segunda dirección el navegador mostrará una advertencia de certificado:

sudo certbot --apache -d monitor.example.com -d www.monitor.example.com
Añada el segundo nombre solo si también tiene un registro A que apunte a este servidor (paso 02). En caso contrario, Let's Encrypt no podrá verificarlo y no emitirá el certificado en su conjunto, incluido el dominio principal.
Lo que certbot preguntará:
  1. Enter email address — su e-mail (allí llegarán las notificaciones de caducidad del certificado).
  2. Terms of Service … (Y)es/(N)o — Y.
  3. Share email with the EFF … (Y)es/(N)o — a su criterio.
Después certbot emitirá el certificado por sí mismo, escribirá <VirtualHost *:443>, configurará la redirección http→https y la renovación automática. Al final: Successfully enabled HTTPS.
Si la emisión falla, compruebe que dig +short monitor.example.com devuelve la IP del servidor y que los puertos 80/443 están abiertos (sudo ufw allow 80,443/tcp).

Tras la emisión: https://monitor.example.com se abre con candado y http:// redirige a https://.

07. Inicio de sesión y configuración inicial

Abra https://monitor.example.com, inicie sesión con admin / useradmin y complete la lista de comprobación:

  1. Cambiar la contraseña de admin — sección «Usuarios» en el menú.
  2. Activar WebAuthn (2FA) — «Claves WebAuthn» → registrar clave/passkey (requiere HTTPS). Registre dos a la vez: si pierde la única clave, no podrá iniciar sesión con ella. Más información.
  3. Restringir el acceso por IP — «Ajustes» → «Restricción de acceso por IP» (introduzca su IP antes de activarlo, o se bloqueará el acceso a sí mismo).
  4. Introducir la licencia — active en su dominio el código de activación ARCIVEO-… del área personal y pegue la clave en «Ajustes» → «Licencia». Más información.
  5. Configurar las notificaciones — Telegram o Email en «Ajustes». Más información.
  6. Eliminar el instalador public/start_db.php, si aún queda: permite recrear la base de datos sin autenticación. Mientras el archivo esté en la raíz del panel o en public/, el panel avisa de ello con un banner rojo.
  7. Lanzar las primeras comprobaciones a mano: de lo contrario, parte de las secciones estará vacía hasta la noche (véase el bloque de abajo).
Por qué «Auditoría Lynis» y «Logwatch» aparecen vacías al principio. La autoconfiguración instaló las herramientas y creó las tareas de cron, pero no ejecutó las comprobaciones en sí: se lanzarán según la programación — Lynis a las 03:00, Logwatch a las 06:00, debsums a las 04:30 y ClamAV a la 01:30. Hasta entonces, las secciones indican honestamente que todavía no hay informes. Para no esperar un día entero, ejecútelas una vez a mano:
# Auditoría Lynis: primer informe (unos minutos): sudo /usr/local/bin/lynis-scan.sh # Informe de Logwatch del día: sudo /usr/local/bin/logwatch_daily.sh # Integridad de los paquetes (debsums): en un servidor grande tarda bastante: sudo /usr/local/bin/debsums-scan.sh
Lynis también puede lanzarse directamente desde el panel, con el botón «Ejecutar auditoría» de la página «Auditoría Lynis»: ejecuta ese mismo script en segundo plano y actualiza el informe por sí mismo. Después todo sigue la programación y ya no hay que lanzar nada a mano.
El primer escaneo antivirus (sudo /usr/local/bin/clamav-scan.sh) carga mucho el disco y el procesador y puede durar una hora o más: en un servidor en funcionamiento es mejor esperar a la ejecución nocturna de la 01:30. Las secciones «Discos (SMART)», «Rendimiento» y «Actualizaciones de seguridad» se llenan solas: cada 30 minutos, cada 5 minutos y una vez por hora, respectivamente.
Listo. La referencia de cada herramienta está en las FAQ.
Si necesita alojar en este servidor otro sitio con su propio dominio, consulte la FAQ: «Un segundo sitio en este servidor (otro dominio)».