¿Cómo cambiar de Centos 6.8 a Ubuntu 14 en OVH?

Si queréis tener soporte HTTP2 con HSTS con CENTOS 6.8 + Plesk, la única opción es reinistalar el sistema operativo. OVH no da como opción instalar CENTOS 7 + Plesk, por lo que la única opción que queda es instalar Ubuntu 14.04 + Plesk.

OJO: Esto es para usuario avanzados. Asegúrate de tener copias de seguridad de todo antes de realizar estos pasos.

Lo primero a tener en cuenta:

  • Al realizar estos pasos se elimina TODO el contenido del VPS y se vuelve a instalar desde 0. Por tanto hay que tener copia de todo lo que queramos conservar.

Nosotros lo que hacemos es:

  • Crear copias de seguridad de las suscripciones de PLESK con el BACKUP MANAGER de Plesk y guardamos una copia de cada suscripción que luego volvemos a importar. Estas copias se pueden guardar en local o en un FTP, lo que resulte más cómodo. Nosotros siempre las guardamos sin contraseña porque nadie tiene acceso a estos datos; pero si los datos pueden ser accesibles es recomendable ponerles una contraseña.

Otros datos a guardar son:

  • IPs adicionales configuradas en el servidor y qué dominio tiene asignada qué IP.

Todo el resto de datos los volvemos a recuperar luego al importar las suscripciones.

Una vez guardadas todas las suscripciones y todo contenido relevante del VPS, en el panel de OVH se puede solicitar la reinstalación del VPS, seleccionándolo y (con las opciones avanzadas activadas) hacer click en «REINSTALL MY VPS».

¿Cómo cambiar de Centos 6.8 a Ubuntu 14 en OVH?

Cómo volver a instalar Plesk para dejarlo como estaba

Login a PLESK + Aceptar las condiciones de uso de plesk + Seleccionar «Corporate / Business Use y quitar» «Enable access to premium commercial apps» (Si sale un error de «Existe un problema con el certificado de seguridad de este sitio web» podéis tranquilamente seleccionar: «Vaya a este sitio web (no recomendado). «)

Crear algún usuario temporal.

Ir a Server / Updates and Upgrades + Install or upgrade product + Continue (actualizar a 12.5.30)

  • Primer problema: Apache config file cannot be generated: «Wrong variable to subsitute»
    Para solucionarlo en la consola:

    mv -f /usr/local/psa/admin/conf/templates/custom /root/custom_templates/
    /usr/local/psa/admin/sbin/httpdmng --reconfigure-all

     

  • Segundo problema: [How to] disable AppArmor? https://kb.plesk.com/en/112903
    Para solucionarlo en la consola:

    /etc/init.d/apparmor stop
    /etc/init.d/apparmor teardown
    update-rc.d -f apparmor remove

    Reiniciar el VPS con:

    sudo shutdown -r now

    Y después de reiniciar:

    apt-get remove apparmor
    Y

Ahora hay que volver a loguearse en el PLESK del VPS sino da errores raros.

Volvemos a Server / Updates and Upgrades + Install or upgrade product + Cuando ha acabado: OK.

Luego añadimos componentes: Add/Remove Components

  • Activar: Server Health Monitor, Fail2Ban, Mail Hosting: SpamAssassin, Web Hosting: ModSecurity, Web Hosting: Apache: mod_bw, Web Hosting: PHP interpreter versions: PHP 7.0, Plesk extensions: Plesk Firewall, Watchdog system monitoring, Skins and Color Schemes.

Continue + OK.

Ahora hay que volver a loguearse en el PLESK del VPS

Ahora actualizamos el Ubuntu desde la consola:

sudo apt-get update
sudo apt-get upgrade -y

 

