Archivo de la Categoría PleskLinux

Por circunstancias de la vida me veo obligado a trabajar con Plesk a diario. Cuando se trata de dar hosting a miles de usuarios está claro que hace falta automatizar estas cosas. Muchas empresas grandes cuentan con su propio panel de control, pero no es el caso de todas y las pequeñas normalmente no se pueden permitir el desarrollo de su propio panel .

Paralells Plesk Control Panel 8.6 lista 7 de sus “Advantages”, en este caso voy a centrarme en esta:

Most Secure

Not only does Plesk control panel contain new security measures but also, existing security features have been improved. The control panel’s redesigned subsystem improves overall system security as well as support for 3rd party FTP servers that make secure uploads possible.

Fuente: http://www.parallels.com/products/plesk/advantages/

Al probar la  versión 9 que aún está en BETA supuse que sería aún más “segura” que la actual. Lamentablemente me he llevado una desilusión en este aspecto.

Todo esto viene a cuento de que este panel mantiene una base de datos que es el corazón del mismo. PSA es el nombre de la base de datos que conoceréis de sobra si alguna vez habéis administrado un servidor Plesk. Y aunque la idea puede ser buena las formas en las que se utiliza no lo son.

  • La bbdd NO guarda ninguna integridad referencial, y como es necesario meterla mano cada vez que falla una operación como crear o borrar alojamientos, bbdd, usuarios, buzones… sino se tiene cuidado es fácil perder el control.
  • Cuando se hacen actualizaciones del panel a veces cambian tablas, columnas, … y el panel empieza a dar problemas. Un ejemplo es al pasar de Plesk 8.2 a la versión que hay en estos momentos, Plesk 8.6.
  • Y el ultimo punto pero no por ello menos importante. Los datos de los usuarios se guardan en la bbdd en TEXTO PLANO.

Así que si eres usuario de este panel de control ten cuidado porque esas contraseñas que das SON visibles.

Algunos ejemplos:

Mostrar las contraseñas de administrador de mySQL, MSSQL, Postgresql o cualquier bbdd a la que este suscrito el panel de control:

SELECT type,admin_password FROM DatabaseServers

De la misma forma se almacenan los usuarios y contraseñas de buzones de correo, ftp, logins a Plesk, usuarios de bbdd, etc…

 

Todo esto hace que la seguridad de Linux, Windows, MySQL, MSSQL, Postgresql, Qmail, etc se vaya al traste teniendo en cuenta la regla de oro de que Un sistema es tan seguro como su eslabón más débil.

La verdad es que me pregunto si será tan difícil guardar las contraseñas encriptadas….

Para subir archivos pesados a través de phpMyAdmin hay que tener en cuenta el tiempo de ejecución máximo configurado tanto para el propio phpMyAdmin como para PHP.

PhpMyAdmin tiene un parámetro propio para el tiempo máximo de ejecución, hay que localizar config.inc.php y editarlo con valor a 0 si quieres que sea tiempo ilimitado o establecer un valor concreto (en segundos).

$cfg['ExecTimeLimit']=0;

Nota, si usas Plesk/Win estará en:
C:\Archivos de programa\SWsoft\Plesk\admin\htdocs\domains\databases\phpMyAdmin\config.inc.php

 También se debe tener en cuenta el tiempo máximo de ejecución para php y los límites de memoria máximos, para ello se edita php.ini con los valores deseados, este sería un ejemplo como el que tengo copiado en mis notas desde hace tiempo:

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

;max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_execution_time = 3600 ;

;max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
max_input_time = 1800 ;

;memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)
memory_limit = 200M ;

;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;

; You should do your best to write your scripts so that they do not require
; register_globals to be on; Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
register_globals = Off ;

; Maximum size of POST data that PHP will accept.
;post_max_size = 8M
post_max_size = 200M ;

Normalmente uno de los usuarios que más visita una web es el mismo cliente, lo cual abulta las estadísticas generando resultados poco objetivos.

Para bloquear IPs, basta con modificar el archivo awstats.dominio.com.conf e introducir la IP en la opción SkipHosts

# Do not include access from clients that match following criteria.
# If your log file contains IP adresses in host field, you must put here
# matching IP adresses criteria.
# If DNS lookup is already done in your log file, you must put here hostname
# criteria.
# Note: Use space between each value.
# Example: “127.0.0.1 163.84. 201.101.51.1″
# Example: “localhost abcxyz”
# Default: ” ”
#
SkipHosts=” “

En cPanel el archivo se puede encontrar en /home/ususario/tmp/awstats/awstats.dominio.net.conf
En Plesk (Gnu/Linux) se puede encontrar en /usr/local/psa/etc/awstats/awstats.palasypadel.com-http.conf
En Plesk (Windows) se puede encontrar en C:\Inetpub\vhosts\dominio.com\statistics\webstat\AWStats\cgi-bin

Cuando es necesario ver una “vista previa” de como se verá una web antes de cambiar las DNS del dominio se puede visualizar pinchando en la opción Previsualizar sitio del panel de control o directamente escribiendo en el navegador:

http://ip/$sitepreview/dominio.ext

Dependiendo la versión de Plesk sino va con la ruta anterior, se puede probar con esta otra:

https://ip/sitepreview/http/dominio.com

Por ejemplo:
http://212.40.130.210/$sitepreview/sergiosainz.com
https://212.40.130.210:8443/sitepreview/http/sergiosainz.com

Esto solo es una previsualización para hacerse una idea por lo que puede haber casos concretos en los que no funcione tal como hará cuando el dominio este correctamente apuntado, por ejemplo, si tienes enlaces con rutas absolutas cuando pinches en ellos saldrás del entorno de previsualización para acceder al sitio real.

Para evitar ese tipo de situaciones y estar algo más seguros se puede modificar el archivo /etc/hosts (usuarios Linux) o /Windows/system32/drivers/etc/hosts (usuarios Windows) para apuntar el dominio al servidor deseado y que ese equipo resuelva donde realmente deseamos.

Por ejemplo:


127.0.0.1 localhost
::1 localhost
212.40.130.210 sergiosainz.com
212.40.130.210 www.sergiosainz.com

El archivo de configuración de Apache para el panel de control se encuentra normalmente en /usr/local/psa/admin/conf/httpsd.conf desde él se pueden cambiar los puertos por defecto en los que escucha Plesk, así como hacer cualquier cambio de directivas.

Evitad poner puertos que puedan ser usados por otros servicios y una vez hechos los cambios recordar que no serán efectivos hasta que se reinicie el panel.

Tras modificar una plantilla DNS puede ser necesario que todos los dominios ya creados cojan los nuevos valores por defecto, para ello:

1. Listamos todos los dominios actualmente creados y los metemos en “doms.txt”

mysql psa -e "select name from domains" > doms.txt

2. Ejecutamos el siguiente script (cambiad la ip 0.0.0.0 por la ip del server)

for DOM in $(cat doms.txt ); do /usr/local/psa/bin/dns.sh -res $DOM -ip 0.0.0.0; done