cómo instalar eAccelerator para acelerar tu servidor apache

Últimamente tratamos con bastantes tiendas en prestashop y una de las formas de mejorar el rendimiento de las tiendas es usando eaccelerator.
Es muy fácil de instalar si no tenemos el paquete en nuestra distribución, el único inconveniente es que tienes que recompilar cada vez que instales una versión nueva de php.

# instalamos dependencias
apt-get install php5-dev automake autoconf libtool m4

# descargamos y descomprimimos 
wget https://github.com/eaccelerator/eaccelerator/tarball/master -O eaccelerator.tar.gz
tar zxvf eaccelerator.tar.gz

export PHP_PREFIX="/usr"

$PHP_PREFIX/bin/phpize

./configure 
--enable-shared 
--with-php-config=$PHP_PREFIX/bin/php-config

# compilamos
make
# instalamos
make install 

mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator

En este punto ya tenemos la instalación ahora solo hace falta configurar el módulo, para configurarlo en debian tenemos que editar el fichero

/etc/php5/conf.d/eaccelerator.ini

y agreagmos este contenido

extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Reiniciamos apache y echamos un vistazo al log de errores para verificar que no falla el módulo.
Podemos encontrarnos con un error como este :

"eAccelerator: Unable to change cache directory /var/cache/eaccelerator permissions"

Es debido a que no hay permisos para crear la estructura de directorios de la caché.
Desde la documentación de eaccelerator, nos instan a configurar la ruta de la caché en /tmp
según vemos en este enlace
https://github.com/eaccelerator/eaccelerator/wiki/InstallFromSource#wiki-Step_4_Creating_cache_directory

Zabbix SQL Injection: Actualización de seguridad

Se recomienda encarecidamente actualizar los paquetes de zabbix debido a un fallo de seguridad ( SQL Injection ) publicado ayer 6 de Septiembre de 2012.

Concretamente el fallo permite obtener sesiones y agregar scripts que se ejecutan bajo el demonio de zabbix, casi nada…

 Zabbix

 

Más información:

https://support.zabbix.com/browse/ZBX-5348

http://www.debian.org/security/2012/dsa-2539

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3435

Exploit:

http://www.exploit-db.com/exploits/20087

Vulnerabilidad CRÍTICA en la API de Plesk

Hace unas semanas se notificó por parte de Parallels un fallo crítico en el su software de panel de control de hosting: Plesk. Hicimos referencia a la nota en nuestro blog http://hostingaldescubierto.com/wordpress/2012/02/10/plesk-fallo-critico-de-seguridad-sql-injection/

Reciemiente hemos tenido accesos a una máquina usando este fallo de seguridad y vamos a compartir con vosotros algunas observaciones de estos accesos:

En el sistema se observan procesos perl no habituales, con lo que procedemos a buscar el origen del mismo con lsof y el resultado es que el origen del proceso pertenece a «/tmp/…» y se se ha eliminado. Ya esto nos da una idea de que el proceso no es para nada un proceso autorizado.

Verificamos /tmp y /var/tmp donde encontramos algunos ficheros ajenos al sistema pero sin contenido.

Si nos enganchamos al proceso , podemos ver que constantemente se está descargando ficheros de diversas urls con wget:

https://eycgkhkxfs.tmdnzapomk.info:1905//b/index.php?id=...
https://94.23.208.20:1905//b/index.php?id
https://rqckfdgumv.sxobnmbjzb.info:1905//b/index.php?...

Después de consultar algunas fuentes ( gracias Logan ) vemos que en los ficheros de logs de panel de control de plesk en /usr/local/psa/admin/logs/httpsd_access_log tenemos llamadas al fichero agent.php de la api de Plesk y posteriormente accesos al panel de control donde se suben ficheros a diversos dominios.