Instalamos el CLAMAV (para configurar el escaneo diario, tenemos instrucciones aquí: Instalar ClamAV en Ubuntu 14 en un VPS Comandos SSH para Ubuntu 14 con Plesk (OVH y Gigas):

sudo apt-get install clamav clamav-daemon -y
sudo freshclam

 

Activamos el módulo mod_expires.c necesario para muchos plugins de caché:

sudo a2enmod expires
service apache2 restart

 

Si lo quisiéramos desactivar en algún momento:

sudo a2dismod expires
service apache2 restart

 

Además del módulo mod_expires.c tenemos que comprobar que esté habilitada la compresión GZIP en el VPS. Aquí hay una entrada extensa sobre el tema: Cómo habilitar compresión GZIP en Plesk sobre Ubuntu (OVH y GIGAS).

vi /etc/nginx/nginx.conf

Dentro de http buscar las siguientes líneas:

#gzip on;
#gzip_disable "MSIE [1-6].(?!.*SV1)";

Quitar la almohadilla de comentario. Si no os la deja quitar pulsar la tecla insertar. Justo después hay que pegar lo siguiente:

gzip_comp_level 9;
gzip_http_version 1.1;
gzip_proxied any;
gzip_min_length 10;
gzip_buffers 16 8k;
# Add a vary header for downstream proxies to avoid sending cached gzipped files to IE6
gzip_vary on;
# GZIP Types - NEW
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/xhtml+xml application/javascript application/json application/vnd.ms-fontobject application/x-font-truetype font/eot font/opentype font/otf image/svg+xml image/vnd.microsoft.icon;

Guardar con ESC + :wq + Enter

Comprobar la sintaxis del archivo de configuración de NGINX con:

nginx -t

Si nos dice que la sintaxis es correcta volvemos a arrancar NGINX y APACHE con:

service nginx restart
sudo /etc/init.d/apache2 restart

 

 

Volvemos a PLESK:

  • Tools & Settings / Branding: Personalizamos el nombre y el logo del VPS para poder distinguirlos.
  • Tools & Settings / IP Addresses: Añadimos las IPs adicionales.
  • Custom Buttons: Eliminamos el botón de «Order a new domain» de OVH.

 

Para ir añadiendo los distintos dominios

  • Websites&Domains: Add Domain
    Hay que poner el nombre del dominio y seleccionar la IP correcta. Los datos del usuario y la contraseña da igual lo que se ponga porque al restaurar el backup se sobreescriben.
    Una vez creado el dominio ir al «File Manager» y eliminar todos los archivos que crea PLESK por defecto. Estos archivos cuando se restaura un backup no se eliminan y pueden dar más de un quebradero de cabeza ya que tiene un archivo index.html que prevalece sobre el index.php de WordPress….
    Ahora ir a «Backup Manager»
    Upload
    Seleccionar archivo de backup
    Seleccionar: «Upload backup files without a valid signature»
    Quitar selección de: «Use password protection».
  • Así por cada uno de los dominios.
  • Si al entrar a PLESK se creó un dominio temporal para poder seguir, ahora se puede suprimir.

Seguimos:

  • Activar ModSecurity (esto en Ubuntu de vez en cuando da un error interno, pero se activa de todas formas y funciona correctamente).
  • Activar IP Address Banning con «Enable intrusion detection» y luego configuración de los jails (que por defecto están todos desactivados).
  • Activar la limitación de envíos de email y la comprobación del SPF (en Tools & Settings / Mail Server Settings / Switch on limitations on outgoing email messages y  Tools & Settings / Mail Server Settings / Switch on SPF spam protection).

 

Y para acabar activar HTTP2 y HSTS

Para activar el soporte accedemos por SSH al servidor y ejecutamos en la consola:

/usr/local/psa/bin/http2_pref enable

Cambios en SSL.conf (que ya no hacen falta)

Antes recomendábamos también ejecutar el siguiente comando (más que nada porque PLESK lo recomendaba en su ayuda), pero si lo hacemos, las webs con HTTP2 dejan de funcionar en Internet Explorer:

plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"

Si por algunda de aquellas habéis ejecutado ese comando, para «deshacerlo», hay que irse editar el archivo:

/etc/nginx/conf.d/ssl.conf

El contenido original del archivo es este:

ssl_ciphers EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:CHACHA20:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

Plesk recomienda no tocar ese archivo, pero si no funciona, no nos queda otro remedio.

Para que coja estos cambios lo más sencillo y rápido es reiniciar el VPS. Así todos los servicios que lo leen cogen su nuevo contenido.

Optimizar NGINX para HTTP2

Para optimizar NGINX:

sudo nano /etc/nginx/nginx.conf

La conexión inicial entre el servidor y el usuario tarda bastante y se puede cachear añadiendo estas líneas al final del bloque http del archivo nginx.conf (ojo: añadirlo dentro del bloque de http, antes del paréntesis que lo cierra):

ssl_session_cache shared:SSL:5m;
ssl_session_timeout 1h;

Habilitar caché HTTP2 en NGINX

 

HSTS en WordPress

OJO si queremos que el soporte HSTS de las instalaciones de WordPress funcione correctamente (y pase las validaciones de hstspreload.appspot.com/) hay que añadir esto al archivo .htaccess de cada WordPress (ver también esta entrada):

  • En WordPres debemos añadir al principio del archivo .htaccess y antes de las directivas de WordPress (que empiezan en la línea de “# BEGIN WordPress”) lo siguiente:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

    Y luego se puede comprobar en: tools.keycdn.com/http2-test y hstspreload.appspot.com/

Habilitar HSTS sin tener que añadirlo en el archivo .htaccess

Añadir la línea:

add_header Strict-Transport-Security "max-age=15768000" always;

Si queremos que también se aplique a subdominios, la sintaxis a añadir es esta:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

y así no tenemos que añadirlo en el archivo htaccess.

Ahora solo falta volver a arrancar NGINX (primero comprobamos que la sintáxis del archivo sea correcto con -t. Si no lo es, hay que corregir los errores):

sudo nginx -t
service nginx restart
service apache2 restart

 

Configuramos los backups

Configuración de copias de seguridad: «Backup Settings». OJO: Nosotros siempre usamos una contraseña de encriptación propia y no la de PLESK. Más que nada por si le pasa algo a la instalación de PLESK y ya no se pudiera recuperar la contraseña anterior.

 

Y ya lo tenemos todo listo y funcionando

Y con esto lo deberíamos de tener todo listo y funcionando. No obstante en el proceso pueden pasar mil cosas por lo que solo es para usuarios avanzados.

Créditos imágenes: Shutterstock

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Los comentarios de esta página se procesan por un sistema automático de moderación por lo cual no siempre se publican de forma instantánea. Por favor respeta a los demás y ciñete al tema del post. Nos reservamos el derecho de eliminar cualquier comentario o enlace que nos parezca inadecuado o tenga una expresión de grosería, insulto, odio, hostilidad o negatividad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.