Si tenemos la suerte de poder tener un servidor VPS con WHM (cpanel) donde alojar nuestras webs, lo primero que tenemos que hacer es optimizar y hacer más seguro nuestro cpanel / WHM (yo tengo la versión «WHM 11.32» optimizada para VPS «VPS Optimized 3»).
Antes de empezar a leer cuales son los pasos, tenéis que tener en cuenta que cada uno tenemos nuestras necesidades a la hora de utilizar o no ciertos servicios del servidor. Por ejemplo: Yo no uso las herramientas de correo ni de análisis de datos que me proporciona el servidor, sino que prefiero usar Google mail y Google Analytics… ¿Consecuencia? Desmarco todas esas opciones en mi panel de WHM para ahorrar algo de memoria.
¿Que quiero decir? Pensad primero que es lo que necesitáis tener instalado en el servidor y a continuación usad esta guía de optimización.
Ir a WHM >> Server Configuration >> Tweak Settings
En la pestaña «Domains» hacemos click en:
Prevent users from parking/adding common internet domains
En la pestaña «Mail»:
- Default catch-all/default address behavior for new accounts. “Fail” es la mejor opción si estas recibiendo ataques vía email.
- Discard FormMail-clone message with bcc. Lo ponemos en «on»
- Maximum percentage of failed or deferred messages a domain may send per hour. Lo ponemos en 300%
- Enable BoxTrapper spam trap. Sino usamos el mail lo ponemos en off
- Enable Horde Webmail. Sino usamos el mail lo ponemos en off
- Enable Mailman mailing lists. Sino usamos el mail lo ponemos en off
- Enable RoundCube webmail. Sino usamos el mail lo ponemos en off
- Enable SpamAssassin spam filter. Sino usamos el mail lo ponemos en off (consume muchos recursos)
- Enable SquirrelMail webmail. Sino usamos el mail lo ponemos en off
- Mailman: ponemos en off todo lo que tenga que ver con Mailman sino vamos a usar listas de distribución
En la pestaña «System»:
- Default shell jailed. Lo ponemos en «on». Las nuevas cuentas lo tendran instalado por defecto
- Conserve memory. Lo ponemos en «on» para ahorrar en CPU.
En la pestaña «Stats Programs» lo ponemos todo en «off», para eso tenemos instalado Google Analytics en nuestras webs:
- Awstats reverse DNS resolution
- Enable Analog statsEnable Awstats stats
- Enable Logaholic stats
- Enable Webalizer stats
Ir a WHM >> Security Center
- PHP open_basedir Tweak: Activamos «PHP’s open_basedir protection» que previene que los usuario abran archivos fuera de su directorio con PHP.
- Apache mod_userdir Tweak: Lo activamos para que prevenga que a un usuario no se le cuente el ancho de banda usado al acceder a su cuenta mediante http://test.cpanel.net/~fred/
- Shell Fork Bomb Protection: Activamos Shell Fork Bomb Protection, que previene que un usuario use todos los recursos del servidor a través de ssh/telnet. Tiene una pega: Usa muchos recursos del sistema. Así que, a vuestra elección.
- Compiler Access: Desactivamos los compiladores. Con esto conseguimos evitar que se usen C y C++ usuario sin privilegios (muchos exploits los usan)
- Si vas a crear «reseller packages», asegurate de que esten desactivadas las siguientes opciones: Disallow creation of packages with shell access y Disallow creation of packages with full root access.
- cPHulk Brute Force Protection: Activalo. Impide los ataques por fuerza bruta en tu cpanel
- Host Access Control: Si trabajas desde una IP fija, utiliza este servicio para poder hacer login solo desde ella.
- Password Strength Configuration: Hay que ponerla mínimo en 50
- Quick Security Scan: Recomendable usarlo de vez en cuando. Cuidado con los falsos positivos.
Ir a WHM >> Service Configuration >> FTP Server Configuration
- Allow Anonymous Logins – Selecciona ‘NO’
- Allow Anonymous Logins – Selecciona ‘NO’
Ir a Account functions >> Manage Shell Access
Desactiva el «shell access» para todos los usuarios (Si es imprescindible ponlo en Jailed shell)
Ir a WHM >> SQL Services >> MySQL Root Password
MySQL Root Password – Cambia el Root Password para MySQL
Probablemene (compruebalo accediendo mediante ssh a tu servidor), tu hosting, por defecto ha puesto un password para root en mysql. no uses (*), (.), u otros caracteres especiales. phpMyAdmin puede dejar de funcionar.
Ir a WHM >> System Health >> Background Process Killer
BitchX
bnc
eggdrop
generic-sniffers
guardservices
ircd
psyBNC
ptlink
services
Haz click en todos y después pincha en Save.
Ir a Main >> Service Configuration >> Service Manager
Aqui podemos desactivar los daemons del sistema (y activar los que queremos monitorizar)
- Mailman: Si ya lo habéis desactivado en Tweak Settings, tambien lo tenéis que hacer aquí.
- Spamd: SpamAssassin Server. Si ya lo habéis desactivado en Tweak Settings, tambien lo tenéis que hacer aquí.
Ir a Main >> Backup >> Configure Backup
En esta sección activares los backups de toda nuestra cuenta.Pinchamos en «Enable» y elegimos su periodicidad. Tened en cuenta que facilmente os puede llenar toda vuestra cuota en el disco duro, por lo que recomiendo realizar el backup semanal.
Ir a Main >> Plugins
Comprueba que tienes instalado mod_security. Totalmente recomendable.
Ir a Main >> cPanel >> Manage Plugins
Esta es opcional ya que consume muchos recursos del servidor: Puedes instalar el antivirus ClamAV como plugin. si tienes muchos usuarios en tu servidor, a lo mejor es interesante tenerlo activo.
OJO! Podéis sentir la tentación de ir a Main >> Service Configuration >> Apache Configuration y utilizar «Memory Usage Restrictions» que en teoria nos optimiza la memoria utilizada por Apache basandose en el uso que le hemos dado en el pasado. Para ello añade a httpd.conf la directiva «RLimitMEM». Yo no lo recomiendo, y por lo que he leido por ahí, nadie recomienda su uso en un VPS.
Finalmente, os recomiendo la lectura de este articulo de cpanel: Configuraciones de seguridad recomendadas
Saludos y gracias por la información, intenté setear «Maximum percentage of failed or deferred messages a domain may send per hour» a 300% como indica pero me arroja que no es válido, sabrás porque?