Archive for the ‘Plesk’ category

[plesk] Fallo de seguridad en proftpd

November 11th, 2010

Nota de prensa oficial de Paralllels:

Important Plesk Notification:

ProFTPD Remote Code Execution Vulnerability and Exploit
A flaw in the popular ProFTPD FTP server potentially allows unauthenticated attackers to compromise a server. The problem is caused by a buffer overflow in the pr_netio_telnet_gets() function for evaluating TELNET IAC sequences.

ProFTPD bug report: http://bugs.proftpd.org/show_bug.cgi?id=3521

Parallels Plesk Panel 9.x, 9.5x and 10 include this vulnerability. Parallels will issue Micro Updates (hotfixes) for 9.5.2 and 9.5.3 no later than 12:00 GMT (noon) on Thursday November 11, (7:00am EST in the US) to fix this.
The patch for Parallels Plesk Panel 10.01 will be released at 17:00 GMT on Thursday November 11, (12:00pm EST in the US).
Patches for Plesk 9.0, 9.22, and 9.3 will be posted by 12 noon GMT on Friday November 12, (7am EST in the US). Parallels updates on this will be coming soon.

MORE INFORMATION:
Updating to ProFTPD version 1.3.3c or disabling FTP services is the only current solution to this vulnerability. ProFTPD is capable of processing TELNET IAC sequences on port 21; the sequences enable or disable certain options not supported by the Telnet or FTP protocol itself. The buffer overflow allows attackers to write arbitrary code to the application’s stack and launch it. Updating to version 1.3.3c of ProFTPD solves the problem.
The update also fixes a directory traversal vulnerability which can only be exploited if the “mod_site_misc” module is loaded. This flaw could allow attackers with write privileges to leave their permitted path and delete directories or create symbolic links
outside of the path. The module is not loaded or compiled by default.

A remote root exploit is available: [Full-disclosure]ProFTPD IAC Remote Root Exploit
A Proftpd update for Plesk has been provided by Atomic Rocket Turtle. To apply the update, execute the commands below.
# wget -O – http://www.atomicorp.com/installers/atomic |sh # yum upgrade psa-proftpd
Please review http://www.parallels.com/products/plesk/ProFTPD for updates to this security issue.

Por supuesto se recomienda actualizar de forma urgente.

[plesk] Parallels Plesk Panel 10: capturas de pantalla

November 8th, 2010

Primeras capturas de pantallas :

Plesk Panels 10 - general server configuration

Plesk Panels 10 - general server configuration

Plesk Panels 10 - server health, apache status

Plesk Panels 10 - server health, apache status

Plesk Panels 10 - server health, apache status and more options

Plesk Panels 10 - server health, apache status and more options

Plesk Panels 10 - system statistics

Plesk Panels 10 - system statistics

Como podeis observar, el interface ha sido retocado para ser más claro y además es bastante más ligero. Aún así guarda el 95% de parecido con la versión anterior. Echaremos un vistazo más a fondo para ver que se esconde por dentro.

[Plesk] Parallels Plesk Panel 10: Cambiar el puerto apache

November 5th, 2010

Tan sólo llevamos unos minutos revisando documentación y nos encontramos con esta nueva característica: cambiar el puerto de apache:

http://download1.parallels.com/Plesk/PP10/10.0.1/Doc/en-US/online/plesk-apache-configuration-guide/index.htm

La primera impresión al leer la documentación es que Plesk 10 aún está en beta, pero ha sido liberada, y será madurada en las siguiente releases. Hay una característica medianamente aceptable y es que ahora hay unas plantillas para lo servicios que se pueden modificar y desde estas plantillas se generan las configuraciones para los servicios ( lease websrvmng –reconfigure-all ). Esta característica está bien, pero al llegar al apartado de cambiar apache de puerto, podemos leer esto:

To change the number of Apache HTTP port:

Find all occurrences of the string $VAR->server->webserver->httpPort and replace them with the required port number enclosed in quotation marks, for example: "3456">.

To change the number of Apache HTTPS port:

Find all occurrences of the string $VAR->server->webserver->httpsPort and replace them with the required port number enclosed in quotation marks, for example: "4567".

