Ajustes de Rootkit Hunter en Ubuntu 10.04 Server con Plesk

0

Plesk incluye la utilidad Rootkit Hunter para la revisión de código malicioso en el servidor. El problema es que no han terminado de configurarla correctamente, de forma que siempre devolverá algunos warnings, que provocarán que se envíe un correo electrónico periódicamente con un críptico mensaje: Please inspect this machine, because it may be infected.

Sin embargo, se puede modificar el fichero de configuración, situado en /usr/local/psa/etc/modules/watchdog/rkhunter.conf, añadiendo las siguientes líneas, para que esto no ocurra:

XINETD_ALLOWED_SVC=/etc/xinetd.d/ftp_psa
XINETD_ALLOWED_SVC=/etc/xinetd.d/poppassd_psa
ALLOWHIDDENDIR=/dev/.udev
APP_WHITELIST="gpg OpenSSL PHP named"
ALLOW_SSH_ROOT_USER=no

La última línea dependerá de cómo tengamos configurado SSH, permitiendo acceso como root o no.

La siguiente vez que se lance el proceso ya no debería haber errores o advertencias, por lo que no se recibirá el correo. Si se desea lanzar manualmente el proceso de revisión, se puede realizar bien a través de Plesk, o desde consola, con el comando /usr/local/psa/admin/bin/modules/watchdog/rkhunter --check.

Ajuste en lote del TTL de los registros DNS con Plesk

0

Antes de realizar una migración de servidor que incluya cambio de IP es muy conveniente modificar el TTL de los registros DNS, que por lo general suele estar establecido en 24 horas, de forma que cuando procedamos a realizar el cambio en estos registros, haciendo que las peticiones cambien de un servidor a otro, minimicemos el tiempo durante el que éstas llegaran a uno u otro servidor de forma indeterminada, por ejemplo a 5 minutos.

En servidores Plesk, este cambio se puede realizar cómodamente modificando la base de datos. Este es el SQL a utilizar a partir de la versión 8.3, y probado sobre una 9.5.1:

UPDATE 'dns_zone' SET 'ttl' = '300', 'ttl_unit' = '60' WHERE 'id' > 1;

Una vez modificada la base de datos, ejecutamos este comando para que Plesk regenere los archivos de zona:

"%plesk_bin%\dnsmng.exe" update *

Hay que tener en cuenta que los cambios no serán inmediatos, debido al propio funcionamiento del sistema DNS, que provoca que la propagación no se pueda garantizar hasta que vaya caducando en la caché de los distintos servidores el registro anterior, así que hay que anticiparse y realizar este cambio al menos 24 horas antes de realizar la modificación de la IP.

Bonus 1: Modificación de la base de datos MDB de Plesk

Si estuvimos poco hábiles el día de la instalación de Plesk y decidimos que utilizase Access en lugar de MySQL, tendremos alguna dificultad para realizar cambios sin instalar el Microsoft Access, del que tendríamos que adquirir una licencia para poder realizar esta modificación, además de que dejarlo instalado en un servidor de producción no mola.

Pero tenemos una buena alternativa: MDB Viewer Plus, que permite examinar y desde hace bien poco también la ejecución de SQL sobre tablas Access, utilizando MDAC, que viene instalado con Windows.

Bonus 2: Comprobación de los registros DNS

Para comprobar que efectivamente el TTL de nuestros registros DNS es el correcto, podemos utilizar el comando dig en Linux contra cualquier servidor DNS, que nos mostrará lo que tenga almacenado:

jefazo@servidor:~$ dig midominio.tld @8.8.8.8

; <<>> DiG 9.7.3 <<>> midominio.tld @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10873
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;midominio.tld.                        IN      A

;; ANSWER SECTION:
midominio.tld.         300     IN      A       1.2.3.4

;; Query time: 108 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Sep 10 22:12:07 2011
;; MSG SIZE  rcvd: 48

Ajustes de IIS 7 en línea de comandos con Appcmd

0

Cuando tenemos que administrar un servidor web de cierta entidad, con muchos dominios, grupos de aplicaciones, etc., e interesa realizar alguna operación en lote sobre un grupo de ellos, no es necesario que nos pasemos media mañana haciendo click, botón derecho, propiedades, avanzadas… En esos casos es cuando vale la pena utilizar Appcmd utilidad provista con IIS 7 (Windows 2008).