httpsd_access_log.processed.1.gz:78.139.244.50 dd.com:8443 - [13/Feb/2012:00:33:05 +0100] "POST /enterprise/control/agent.php HTTP/1.1" 200 74360 "-" "-"
httpsd_access_log.processed.1.gz:78.139.244.50 dd.com:8443 - [13/Feb/2012:03:04:52 +0100] "POST /enterprise/control/agent.php HTTP/1.1" 200 74360 "-" "-"
httpsd_access_log.processed.1.gz:78.139.244.50 dd.com:8443 - [13/Feb/2012:03:37:21 +0100] "POST /enterprise/control/agent.php HTTP/1.1" 200 74360 "-" "-"
110.136.186.229 x.x.x.x:8443 - [19/Feb/2012:05:12:37 +0100] "POST /login_up.php3 HTTP/1.1" 200 966 "https://x.x.x.x:8443/" "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; 3301; MyIE2)"
110.136.186.229 x.x.x.x:8443 - [19/Feb/2012:05:12:42 +0100] "GET /plesk/client@3/domain@/?context=domains HTTP/1.1" 200 29327 "-" "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; 3301; MyIE2)"
110.136.186.229 x.x.x.x:8443 - [19/Feb/2012:05:12:50 +0100] "GET /plesk/client@3/domain@222/hosting/file-manager/?cmd=chdir&file=%2Fcgi-bin%2F HTTP/1.1" 200 39293 "-" "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; 3301; MyIE2)"
110.136.186.229 x.x.x.x:8443 - [19/Feb/2012:05:13:06 +0100] "POST /plesk/client@3/domain@222/hosting/file-manager/create-file/ HTTP/1.1" 303 0 "-" "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; 3301; MyIE2)"

y dentro del dominio en la carpeta /cgi-bin/ vemos ficheros .cgi con el contenido de los scripts que el atacante ha subido.

Un fragmento de uno de los scripts nos indica que los procesos ejecutados en el sistema provienen de esos ficheros