En resumen que hay que reemplazar todas la variables donde se indica el puerto “$VAR->server->webserver->httpPort” por el puerto en el que queremos que escuche Apache. Sería mucho más fácil definir un fichero con constantes y modificarlo directamente en el fichero. Parece un claro indicador de que aún faltan cosas por pulir.

[Plesk] Parallels Plesk Panel 10

November 5th, 2010

Acaba de ser liberado esta mañana Parallels Plesk Panel 10 !!!!
Calculando a ojo… llevan 2 años para liberarlo y nos trae todas estas novedades :

  • Cambian algunos terminos como templates a planes de servicio. Todo orientado a servicios y cuentas de cliente
  • Se permtie el cambio de un tipo de plan de servicio a otro
  • Nueva política para sobreuso: por fín, la del 9 era un horror. ahora puedes permitir el subreuso de disco y a la vez prohibir el sobre uso de otros recursos ( como se hacía en plesk8 )
  • Se ha integrado Bussiness Manager 10
  • Health monitor como caracteristica experimental
  • Aislamiento de seguridad para fastcgi !!
  • Configuración personalizada para apache
  • Dos tipos de plantillas EZ para virtuozzo con las mayor-version y fixed-version
  • La password de admin por defecto ya no es setup ( han tardado años …. )
  • Ya no es necesario descargar os paquetes de idiomas, vienen integardos
  • Ahora se pueden definir usuarios auxiliares para el mantenimiento del hosting. El tipico escenario en que tienes que tener una cuenta con plena gestion del domino y otra para tu informático o encargado del dominio, con menos privilegios, pero potente a la vez.
  • Se cambian los conceptos de hosting al de suscripción para dar cabida al multidominio.
  • Multiples cuentas ftp ( otra cosa que llevaba años esperando )
  • Storefront: Para instalar aplicaciones webs de pago y gratuitas
  • Sitebuilder 5

Ya no se soportan estas aplicaciones :

  • Miva Merchant
  • gtchat
  • MS Commerce Starter Kit 1.0
  • MS Community Starter Kit 1.0
  • MS DotNetNuke 3.2
  • MS Portal Starter Kit 1.0
  • MS Report Starter Kit 1.0
  • MS TimeTracker Starter Kit 1.0
  • Counter strike
  • Frontapage para linux
  • help desk
  • Master feature
  • Acronis Integration module
  • Battlefield 1942 game servers
  • Battlefield 2 game servers
  • PPWSE (Parallels Plesk Panel Professional Website Editor)

También se ha eliminado del sistema de correo:

  • Autorrepondedor con palabra clave ( keyword )
  • máximo de mails redigiridos
  • máximo de grupos de mail
  • máximo de autorespondedores

Otras carácteristicas eliminadas:

  • Favoritos, recientes y globales, del interafce de usuario se han elminiado y puede que vuelvan a incorporarlos en un futuro.
  • Interface de usuario configurable, también se ha eliminado.
  • Soporte para jet db, eliminando
  • ELIMINADO EL SOPORTE PARA FEDORA
  • ELIMINADO SOPORTE PARA FREEBSD ( hasta primer trimestre de 2011 )

Sólo añadir que se da soporte para cloudlinux y que esperamos probar durante el día de hoy nuestra primera instalación y daros nuestra opinión más a fondo. Aunque como siempre, no actualiceis aún vuestros servidores… que los cambios de versión no suelen traer cosas buenas :D

La descarga disponible en :
http://autoinstall.plesk.com/PSA_10.0.1/

[plesk] ERROR: PleskFatalException: Solucionar incosistencias en la base de datos

October 9th, 2010

