Archivo de la categoría: VPS

Activar mcrypt en Plesk

Activar mcrypt en PleskAunque no es habitual, puede darse el caso de que al intentar realizar la instalación de una tienda virtual como Prestashop, el sistema de instalación nos advierta que es necesario tener activo el módulo mcrypt. Pues bien, hoy queremos mostraros como podremos activar mcrypt en Plesk. Sigue leyendo

Facebooktwittergoogle_plus

Tareas programadas desde Plesk en tu VPS

folder-blue-scheduled-tasks-iconUna tarea programada consiste en configurar una funcionalidad concreta para que sea ejecutada de manera automática con una frecuencia de tiempo determinada. Dicha funcionalidad puede ser cualquier cosa, como un envío de correo a clientes, ejecución de copias de seguridad, actualización de estadísticas, etcétera.

Sigue leyendo

Facebooktwittergoogle_plus

Nuevos comandos para Centos 7

centosLa nueva versión de CentOS 7 introduce un cambio en uno de los comandos más utilizados, service, que es sustituido por systemctl.

Por el momento el comando service continua funcionando, aunque cada vez que lo ejecutemos nos aparecerá un mensaje recordando el nuevo comando, ya que en futuras versiones será finalmente eliminado. Sigue leyendo

Facebooktwittergoogle_plus

Cómo emparejar Planes de servicio y Suscripciones en tu reseller

En el anterior post explicamos cómo manejar Planes de servicio de Plesk en un Reseller. Una vez sabemos cómo crear nuevos planes de servicio, clonarlos, crear complementos, etc, vamos a ver cómo asignarle un plan de servicio a una suscripción y explicar de forma básica lo que significa sincronizar una suscripción.

Con nuestros Planes de servicio ya hechos, cuando vayamos a crear una nueva suscripción podremos elegir uno de nuestros planes y la suscripción tendrá los límites de dicho plan y estará sincronizado con él. Pero, ¿y si queremos cambiar el plan de una suscripción ya existente? Sencillamente vamos a la sección de suscripciones y buscamos la que queremos modificar, entramos y le damos al botón de Cambiar plan.Captura de pantalla 2015-07-31 a las 14.08.56Dentro veremos un desplegable con los planes disponibles:Captura de pantalla 2015-07-31 a las 14.11.37Seleccionamos el plan que queremos poner, aceptamos y la suscripción pasará a tener los límites del plan que hemos seleccionado.

Es importante tener claros los límites del plan reseller en si para no meter la pata con los límites de los planes de servicio. Por ejemplo, si nuestro reseller dispone de 100 buzones de correo en total y creamos una suscripción que permite usar los 100, no tendremos ningún buzón más disponible para otras suscripciones. Lo mismo se aplica a cualquier otro límite, como número de bases de datos, usuarios FTP, etcétera.

Otra forma de cambiar los límites de una suscripción sería con el método de Personalizar una suscripción, por ejemplo si hay una suscripción concreta a la que queremos modificar algún valor en específico pero no merece la pena crear un plan a propósito sólo para este cambio, podemos darle a Personalizar y cambiar el valor que sea.Captura de pantalla 2015-08-03 a las 13.26.05Esto provocará que la suscripción deje de estar sincronizada con el plan, lo cual significa que si hacemos un cambio al plan de servicio que la suscripción usaba, este no se aplicará al haberla personalizado y haberla dejado fuera de sincronía.

Facebooktwittergoogle_plus

Error en Roundcube a causa de una actualización de Plesk 12

Modificar los valores PHP desde el panel PleskUna reciente microactualización automática de Plesk 12 ha provocado que al entrar al webmail Roundcube aparezca un error que dice que necesitamos tener instalado PHP 5.3.7 o superior aunque esté instalado.

You will need to install PHP >= 5.3.7 in order to use Roundcube webmail.

Para solucionarlo, tan sólo debemos actualizar Plesk con el comando autoinstaller:

/usr/local/psa/admin/sbin/autoinstaller

Y actualizar Plesk.

Este error sólo afecta a Plesk 12. Las versiones de Plesk 11 o inferior no se han visto afectadas por este error.

Facebooktwittergoogle_plus

Acelera tus webs con el módulo PageSpeed de Google

pagespeedPageSpeed es un módulo de código abierto para Apache desarrollado por Google que automatiza muchas de las optimizaciones y buenas prácticas que recomienda Google PageSpeed para mejorar la velocidad de nuestras páginas. Funciona aplicando diversos filtros de salida, es decir, haciendo cambios en el contenido antes de que este salga del servidor hacia el cliente.

Hay más de 40 filtros de optimización disponibles, algunos de los cuales son:

  • Optimización de imágenes y compresión
  • Concatenación y minificación de recursos CSS y JavaScript
  • Extensión de caché
  • Carga aplazada de JavaScript y recursos gráficos
  • Y muchos otros más

Instalarlo en uno de nuestros VPS es muy sencillo. Vamos a ver cómo sería una instalación completa en un VPS con CentOS, el sistema operativo que recomendamos para los VPS.