open(OLD_UNIX, ">", "/tmp/.X11-unix");
print OLD_UNIX decode_base64("....L....");
close(OLD_UNIX);
system("echo '* * * * * perl /tmp/.X11-unix >/dev/null 2>&1' >
/tmp/cron.d ; crontab /tmp/cron.d ; rm /tmp/cron.d");
system("perl /tmp/.X11-unix");
print "exdonen";

Como medidas para prevenir este fallo de seguridad hay que actualizar Plesk aplicando los microupdates.
Reviar /var/spool/cron aunque en nuestro caso no se han encontrado crontabs ajenos.
Es recomendable también ajustar los permisos para wget, curl y get

http://kb.parallels.com/en/113321

En breve daremos más detalles de las evidencias obtenidas.

Parallels Plesk Panel 10.4 Marketing Preview

Parallels anuncia su nueva release para el 18 de Noviembre. Seguramente ya es conocido por todos los lectores qué es Parallels Plesk Panels, para los que no, que sepais que Plesk es software de gestión de hosting que permite gestionar dominios, cuentas de correo, cuentas ftp, certificados, ssl e integrarlo con otras aplicaciones de Parallels. Aquí teneis más informacion http://www.parallels.com/products/plesk/

¿ qué tienes que hacer para probalarla ? fácil, puedes encontrarla aquí http://www.parallels.com/download/plesk10.4

Resumiendo las mejoras importantes:
* Configuración de php.ini por dominio
* Configuración de módulos de apache: activar y desactivar módulos
* Dedicar una ip de salida a un cliente para enviar correo
* Descargar ficheros de log vía ftp
* Buzones de correo no aceptan nuevos mails si han superado la quota de espacio
* Mejoras en el sistema de backup ( siempre ha sido un punto débil de Plesk menos en la versión 8 )
* Mejoras en las herramientas de migración ( otra herramienta delicada que no siempre funciona bien )

Esto es lo más destacable, pero para ver la lista completa podeis pasaros por estos enlaces :

* Parallels Plesk Panel 10.4 for Linux-based Operating Systems release notes
* Parallels Plesk Panel 10.4 for Windows-based Operating Systems release notes

Fallos de seguridad

Comprueba si tus sistemas están al día. Importantes fallos de seguridad en Apache y Rails han sido descubiertos y publicados, así como sus correspondientes parches.

En Apache se ha descubierto una vulnerabilidad que permite realizar un ataque de denegacion de servicio y en rails es posible realizar XSS y SQL Injection.

A continuación más detalles :

Apache: http://www.debian.org/security/2011/dsa-2298

CVE-2010-1452, CVE-2011-3192.

Rails: http://www.debian.org/security/2011/dsa-2301

CVE-2011-2930, CVE-2011-2931, CVE-2011-3186, CVE-2009-4214.

[ubuntu] locale: Cannot set LC_CTYPE to default locale: No such file or directory

Vaya con ubuntu… no me esperaba esto. Normalmente en Debian cuando no está bien configurado el idioma local, basta con reconfigurar el paquete de esta manera :

sudo dpkg-reconfigure --frontend=dialog --priority=low locales

Con las opciones forzamos a que los mensajes sean vía dialogo con libncurses y la prioridad es que nos pregunte cualquier opción necesaria para configurar el paquete , no sólo las importantes. Como decíamos en debian, con esto es suficiente.

El error que normalmente aparece es algo asi :

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

El caso es que hoy con un servidor ubuntu…. esto no hace na de naaaaa y he estado indagando y parace que hace falta definir qué idiomas son los válidos en el directorio /var/lib/locales/supported.d.
En la documentación de Ubuntu nos encontramos información, pero no es muy clara https://wiki.ubuntu.com/LocalesThatDontSuck

La configuración correcta la podemos hacer así :

Instalamos el paquete con los idiomas en nuestro caso inglés

apt-get install language-pack-en

Como el inglés tiene bastante variantes le vamos a dejar sólo la americana en_US. Para ello editamos el fichero /var/lib/locales/supported.d/en y dejamos sólo esta linea:

en_US.UTF-8 UTF-8

Ahora configuramos el idioma por defecto con

update-locale LANG=en_US

Ya tenemos generado el fichero que necesitabamos en /etc/default/locale

#  File generated by update-locale
LANG=en_US

y con esto el problema queda solucionado.

Prestashop 1.4.3.0

Hace unos días se liberó la release 1.4.3.0 de Prestashop
En esta ocasión se han corregido una buena cantidad de bugs, las mejoras y cambios tampoco son notables.

http://svn.prestashop.com/trunk/CHANGELOG
http://svn.prestashop.com/tags/1.4.3.0/CHANGELOG

Release Notes for PrestaShop 1.4
--------------------------------
####################################
#   v1.4.3.0 - 7119 (2011-06-16)  #
####################################

	Added Features:

	[+] Installer : Refuse to index the page by robots

	[+] BO : Added button "Add my IP"
	[+] BO : Adding pagination to the customers list
	[+] BO : added the option to move product images to the new filesystem

	[+] Classes : added manufacturer name and id in ProductSale::getBestSales();
	[+] Classes : added manufacturer name and id in ProductSale::getBestSales(); without sql error ;)

	[+] MO : MondialRelay, add fields personalization and fix js
	[+] MO : Refactoring Module dejala and LiveZilla
	[+] MO : layered module - real time URL building (ability to give the URL to someone)

	Improved/changed features:

	[*] Project : Removed "if class_exists" in autoload

	[*] Installer : Now when you install Prestashop, all languages are disabled expect the default language of your shop

	[*] FO : Fixed Bug #PSCFI-1342 - Gest customer transformation is only applicable when there is no non-guest customer with the same email
	[*] FO : Fixed Bug #PSCFI-2241 - Error in JS tools.js

	[*] BO : Added some help on the search configuration page
	[*] BO : detailled error message when you import from csv

	[*] Classes : #PSCFI-2061 - removed return statement in constructor
	[*] Classes : fix issue on cache object return value in method getPosition

	[*] MO : Fixed bug #PSCFI-2242 - Changes from the 1.3.x version have not been added to the 1.4 version
	[*] MO : Treepodia module can now handle more products on their feed
	[*] MO : eBay module - Some improvments
	[*] MO : fix issue on loyalty module

	[*] WS : clean code
	[*] WS : clean code

	Fixed bugs:

	[-] PROJECT : Bug fixed #PSCFI-2119 - Cache was not working well with getRow and getValue (Thanks Remi for the fix :)
	[-] Project : remove unused 4 param in Tools::displayPrice() #PSCFI-2063
	[-] Project : the autoload now accept not "Core" classes in classes folder.

	[-] Installer : Undefined variable languages
	[-] Installer : add a ";" to SQL requeste

	[-] FO : Add a defined list of required fields for a susbscription form
	[-] FO : Bug Fixed #PSCFI-1515 - Specific price cache is useless in priceCalculation
	[-] FO : Bug Fixed #PSCFI-2090 - Group discount + discount = incorrect combination price
	[-] FO : Bug Fixed #PSCFI-2105 - Voucher discount on total amount
	[-] FO : Bug Fixed #PSCFI-2107 - Required Field "Tax Identification"
	[-] FO : Bug Fixed #PSCFI-2161 - Rounding issues
	[-] FO : Bug Fixed (related #PSCFI-2250) - Out of stock behavior + comparison page
	[-] FO : BugFix #PSCFI-2267 : Forbidden access to tpl files
	[-] FO : BugFix #PSCFI-2271 : Cumulable voucher can be added more than one time to cart
	[-] FO : Fix Undefined value when adding a product to the cart
	[-] FO : Fix a bug with invoice address on OPC #PSCFI-2099
	[-] FO : Fix the default fields for a new register user form
	[-] FO : Fixed Bug #PSCFI-1730 - CCC mustn't be included each time with https
	[-] FO : Fixed Bug #PSCFI-2163 - Product list dont show "add to cart" button, if minimal qty to order is set to something != 1, it must be <= 1
	[-] FO : Fixed Bug #PSCFI-2163 - Product minimal quantity by default must be 1 and not 0
	[-] FO : Fixed Bug #PSCFI-2192 - Nomalization
	[-] FO : Fixed Bug #PSCFI-2241 - Error in JS tools.js
	[-] FO : Fixed bug #PSCFI-2088 - change id attribute adress_alias to address_alias.
	[-] FO : Fixed bug #PSCFI-2120 - Customization image delete button doesn't work. The link was commented.
	[-] FO : Fixed bug #PSCFI-2150 - Wrong url when we used the sort option
	[-] FO : Fixed bug PSCFI-2135, Refreshing price is fixed when the ajax setting of blockcart is turned off
	[-] FO : Function usingSecureMode does not work properly (depends on the server configuration)
	[-] FO : PSCFI-2118 - Substr of payment name compared to payment name (payment name musnt be truncated).
	[-] FO : PSCFI-2118 - Substr of payment name compared to payment name (payment name musnt be truncated).
	[-] FO : Remove blocklayered CSS/Js files on page we dont need them (and they make bugs with pager)
	[-] FO : Rounding issues
	[-] FO : Smarty 2 compatibility
	[-] FO : Validator don't work fine with non ansi chars
	[-] FO : fix an URL never rewrited in stores.js #PSCFI-1931
	[-] FO : fixed bug #PSCFI-2153 - CreditSlip PDF not accessible from FrontOffice
	[-] FO : fixed bug #PSCFI-2171 - Group Access Not Working
	[-] FO : fixed bug #PSCFI-2203 - [OPC] AJAX login fails and freezes when user has no address defined.
	[-] FO : fixed bug #PSCFI-2279 - voucher add to cart technical error
	[-] FO : fixed bug - breadcrumb was not display in some case.
	[-] FO : removing the link on the category label #PSCFI-2065

	[-] BO : Better understanting for address layout, Add a ignore class list for the liable fields and fix translsation
	[-] BO : Bug fixed on CSV import (Thanks to Magavenue :)
	[-] BO : BugFix #PSCFI-2289 - AdminImport not working in some cases
	[-] BO : Fix tax calcul in attribute generator #PSCFI-2095
	[-] BO : Fixed #PSCFI-444 - flag can be updated even if .htaccess is not writable
	[-] BO : Fixed Bug #PSCFI-2200 - On installing languages, bad adding on table profile_lang (id_lang and id_profile are reversed)
	[-] BO : Fixed Bug #PSCFI-2263 - Mexico must be set as a country with states
	[-] BO : Fixed Bug PSCFI-2198, The current editing element will not be removed if the user cancel it and a better fonctionality of Echap key.
	[-] BO : Fixed bug #PSCFI-2092 - Missing translation on contact details
	[-] BO : Fixed bug PSCFI-2207, Fixed a bad variabled used with vat.
	[-] BO : Fixed invoice date when database is MySQL 4.
	[-] BO : fixed bug #PSCFI-2247 - AdminCustomerThreads (Customer Service) displays wrong currency symbol in BO
	[-] BO : fixed bug #PSCFI-2248 - browser error "unterminated string constant" in AdminTracking.php
	[-] BO : fixed bug #PSCFI-2255 - PDF PS_INVOICE_PREFIX without iconv
	[-] BO : fixed image caching when memory_limit = -1
	[-] BO : fixed overflowing admin sub-tabs in themes flashyturtle and origins
	[-] BO : fixed rewrite link warning message when importing
	[-] BO : removed hard coded tmp img link

	[-] Classes : Bug fixed in Language class, delete method when no i18n file were created for a language.
	[-] Classes : fixed bug #PSCFI-2124 - Misuse of redirect (Tools.php) in Order Process (and probably other areas) causes failed flow.
	[-] Classes : fixed bug #PSCFI-2141 - Object->add() should not use Tools::getValue() - final part
	[-] Classes : fixed bug #PSCFI-2141 - Object->add() should not use Tools::getValue() - first part
	[-] Classes : fixed bug in property_exists function
	[-] Classes : fixed calls of non static method as static in order controllers

	[-] Core : fixed bug #PSCFI-2143 - Insufficient check for crawler populated ghost carts in CartController

	[-] MO : #Fixed bug PSCFI-2134 - Json parse error. Need ' instead of '
	[-] MO : Add Constants cart directly to the module for the PrestaShop 1.3 compatibility
	[-] MO : Bug fixed #PSCFI-2122 - Problem on rounded values
	[-] MO : Bug fixed #PSCFI-2122 - Problem on tax values
	[-] MO : Bug fixed #PSCFI-2238 - Module USPS was send container type to USPS
	[-] MO : Bug fixed eBay module - Wrong flag for resync option
	[-] MO : Categories shown twice (or more) on block category when customer have more than one group
	[-] MO : Code Cleaning
	[-] MO : Fix blocklayered module to allow user to sort products list (now use default value from BO, and refresh using ajax) #PSCFI-2096
	[-] MO : Fix console.log IE
	[-] MO : Fix minors bug and translations
	[-] MO : Fix smarty display for 1.3
	[-] MO : Fix translations
	[-] MO : Fixed Bug #PSCFI-2182 - Loyalty module (loyalty-program.php) return wrong category list and too long list on vast catalog
	[-] MO : Fixed Bug #PSCFI-2191 - DIBS module test paramter is assigned with wrong values.
	[-] MO : Fixed Bug #PSCFI-2191 - DIBS module test paramter is assigned with wrong values.
	[-] MO : Fixed Bug #PSCFI-2192 - Required fields and ajax cart dont work as expected
	[-] MO : Fixed Bug #PSCFI-2192 - Required fields and ajax cart dont work as expected
	[-] MO : Fixed Bug #PSCFI-2264 - Left scroll button is visible when the page is loaded whereas there is no products on the left.
	[-] MO : Fixed SQL error on layered module
	[-] MO : Fixed SQL/PHP errors on layered module when category is empty
	[-] MO : Fixed bug - Incorrect validation for discount_value_percentage field
	[-] MO : Fixed bug - Possibility to put negative values
	[-] MO : Fixed bug - Values are not passed in an htmlentities function before display
	[-] MO : Fixed bug : Ajax with the button add cart properly works when an product image doesn't exist
	[-] MO : Fixed bug PSCFI-2187, Use back price_wt instead of total_wt wthen product is added to google cart.
	[-] MO : Fixed bug when the hook is detached of the right
	[-] MO : Fixed errors, and add nb items per page to the layered block module
	[-] MO : Fixed norms
	[-] MO : Had a security token on eBay module
	[-] MO : Mistake in the commit 6952
	[-] MO : MondialRelay fix french franslations
	[-] MO : MondialRelay is now supported for PrestaShop 1.3. Clean unused code.
	[-] MO : MondialRelay, add french translation
	[-] MO : Norm pass
	[-] MO : Normalization + better directory clean
	[-] MO : PayPal create account link for Spain changed
	[-] MO : added cast in blockrss
	[-] MO : added check on secure key in moneybookers validation
	[-] MO : added token on export and send mail on twenga module
	[-] MO : carriercompare - undefined variable
	[-] MO : eBay module - fix for PrestaShop 1.3.x and many others improvments
	[-] MO : fix french translation for statscarrier
	[-] MO : fixed Fatal Error when payment name in osc bdd has character inappropriate // :p
	[-] MO : fixed bug #PSCFI-2165 - Module ImporterOsc - After importing, changing orders state, in list mode : date of today, in order detail mode : real date
	[-] MO : fixed bug #PSCFI-2194 - Layered when reset display inactive products
	[-] MO : fixed bug #PSCFI-2219 - Incorrect usage of numRows()
	[-] MO : fixed bug #PSCFI-2229 - added help text on specific option
	[-] MO : fixed bug #PSCFI-2240 - Layered navigation - overloading template file (.tpl) is not working
	[-] MO : fixed bug #PSCFI-2280 - module customer follow up has bug when install in back office
	[-] MO : fixed bug - import osc was not display in shopImport module
	[-] MO : fixed bug on instant search with Internet Explorer 7
	[-] MO : fixed bug on tm4b
	[-] MO : fixed error when uninstall socolissimo module //thanks to Alain ouftete
	[-] MO : layered navigation pagination added  ;) #PSCFI-2137 #PSCFI-2085
	[-] MO : layered navigation pagination fixed undefined variable
	[-] MO : now only discount bound to a valid order is shown (Loyalty module)

	[-] WS : Bug fixed due to Core modifications
	[-] WS : Factorization of WebserviceRequest
	[-] WS : Small fix when error happens
	[-] WS : Support for categories POST - PSCFI-1416
	[-] WS : Support for image product POST method PSCFI-675, PSCFI-1416

	[-] PDF : Bug Fixed - Invoice: tax detail line with reduction