La utilidad está en %windir%\system32\inetsrv, aunque también hay una pequeña aplicación de interfaz bastante simple llamada AppcmdUI, pero que nos ofrece la posibilidad de ir autocompletando el comando que vamos generando, lo que suele ser una ayuda, sobre todo al principio.

Una de las capacidades más notorias que nos ofrece Appcmd es el pipelining, lo que nos permite encadenar la salida de un comando como entrada del siguiente, consiguiendo así actuar sobre varios objetos fácilmente. Me explico con un ejemplo práctico:

  1. Obtenemos una lista de los grupos de aplicaciones:
    appcmd apppool list
  2. Modificamos a 30 minutos el tiempo de inactividad de un grupo de aplicaciones previo a su reciclaje:
    appcmd set apppool "pedazodeseñoraweb.es" /processModel.idleTimeout:00:30:00

Si juntamos estos dos comandos, podemos hacer que el tiempo de inactividad de todos los grupos de aplicaciones pase a ser de 30 minutos, con:

appcmd list apppool /xml | appcmd set apppool /in /processModel.idleTimeout:00:30:00

Obsérvese que la salida del primer comando se ha establecido para que se obtenga como XML, con /xml, y que se ha especificado que la entrada del segundo provendrá de su entrada estándar y en formato XML, con /in. Por último, se han unido la salida del primero con la entrada del primero mediante una tubería (|).

Así, podemos hacer cosas chachis, como reciclar todos los procesos, modificar en lote la configuración de los que empiecen por una cadena de texto dada, listar todas las copias de seguridad existentes…

Permitir a un usuario acceder un servidor mediante escritorio remoto

2

Seguro que si habéis necesitado activar el acceso remoto de un usuario no administrador a un servidor Windows que además esté haciendo el rol de controlador de dominio os habréis encontrado con este mensaje, pese a haber añadido el usuario al grupo Usuarios de escritorio remoto:

El motivo es precisamente que es un controlador de dominio, y como tal, tiene una directiva de seguridad específica, que se puede modificar en Herramientas administrativas | Configuración de seguridad predeterminada de controlador de dominio.

En esta consola, desplegamos Configuración de Windows | Configuración de seguridad | Directivas locales | Asignación de derechos de usuario, y en la directiva Permitir inicio de sesión a través de Servicios de Terminal Server añadimos al usuario que nos interese, en la forma DOMINIO\Usuario.

Como cualquier modificación en las directivas, tarda algo en hacerse efectiva, así que si tenemos prisa y no apetece reiniciar, podemos forzarlo con el comando:

gpupdate /force

Cambio de permisos en ficheros y directorios

0

Cuando se instala alguna web nueva, o se utliza algún paquete de actualización, es bastante común que los permisos no vengan correctamente especificados, y por tanto no funcione correctamente. Con estos dos simples comandos se puede resolver rápidamente:

  • Cambiar recursivamente los permisos de todos los directorios a 755:
    find . -type d -exec chmod 755 {} \;
  • Cambiar recursivamente los permisos de todos los archivos a 644, dejando intactos los directorios:
    find . -type f -exec chmod 644 {} \;

 

Quitar paises y ciudades de Magento

0

Para quitar ciudades que no quieres que se muestren en lo combobox de Magento es tan facil como irse a

Sistema/Configuracion

El menu de la izquierda ir a la opcion “General” y en la opcion “country options” seleccionar solo los paises que se quieren.

Ciudades en Magento

Esto se complica cuando lo que quieres es quitar solo algunas ciudades.
En este caso hay que tocar el core de Magento realizando los siguientes cambios

Copiar el fichero /app/code/core/Mage/Directory/Model/Mysql4/Region/Collection.php a la carpeta local /app/code/local/Mage/Directory/Model/Mysql4/Region/Collection.php
cambiando la siguiente linea de codigo (mas o menos la 50):

$this-&gt;_select-&gt;from(array('region'=&gt;$this-&gt;_regionTable),
    array('region_id'=&gt;'region_id', 'country_id'=&gt;'country_id', 'code'=&gt;'code', 'default_name'=&gt;'default_name')
);

y sustituirlo por

$exclude_regions = array ('AS','AK','AA','AC','AE','AK','AM','AP','FM','GU','HI','MH','MP','PW','PR','VI','AF');
 