Primero descargamos el paquete para CentOS

wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm

Una vez se descarga, ejecutamos la instalación

sudo yum install at  # si no tienes 'at' ya instalado
sudo rpm -U mod-pagespeed-*.rpm

Tan fácil como esto, ya tendríamos el módulo instalado. Reiniciamos Apache con el comando

service httpd restart

Para comprobar que se ha instalado y PageSpeed está activo, abrimos la consola de desarrollador del navegador y en las cabeceras de respuesta del servidor, PageSpeed añade la siguiente:

Captura de pantalla 2015-07-06 a las 16.49.37El archivo de configuración global se encuentra en /etc/httpd/conf.d/pagespeed.conf y se puede configurar individualmente por dominios o carpetas mediante .htaccess.

La configuración que trae por defecto el módulo PageSpeed es bastante efectiva, pero si tenemos casos especiales o se quiere optimizar algunas cuestiones al máximo, deberemos echar mano de la documentación oficial.

Facebooktwittergoogle_plus

Cómo instalar múltiples versiones de PHP en Plesk 12

elephpantUna de las muchas ventajas de los VPS es la flexibilidad que ofrecen, por ejemplo para tener diferentes versiones de PHP disponibles al mismo tiempo. Un caso que se suele dar con mucha asiduidad es si tenemos una suscripción con un script PHP antiguo que ya no es compatible con versiones nuevas de PHP, y tenemos otra suscripción que utiliza las últimas novedades que trae PHP, nos veríamos en un dilema que se soluciona de manera muy sencilla si podemos poner a las suscripciones la versión de PHP más adecuada para cada una.

Plesk 12 nos permite instalar múltiples versiones de PHP en nuestro VPS de forma muy sencilla. Para ello debemos acceder como root por SSH y ejecutar el script autoinstaller y seguir los sencillos pasos.

  • Nota: antes de realizar la instalación, recomendamos hacer un backup del VPS completo

Para ejecutar el script sólo hay que poner:

/usr/local/psa/admin/sbin/autoinstaller

Nada más ejecutarlo, nos mostrará la pantalla de bienvenida al asistente de instalación y unas instrucciones para proseguir. Pulsamos “N” para continuar.

El siguiente paso es seleccionar la fuente de software. Por defecto viene marcado el servidor de Parallels, por lo que no hace falta tocar nada, pulsamos “N” para continuar. Ahora nos pide la configuración del proxy HTTP, de nuevo continuamos como viene por defecto, pulsando “N“. El asistente nos preguntará a qué producto le queremos instalar cosas, viene seleccionado Plesk 12 por defecto, por lo que una vez más lo dejamos tal cual y pulsamos “N“.

Una vez hecho esto, ya hemos llegado a donde nos interesa. El asistente nos muestra qué componentes podemos instalar.

Captura de pantalla 2015-06-15 a las 15.33.54En esta guía queremos instalar múltiples versiones de PHP, por lo que las seleccionamos escribiendo el número que tienen al lado, por ejemplo 10, 11 y 12, pulsando intro cada vez. Se quedaría así en nuestro caso:

Captura de pantalla 2015-06-15 a las 14.56.48Una vez seleccionadas las versiones que nos interesan, pulsamos “N” para continuar. El asistente nos dirá cuánto espacio necesita para la instalación, pulsamos “N” otra vez para continuar y se hará la instalación despues de informarnos de cuántos paquetes va a instalar.

Cuando termine la instalación, recomendamos hacer un reinicio del VPS desde el Power Panel de Parallels (recordamos que no es el mismo panel de Plesk).

Captura de pantalla 2015-06-15 a las 15.03.20Una vez reiniciado, ya podemos acceder a Plesk e ir a Configuración de hosting de la suscripción que nos interese, y en Soporte para PHP podremos seleccionar qué versión de PHP queremos asignarle a la suscripción.

Captura de pantalla 2015-06-15 a las 15.03.43

Facebooktwittergoogle_plus

Qué son y cómo usar las variables de entorno de Apache desde Plesk

El uso de contraseñas fuertes es sin duda imprescindible para la seguridad, pero a veces se puede convertir en un dolor de cabeza el gestionarlas a la hora del desarrollo de nuestra página web. Pongamos unos ejemplos en los que el buscar un equilibrio entre seguridad y comodidad puede ser complicado:

  • Si quieres que tu programador pueda hacer su trabajo pero no quieres entregarle contraseñas de la base de datos u otros servicios que use tu web.
  • Si quieres tener tu código fuente en un servicio de control de versiones de manera pública, como GitHub, pero que nadie vea tus datos sensibles.
  • Si estás desarrollando en tu máquina local y no quieres tener que cambiar tu archivo de configuración de contraseñas, nombres de usuario, etc, cada vez que subes código al servidor.

Una forma de resolver estos puntos es mediante el uso de variables de entorno de Apache. Haciendo uso de ellas, podemos crear variables a nivel del servidor, a las cuales tenemos acceso desde el código fuente, incrementando así la seguridad de las contraseñas y otros datos sensibles, y haciendo más cómodo el desarrollo.

