Puedes consultar el proyecto Linux Scripts que automatiza algunas mejoras de CloudPanel:
Actualización del sistema e instalación de paquetes esenciales (antes de la instalación de CloudPanel):
Actualiza el sistema operativo e instala paquetes esenciales como sudo, nano, fail2ban y cron:
curl -fsSL https://raw.githubusercontent.com/ivancarlosti/scripts/main/linux-scripts/server-prep.sh | sudo bash
Configuraciones importantes del panel:
- Respaldo de los sitios del panel: https://[domain]/admin/remote-backup
- Dominio del panel (puerto predeterminado: 8443): https://[domain]/admin/settings
- Zona horaria del panel: https://[domain]/admin/instance/settings
- 2FA del usuario: https://[domain]/security
- Zona horaria del usuario: https://[domain]/settings
Configuraciones importantes de Redis:
Redis recomienda que la configuración vm.overcommit_memory siempre sea 1, al igual que una configuración de bind que aún no esté disponible puede impedir que Redis se inicie. Puedes ejecutar las siguientes líneas para agregar vm.overcommit_memory = 1 y net.ipv4.ip_nonlocal_bind = 1 al archivo /etc/sysctl.conf y, posteriormente, aplicar la configuración ejecutando sysctl -p:
curl -fsSL https://raw.githubusercontent.com/ivancarlosti/scripts/main/linux-scripts/redis-setup.sh | sudo bash
Puedes verificar si Redis muestra esta recomendación u otro error en su registro ejecutando:
sudo tail -f /var/log/redis/redis-server.log
Puedes verificar las consultas que llegan a Redis con este comando:
redis-cli monitor
Desactivación de servicios no utilizados:
Este script desactiva las versiones de PHP inferiores a la 7.4, así como otros servicios innecesarios como memcached, postfix y proftpd:
curl -fsSL https://raw.githubusercontent.com/ivancarlosti/scripts/main/linux-scripts/disable-services.sh | sudo bash
Configuración principal de nginx, incluida la eliminación del GeoIP anterior y la actualización de las reglas de los encabezados de seguridad:
Restablece las reglas de nginx, incluida la eliminación de GeoIP y optimizaciones de rendimiento y seguridad; normalmente no afecta a las aplicaciones:
curl -fsSL https://raw.githubusercontent.com/ivancarlosti/scripts/main/linux-scripts/cloudpanel-fix.sh | sudo bash
Configuración del dominio del dashboard:
Reescribe el dominio del dashboard en el SQLite de CloudPanel, actualiza el custom-domain.conf y emite un certificado:
curl -fsSL https://raw.githubusercontent.com/ivancarlosti/scripts/main/linux-scripts/dashboard-domain.sh \
| sudo bash -s -- cp.example.comConfiguración de fail2ban:
Configura Fail2Ban con action, incluida la integración con Cloudflare cuando se proporcionan las claves:
# With Cloudflare (recommended: a scoped Account Firewall Access Rules API token)
curl -fsSL https://raw.githubusercontent.com/ivancarlosti/scripts/main/linux-scripts/fail2ban-setup.sh \
| sudo bash -s -- --cf-account <ACCOUNT_ID> --cf-token <API_TOKEN>
# Without Cloudflare: local banning only
curl -fsSL https://raw.githubusercontent.com/ivancarlosti/scripts/main/linux-scripts/fail2ban-setup.sh | sudo bash
Instalación de sistemas específicos en CloudPanel:
En instalaciones de YOURLS, donde es necesario cambiar la búsqueda de index.php a yourls-loader.php, modifica la entrada try_files $uri $uri/ /index.php?$args; de la siguiente manera:
### BEGIN custom entry for YOURLS try_files $uri $uri/ /yourls-loader.php$is_args$args; # try_files $uri $uri/ /index.php?$args; ### END custom entry for YOURLS
¡Listo!