$this-&gt;_select-&gt;from(array('region'=&gt;$this-&gt;_regionTable),
    array('region_id'=&gt;'region_id', 'country_id'=&gt;'country_id', 'code'=&gt;'code', 'default_name'=&gt;'default_name')
)
-&gt;where('code NOT IN (?)', $exclude_regions);

Otra solución sería borralo de la BD pero no es recomendable ni elegante

Poner una imagen del skin dentro del CMS de Magento

0

Es recurrente tener que poner una imagen que forma parte del skin dentro de un bloque estático o una página CMS de Magento.
Es tan sencillo como poner la siguiente sentencia dentro del src de la imagen {{skin url=’images/nombre_de_la_imagen.gif’}}

Hay que tene en cuenta que esto hay que hacerlo editando el código HTML de la página o bloque.
Como todo en Magento, si la imagen no existe la buscara en los skins padres.

Agregar atributos a una categoría de Magento

0

 

Muchas veces es necesario ampliar la información que aporta las categerias de magento, por ejemplo con otra descripción u otra imagen.

He visto 2 soluciones:

  • Onsertando un nuevo registro de forma manual directamente en la tablas (eav_attibute, etc…). No es muy recomendable ya que además según el atributo y para que necesitas escribir en varias tablas
  • Haciendo un pequeño componente que usaremos una vez y luego borraremos. El proceso es parecido a el sistema de actulización de atributos que explican en la wiki de Magento. Aquí explicaré como hacerlo y al final dejaré el zip por si se quiere descargar

El módulo lo llamaremos AddAttributeCategory y constará de 3 ficheros. El primero situado en app\code\local\DD\AddAttributeCategory\etc\config.xml que configura el módulo

         &lt;config&gt;
   &lt;modules&gt;
      &lt;DD_AddAttributeCategory&gt;
         &lt;version&gt;0.1.0&lt;/version&gt;
      &lt;/DD_AddAttributeCategory&gt;
   &lt;/modules&gt;
   &lt;global&gt;
      &lt;resources&gt;
         &lt;AddAttributeCategory_setup&gt;
            &lt;setup&gt;
               &lt;module&gt;DD_AddAttributeCategory&lt;/module&gt;
               &lt;class&gt;Mage_Catalog_Model_Resource_Eav_Mysql4_Setup&lt;/class&gt;
            &lt;/setup&gt;
            &lt;connection&gt;
               &lt;use&gt;core_setup&lt;/use&gt;
            &lt;/connection&gt;
         &lt;/AddAttributeCategory_setup&gt;
      &lt;/resources&gt;
   &lt;/global&gt;
&lt;/config&gt;

El siguiente fichero será el cual realiza la acción de añadir el atributo. Está dentro del fichero de instalación situado en app\code\local\DD\AddAttributeCategory\sql\addattributecatalog_setup\mysql4-install-0.1.0.php

 &lt;?php
$installer = $this;
$installer-&gt;startSetup();
$installer-&gt;addAttribute('catalog_category', 'imagen_destacados', array(
                        'type'              =&gt; 'varchar',
                        'backend'           =&gt; 'catalog/category_attribute_backend_image',
                        'frontend'          =&gt; '',
                        'label'             =&gt; 'Imagen Destacados',
                        'input'             =&gt; 'image',
                        'class'             =&gt; '',
                        'source'            =&gt; '',
                        'global'            =&gt; 0,
                        'visible'           =&gt; 1,
                        'required'          =&gt; 0,
                        'user_defined'      =&gt; 0,
                        'default'           =&gt; '',
                        'searchable'        =&gt; 0,
                        'filterable'        =&gt; 0,
                        'comparable'        =&gt; 0,
                        'visible_on_front'  =&gt; 0,
                        'unique'            =&gt; 0,
                        'position'          =&gt; 1,
                    ));
$installer-&gt;endSetup();?&gt;

Finalmente activamos en nuevo módulo en magento mediante el fichero app\etc\modules\DD_AddAttributeCategory.xml

 &lt;config&gt;
    &lt;modules&gt;
        &lt;DD_AddAttributeCategory&gt;
            &lt;active&gt;true&lt;/active&gt;
            &lt;codePool&gt;local&lt;/codePool&gt;
        &lt;/DD_AddAttributeCategory&gt;
    &lt;/modules&gt;
&lt;/config&gt;

Ya solo queda entrar en el backend y ver que, efectivamente se muestra este nuevo atributo.