Vamos a ver un ejemplo en PHP. Imaginemos que tenemos un archivo config.php con el siguiente contenido:

<?php
$password = "clave123";
$usuario = "usuario123";
$base_datos = "nombre_db";

Vamos a sustituir las contraseñas escritas a mano por variables de entorno de Apache. La manera más sencilla de crear estas variables en nuestro VPS es desde Plesk, accediendo a “Configuración del servidor web” para el dominio en que queremos crearlas.

Captura de pantalla 2015-06-05 a las 13.17.29En el campo “Directivas adicionales de Apache” ponemos estas variables:

SetEnv DB_PASS "clave123"
SetEnv DB_USUARIO "usuario123"
SetEnv DB_NOMBRE "nombre_db"

Cuando ya están creadas, acceder a ellas desde nuestro código PHP es muy sencillo. Lo harcemos mediante la función de PHP getenv(). El código del archivo config.php con las claves lo podemos convertir a:

<?php
$password = getenv("DB_PASS");
$usuario = getenv("DB_USUARIO");
$base_datos = getenv("DB_NOMBRE");

Como vemos, ya no hay contraseñas en nuestro código fuente, sólo hay referencias a variables que están configuradas en Apache, de forma que podemos tener nuestro código fuente en repositorios abiertos al público sin que se vean las contraseñas, o permitir que un programador pueda trabajar sin tener que darle acceso total con las claves. Además, si se está desarrollando en local, se pueden configurar también las variables de entorno en el servidor Apache local de forma que no hay que cambiar el código con las contraseñas cada vez que se sube al servidor.

No sólo puede aplicarse a contraseñas de bases de datos, podemos usarlo también por ejemplo para claves API de Twitter, Facebook, y otros servicios, además de otras configuraciones como por ejemplo a qué archivo escribir logs, a qué correo avisar en caso de errores graves y todo tipo de variables que cambian según el entorno en que se ejecuta el código.

Hay que tener presente una cosa muy importante, y es que las variables de entorno aparecen en phpinfo(), por lo que hay que ir con cuidado con esto y asegurarse de no tener ninguna página ejecutándolo, o mejor aún, desactivar la función en la configuración de PHP.

Captura de pantalla 2015-06-05 a las 13.18.08

Facebooktwittergoogle_plus

Cómo instalar Fail2Ban para proteger tu VPS (2ª parte)

lockEn el anterior post vimos cómo instalar Fail2Ban en un VPS con CentOS, y en esta segunda y última entrega vamos a ver cómo configurar los parámetros mas básicos y algunos filtros útiles.

Recien instalado, Fail2Ban viene con una configuración por defecto que está en /etc/fail2ban/jail.conf, pero es muy recomendable hacer una copia local y hacer nuestra configuración en ella:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Una vez hecha la copia local, debemos configurar los parámetros básicos.

vi /etc/fail2ban/jail.local

El fichero puede editarse también por sFTP si no estás familiarizado con vi.

La primera sección es la de [DEFAULT], que tiene los siguentes parámetros básicos:

  • ignoreip: Aquí podemos listar separadas por un espacio las IPs que fail2ban debe ignorar, es decir, una lista blanca. Si dispones de IP fija sería una buena idea ponerla.
  • bantime: Tiempo en segundos que banea la IP que se salte alguna de las normas.
  • maxretry: Intentos máximos antes de banear una IP.
  • findtime: Por defecto está en 10 minutos, si un usuario intenta conectarse más veces de el valor maxretry en menos de 10 minutos, se le baneará.

Cuando ya estén configurados los parámetros básicos, se puede continuar viendo los diferentes servicios que pueden ser protegidos por Fail2Ban y se puede activar o personalizar cualquiera de ellos. Por ejemplo el servicio de protección para SSH viene activo por defecto:

[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"]
logpath  = /var/log/secure
maxretry = 5

En este caso deberíamos configurar los parámetros “dest” y “sender” para que cuando salte esta norma, nos envíe un correo de aviso a la dirección que le indiquemos.

Cuando el archivo de configuración esté a nuestro gusto, guardamos y siempre debemos reiniciar Fail2Ban para que los cambios tengan efecto.

sudo service fail2ban restart

Fail2Ban viene por defecto con muchos servicios preconfigurados que sólo debemos activar en el fichero de configuración para empezar a protegerlos. Por ejemplo algunos que consideramos útiles pueden ser:

  • apache-badbots: banea bots conocidos que se dedican a escanear la web en busca de emails a los que enviar spam.
  • php-url-fopen: banea usuarios que intenten explotar esta función a traves de peticiones GET/POST
  • horde: si usas este webmail, puedes protegerlo
  • apache-modsecurity: banea IPs que se salten normas de ModSecurity (si está habilitado)

Puedes obtener más información y ver la documentación en la web oficial de Fail2Ban.

Primera parte: cómo instalar Fail2Ban

Facebooktwittergoogle_plus