Parallels 10.3 Preview

Hace escasos minutos nos ha llegado el mail de invitación para ir probando la versión 10.3 de Parallels.
Como su nombre indica es una preview, la primera, así que incluirán algunos cambios en la versión final.

Para todos aquellos impacientes , aquí teneis un enlace 😉

Parallels 10.3 Preview/

[Plesk] Nueva versión Parallels Plesk Panel 10.2

Parallels lanza una nueva release de su panel de control Plesk. La versión 10.2 trae nuevas funcionalidades como soporte para ipv6 y quizás lo que sea más interesante el soporte SNI que permite usar varios certificados ssl con una sóla IP y no como hasta ahora que era necesario usar una IP por certificado ( http://en.wikipedia.org/wiki/Server_Name_Indication )

Otro gran cambio es que el fichero /etc/psa/.psa.shadow pasa a ser un fichero cifrado, para que tus scripts sigan funcionando deberás usar este comando /usr/local/psa/bin/admin –show-password

Soporte para Red Hat Enterprise 6 , Debian 6 y Suse 11.4

Además corrige algunos bugs ademas de mejoras en la restauración y migración, migración de certificados ssl, etc…

más información en las notas de release :

http://download1.parallels.com/Plesk/PP10/10.2.0/release-notes/parallels-plesk-panel-10.2.0-for-linux-based-os.html