Es recomendable una vez ejecutado borrar el módulo ya que en algunos casos vuelve a intentar crear el atributo y produce un error. No olvidar desactivas la cache antes de realizar nada.

Comentar que se pueden añadir atributos nuevos, usando los modelos de Magento o se pueden crear unos propios (p.e combos con valores). Para eso añadiremos el fichero \code\local\DD\AddAttributeCategory\Model\Entity\Attribute\Source\addattributecatalog.php

class DD_AddAttributeCategory_Model_Entity_Attribute_Source_Test extends Mage_Eav_Model_Entity_Attribute_Source_Table
{
    public function getAllOptions()
    {
        return array(
            array(
                'value' => 'none',
                'label' => Mage::helper('adminhtml')->__('Nada')
            ),
            array(
                'value' => 'prueba1',
                'label' => Mage::helper('adminhtml')->__('Prueba 1')
            ),
            array(
                'value' => 'prueba2',
                'label' => Mage::helper('adminhtml')->__('Prueba 2')
            )

        );
    }
}

y finalmente ampliaremos el fichero de configuracion de nuestro modulo app\code\local\DD\AddAttributeCategory\etc\config.xml con

&lt;config&gt;
   &lt;modules&gt;
      &lt;DD_AddAttributeCategory&gt;
         &lt;version&gt;0.1.0&lt;/version&gt;
      &lt;/DD_AddAttributeCategory&gt;
   &lt;/modules&gt;
   &lt;global&gt;
      &lt;resources&gt;
         &lt;AddAttributeCategory_setup&gt;
            &lt;setup&gt;
               &lt;module&gt;DD_AddAttributeCategory&lt;/module&gt;
               &lt;class&gt;Mage_Catalog_Model_Resource_Eav_Mysql4_Setup&lt;/class&gt;
            &lt;/setup&gt;
            &lt;connection&gt;
               &lt;use&gt;core_setup&lt;/use&gt;
            &lt;/connection&gt;
         &lt;/AddAttributeCategory_setup&gt;
      &lt;/resources&gt;
&lt;models&gt;
  &lt;addattributecategory&gt;
    &lt;class&gt;DD_AddAttributeCategory_Model&lt;/class&gt;
  &lt;/addattributecategory&gt;
&lt;/models&gt;
    &lt;/global&gt;
&lt;/config&gt;

Puedes descargarlo pulsando e DD_AddAttributeCategory. El código incluye solo las parte de ejemplo que añade una imagen adicional.

Campo observaciones en el chekout de Magento

0

1. Ir a Magento Connect e instalar “Customer Order Comment Extension

2. Actualiza la plantilla  de Magento

Busca la plantilla de ejemplo en /app/code/community/Biebersdorf/CustomerOrderComment/design/ y copia estos ficheros en las carpetas correspondientes de tu plantilla o modifica los tuyos.

Para modificar el texto mostrado modifica esta linea en tu plantilla templates -> helper(‘biebersdorfcustomerordercomment’)->__(‘How did you hear about us?’) ?>

Si no hay agreements no se muestra así que recomiendo sacarlo de dentro del if y ponerlo arriba del todo.

3. Solucionado

Como siempre asegurate de tener la cache desactivada.

Editar fichero po de traducción gettext

1

Aunque no tengo gran experiencia en este tipo de cosas, últimamente me he encontrado en la necesidad de personalizar algunas traduccciones para algunas webs ya creadas, incluso con fichero de traducciones ya creados sobre los que traducir. Está cada vez mas extendido usar la biblioteca Gettext para la traducción de sitios. Como decia ya lo implementan muchos CMS, uno de ellos el propio wordpress.

Al grano, para modificar las traducciones disponemos de un fichero con extensión .po y otro generado a partir de este con extensión .mo.

En realidad se puede editar con cualquier editor de texto y luego compilarlo pero puede resultar un poco pesado. Para ahorrar tiempo existen múltiples editores para este tipo de ficheros. Yo he probado Poedit y lo recomiendo. Tiene versión para múltiples plataformas y logicamente es multilenguaje.

Poedit Screenshot

Su instalación es muy rápida y una vez ejecutado mostrará en 2 columnas el idioma original y su traducción. Es muy comodo.
Por defecto, al darle a guardar, genera solo el archivo .mo compilado aunque se puede configurar desde preferencias para que no lo haga.

También dispone de un sistema de traducción automática, aunque como todo lo traducido automáticamente no es muy fiel.

Go to Top