Plesk sigue teniendo algunos defectos , uno de ellos es que a veces se pierde la integridad referencial en algunas tablas como las tablas mail y accounts, que provoca el fallo de las cuentas de correo. Este fallo puede ser :

  • The error that the other server returned was: 550 550 sorry, no mailbox here by that name. (#5.7.17)
  • The error that the other server returned was: 451 451 qq internal bug (#4.3.0)
  • O bien que al acceder a las propiedades de la cuenta de correo o intentar eliminar la cuenta, obtengamos este error en Plesk :
    ERROR: PleskFatalException
    Error: Can't create Account object: Account: unable to select: no such row in the table
    
    0: common_func.php3:146
        psaerror(string 'Error: Can't create Account object: Account: unable to select: no such row in the table')
    1: client.domain.mail.mailname.php:86
        plesk__client__domain__mail__mailname->accessItemOverview(string 'GET', NULL null)
    2: client.domain.mail.mailname.php:160
        __plesk__client__domain__mail__mailname->accessItem(string 'GET', NULL null)
    3: UIPointer.php:596
        UIPointer->access(string 'GET')
    4: plesk.php:38
    

Pongamos el supuesto que en mi servidor tengo dos dominios uno que se llama hostingaldescubierto.com y otro senin.org y que la cuenta que falla con el error de antes es contacto@senin.org.
Vamos a lanzar esta consulta en la base de datos para localizar los registros huérfanos en la taba de mail con accounts.

select domains.name, mail.mail_name, accounts.id, accounts.password from domains, mail left join accounts on mail.account_id = accounts.id where domains.id = mail.dom_id and accounts.id IS null;
+--------------------------+-------------+------+----------+
| name                     | mail_name   | id   | password |
+--------------------------+-------------+------+----------+
| hostingaldescubierto.com | basura      | NULL | NULL     |
| senin.org                | contacto    | NULL | NULL     |
+--------------------------+-------------+------+----------+
2 rows in set (0.01 sec)

Ahora podemos hacer dos cosas o bien borrar la cuenta de correo de la tabla mail o bien insertar una entrada en la tabla accounts. El único problema que puede haber si borramos la entrada en la tabla mail, es que si volvemos a crear la cuenta de correo podría ser que plesk eliminase el buzón con el contenido y lo crease de nuevo, pero no estoy totalmente seguro de esto o si ocurriría en todas las versiones. Yo opto por insertar los registros que falten.

Podríamos proceder generando los valores a insertar en la tabla accounts, y generando unas passwords aleatorias :

select mail.account_id, 'plain', SUBSTRING(MD5(RAND()) FROM 1 FOR 8) from domains, mail left join accounts on mail.account_id = accounts.id where domains.id = mail.dom_id and accounts.id IS null;

Nos devuelve :

+------------+------+-------------------------------------+
| account_id | text | SUBSTRING(MD5(RAND()) FROM 1 FOR 8) |
+------------+------+-------------------------------------+
|       1550 | text | 764dd7d1                            |
|       2310 | text | cdc15fc4                            |
+------------+------+-------------------------------------+

Con lo que montamos la sentencia INSERT y quedaría así:

INSERT INTO accounts select mail.account_id, 'plain', SUBSTRING(MD5(RAND()) FROM 1 FOR 8) from domains, mail left join accounts on mail.account_id = accounts.id where domains.id = mail.dom_id and accounts.id IS null;

Query OK, 2 rows affected (0.04 sec)
Records: 2  Duplicates: 0  Warnings: 0

y ahora verificamos que haya quedado corregido con la primera consulta:

select domains.name, mail.mail_name, accounts.id, accounts.password from domains, mail left join accounts on mail.account_id = accounts.id where domains.id = mail.dom_id and accounts.id IS null;
Empty set (0.01 sec)

Y así tenemos corregido el problema con tan solo copiar y pegar.

[softaculous] “ERROR LOADING DATA”

August 19th, 2010

Softacolous es un software para autoinstalar software en los paneles de alojamiento. Como el application vault de plesk, instalar paquetes como wordpress, joomla, etc… con un sólo click es un alivio para los administradores y para los clientes y esta compañía es en lo que se enfoca, en facilitar la vida de los de usuarios. La version gratuita tiene 60 scripts y la de pago 146 paquetes de software. Es interesante al menos valorar si puede cuadrarnos en nuestra oferta a clientes.

En una prueba e instalación con Plesk 9.3 y Debian, hemos tenido un problema en la instalación con este error ” ERROR LOADING DATA “. La experencia con el soporte técnico ha sido bastante buena, en 24-48 horas han estado contestandonos enviandonos un fichero php para realizar comprobaciones. Después de unos dias hemos dado con el problema.

Al parecer ( por que su script viene cifrado con ioncube y sólo hablamos de suposiciones ) su script ejecuta comandos usando system() o exec() e invocando a php en consola. El problema viene ocasionado por permisos de propietario y safe_mode:

Warning: file_get_contents(): SAFE MODE Restriction in effect. The
script whose uid is 0 is not allowed to access
/var/softtmp/0ae5f781a1f5e65fc712cc66b4b9f8de owned by uid 1001 in
/opt/psa/admin/htdocs/modules/softaculous/load.php on line 11 Warning:
file_get_contents(/var/softtmp/0ae5f781a1f5e65fc712cc66b4b9f8de):
failed to open stream: Inappropriate ioctl for device in
/opt/psa/admin/htdocs/modules/softaculous/load.php on line 11
<pre>

Así que la solución ha sido desactivar safe_mode en /etc/php5/cli/php.ini de esta forma ha funcionado.

[xinetd] FAIL: smtp per_source_limit from

July 27th, 2010

Otro caso común es que los clientes que usan IMAP padecen errores de desconexión al chequear la cuenta. En Outlook por ejemplo aparece este error:

(0x8004DF0B): ‘ Outlook no puede descargar la carpeta (null) del servidor de correo electrónico IMAP para la cuenta hostingaldescubierto. Error : la conexión con el servidor no está disponible. Outlook debe estar en linea o conectado para completar esta acción. Si sigue recibiendo ste mensaje, póngase ne contacto con el adminsistrador del servidor o con el proveedor de servicios de Internete (ISP).’

El servicio imap limita el número de conexiones concurrentes desde una misma ip y en aplicaciones como thunderbird que abre varios threads o en oficinas con varios puestos de trabajo podemos llegar a usar el máximo de conexiones permitidas. Para verificarlo, podemos buscar en el fichero messages ( ejemplo de una instalación con CentOS ) :

grep xinet messages | egrep -v "(START|EXIT)"

Jul 25 08:03:09 host05 xinetd[14777]: warning: can't get client address: Connection reset by peer
Jul 25 09:59:07 host05 xinetd[9558]: warning: can't get client address: Connection reset by peer
Jul 25 11:21:46 host05 xinetd[30946]: FAIL: smtp per_source_limit from=69.63.178.184
Jul 25 11:21:52 host05 xinetd[30946]: FAIL: smtp per_source_limit from=69.63.178.184
Jul 25 11:21:53 host05 xinetd[30946]: FAIL: smtp per_source_limit from=69.63.178.184
Jul 25 15:16:25 host05 xinetd[27990]: warning: can't get client address: Connection reset by peer
Jul 25 15:16:25 host05 xinetd[27991]: warning: can't get client address: Connection reset by peer
Jul 25 16:37:20 host05 xinetd[32733]: warning: can't get client address: Connection reset by peer

y buscamos el número de conexiones posibles:

grep MAXPERIP /etc/courier-imap/imapd
MAXPERIP=4

Con lo que vemos que el máximo de conexiones son 4 por IP, lo ampliamos manualmente como más nos guste y reiniciamos el servicio.

/etc/init.d/courier-imap restart
 Stopping Courier-IMAP server:
 Stopping imap                                           [  OK  ]
 Stopping imap-ssl                                       [  OK  ]
 Stopping pop3                                           [  OK  ]
 Stopping pop3-ssl                                       [  OK  ]

Starting Courier-IMAP server:
 Starting imapd                                          [  OK  ]
 Starting imap-ssl                                       [  OK  ]
 Starting pop3                                           [  OK  ]
 Starting pop3-ssl                                       [  OK  ]

Este caso suele ser muy típico en instalaciones con Plesk.

Plesk 9.5 : lista para instalar – CORREGIDO

March 30th, 2010

Aunque hace varias semanas hacíamos referencia a que estaba disponible Plessk 9.5, al día siguiente fue retirada de los repositorios. Según comentarios del equipo de Parallels era una beta para algunos clientes, aunque lo habitual es que lo liberen para que un pequeño grupo de usuarios actualice creyendo que es estable y probarles como cobayas :D

Desde antes de ayer ( más o menos) vuelve a estar disponible, aunque no ha sido oficialmente publicado. Seguramente sea la release final ya que en el KA ( panel de gestión de las licencias ) de Parallels aparecen disponibles ya las licencias de 9.5. Este hecho hace pensar que Plesk 9.5 marcará un cambio en la linea de Parallels ( marketing, funcional… habrá que verlo )

Desde la versión Plesk 8.6, que a mi gusto ha sido la mas estable y con mejor rendimiento desde las 6.x, la gente de Parallels no ha estado muy acertada con los cambios y han estado plagadas de bugs , sobretodo relacionados con postfix, qmail, spamasassin, drweb y domain keys y la basura del nuevo sistema de backup ( or decir algo elegante ) . Por todo ello no recomendaría instalar esta nueva versión en producción al menos hasta que salga Plesk 9.5.1 o 9.5.2 que seguro no tardarán mas de un mes desde que la liberen oficialmente.

No obstante para los intrépidos y los testers que quieran estar a la última , aqui teneis los repositorios para probarlas:

  • Centos


  • cat > /etc/yum.repos.d/CentOS-Plesk9.repo << EOF

    [plesk9-base]
    name=CentOS-Plesk9 – Base
    baseurl=http://autoinstall.plesk.com/PSA_9.5.0/dist-rpm-CentOS-\$releasever-\$basearch/
    gpgcheck=0
    enabled=1

    [plesk9-thirdparty]
    name=CentOS-Plesk9 – thirparty
    baseurl=http://autoinstall.plesk.com/PSA_9.5.0/thirdparty-rpm-CentOS-\$releasever-\$basearch/
    gpgcheck=0
    enabled=1

    [plesk9-updates]
    name=CentOS-Plesk9 – Updates
    baseurl=http://autoinstall.plesk.com/PSA_9.5.0/update-rpm-CentOS-\$releasever-\$basearch/
    gpgcheck=0
    enabled=1
    EOF

  • Debian

  • Etch

    cat > /etc/apt/sources.list.d/Plesk950.list << EOF
    deb http://autoinstall.plesk.com/debian/PSA_9.5.0 etch all
    EOF

  • Lenny:
    cat > /etc/apt/sources.list.d/Plesk950.list << EOF
    deb http://autoinstall.plesk.com/debian/PSA_9.5.0 lenny all
    EOF

[ALERTA] No actualizar servidores Plesk 9.3 a openssl 0.9.8e-12.el5_4.6 – ACTUALIZADO

March 29th, 2010

La nueva versión de openssl ( 0.9.8e-12.el5_4.6 ) está ocasionando problemas con Plesk 9.3.0.

El síntoma es que el demonio sw-cp-server falla al arrancar:


/etc/init.d/sw-cp-server restart
Restarting SWsoft control panels server... stale pidfile. [FAILED]dfile.

En el log de swp-cp-server pemos observar estas lineas :


tail /var/log/sw-cp-server/error_log
2010-03-29 12:50:48: (log.c.75) server started
2010-03-29 12:50:48: (network.c.336) SSL: error:00000000:lib(0):func(0):reason(0)
2010-03-29 12:50:51: (log.c.75) server started
2010-03-29 12:50:51: (network.c.336) SSL: error:00000000:lib(0):func(0):reason(0)
2010-03-29 12:50:51: (log.c.75) server started
2010-03-29 12:50:51: (network.c.336) SSL: error:00000000:lib(0):func(0):reason(0)
2010-03-29 12:59:46: (log.c.75) server started
2010-03-29 12:59:46: (network.c.336) SSL: error:00000000:lib(0):func(0):reason(0)
2010-03-29 12:59:46: (log.c.75) server started
2010-03-29 12:59:46: (network.c.336) SSL: error:00000000:lib(0):func(0):reason(0)

Por ahora se recomienda reinstalar la versión anterior ( openssl-0.9.8e-12.el5_4.1 disponible aqui )


yum downgrade openssl*

Actualización:
En caso de estar usando un vps puede realizar los siguientes pasos:


rpm –erase –nodeps openssl-0.9.8e-12.el5_4.6

puede encontrarse con este error si usa arquitectura x86_65

rpm –erase –nodeps openssl-0.9.8e-12.el5_4.6
error: “openssl-0.9.8e-12.el5_4.6″ specifies multiple packages

En este caso proceder la manera siguiente:

rpm –erase openssl-0.9.8e-12.el5_4.6.x86_64 –nodeps
rpm –erase openssl-0.9.8e-12.el5_4.6 –nodeps

y para instalar la versión válida:

vzpkg install VEID -p openssl-0.9.8e-12.el5_4.1.x86_64

o descargar el rpm e instalar dentro del vps

cd /usr/src
wget ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/updates/x86_64/RPMS/openssl-0.9.8e-12.el5_4.1.x86_64.rpm
rpm -ivh openssl-0.9.8e-12.el5_4.1.x86_64.rpm

y reiniciar el servicio


/etc/init.d/sw-cp-server restart

Esperamos que en breve Parallels libere una actualización para corregir el problema.

ACTUALIZACION 2

Cuidado si eliminas los rpm de openssl antes de tener el nuevo rpm ya puedes encontrarte con cosas así:


wget ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/updates/x86_64/RPMS/openssl-0.9.8e-12.el5_4.1.x86_64.rpm
wget: error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory

empiezan los sudores….


# curl ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/updates/x86_64/RPMS/openssl-0.9.8e-12.el5_4.1.x86_64.rpm
curl: error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory

más sudor frío ….


$ scp openssl-0.9.8e-12.el5_4.1.x86_64.rpm root@10.0.1.1:/root
ssh_exchange_identification: Connection closed by remote host
lost connection

con esto ya te quedas blanco ;)


# /etc/init.d/sshd restart
Stopping sshd: [FAILED]
Starting sshd: /usr/sbin/sshd: error while loading shared libraries: libcrypto.so.6: cannot open shared object file: No such file or directory
[FAILED]

Por supuesto yum tampoco funciona, así que si tenemos aún una sesión abierta lo vamos a solucionar facilmente así :


GET ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/updates/x86_64/RPMS/openssl-0.9.8e-12.el5_4.1.x86_64.rpm > openssl-0.9.8e-12.el5_4.1.x86_64.rpm
rpm -ivh openssl-0.9.8e-12.el5_4.1.x86_64.rpm

PARCHES
Parallels ha publicado los parches correspondientes a este problema en
http://kb.parallels.com/en/8338

[mysql] Reparar todas las tablas dañas ‘ marked as crashed ‘

March 18th, 2010

A veces un apagón repentino o la muerte de nuestro proceso de mysql puede provocar errores de tablas mal cerradas. Sobretodo en tablas de sesiones, logins, etc..


mysqld[2978]: 100318 7:34:27 [ERROR] /usr/sbin/mysqld: Incorrect key file for table ‘./home/tlr_boards.MYI’; try to repair it

mysqld[2978]: 100318 16:44:46 [ERROR] /usr/sbin/mysqld: Table ‘./home/tlr_sessions’ is marked as crashed and last (automatic?) repair failed

A veces lanzar un mysqlcheck -A no es suficiente, pero con este script sí conseguimos reparar todas las tablas :

for database in $(mysql --skip-column-names -uadmin -p`cat /etc/psa/.psa.shadow` -e "show databases" ); do echo "bd: $database"; for table in $(mysql --skip-column-names -uadmin -p`cat /etc/psa/.psa.shadow` -e "show tables" $database ); do echo "reparando $table " ; mysqlcheck -uadmin -p`cat /etc/psa/.psa.shadow` -r $database $table ; done ; done ;

Tras la reparación en el log podremos ver algo como esto:

mysqld[2978]: 100318 16:45:49 [Note] Found 1821 of 295 rows when repairing ‘./home/tlr_messages’
mysqld[2978]: 100318 16:45:50 [Note] Found 222 of 1 rows when repairing ‘./home/tlr_sessions’