Guía de Instalación Automática de cPanel en Servidores Dedicados y VPS

cPanel es hoy en día el líder de los paneles de control de alojamiento en la industria de alojamiento mundial. Todas sus características y tareas que realiza son accesibles a través de una interface web y ademas ofrece todos los diferentes niveles de acceso necesarios para administradores, resellers y usuarios finales. En este artículo describiremos el proceso para instalar cPanel en un servidor dedicado o VPS con CentOS. Después realizaremos algunos ajustes de seguridad y finalmente trataremos de solucionar algunos problemas comunes que se suelen presentar.

Lógica común / renuncia de responsabilidades: Dese cuenta que varias partes de esta guía de instalación vienen directamente de scripts que hemos realizado para nuestro funcionamiento, por lo tanto no podemos garantizar que vayan a funcionar para usted. Siempre lea los requerimientos de la documentación formal de instalación de cPanel. No nos podemos hacer responsables de la utilización de estas instrucciones.

Preparando CentOS para cPanel

Lo primero es lo primero: Configuraremos el sistema operativo (CentOS) para la instalación de acuerdo a los requerimientos de cPanel. Normalmente las únicas cosas que necesitaremos cambiar en una instalación de CentOS reciente (6.4 en el momento de escribir este artículo) es borrar Postfix (servidor de email), deshabilitar SELINUX, y desactivar iptables. Después de esto procederemos a actualizar el sistema operativo.

yum groupremove "E-mail server" -y
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
chkconfig iptables off
service iptables stop
yum install -y screen
screen
yum update -y && reboot

Instalando cPanel

Despues de reconectarnos al servidor, estamos listos para avanzar. La instalación de cPanel es bastante simple, pero necesitará un poco de tiempo. Todas la reglas de instalación son aplicables aquí. Ya que no queremos que se nos interrumpa a mitad utilizaremos el comando ‘screen’ que acabamos de instalar en el paso previo.

screen
cd /home
wget -N http://httpupdate.cpanel.net/latest
sh latest

Protegiendo cPanel

¿Estamos listos? Bien, hay unos pocos pasos referentes a la seguridad que nos harán sentir más seguros una vez realizados. Estos son: La instalación del Firewall CSF y del plugin I.D.S., deshabilitando algunas funciones PHP, principalmente las recomendadas por CSF.

Instalando CSF - ConfigServer Security & Firewall

De nuevo la instalación es bastante simple

cd /root
rm -fv csf.tgz
wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

Configuración de CSF

Una vez instalado debemos establecer algunas recomendaciones de seguridad en WHM -> Plugins -> ConfigServer -> Security&Firewall -> Check Server Security. En este ejemplo estableceremos rápidamente una serie de ajustes de seguridad. Hay un README de CSF donde explica bastante bien todos estos cambios.

echo 'local-infile=0' >> /etc/my.cnf
sed -i 's/TESTING = "1"/TESTING = "0"/g' /etc/csf/csf.conf
sed -i 's/TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2077,2078,2082,2083,2086,2087,2095,2096"/TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2077,2078,2082,2083,2086,2087,2095,2096,10022"/g' /etc/csf/csf.conf
sed -i 's/TCP_OUT = "20,21,22,25,37,43,53,80,110,113,443,587,873,2086,2087,2089,2703"/TCP_OUT = "20,21,22,25,37,43,53,80,110,113,443,587,873,2086,2087,2089,2703,10022"/g' /etc/csf/csf.conf
sed -i 's/IPV6 = "0"/IPV6 = "1"/g' /etc/csf/csf.conf
sed -i 's/SYSLOG_CHECK = "0"/SYSLOG_CHECK = "300"/g' /etc/csf/csf.conf
sed -i 's/FASTSTART = "0"/FASTSTART = "1"/g' /etc/csf/csf.conf
sed -i 's/SMTP_BLOCK = "0"/SMTP_BLOCK = "1"/g' /etc/csf/csf.conf
sed -i 's/LF_SCRIPT_ALERT = "0"/LF_SCRIPT_ALERT = "1"/g' /etc/csf/csf.conf
sed -i 's/PT_ALL_USERS = "0"/PT_ALL_USERS = "1"/g' /etc/csf/csf.conf
sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
sed -i 's/#Port 22/Port 10022/g' /etc/ssh/sshd_config
sed -i 's/enable_dl = On/enable_dl = Off/g' /usr/local/lib/php.ini
sed -i 's/disable_functions =/disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open, allow_url_fopen/g' /usr/local/lib/php.ini
service sshd restart
service mysql restart
service portreserve stop
chkconfig portreserve off
csf -r
service lfd restart

Resolviendo problemas

En realidad no hay muchos errores que hagan fallar la instalación de cPanel. Quizás el más común sea “cpanel Fatal! Perl must be installed before proceeding!” el cual aparecerá en el caso de que no tengamos Perl instalado por defecto. En este caso tecleando

yum install perl

lo tendremos solucionado.

Esto es todo. El resto de configuración debería hacerse con el panel WHM y/o dependerá de su entorno (por ejemplo EasyApache build profile).